微内核操作系统在嵌入式平台上的应用*
随着嵌入式系统越来越多得与外部连接,甚至是通过互联网连接,其安全性也越来越受到关注。比如用掌上电脑进行网上购物的时候,用户的银行帐号信息必须得到严格的保护。安全性具体是指要求嵌入式设备在与外部连接的过程中,其内部的数据不会偶然或被恶意地破坏、更改或者泄露,维持嵌入式系统中信息的保密性和完整性。
本文引用地址:http://www.amcfsurvey.com/article/92482.htm所谓微内核是一种最小的的计算机操作系统内核,其设计思想是内核本身不提供操作系统的相关服务,而是提供实现这些服务的机制,诸如底层的地址空间管理,线程调度以及进程间通信。一般的硬件都有执行权限级别,比如Intel IA32架构有Ring0到Ring3的特权级,而一般的操作系统至少会用到两个,称之为内核态和用户态。而对于微内核操作系统来说,并非操作系统服务都运行于内核态,而是提供服务实现的机制部分运行于内核态;而操作系统的服务,包括设备驱动,文件系统和用户界面等则作为用户态的服务应用程序运行。
图2 单内核操作系统(左)和微内核操作系统结构比较图
如图2所示,左边的是单内核操作系统的结构示意图。我们常用的Windows操作系统和Linux操作系统都属于这个类型。单内核操作系统的内核提供完整的操作系统服务,比如图中所示的文件系统,进程间通信,进程调度器,内存管理,设备驱动程序等等。而应用程序则运行在用户态,应用程序想要使用操作系统提供的服务,需要通过内核提供的接口,我们称之为系统调用。当应用程序进程执行系统调用时,会陷入到内核的代码去执行,进程此时运行于内核态,处理器处于特权级最高的Ring0状态执行。当应用程序需要的操作系统服务调用完成,进程回到原本的应用程序代码中继续执行,也同时回到了用户态,在Ring3的特权级上运行。
而对于右边的微内核操作系统,操作系统的内核部分被大大简化,只包括基本的IPC机制,虚拟内存映射和调度机制,这些仅仅是用于实现操作系统服务的基本机制。真正的操作系统服务,比如设备驱动,文件系统,应用程序间通信等,通过用户态服务程序的方式实现。当普通的应用程序需要操作系统的相关服务时,通过发送IPC消息给这个服务程序,这些服务程序进行相关的操作,必要时也会通过内核提供的系统调用陷入到内核态去执行基本的操作,并把结果再通过IPC返回给请求服务的应用程序。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
评论