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-符合Single UNIX规范版本3的系统的标记”。
用粗体字引用“关于我们”页面:
UNIX方法的成功导致了许多“外观相似”的操作系统,这些操作系统通常在兼容性和互操作性方面存在分歧。为了解决这个问题,供应商和用户在1980年代共同创建了POSIX®标准以及后来的Single UNIX规范。
因此,这表明(或至少是我的解释),是指当一个操作系统符合POSIX标准和单一UNIX规范时,它在行为上与Unix 兼容,因为它曾经存在于历史上的某个时间点。请注意,这没有提及原始Unix源代码的任何痕迹,也没有以任何方式提及内核(这将在以后变得很重要)。
对于Ritchie和Thompson开发的AT&T和System V Unix,如今我们可以说它已经不复存在了。基于上述资料,如今的UNIX似乎并不是特定的OS,而是一种标准,它源自Unix系列操作系统的最佳表现方式。
macOS X在* nix世界中的地位如何?
在一个非常具体的定义中,基于Intel的硬件上的macOS版本10.13 High Sierra符合UNIX 03标准,并引用pdf证书:“ Apple Inc.已与X / Open Company Limited签订了商标许可协议。” 旁注:我不敢质疑将非Intel硬件上的macOS 10.13视为什么,但是考虑到其他操作系统提到了该硬件,则该硬件意义重大。示例:“ Hewlett Packard Enterprise:具有Precision Architecture的HP 9000服务器上的HP-UX 11i V3版本B.11.31或更高版本”(来自注册页)。
让我们回到答案的上一部分。由于此特定版本的OS符合互操作性和兼容性标准,因此意味着该OS在行为和系统实现方面与原始Unix尽可能接近。至少,它在行为和环境方面将是紧密的。它与系统级别和内核级别越接近,该区域将越具体,越黑,但在旨在兼容的OS中至少应存在Unix中存在的基本机制和行为。macOS X应该非常接近该目标。
什么是分布?
引用维基百科:
Linux发行版(通常缩写为发行版)是由软件集合制成的操作系统,该软件集合基于Linux内核,并且通常基于软件包管理系统。
让我们记住一秒钟,Linux应该像Linux Kernel中那样是经过修改或至少符合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。引用苹果的《内核编程指南》:
内核以及OS X的其他核心部分统称为Darwin。达尔文(Darwin)是一个基于OS X的许多相同技术的完整操作系统。
并引用同一页面:
达尔文技术基于BSD,Mach 3.0和Apple技术。
根据以上所有内容,我们可以自信地说,就Linux发行版而言,OS X 不是发行版。类似地,其他提到的OS都符合POSIX且是经过认证的Unix系统,但是它们的内核和底层系统调用的变化也有所不同(这就是为什么存在关于Solaris系统编程的书籍,而它本身就是一个值得探讨的主题)。因此,它们不是Linux发行版意义上的发行版-实用程序有所不同的通用核心。对于Linux,您会看到有关Linux系统编程或Linux内核编程的书籍,而不是有关发行版的系统编程的书,因为有关特定发行版的信息与系统无关。
我们在此处看到的内容的确认可以在官方文档中找到。例如,IBM在developerWorks上的文章解决了UNIX OS类型与Linux发行状态之间的差异(强调):
今天已知的大多数现代UNIX变体都是原始UNIX版本之一的许可版本。Sun的Solaris,惠普的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的OS。
- “ Unix版本”不是一个合适的术语,因为macOS X与原始的AT&T Unix有很大不同,并且如前所述,从软件的意义上讲,不再有Unix了,现在它已成为行业标准。
- 单词“ distribution”可能仅适用于Linux世界。
- 真正的问题是,您(读者)和我有太多的时间来讨论律师应该争论的话题。也许我们应该像Linux Torvalds一样,并使用术语和OS来让我们继续生活并做我们诚实地关心和应该关心的事情。