macOS是Unix发行版吗?


19

我知道macOS是UNIX操作系统,但是我不知道macOS是否可以用Gentoo或Debian是GNU / Linux发行版的相同方式称为UNIX 发行

macOS是UNIX发行版吗?如果不是,那么如何正确引用macOS在UNIX操作系统家族中的成员资格以及是否符合Single UNIX规范(即,它是Unix变体Unix版本Unix风格等)?同样,此问题适用于Solaris,HP-UX和其他unice(它们都是UNIX发行版吗?)。

此外,“发行”一词是否仅限于GNU(/ Linux,/ Hurd,/ kFreeBSD,/ etc)操作系统,或者可以在其他情况下使用?

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


您如何定义“ Unix发行版”?“成为Unix发行版”是什么意思?
约尔格W¯¯米塔格

@JörgWMittag我没有任何定义。我认为,如答案中所定义的那样,GNU式的发行意义是一组操作系统,它们共享相同的核心软件,这是最正确的。
Seninha

2
UNIX是一个品牌。Unix是一个操作系统。他们是两个不同的东西。
fpmurphy

1
严格来说,Debian和Gentoo不是Unix发行版,而是Linux发行版。Linux不是Unix,它像Unix一样工作。它们也不是AFAIK的GNU发行版:GNU工具是任何Linux发行版的一部分,但不是唯一的一部分。
jamesqf

1
如果您将您的编辑发布为答案,它将得到我的认可。
dcorking

Answers:


32

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内核编程的书籍,而不是有关发行版的系统编程的书,因为有关特定发行版的信息与系统无关。

我们在此处看到的内容的确认可以在官方文档中找到。例如,IBMdeveloperWorks上的文章解决了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来让我们继续生活并做我们诚实地关心和应该关心的事情。

15
您可能需要检查BSD实际代表什么然后声称那里没有使用“发行”一词;-)。
斯蒂芬·基特

2
抱歉,多次编辑后,缺少“ a”和“ the”字使我难以理解整篇文章。POSIX比旧的Unices更新,我不确定答案是否混合了这两者。我还认为您正在描述BSD世界,这比Linux与Linux更接近Unix。认证本身也并不意味着某人有足够的时间和金钱来完成认证过程,而在每个版本中都必须这样做。IMO,对文本进行了更多的修改,这可能是一个很好的答案。
Rui F Ribeiro

1
@Matthew但是,我不能保证OS / X / Mac OS的BSD用户的质量。与FreeBSD相比,这些实用程序通常是非常旧的版本,即使是最新的IPv6实现也花费了很长时间。
Rui F Ribeiro

3
UNIX标准的网站使用“UNIX实现”来指代的Unix操作系统。所以这就是我想要的词:实现。
Seninha

3
@Sergiy Kolodyazhnyy。符合POSIX并不意味着操作系统版本为as close to original Unix as possiblePOSIX兼容的非Unix操作系统很多。
fpmurphy

4

问: macOS是Unix发行版吗?如果不是,那么如何正确地指代macOS在Unix操作系统家族中的存在(即,它是Unix的变体,Unix的版本,Unix的风味等)吗?同样,此问题适用于Solaris,HP-UX和其他unice(它们都是Unix发行版吗?)。

图片来源:https : //developer.apple.com/library/content/documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html

MacOS X

资料来源:https : //en.m.wikipedia.org/wiki/XNU

XNU是1996年12月以来由Apple Inc.开发的计算机操作系统内核,用于macOS操作系统,并作为Darwin操作系统的一部分作为免费和开源软件发行。它还用作iOS的内核。 ,tvOS和watchOS操作系统。XNUX is Not U nix 的缩写。


来源:https : //developer.apple.com/library/content/documentation/Darwin/Conceptual/KernelProgramming/build/build.html#//apple_ref/doc/uid/TP30000905-CH221-CIHFEIFI

建立您的第一个内核

在构建内核之前,必须首先获取源代码。可在http://www.opensource.apple.com上的Darwin xnu项目中找到OS X内核的源代码。要查找您当前的内核版本,请使用命令uname -a。如果遇到麻烦,请在darwin-kernel和darwin-development邮件列表的归档中搜索信息。如果那没有帮助,请在两个列表中寻求帮助。列表档案和订阅信息可在http://www.lists.apple.com上找到。


来源:https//developer.apple.com/library/content/documentation/Porting/Conceptual/PortingUnix/glossary/glossary.html

Cocoa -OS X的高级面向对象开发平台。Cocoa是一组框架,具有Java和Objective-C的编程接口。它基于OPENSTEP,Apple技术和Java的集成。

达尔文(Darwin) -OS X操作系统核心的另一个名称。Darwin内核等效于OS X内核以及BSD命令行环境必不可少的BSD库和命令。达尔文是开源技术。

Xcode-苹果的图形集成开发环境。可通过OS X Developer Tools软件包免费获得。

XNU -OS X内核。首字母缩写词代表X不是Unix。XNU将Mach和BSD的功能与I / O Kit(OS X的驱动程序模型)结合在一起。


  • 建筑

资料来源:https : //zh.wikipedia.org/wiki/MacOS#Architecture

“ macOS的核心是在XNU内核之上构建的POSIX兼容操作系统,并且可从命令行界面获得标准的Unix设施。苹果公司已经发布了该软件系列,作为一个名为Darwin的免费开放源代码操作系统。苹果公司Darwin分层了许多组件,包括Aqua界面和Finder,以完成基于GUI的操作系统macOS。”


问:发行还是发行?-来源:https//en.wikipedia.org/wiki/MacOS#Updating_methods

资料来源:https : //en.wikipedia.org/wiki/MacOS_High_Sierra

“ macOS High Sierra(版本10.13)是macOS(苹果公司用于Macintosh计算机的桌面操作系统)的第十四个主要版本。macOSSierra的后继产品于2017年6月5日在WWDC 2017上宣布。” “内核类型:混合(XNU)”。


问:而且,这个问题也适用于Solaris,HP-UX和其他unice(它们都是Unix发行版吗?)。


3
我建议尝试用您自己的单词粘贴多个引号。
Rui F Ribeiro

就像提到的@RuiFRibeiro一样,您应该添加一些说明;但是,他没有说的是,不清楚所有这些不同引号中的位置。
悖论
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.