并非所有的操作系统都是平等构建的。事实上,在多任务处理、开销、内存使用等方面有很多不同。当涉及到为设备选择合适的系统时,这一系列的选择可能会使嵌入式开发人员感到困难。
一种特别适合连接设备(至少是基本设备)的类型是裸机。正如裸机服务器一次只能承载一个租户一样,裸机环境完全专用于运行单个应用程序。这与同时运行多个程序的常规操作系统形成了鲜明对比。
RTOS:处理复杂的调度
与同类产品相比,裸机的简单性尤为明显。裸机系统的下一步是RTOS(实时操作系统)。RTOS的设计相对简单,但与裸机不同,它可以同时启动和停止不同的进程。另一方面,RTOS不如OS强大。最大的区别通常是内存保护和虚拟化。
在高端操作系统中,应用程序内存是分开的,操作系统确保一个进程(正在运行的应用程序)不会损坏另一个进程的内存,这是通过虚拟化内存来实现的,这使得操作系统可以在不使用时将未使用的内存交换到磁盘上。RTOS中通常不存在高级内存处理。
这种级别的高级资源管理(内存、磁盘、网络、CPU)在应用于一般系统(如PC)时非常有用。但是,在小型嵌入式设备上,这是不同的,因为你通常对以下方面有很好的了解:
需要运行多少个应用程序/进程
这些应用程序/进程需要什么内存
确保这些过程不会相互干扰。
在某些领域,RTOS被物联网应用所青睐,因为它可以处理大多数互联网连接嵌入式系统所需的复杂调度。此外,将USB、TCP/IP和GUI组件集成到裸机系统中对于嵌入式开发人员来说非常耗时和复杂。
OS:在较重的方面
在RTOS之上的另一个步骤,或者更像是一个巨大的飞跃,是一个成熟的操作系统。此操作系统选项与裸机处于光谱的另一端。虽然裸机和RTSO有一些相似之处,例如减少了开销和有效的内存使用,但裸机和操作系统实际上没有相似之处。
你可能会认为传统的操作系统受到开发者的反对,对于简单的物联网设备来说太重了,但是,你错了。还有一个著名且广泛使用的操作系统是Linux,它通常是嵌入式系统的固定设备。
决定什么适合你的物联网设备将取决于使用情况。简单的传感器和基本设备根本不需要高端操作系统的处理能力,而且可能会从精简的裸机方法中获益。
另一个重要的注意事项是,尽管裸机开发非常耗时,但许多嵌入式开发人员确实更愿意投入额外的工作。这是因为管理得越多,你控制事情的能力就越强。
当然,并非所有的闪光都是金子,值得一提的是裸机环境的局限性。裸机的成本之一是性能损失,因为你必须通过操作系统与硬件进行通信,但跨平台的所有硬件也需要统一,并且外观相同。因此,某些功能可能会在操作系统驱动程序中丢失。
同时,对于物联网设备来说,这一点尤为重要,互联网通信的需求有时会促使开发人员转向RTOS而不是裸机。这是因为internet通信要求单个应用程序现在与TCP/IP通信堆栈进行多路复用,TCP/IP通信堆栈有时需要自己的线程,在RTOS上处理起来可能更简单。
但总的来说,裸机确实为那些有基本需求的设备提供了理想的功能。由于缺乏开销、高效使用内存以及对应用程序硬件的完全控制,它成为当今任何直接连接设备的竞争者。
了解更多