24小时联系电话:18217114652、13661815404

中文

您当前的位置:
首页>
电子资讯>
技术专题>
嵌入式Linux或RTOS:...

技术专题

嵌入式Linux或RTOS:用于物联网


嵌入式LinuxRTOS:用于物联网

嵌入式LinuxLinux内核用于嵌入式设备,但与标准Linux操作系统有很大不同。其在嵌入式系统中的应用是受设备支持,文件系统,网络连接和UI支持的可用性推动的。它是针对嵌入式系统的Linux的定制版本,因此具有更小的尺寸和最小的功能,并且需要的处理能力也更少。根据嵌入式系统要求,对Linux内核进行了修改和优化。这种嵌入式Linux只能运行特定于设备的专用应用程序。

具有最少代码的实时操作系统(RTOS)用于需要最少固定处理时间的此类应用程序。RTOS是一个基于时钟中断的分时系统,该时钟中断实现优先级序列以执行进程。在高优先级的情况下,系统会产生中断,正在运行的低优先级进程将停止并处理中断。实时操作系统需要较少的操作内存,并且可以使进程彼此通信,从而使进程同步,因此可以有效地使用资源,而不会浪费时间。

比较

尺寸

嵌入式LinuxRTOS之间的主要区别在于它们的大小。在AVR上运行的RTOS大约需要4.4 KBROM。另一方面,嵌入式Linux相对较大。可以剥离不需要的内核,即使如此,占用空间通常以兆字节为单位。

嵌入式Linux RAM的需求约为几兆字节。在实际应用中,它需要的不仅仅是这些,因为一些其他任务在这些Linux内核下运行。RTOS的内存需求比Linux小得多。一个非常简单的设置(在8位架构上运行两个任务,一个调度程序,一个通信队列和一个信号灯)将使用大约200个字节。

排程器

RT系统中的调度程序对于确保任务在固定时间内完成非常重要。与用于通用系统的常规调度程序相比,确保公平分配CPU时间不是调度程序的主要任务。一种常见的技术就是简单地让具有最高优先级的任务先于所有具有较低优先级的任务运行。它对于软实时系统工作正常,但对于硬实时,系统必须提供更好的保证。

RTOS调度程序

RTOS使用优先级最高的调度程序。这意味着优先级最高的任务始终在运行。这可以通过具有抢占式调度程序来实现,该调度程序在滴答中断时决定是否允许当前正在运行的任务继续执行,或者需要根据优先级将其切换为另一个任务。调度程序使用优先级来调度具有最高优先级的任务。具有相同优先级的任务将获得公平的处理时间。此计划使我们能够实现软实时,但由于没有任何基于截止日期的计划,很难实现硬实时。

为此,可以选择具有抢占式或协作式调度程序。在抢占模式下,可以优先抢占任务,而在协作模式下,所有任务都必须足够地分配CPU,从而可以运行更高优先级的任务。典型的RTOS实时内核可实现从零到几微秒的调度程序延迟。

嵌入式Linux调度程序

在嵌入式Linux中,有更多选择来选择调度程序。嵌入式Linux的模块化允许更改系统的不同部分。一个简单的insmod可以更改调度程序。有几个针对不同事物设计的调度程序。

首先,它具有一个基本的最高优先级优先调度程序,该调度程序使用任务的优先级并对其进行优先调度。嵌入式Linux还首先实施最早期限,该期限使用嵌入式Linux的定期功能。假设每个任务的截止日期是下次再次运行时,则可以实现快速的EDF。从理论上讲,这是最佳选择,因为它可以将任务安排为100CPU使用率。实际上,由于一些开销,它是不一样的。与在空闲过程中一样,嵌入式Linux运行一个普通的Linux内核,并且当没有rt-tasks可以运行时,Linux就可以运行了。这会导致Linux饥饿,从而有效地禁用Linux。但是,实时系统的重要性在于运行实时任务,这对于系统而言不是一个大问题。

CPU资源

嵌入式Linux需要大量的CPU资源,也许是> 200MIPS32位处理器,理想情况下具有MMU4Mb ROM16MB RAM,并且启动可能需要几秒钟的时间。

另一方面,RTOS8位以上的微控制器上以不到10Kb的速度运行,并在数毫秒内启动。

IoTOS实施

对于极低功耗的应用程序(例如传感器),使用电池运行数月之久,通常首选嵌入式Linux。低功耗本质通常会阻止直接IP连接,而直接IP连接充当Internet连接的网关。网关将低功耗协议传达给传感器,并将其转换为IPLinux可能具有满足要求的现有协议。

物联网设备的基本要求是网络连接,通常是通过Web服务器以IP的形式。RTOS可以提供IP连接性,但是除非您进行检查,否则可能会出现错误。例如,通常,RTOS不会将IP堆栈用户与IP堆栈本身隔离开。网络连通性可能需要处理低速或拥塞的链接,当堆栈与其他代码混合在一起时,这可能导致模糊和难以调试的缓冲区处理问题。另一方面,嵌入式Linux利用硬件分离和广泛使用的IP堆栈(可能已暴露于极端情况)。

在经常暴露于开放InternetIoT设备中,安全性至关重要。Internet接口上的系统漏洞很容易受到入侵者的侵害,并且可以劫持设备的信息或控制权。开发人员可以利用本机,嵌入式Linux功能(多用户,SELinux和容器)来控制和限制损害。

Linux当然是一个强大而安全的操作系统,并且该系统已经在嵌入式操作系统中成熟。然而,缺点之一是,与实时操作系统相比,它的内存占用空间很小,即使可以通过删除嵌入式系统中不需要的工具和系统服务来进行修整,但它仍然是一个大型软件。它根本无法在8位或16MCU上运行,并且需要更多板载RAM用于Linux内核。例如,基于ARM Cortex-M架构的MCU通常只有几百KBRAM,而Linux无法在这些芯片上运行。

联网系统的常见工程解决方案是在设备中使用两个处理器。在这种布置中,传感器或执行器使用8位或16MCU,而运行RTOS的网络接口则使用32位处理器。在过去的几年中,32MCU的销量激增,并已成为MCU市场的最大细分市场。

 

请输入搜索关键字

确定