嵌入式操作系统(embedded operating system)是在通用操作系统基础上发展起来的过定制化和设计专用化,可应用于工业控制、个人移动媒体或其他专用设备之中的控制程序因此,可以把嵌入式操作系统理解为单片机控制程序与运行于工作站或桌面系统之上的操作系统之间的一个软件产物。
作为早期的8位或16位单片机系统而言由于控制任务相对简单各个外部事件或系内部的控制都由一个中央控制程序来控制,就好比一个单一线程的应用系统,整个系统只有个main函数人口,没有太多的分支。
但对于像PC机那样的桌面系统或复杂的工作站而言,就需要处理许多通用的事务,例科学计算、文字处理、电子商务、互联网、游戏、多媒体播放,等等。技术发展到今天,像桌面系统一类的通用系统从硬件和软件方面都发展得相当迅猛,硬件资源丰富,处理机的速度非常快,操作系统及应用程序的功能既丰富又稳定。
32位RISC CPU的出现,可以认为是一个介于单片机与 CISC CPU之间的产品,从此t给嵌入式系统的发展带来了深刻革命。
从硬件上说,RISC多级的流水线结构,规整的指令长度,精简的指令,扩大的通用寄存器文件等,都是优于CISCCPL的方面而且 RISC逻辑相对简单译码和执行相对更快占用片的面积小,成本相对较低,也利于集成到片上系统(SoC)。
从软件上说,嵌人式设备需要处理更多的事务,这些事务往往同时发生,例如当用户正使用Smart-Phone编辑一个文本时,又不想错过一个紧急呼叫;或用户正在欣赏音乐时还希望同时阅读新闻或电子邮件;或一个工业控制设备在把拍摄下来的图像向远程发送的同时,希望对外部温度、水位和气味等的变化做出应急反应等,这些都需要多任务。
嵌入式设备多任务的需求推动了单片机控制程序的变革,而操作系统多任务的特性正好适应于这一需求。
相对于采用CISC的桌面系统而言,对于CPU使用精简指令外部设备的资源受到限制的系统,其操作系统也必须发生变化。
首先,由于嵌人式操作系统里往往没有像 PC 机那样存储容量非常庞大的硬盘,系统软件和应用程序一般都存储在一些几十兆的闪存(flash)中所以需要从通用操作系统中去除掉一些不使用的应用程序和应用程序函数库,以及操作系统中不使用的各种服务、各种协议栈和其他软件组件等。
除此之外,它们的指令集不同,而且 RIS往往只支持CISCCPU指令集的一个子集例如很多RISCCPU系统不支持乘除法也不支持浮点数的处理,指令集的指令二进制编码也全然不同,所以即使将桌面系统上现有的操作系统搬到基于RISC的嵌入式设备上也无法运行
由以上讨论可知,简单地说,嵌人式设备由于资源受限、外部设备专用化、CPU 的特殊化都要求基于 RISC的嵌人式设备所使用的操作系统软件有别于传统的通用操作系统。它需要上精简,从设计上修改,还需要从编译上重新构建。
领取专属 10元无门槛券
私享最新 技术干货