Linux内核
Linux内核主要有五大组件,系统、进程、内存、储存和网络。没有层次关系,主要依赖函数调用,所以一旦某一个函数出现问题,整个系统都有可能崩溃。这和我们上一讲中宏内核结构是一致的,他的优点是这样的架构性能很高。
Darwin-XNU内核
Darwin是macos与ios操作系统的核心。使用微内核架构。
在内核-用户转换层以下,有两个内核层,Mach层与BSD层
其中Mach内核是卡耐基梅隆大学的经典微内核,提供最基本的操作系统服务。一开始是只有这一个内核。随着性能发展,最基本的内核无法满足需求,但又考虑到兼容性,就保留了Mach内核,又添加了BSD内核
BSD内核则是伯克利大学开发的类UNIX操作系统。在加入BSD内核之后,Mach 内核仍然提供十分简单的进程、线程、IPC 通信、虚拟内存设备驱动相关的功能服务,BSD 则提供强大的安全特性,完善的网络服务,各种文件系统的支持,同时对 Mach 的进程、线程、IPC、虚拟内核组件进行细化、扩展延伸。
**应用通过用户层框架和库请求Darwin系统服务,调用系统API,会传入一个API号码,用这个号码索引 Mach陷入中断服务表,如果API号码大于0,表明请求BSD内核服务,反之小于0表明请求Mach内核服务。**由此实现双内核同时存在。