OSX 通常被视为 BSD 之上的图形化 shell。最近,Apple 似乎在不断增加“核心”操作系统功能(沙盒、版本控制)。是否会稳步发展到最终完全专有的内核,或者微内核方法是否足够灵活以持久存在?
答案1
这维基百科上有关 XNU 的文章回答了大部分这个问题。
XNU 是一个混合内核,结合了卡内基梅隆大学开发的 Mach 内核 2.5 版、4.3BSD 的组件以及用于编写驱动程序的面向对象 API(称为 Driver Kit)。Apple 收购 NeXT 后,Mach 组件升级到 3.0,BSD 组件使用 FreeBSD 项目的代码进行升级,Driver Kit 被用于编写驱动程序的 C++ API(称为 I/O Kit)取代。
...
内核的伯克利软件分发 (BSD) 部分提供 POSIX API(BSD 系统调用)、Mach 任务之上的 Unix 进程模型、基本安全策略、用户和组 ID、权限、网络堆栈、虚拟文件系统代码(包括独立于文件系统的日志层)、多个本地文件系统(如 HFS/HFS+)、网络文件系统 (NFS) 客户端和服务器、加密框架、UNIX System V 进程间通信 (IPC)、审计子系统、强制访问控制和一些锁定原语。XNU 中的 BSD 代码来自 FreeBSD 内核。尽管其中大部分内容已被大幅修改,但 Apple 和 FreeBSD 项目之间仍在进行代码共享。
因此,OS X 的图形化 shell 并不基于 BSD 内核。该内核是混合内核,因此我认为它与 FreeBSD、OpenBSD、NetBSD 或任何其他 BSD 变体等主流系统中的任何内核都不一样。OSX 中只有相对较小(但很重要)的 BSD 部分。