参考:
(1)操作系统实战45讲
(2)Linux系统——架构浅析

一、架构分类

内核是操作系统的核心,对下承接硬件设备,对上承接应用程序,管理计算机的所有资源。主要包括以下几个模块;
进程调度、内存管理、设备管理、文件系统、网路管理。

参考wiki:

1、宏内核

宏内核架构中,内核包含所有核心模块,各模块属于同一层次,“宏”的体现在该层设计的功能较多;

其优点在与性能强大,缺点在于各模块之间耦合度较高,结构复杂,开发与维护困难。

应用程序
内核:进程调度、内存管理……
硬件设备

2、微内核

微内核架构中,内核仅保留少量模块(IPC通信、内存管理等),其他功能进行模块化处理,转化成用户进程;用户进程利用消息机制与内核进行通信。

微内核高度模块化,稳定性较好,但是由于用户进程需要频繁地与内核进行交互,性能较低。

应用程序
用户进程:设备管理、文件管理、系统服务……
内核:进程间通信、内存管理……
硬件设备

3、混合内核:

混合内核架构,为微内核的重构版本,将一些对性能影响较大的组件从用户进程中移到内核,为了效率在架构方面做了部分妥协,如果彻底妥协就变回宏内核了。

应用程序
用户进程:系统服务、文件管理……
内核:进程间通信、内存管理、设备管理……
硬件设备

二、Linux

linux内核走的是宏内核路线,主要包括:进程调度、内存管理、设备驱动、文件系统、网络模块。

架构图参考链接1;

三、iOS Darwin

Darwin作为macOS与iOS操作系统的核心,使用微内核(Mach)和对应固件来支持不同的处理器平台,并提供操作系统原始的基础服务,内核态还有BSD系统为上层的功能性系统提供服务和工具。可见,Darwin为混合内核架构。

Mach内核提供简单的进程、线程、IPC通信、虚拟内存设备驱动相关的功能服务,BSD则提供强大的安全特性,完善的网络服务,各种文件系统的支持,同时对Mach的进程、线程、IPC、虚拟内核组件进行细化、扩展延伸。

应用在调用Darwin系统API时,会传入一个API编号,根据编号索引Mach陷入中断服务函数。此时,API号码如果小于0,则表明请求的是Mach内核的服务,API号码如果大于0,则表明请求的是BSD内核的服务,它提供一整套标准的POSIX接口。

架构图参考链接1;

四、Windows NT

NT是现代Windows的内核,从Windows 2000开始。NT内核定义了三层,最底层的HAL,封装硬件差异;第二层为小内核,完成进程、内存、配置、I/O文件缓存、电源与即插即用、安全等相关的服务;第三层是内核执行体,对外提供相应的接口,其它执行体要通过内核模式可调用接口和其它执行体通信或者请求其完成相应的功能服务。

NT架构结构清晰,完全遵循高内聚、低耦合的设计标准,可惜闭源。

架构图参考链接1;

原文地址:http://www.cnblogs.com/HZL2017/p/16870817.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性