1.1 linux 中的层级
首先,我们从一名计算机黑客切入,简单介绍了一下 Linus,他由于沉迷于技术,对不好的规则敢于挑战而写出了 Linux 雏形,并且利用了 GNU 开源软件的精神推动了 Linux 后来的发展,这样的精神很值得我们学习。
1.2 linux 中的内核
然后我们探讨了 Linux 内核架构,大致搞清楚了 Linux 内核中的各种组件,它们是系统、进程、内存、储存、网络。其中,每个组件都是从接口到硬件经过了几个层次,组件与组件之间的层次互联调用。这些组件组合在一起,其调用关系形成了一个巨大的网状结构。因此,Linux 也成了宏内核的代表。
1.3 linux 中五大组件
1.4 Mac中 Darwin内核
为了有所对比,我们研究了苹果的 Darwin-XNU 内核结构,发现其分层更细,固件层、Mach 层屏蔽了硬件平台的细节,向上层提供了最基础的服务。在 Mach 层之上的 BSD 层提供了更完善的服务,它们是进程与线程、IPC 通信、虚拟内存、安全、网络协议栈以及文件系统。通过 Mach 中断嵌入表,可以让应用自己决定使用 Mach 层服务还是使用 BSD 层的服务,因此 Darwin-XNU 拥有了两套内核,Darwin-XNU 内核层也成为了多内核架构的代表。‘
1.5 windows 中 NT 内核
最后,我们研究了迄今为止,最成功的商业操作系统——Windows,它的内核是 NT,其结构清晰明了,各组件完全遵循了软件工程高内聚、低偶合的设计标准。最下层是 HAL(硬件抽象),HAL 层是为了适配各种不同的硬件平台;在 HAL 层之上就是微软定义的小内核,你可以理解成是 NT 内核的内核;在这个小内核之上就是各种执行体了,这些执行体提供了操作系统的进程、虚拟内存、文件数据缓存、安全、对象管理、配置等服务,还有 Windows 的技术核心图形系统。