macOS 是 Unix 发行版吗?

Sen*_*nha 22 osx distributions

我知道macOS 是一个 UNIX 操作系统,但我不知道 macOS 是否可以像 Gentoo 或 Debian 是GNU/Linux 发行版一样被称为UNIX发行

macOS 是 UNIX 发行版吗?如果不是,那么如何正确地指称 macOS 在 UNIX 操作系统家族中的成员资格以及对单一 UNIX 规范的遵守(即,它是Unix 变体Unix 版本Unix 风格等)?此外,这个问题适用于 Solaris、HP-UX 和其他 unices(它们都是 UNIX 发行版吗?)。

此外,“分发”一词是否仅限于 GNU(/Linux、/Hurd、/kFreeBSD、/etc)操作系统,还是可以用于其他情况?

编辑:我已经意识到UNIX 的官方网站使用“UNIX 实现”“UNIX 操作系统”来指代 Unix 操作系统系列,即实现单一 Unix 标准的那些。

Ser*_*nyy 34

什么是 UNIX?

简短回答:UNIX 是当今的规范/标准。

在撰写本文时,引用官方消息来源,“UNIX® 是 The Open Group 的注册商标”,该公司提供UNIX 认证

“UNIX® 是由 The Open Group 拥有和管理的开放标准,是关键技术的推动者,可在异构环境中降低总体拥有成本、提高 IT 敏捷性、稳定性和互操作性,从而实现全球业务和市场创新.”

同一页面具体说明了哪个规范定义了 UNIX:

最新版本的认证标准是 UNIX V7,与 Single UNIX Specification Version 4, 2013 Edition 一致

可以在此处找到这些规格的详细信息。奇怪的是,他们网站上列出的最新标准是 UNIX 03,引用另一个来源“UNIX® 03 - 符合单一 UNIX 规范第 3 版的系统的标志”。

引用我自己的粗体强调的“关于我们”页面:

UNIX 方法的成功导致了大量“相似”操作系统的出现,它们的兼容性和互操作性通常各不相同为了解决这个问题,供应商和用户在 1980 年代联合创建了 POSIX® 标准和后来的单一 UNIX 规范

所以这表明(或者至少我的解释是这样),当一个操作系统符合 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 发行版 B.11.31 或更高版本,适用于具有 Precision Architecture 的 HP 9000 服务器”(来自注册页面)。

让我们回到我的答案的上一部分。由于这个特定版本的操作系统符合互操作性和兼容性标准,这意味着操作系统在行为和系统实现上尽可能接近原始 Unix 作为操作系统。至少,它将在行为和环境上接近。它越接近系统级别和内核级别,该区域就越具体和更阴暗,但至少 Unix 中存在的基本机制和行为应该存在于旨在兼容的操作系统中。macOS X 应该非常接近这个目标。


什么是分布?

引用维基百科

Linux 发行版(通常缩写为 distro)是由软件集合构成的操作系统,该软件集合基于 Linux 内核,并且通常基于包管理系统。

让我们暂时记住,Linux 内核中的 Linux 应该是可分发的软件,经过修改,或者至少符合GPL v2。如果我们考虑包管理器和内核,Ubuntu 和 Red Hat 作为发行版是有道理的。macOS X 的内核与最初的 AT&T Unix 不同——因此将 macOS X 称为 Unix 发行版是没有意义的。人们建议 macOS X 内核基于 FreeBSD,但引用FreeBSD Wiki

OS X 上使用的 XNU 内核包括一些来自(旧版本)FreeBSD 的子系统,但主要是一个独立的实现

有些人错误地将 OS X 内核称为 Darwin。引用 Apple 的内核编程指南

内核以及 OS X 的其他核心部分统称为 Darwin。Darwin 是一个完整的操作系统,它基于许多与 OS X 相同的技术。

并引用同一页面:

Darwin 技术基于 BSD、Mach 3.0 和 Apple 技术。

