我知道macOS 是一个 UNIX 操作系统,但我不知道 macOS 是否可以被称为UNIX发行版,就像 Gentoo 或 Debian 是GNU/Linux 发行版一样。
macOS 是 UNIX 发行版吗?如果不是,如何正确地提及 macOS 在 UNIX 操作系统系列中的成员资格以及对单一 UNIX 规范的遵从性(即,它是Unix 变体、Unix 版本、Unix 风格等)?此外,这个问题适用于 Solaris、HP-UX 和其他 unice(它们都是 UNIX 发行版吗?)。
此外, “分发”这个词是否仅限于 GNU(/Linux、/Hurd、/kFreeBSD、/etc)操作系统,还是可以在其他情况下使用?
编辑:我意识到UNIX 的官方网站使用“UNIX 实现”和“UNIX 操作系统”来指代 Unix 操作系统系列,即实现单一 Unix 标准的操作系统。
什么是 UNIX?
简短的回答:UNIX 是当今的规范/标准。
在撰写本文时,引用官方消息来源,“UNIX® 是 The Open Group 的注册商标”,该公司提供UNIX 认证:
同一页面具体说明了哪个规范定义了 UNIX:
可以在此处找到这些规格的详细信息。奇怪的是,他们网站上列出的最新标准是 UNIX 03,引用另一个来源,“UNIX® 03 - 符合单一 UNIX 规范版本 3 的系统的标志”。
引用“关于我们”页面并用我自己的粗体强调:
所以这表明(或者至少我的解释是这样)是,当操作系统符合 POSIX 标准和单一 UNIX 规范时,它在行为上与 Unix 作为曾经存在于历史某个时间点的操作系统兼容。请注意,这并没有提到原始 Unix 源代码的任何痕迹的存在,也没有以任何方式提到内核(这将在以后变得重要)。
至于 Ritchie 和 Thompson 开发的 AT&T 和 System V Unix,现在可以说它已经不复存在了。根据上述资料,现在的 UNIX 似乎不是那个特定的操作系统,而是从Unix 家族中操作系统行为方式的最佳概括中衍生出来的标准。
macOS X 在 *nix 世界中处于什么位置?
在一个非常具体的定义中,基于 Intel 的硬件上的 macOS 版本 10.13 High Sierra符合 UNIX 03 标准并引用pdf 证书,“Apple Inc. 已与 X/Open Company Limited 签订了商标许可协议。” 旁注:我不愿质疑将非英特尔硬件上的 macOS 10.13 视为什么意思,但考虑到其他操作系统也提到了硬件,硬件很重要。示例:“Hewlett Packard Enterprise:HP-UX 11i V3 Release B.11.31 或更高版本在具有精密架构的 HP 9000 服务器上”(来自注册页面)。
让我们回到我回答的上一部分。由于这个特定版本的操作系统符合互操作性和兼容性标准,这意味着操作系统在行为和系统实现上尽可能接近原始 Unix 作为操作系统。至少在行为和环境上会很接近。它越接近系统级别和内核级别,该区域将变得越具体和模糊,但至少 Unix 中存在的基本机制和行为应该存在于旨在兼容的操作系统中。macOS X 应该非常接近这个目标。
什么是分布?
引用维基百科:
让我们暂时记住,Linux 内核中的 Linux 应该是可分发的软件,经过修改,或者至少符合GPL v2。如果我们考虑一个包管理器和内核,Ubuntu 和 Red Hat 作为发行版是有意义的。macOS X 的内核与原始的 AT&T Unix 不同 - 因此将 macOS X 称为 Unix 发行版没有意义。人们建议 macOS X 内核基于 FreeBSD,但引用FreeBSD Wiki:
有些人错误地将 OS X 内核称为 Darwin。引用 Apple 的内核编程指南:
并引用同一页:
基于以上所有内容,我们可以自信地说,OS X不是Linux 发行版意义上的发行版。类似地,其他提到的操作系统都符合 POSIX 并且是经过认证的 Unix 系统,但它们在内核和底层系统调用的变体方面再次不同(这就是为什么存在关于 Solaris 系统编程的书籍并且它本身就是一个有价值的主题的原因)。因此,它们不是 Linux 发行版意义上的发行版 - 一个具有多种实用程序的通用核心。对于 Linux,您会看到有关 Linux 系统编程或 Linux 内核编程的书籍,而不是特定于发行版的系统编程,因为特定发行版没有特定于系统的内容。
我们在这里看到的确认可以在官方文档中找到。例如,IBM 在 developerWorks上的文章解决了 UNIX 操作系统类型和 Linux 发行版之间的差异状态(强调):
换句话说,它们基于相同的基础,但在 Linux 发行版共享内核的意义上,它们并不共享完全相同的基础。
注意事项
请注意,在引用以 Linux 内核为核心的操作系统时,似乎主要使用分布一词。以 BSD 类型的操作系统为例:有GhostBSD,它基于内核并使用FreeBSD的一些实用程序,但我从未见过它被称为 BSD 发行版;每个 BSD 操作系统只提到它所基于的内容,通常操作系统本身就被称为操作系统。当然,BSD 代表 Berkeley Software Distribution,但是……就是这样。
在我们的网站上引用这个答案来回答不同 BSD 版本是否使用相同内核的问题:
它们不是Linux 发行版意义上的发行版。考虑本文档中的版权声明:
笔记
综上所述:
图片来源:https ://developer.apple.com/library/content/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html
HP-UX Unix 操作系统的专有实现,基于UNIX System V
Solaris Unix SVR4