Mac OS X 是经过授权的、符合 Unix 规范的 Unix 或类 Unix 克隆版本吗?

Mac OS X 是经过授权的、符合 Unix 规范的 Unix 或类 Unix 克隆版本吗?

Mac OS X 是在获得许可的 Unix 上开发的,还是说它是类 Unix 克隆版,与 Linux 不同,它符合 Unix 规范,足以注册为 Unix 操作系统。直到 Leopard,Mac OS X 才获得 Unix 认证。但在 Leopard 中,终端仍会打印:

GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)

但是 GNUGNU 不是 Unix,而 Mac OS X 注册为 Unix。这让我很困惑 OS X 是 unix 还是类 unix。

换句话说,OS X 是在 Unix 基础上编写的,还是尽可能地符合 Unix 的重写版本。也许有人可以提供谱系或其他背景信息。

答案1

最初的 UNIX 是由 AT&T 创建的。他们开发了一个用于文本处理的操作系统,但由于某些限制而无法出售。由于无法出售,他们相当慷慨地允许大学访问源磁带。几个大学做出了改变,其中最著名的是加州大学伯克利分校 (UCB),它发布了伯克利软件发行版 (Berkeley Software Distribution,简称 BSD)。UNIX 的 BSD 变体对所谓的 UNIX 做了几个重要的补充,包括虚拟内存模型、BSD 套接字(类似 TCP/IP)、vi 和 CSH - 第一个为交互式使用而设计的 shell。

BSD UNIX 最初是作为 AT&T UNIX 代码的补丁而出现的。伯克利人清理并清除了 AT&T 代码,最终发布了 AT&T 免版权的 BSD 源代码。这催生了 386BSD,然后又催生了 NetBSD、FreeBSD、OpenBSD 和 FireflyBSD(以及其他)。最终,AT&T 和 BSD 代码库被纳入“官方 UNIX”,这被称为 SVR4。

MacOS X Darwin 内核基于 NetBSD 和 FreeBSD 的元素,以及一些 Mach 代码。您可以说它是一个 UNIX,它的代码谱系从加州大学伯克利分校一直延续到最初的 AT&T。

但是 UNIX 是什么意思呢?它是 AT&T 的后裔吗?如果是这样,BSD 符合条件,Solaris 和许多其他系统也符合条件。它是可以在其上运行 UNIX 代码的 API 吗?那么这些都符合条件,Linux 也符合条件,它是从头开始编写的 UNIX API 语料库。对于大多数代码,Cygwin 符合 UNIX 代码的目标条件,因此它也是 UNIX,即使它在 Windows 内核上运行,而 UNIX“内核”是用户空间中的 DLL。它是可以贴在机器上的徽章吗?如果是这样,Apple 最终在 Leopard 中为它付出了代价。嗯,但微软为 Windows NT4 POSIX 子系统支付了该徽章。是的,Windows NT 在 Solaris 之前就被标记为“UNIX”。然而,作为 UNIX 源的直接后代的 NetBSD 从未为该徽章付过钱,而且不称自己为 UNIX

至于 bash,我不会将 GNU 作为 Mac OS X 是否为 UNIX 的标准。bash 在 UNIX 平台上很常见(如果我没记错的话,拥有 bash 是 SVR4 UNIX 的要求之一),但也可以移植到非 UNIX 平台上。“GNU 不是 UNIX”更多地是指 GNU Hurd,它应该是操作系统领域 UNIX 的竞争对手。Hurd 应该是一个微内核,它可以做很多很棒的事情,也可以运行 UNIX 代码。Hurd 内核没有做太多事情,但 Hurd 的目标催生了大量在 UNIX 上运行的非常有用的软件,包括 bash、emacs、gcc 和许多其他软件。

答案2

OSX 是Unix只是因为苹果付钱认证,由 The Open Group 认证为符合 Unix 规范。Open Group 认证它是因为 Apple 实际上投入了必要的工作来使其符合要求。

我怀疑只有苹果知道有多少获得许可的 AT&T Unix 代码(如果有的话)保留在 OSX 中,通过其 BSD 和其他来源。

OSX 可能还包含来自 GNU 的“用户空间”程序,例如 bash。这并不会降低其与 Unix 规范的一致性。如果您将 bash 反向移植到 SVR4,SVR4 仍将是 Unix。

答案3

取自维基百科

OS X 基于 Mach 内核。FreeBSD 和 NetBSD 的 Unix 实现的某些部分被整合到 Mac OS X 的核心 NeXTSTEP 中。

OS X 的核心是建立在 XNU 内核之上的 POSIX 兼容操作系统 (OS),其命令行界面提供标准的 Unix 功能。Apple 已将此软件系列发布为名为 Darwin 的免费开源操作系统。在 Darwin 之上,Apple 分层了许多组件,包括 Aqua 界面和 Finder,以完成基于 GUI 的操作系统 OS X。

Mac OS X 中的 Darwin 子系统负责管理文件系统,其中包括 Unix 权限层。

答案4

如果你问 OS X 是否使用 System V 等代码库开发,答案是否定的。OS X 的血统可以追溯到 BSD 和 Mach。

但这并不意味着它不是真正的 Unix。据我所知,这项认证除了 Apple 决定为 Leopard 支付费用外,没有任何实际意义。

相关内容