内核是操作系统的核心部分,它管理着系统的各种资源。内核可以看成连接应用程序和硬件的一座桥梁,是直接运行在硬件上的最基础的软件实体。目前从内核架构来划分,可分为宏内核(Monolithic Kernel)和微内核(Micro Kernel)。
1.宏内核
宏内核:宏内核管理着用户程序和硬件之间的系统资源,在宏内核架构中,用户服务和内核服务在同一空间中实现。具体一点,就是内核可以代表内核进程运行代码,就是通常的内核进程;当用户进程经过系统调用或者中断进入到内核态时,内核也可以代表它运行代码。宏内核代码耦合度非常高,甚至内核的功能组件代码可以互相调用。如:vxworks5.5、VRTX等嵌入式操作系统均采用的是宏内核。图1给出了宏内核的基本架构。
图1 宏内核嵌入式操作系统结构
2.微内核
微内核:内核管理着所有的系统资源,在微内核中用户服务和内核服务在不同的地址空间中实现。在应用程序和和硬件的通信中,内核进程和内存管理的极小的服务,而客户端程序和运行在用户空间的服务通过消息的传递来建立通信,它们之间不会有直接的交互,这样一来,微内核中的执行速度相对就比较慢了,这是微内核架构的一个缺点。微内核系统结构相当清晰,有利于协作开发;微内核有良好的移植性,代码量非常少;微内核有相当好的伸缩性、扩展性。缺点是性能偏低。如:嵌入式Linux、L4、WinCE。图2给出了微内核的基本架构。
图2 微内核嵌入式操作系统结构