1.5 微内核和宏内核
宏内核:也称为单内核(Monolithic kernel),将内核从整体上作为一个大过程实现,并同时
运行在一个单独的地址空间。所有的内核服务都在一个地址空间运行,相互之间直接调用函
数,简单高效。单内核是个很大的进程。他的内部又能够被分为若干模块(或是层次或其他)。
但是在运行的时候,他是个单独的二进制大映象。其模块间的通讯是通过直接调用其他模块
中的函数实现的,而不是消息传递。
微内核(Micro kernel):在微内核中,大部分内核都作为单独的进程在特权状态下运行,他
们通过消息传递进行通讯。在典型情况下,每个概念模块都有一个进程。因此,假如在设计
中有一个系统调用模块,那么就必然有一个相应的进程来接收系统调用,并和能够执行系统
调用的其他进程(或模块)通讯以完成所需任务。在这些设计中,微内核部分经常只是个消
息转发站:当系统调用模块要给其他系统模块发送消息时,消息直接通过内核转发。这种方
式有助于实现模块间的隔离。(某些时候,模块也能够直接给其他模块传递消息。)在一些微
内核的设计中,更多的功能,如 I/O 等,也都被封装在内核中了。但是 根本的思想还是要
保持微内核尽量小,这样只需要把微内核本身进行移植就能够完成将整个内核移植到新的平
台上。其他模块都只依赖于微内核或其他模块,并不直接直接依赖硬件。
微内核设计的一个长处是在不影响系统其他部分的情况下,用更高效的实现代替现有系统模
块的工作将会更加容易。我们甚至能够在系统运行时将研发出的新系统模块或需要替换现有
模块的模块直接而且迅速的加入系统。另外一个长处是无需的模块将不会被加载到内存中,
因此微内核就能够更有效的利用内存。
通常嵌入式操作系统(如 Vxworks)采用微内核设计结构,以节省内存空间,而通用操作系
统(如 Linux)则采用宏内核设计结构。
1.6 Vxworks操作系统简介1
VxWorks 是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时
多任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种 CPU 平台上提供
了统一的编程接口和一致的运行特性,尽可能的屏蔽了不同 CPU 之间的底层差异。应用程
序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于
VxWorks 操作系统的应用程序可以在不同 CPU 平台上轻松移植。
VxWorks 是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的
一个实时操作系统。WRS 公司组建于 1981 年,是一个专门从事实时操作系统开发与生产
的软件公司,该公司在实时操作系统领域被世界公认为是 具有领导作用的公司。
VxWorks 是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统。它以其良好的
可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求
1 本节内容主要摘自http://www.hwacreate.com.cn/chanpin/dlcp/windriver/WorkBench.html,2010.06。
1