在线教育|嵌入式开发为什么要使用裸机?

在线教育|嵌入式开发为什么要使用裸机?

并非所有的操作系统都是平等构建的 。 事实上 , 在多任务处理、开销、内存使用等方面有很多不同 。 当涉及到为设备选择合适的系统时 , 这一系列的选择可能会使嵌入式开发人员感到困难 。
一种特别适合连接设备(至少是基本设备)的类型是裸机 。 正如裸机服务器一次只能承载一个租户一样 , 裸机环境完全专用于运行单个应用程序 。 这与同时运行多个程序的常规操作系统形成了鲜明对比 。
RTOS:处理复杂的调度
与同类产品相比 , 裸机的简单性尤为明显 。 裸机系统的下一步是RTOS(实时操作系统) 。 RTOS的设计相对简单 , 但与裸机不同 , 它可以同时启动和停止不同的进程 。 另一方面 , RTOS不如OS强大 。 最大的区别通常是内存保护和虚拟化 。
【在线教育|嵌入式开发为什么要使用裸机?】在高端操作系统中 , 应用程序内存是分开的 , 操作系统确保一个进程(正在运行的应用程序)不会损坏另一个进程的内存 , 这是通过虚拟化内存来实现的 , 这使得操作系统可以在不使用时将未使用的内存交换到磁盘上 。 RTOS中通常不存在高级内存处理 。
这种级别的高级资源管理(内存、磁盘、网络、CPU)在应用于一般系统(如PC)时非常有用 。 但是 , 在小型嵌入式设备上 , 这是不同的 , 因为你通常对以下方面有很好的了解:
需要运行多少个应用程序/进程
这些应用程序/进程需要什么内存
确保这些过程不会相互干扰 。
在某些领域 , RTOS被物联网应用所青睐 , 因为它可以处理大多数互联网连接嵌入式系统所需的复杂调度 。 此外 , 将USB、TCP/IP和GUI组件集成到裸机系统中对于嵌入式开发人员来说非常耗时和复杂 。

OS:在较重的方面
在RTOS之上的另一个步骤 , 或者更像是一个巨大的飞跃 , 是一个成熟的操作系统 。 此操作系统选项与裸机处于光谱的另一端 。 虽然裸机和RTSO有一些相似之处 , 例如减少了开销和有效的内存使用 , 但裸机和操作系统实际上没有相似之处 。
你可能会认为传统的操作系统受到开发者的反对 , 对于简单的物联网设备来说太重了 , 但是 , 你错了 。 还有一个著名且广泛使用的操作系统是Linux , 它通常是嵌入式系统的固定设备 。
决定什么适合你的物联网设备将取决于使用情况 。 简单的传感器和基本设备根本不需要高端操作系统的处理能力 , 而且可能会从精简的裸机方法中获益 。
另一个重要的注意事项是 , 尽管裸机开发非常耗时 , 但许多嵌入式开发人员确实更愿意投入额外的工作 。 这是因为管理得越多 , 你控制事情的能力就越强 。
当然 , 并非所有的闪光都是金子 , 值得一提的是裸机环境的局限性 。 裸机的成本之一是性能损失 , 因为你必须通过操作系统与硬件进行通信 , 但跨平台的所有硬件也需要统一 , 并且外观相同 。 因此 , 某些功能可能会在操作系统驱动程序中丢失 。
同时 , 对于物联网设备来说 , 这一点尤为重要 , 互联网通信的需求有时会促使开发人员转向RTOS而不是裸机 。 这是因为internet通信要求单个应用程序现在与TCP/IP通信堆栈进行多路复用 , TCP/IP通信堆栈有时需要自己的线程 , 在RTOS上处理起来可能更简单 。
但总的来说 , 裸机确实为那些有基本需求的设备提供了理想的功能 。 由于缺乏开销、高效使用内存以及对应用程序硬件的完全控制 , 它成为当今任何直接连接设备的竞争者 。