操作系统内核

操作系统内核
1,内核是计算机资源管理者,通常分为硬件资源和软件资源,硬件资源有:
1)总线,负责连接各种其它设备,是其它设备工作的基础。
2)CPU,中央处理器负责执行程序和处理数据运算。
3)内存,负责存储运行时的代码和数据。
4)硬盘,负责长久存储用户文件数据。
5)网卡,负责计算机与计算机之间的通信。
6)显卡,负责显示工作。
7)各种I/O设备,如显示器、打印机、键盘、鼠标等。

2,计算机软件资源,则为计算机中各种形式的数据,文件、软件程序等。

3,内核管理硬件资源和软件资源,内部组成逻辑大致为:
1)管理CPU,CPU是执行程序的,而内核将运行时程序抽象成进程,所以又称为进程管理。
2)管理内存,程序和数据都要占用内存,内核管理内存的分配和释放。
3)管理硬盘,硬盘存放用户数据,内核将用户数据抽象成文件,形成文件系统,方便用户查找和读写。
4)管理显卡,负责显示信息,操作系统支持GUI(图形用户接口),内核实现图形系统。
5)管理网卡,网卡负责完成网络通信,需要各种通信协议,内核实现网络协议栈即网络组件。
6)管理I/O设备,内核将各种输入输出设备抽象成I/O管理器。

4,内核除了这些必要组件外,根据功能不同还有安全组件等,硬件性能、功能、型号、各类不同,内核通过驱动程序管理和控制这些硬件。

宏内核结构
1,宏内核结构即把以上所有管理模块的代码经过编绎链接在一起,形成一个大的可执行程序,向用户提供系统API函数,内核代码在处理器的特权模式下运行,称为宏内核模式。
1)例,应用程序调用内存分配的API(应用程序接口)函数,处理器切换到特权模式,运行内核代码,内存的内存管理按照特定算法,分配一块内存,分配内存的首地址返回给内存分配的API函数,内存分配API函数返回,处理器运行用户模式下应用程序,应用程序得到一块内存的首地址,并使用这块内存。
2)系统API和应用程序之间可能还存在库函数,分配虚拟地址空间。

2,宏内核结构没有模块化,没有扩展性,没有移植性,且高度耦合,内核中组件可以相互调用,性能高,但开发新功能得重新编绎、链接、安装内核。

微内核结构
1,微内核架构与宏内核架构相反,内核功能尽可能少,仅有进程调度、处理中断、内存空间映射、进程间通信等。
2,内核不完成实际功能,将实际的进程管理、内存管理、设备管理、文件管理等服务功能做成一个个服务进程,和用户应用进程一样,宏内核提供的功能,在微内核架构里由这些服务进程负责完成。

3,微内核定义了进程间通信机制——消息,应用程序请求相关服务,向微内核发送与此服务对应的消息,微内核将消息转发给相关服务进程,服务进程完成相关服务。服务进程的编程模型就是循环处理来自其它进程的消息,完成相关服务功能。
1)发送消息函数是由微内核提供的系统API,微内核提供的API相当少,极端情况下仅需要接收消息的API和发送消息的API;
2)应用程序发送内存分配的消息,处理器切换到特权模式运行内核代码,微内核停止运行当前进程,根据消息包中的数据将消息发送给内存管理的服务进程,内存管理服务进程收到消息,分配内存,并将内存块地址通过消息发送给内核,继续等待下一个消息,内核将包含内存块地址的消息发送给请求内存分配的应用程序,处理器切换到用户模式下的应用程序,应用程序获得内存的首地址,并使用这块内存。

4,微内核消息的转发过程,及服务进程之间的切换,带来较大的开销,系统性能打折,但系统结构清晰利于协作开发,代码量极小,且易于移植,系统功能只是一个进程,拿掉服务进程以减少系统功能或增加服务进程以增强系统功能易于扩展。

分离硬件相关性
1,从硬件层到操作系统层再到应用层构造计算机,目的是屏蔽底层细节,使上层开发更加简单。

2,分离硬件的相关性,就是将操作硬件和处理硬件功能差异的代码抽离出来,形成独立的软件抽象层,对外提供相应的接口,方便上层开发。
1)进程调度模块,进程调度目的是从众多进程中选择一个将要运行的进程,选择算法有轮转算法、优先级算法等,进程切换目的是停止当前进程,运行新的进程,主要动作是保存当前进程的机器上下文,装载新进程的机器上下文。
2)不管是ARM硬件平台还是X86硬件平台,选择进程的算法和代码不需要改变,需要改变的是进程切换的相关代码,因为不同硬件平台的机器上下文是不同的。
2)将进程切换的代码放在独立层中实现,比如硬件平台相关层,当操作系统需要运行在不同的硬件平台上时,只需要修改硬件平台相关层中的相关代码,大大地提高了操作系统的移植性。

3,如果将所有硬件平台相关的代码都抽离出来,放在独立硬件相关层中实现并定义好相关的调用接口,再在这层之上开发内核的其它功能代码,则结构清晰,方便且可移植性高。
1)移植到不同的硬件平台时,构造开发与之对应的硬件相关层,这就是分离硬件相关性的好处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值