您的位置:控制工程论坛网论坛 » 嵌入式系统 » 重新审视微内核技术 - 优化设计,突破性能瓶颈

free8u8

free8u8   |   当前状态:离线

总积分:483  2024年可用积分:0

注册时间: 2006-03-15

最后登录时间: 2009-02-03

空间 发短消息加为好友

重新审视微内核技术 - 优化设计,突破性能瓶颈

free8u8  发表于 2008/9/23 12:58:22      690 查看 0 回复  [上一主题]  [下一主题]

手机阅读

微内核这个话题经常引发人们的争论。目前业界许多人仍对它抱有疑虑。微内核真的那么糟糕吗?当然不是,其实在经过优化设计后,微内核也能功效卓著。 

 


1970年代微内核理念首次问世,它是将核心外的操作系统服务转移到使用者服务模式(该核心程序代码执行于处理器优先模式)。1980年代微内核开始风行,似乎每个人都得熟悉它。而且,如同许多流行技术一样,微内核技术的支持者们承诺得多但兑现甚少。 


曾经广泛作为系统基础的操作系统──Mach,也曾一度陷入严重的性能问题,同时期的Chorus和QNX等操作系统也好不到哪里去。毫无疑问,Mach与其它OS的经验影响了微内核的形象,它也未能使GNU Hurd免于重蹈覆辙。 


然而,早在1993年,Jochen Liedtke就证实了这些性能问题并不是微内核概念所引发的。其L4微内核在这场竞争中远远胜出,在关键的IPC原始成本方面优于Mach和QNX高达 5~20倍。在对Mach的分析中,他指出其性能糟糕在于规模过大──大约有300条核心API以及超过100 kLOC程序代码,这显然不能称为‘微’。 


Liedtke指出小型化才是关键,他认为:微内核只包含必须在核心模式下执行的程序代码;其它各部份都应该作为用户模式的程序执行。 


可靠性是微内核最重要的资产之一。但作为可信任运算基础(TCB)的这些可信任程序代码数目已经大规模减少了。以Open Kernel Labs的OKL4微内核系统为例,其TCB程序代码行数小于20kLOC,至少还比Linux少一个数量级;而Linux核心的程序代码即使处于最小嵌入式配置模式时也还约有100kLOC。 


如今,降低TCB的尺寸大小才是微内核真正的关键优势:规模较小意味着错误更少,因而提高了可靠性与安全性。 


虽然这种小型平台具有足够的通用性和灵活性,以支持完整的OS架构。如同OK Linux所展现的那样,它也是一款极佳的虚拟平台,它在执行于ARMv5处理器时,仅消耗低至3%的资源即可进行Linux虚拟化。 


微内核不再只是一种学术界的玩具。如果能为微内核进行优质的设计和构建,其性能就不再是个问题,并且能提高系统稳健性。随着军事与生命领域等先进且复杂的嵌入式系统部署增加,我们需要一款稳健的基础来构建真正安全可靠的系统。显然,在这种系统中还没有任何方案可取代微内核。

1楼 0 0 回复