基于以上一切,我们可以自信地说,OS X不是Linux 发行版意义上的发行版。类似地,其他提到的操作系统符合 POSIX 并且是经过认证的 Unix 系统,但它们的内核和底层系统调用的变化再次不同(这就是为什么存在关于 Solaris 系统编程的书籍,它本身就是一个有价值的主题)。因此,它们不是 Linux 发行版意义上的发行版 - 具有实用程序变化的公共核心。对于 Linux,您会看到有关 Linux 系统编程或 Linux 内核编程的书籍,而不是特定于发行版的系统编程,因为特定发行版没有任何特定于系统的内容。

可以在官方文档中找到我们在这里看到的确认。例如,IBMdeveloperWorks 上发表的文章解决了 UNIX 操作系统类型和 Linux 发行版状态之间的差异(强调):

今天已知的大多数现代 UNIX 变体都是原始 UNIX 版本之一的许可版本。Sun 的 Solaris、Hewlett-Packard 的 HP-UX 和 IBM 的 AIX® 都是具有自己独特元素和基础的 UNIX 。

换句话说,它们基于相同的基础,但在 Linux 发行版共享内核的意义上,它们不共享完全相同的基础。

注意事项

请注意,在引用以 Linux 内核为核心的操作系统时,似乎主要使用分发一词。以 BSD 类型的操作系统为例:有GhostBSD,它基于内核并使用FreeBSD 的一些实用程序,但我从未见过它被称为 BSD 发行版;每个 BSD 操作系统只提到它基于什么,通常一个操作系统本身就被称为操作系统。当然,BSD 代表 Berkeley Software Distribution,但是……仅此而已。

在我们的网站上引用这个答案来回答不同的 BSD 版本是否使用相同的内核的问题:

不,尽管由于历史分叉而存在相似之处。每个项目都是单独发展的。

它们不是Linux 发行版意义上的发行版。考虑本文档中的版权声明:

本产品的部分内容可能源自 UNIX® 和 Berkeley 4.3 BSD 系统

笔记

综上所述:

  • 当您想将 macOS X 与原始 AT&T Unix 联系起来时,它可以被称为类 Unix 操作系统、类 Unix 系统、Unix 实现、POSIX 兼容操作系统;
  • “Unix 版本”不是合适的术语,因为 macOS X 与最初的 AT&T Unix 有很大不同,而且如前所述,在软件意义上不再有 Unix,它现在更像是一种行业标准;
  • 可能“发行版”这个词只适用于 Linux 世界。
  • 真正的问题是你(读者)和我有太多时间争论律师应该争论的话题。也许我们应该像 Linux Torvalds 一样,使用术语和操作系统,让我们继续生活,做我们真正关心和应该关心的事情。

  • 在声称此处未使用“分发”一词之前,您可能需要检查 [BSD 实际上代表什么](https://en.m.wikipedia.org/wiki/Berkeley_Software_Distribution) ;-)。 (17认同)
  • [Unix 标准网站](http://www.opengroup.org/unix) 使用 [*"UNIX implementations"*](https://encrypted.google.com/search?q="unix®+implementations"+ OR+"unix+operating+system+implementations"+site%3Awww.opengroup.org) 来指代 Unix 操作系统。所以这就是我一直在寻找的词:实施。 (3认同)
  • @Sergiy Kolodyazhnyy。POSIX 兼容并不意味着操作系统版本“尽可能接近原始 Unix” 有许多非 Unix 操作系统是 POSIX 兼容的。 (3认同)
  • 抱歉进行了多次编辑,缺少“a”和“the”让我在阅读整个文本时有点困难。POSIX 比旧的 Unices 新,我不太确定答案是否混合了它们;我还认为您正在损害 BSD 世界的特征,BSD 世界比 Linux 更接近 Unix。认证本身也并不意味着有人有时间和金钱来完成认证过程,并且必须在每个版本中完成。IMO,再修改一下文本,这有可能成为一个很好的答案。 (2认同)