操作系统内核架构

内核是计算机资源的管理者,为了让应用更好地使用资源。而计算机中资源分为硬件资源和软件资源,硬件资源大体上包含以下几类:总线,CPU 内存,硬盘,网卡,显卡,各种 I/O 设备,如显示器,打印机,键盘,鼠标等。

经典的计算机内部结构图如下:

而软件资源,表示的是计算机中的各种形式的数据,如文件,各种运行程序等

内核就是上述硬件资源和软件资源的管理者,其内部的逻辑大致可以概括为:

1.管理 CPU,CPU 是执行程序的,内核会把运行时的程序抽象成进程,所以可以简单理解为进程管理。

2.管理内存,负责管理分配与释放内存。

3.管理硬盘,硬盘主要存放用户数据,而内核把用户数据抽象成文件,即管理文件,可以理解为文件系统。

4.管理显卡,负责显示信息,而现在操作系统都是支持 GUI(图形用户接口)的,管理显卡自然而然地就成了内核中的图形系统。

5.管理网卡,网卡主要完成网络通信,网络通信需要各种通信协议,最后在内核中就形成了网络协议栈,又称网络组件。

6.管理各种 I/O 设备,我们经常把键盘、鼠标、打印机、显示器等统称为 I/O(输入输出)设备,在内核中抽象成 I/O 管理器。

宏内核结构

宏即大,最简单适用,是最早的一种内核结构。宏内核就是把以上各种功能模块的代码,直接合在一起,把这些所有的代码经过编译,链接一块,形成一个大的可执行程序。这个大程序会在处理器的特权模式下运行,这个模式通常被称为宏内核模式。结构如下图所示

尽管图中是一层一层的,这并不是它们有层次关系,仅仅表示它们链接在一起。

来看一个例子,宏内核提供内存分配功能的服务过程,具体如下:

1. 应用程序调用内存分配的 API(应用程序接口)函数。

2. 处理器切换到特权模式,开始运行内核代码。

3. 内核里的内存管理代码按照特定的算法,分配一块内存。

4. 把分配的内存块的首地址,返回给内存分配的 API 函数。

5. 内存分配的 API 函数返回,处理器开始运行用户模式下的应用程序,应用程序就得到分配的内存的首地址并进行使用。

优缺点:宏内核结构没有模块化,没有扩展性、没有移植性,高度耦合在一起,一个组件有漏洞,所有的组件可能都会出问题。开发一个新的功能也得重新编译、链接、安装内核。唯一的优点是性能很好,这些组件之间可以互相调用。

微内核结构

微内核结构与宏内核结构正好相反,宏内核结构是一种简单的混合在一起的思想,尽可能让功能越多越好,而微内核的功能非常少仅仅只有进程调度,处理中断,内存空间映射,进程间通信等功能,如果要完成实际功能,需要将实际的进程管理,内存管理,设备管理,文件管理等服务功能,做成一个个服务进程。当需要某种服务时,内核与这些服务进程间通过消息来进行通信,通知相关服务进程工作。其结构如下所示:

为了理解微内核的工程原理,我们来看看微内核提供内存分配功能的服务过程,具体如下:

1. 应用程序发送内存分配的消息,这个发送消息的函数由微内核提供,相当于系统 API

2. 处理器切换到特权模式,开始运行内核代码。

3. 微内核代码通过消息机制将分配内存的消息发送给内存管理服务进程。

4. 内存管理服务进程收到消息,分配一块内存。

5. 内存管理服务进程,也会通过消息的形式返回分配内存块的地址给内核,然后继续等待下一条消息。

6. 微内核把包含内存块地址的消息返回给发送内存分配消息的应用程序。

7. 处理器开始运行用户模式下的应用程序,应用程序得到一块内存的首地址,并使用这块内存。

从上述过程可以看出来,宏内核类似于古代中央集权,各种功能汇聚一体;而微内核采用的是分而治之的思想,把需要的服务传递给相关服务进程进行处理,因此微内核结构的缺点很明显,相比于宏内核多了很多步骤,性能不好。优点也很明显, 当需要一个新功能,增加一个服务进程即可。宏内核有极致的性能,微内核有极致的可移植性、可扩展性。

COSMOS操作系统

我们的操作系统大致分为三个大层,将宏内核与微内核的优点结合在一起,是一种混合形式的架构:

1. 内核接口层,定义了一套UNIX接口的子集,主要检查其参数的合法性,接着调用下层完成功能的核心代码;

2. 内核功能层,主要是实现各种实际功能,这些功能按照类别可以分成各种模块,如进程管理,内存管理,文件系统,中断管理,设备管理等。

3. 内核硬件层,包括一个具体硬件平台相关的代码,主要用于初始化,中断设置等。

从上述文字和图示,可以发现,我们的操作系统内核没有任何设备驱动程序,甚至没有文件系统和网络组件,内核所实现的功能很少。这吸取了微内核的优势,内核小出问题的可能性就少,扩展性就越强。同时,把文件系统、网络组件等其他实际功能组件作为虚拟设备交由设备管理,比如需要文件系统时就写一个文件系统虚拟设备的驱动,完成文件系统的功能,驱动一旦被装载,就是内核的一部分了。这又吸取了宏内核的优势,代码高度耦合,性能强劲。是这两种架构综合的结果,可以说是一种混合内核架构。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值