跳转到内容

Unix/BSD/Mac OS X 指南

来自维基教科书,开放的书籍,开放的世界

苹果的 Mac OS X(及其前身 NextStep)的核心是 Darwin,其中包含大量 BSD 代码,尤其是 FreeBSD 5 代码。

  • Darwin,和其他 *BSD 系统一样,被分发为完整的类 Unix 操作系统,包括内核、shell 命令、C 编译器和其他重要实用程序。
  • Darwin 与其他 *BSD 系统有所不同。如下所述,它有一些其他 *BSD 系统所没有的改变。
  • Darwin 以 查尔斯·达尔文 命名。
  • 名称: 内核被称为 xnu。它由一个经过修改的 Mach 微内核 和一个 BSD 内核移植的“服务器”组成。
  • 处理器架构: Mac OS X 在 PowerPC、Intel 和 ARM 架构的 Mac 上运行。
  • 双重内核: 内核使用双重内核设计。Mach 微内核 包含设备驱动程序、多任务处理和进程间通信。其他内核服务,如网络、文件系统和传统的 Unix 系统调用,必须由“服务器”提供。
    • Darwin 使用一个服务器,即 BSD 内核的移植。因此,网络类似于其他 *BSD 系统,并且来自 BSD 的 UFS 文件系统也可用。这与 GNU Hurd 形成对比,后者使用了一个由许多服务器组成的复杂设计。
    • NextStep 可能引入了双重内核设计,因为 Mach 微内核比 BSD 更便携,或者提供了比 BSD 更好的多任务处理优势。他们可以将 Mach 移植到 x86 和 PowerPC。从那以后,NetBSD 使 *BSD 变得非常便携,并创建了一个单片 NetBSD/macppc 移植。FreeBSD 和 OpenBSD 正在获取 NetBSD 代码用于其 Macintosh 硬件移植。
    • 苹果(在收购 NextStep 之前)使用了类似的策略来移植 x86 操作系统 Linux 到 PowerPC。由 mkLinux(微内核 Linux)项目开始,通过移植 Linux/x86 来使用 Mach。然后 Mach 被移植到 Macintosh 硬件上。在 Linux 2.0 出现后,Linux 变得更便携,单片 Linux/powerpc 移植取代了 mkLinux。苹果收购了 NextStep 并切换到使用 Darwin。
    • 微内核和服务器紧密集成。微内核期望 Darwin BSD 服务器,因此使用另一个服务器,例如 mkLinux 服务器,将很困难。
  • 设备驱动程序: 由于它们由 Mach 处理,因此设备驱动程序与 NetBSD/macppc 中的驱动程序大不相同。使用 Darwin,苹果对 NextStep 驱动程序进行了许多替换。
    • Darwin 在任何 Mac 上运行,只要对应的 Mac OS X 可以运行。
  • HFS+ 文件系统: Darwin 还包含 Mac OS 8.1 中引入的 HFS+ 文件系统的实现。它不适用于经典 Mac OS 文件系统 HFS,该系统在 Mac OS 8.1 之前的 Macintosh 系统软件中使用。HFS+ 而不是 UFS 是 Darwin 的首选文件系统。

用户空间

[编辑 | 编辑源代码]
  • GNU 命令: Darwin 用其 GNU 等效项替换了几个 BSD 用户空间程序;这使得 Darwin 在许多情况下感觉更像 GNU/Linux 而不是 BSD。在较新的 Darwin 版本中,GNU bash 是默认的 shell,就像在 GNU/Linux 上一样。
  • NetInfo: 自 NextStep 时代起,NetInfo 数据库就存储了用户和组信息。其他 *BSD 系统使用传统的/etc/passwd/etc/master.passwd系统代替。(这两个文件存在于 Darwin 上,但通常不包含普通用户。)

版本号

[编辑 | 编辑源代码]

苹果使用与 Mac OS X 版本号匹配的版本号来标记 Darwin 源代码。

  • Jaguar: Darwin 6.v = Mac OS 10.2.v
  • Panther: Darwin 7.v = Mac OS 10.3.v
  • Tiger: Darwin 8.v = Mac OS 10.4.v
  • Leopard: Darwin 9.v = Mac OS 10.5.v

例如,与 Mac OS 10.4.3 对应的 Darwin 源代码是 Darwin 8.3。

参考资料

[编辑 | 编辑源代码]
华夏公益教科书