17611538698
webmaster@21cto.com

Apple macOS 15 Sequoia 正式成为 UNIX

运维 0 123 2024-10-13 11:34:11

图片

导读:据说,Apple 最新发布的操作系统是 Open Group 官方验证的 UNIX 变体列表中的最新成员,领先优势相当的大。

Apple macOS 15 Sequoia于 已经 9 月中旬正式发布,现在它是 UNIX™ 的官方兼容版本,但这可能与你的想的不太一样。

比如,macOS 并未使用任何 AT&T 源代码。早在 1993 年 Novell 从贝尔实验室收购 UNIX 时,“Unix”就不再具有这种含义。

值得一提的是,Sequoia 发布后不久,就出现了一些有关安全软件漏洞的消息,随后本月早些时候发布了第一个更新版本 15.0.1。15.0.1发布后还发生了其他几件事,这些件事并不怎么重要。

另一件事对更广泛的IT世界来说意义重大——即使可能对你来说只是一点点。

macOS Sequoia 现在已经出现在Open Group 的UNIX® 认证产品名录中,成为最新一项的条目。事实上,macOS 同时占据了第一名和第二名,因为Apple Silicon 版本和x86-64 版本还有单独的条目。

图片

Sequoia位列第三个条目

这个顺序倒是没有特别的意义,但如果苹果继续支付认证费用,那么当苹果停止支持其英特尔驱动的套件时,x86-64 版本将在某个时候从名单上撤下来。

Unix 只是 POSIX 的一个新名称


是的,这与源代码再无关联。


自从 Novell 从 AT&T 收购最初的 Unix 以来,已经过去有 30 多年了。实际上,UNIX™ 认证现在的含义是过去所谓的“POSIX 兼容”——碰巧这个缩写是由Richard Stallman老爷子创造的。

图片

POSIX 本质上是一套兼容性规范和测试,包括在正确的位置安装正确的工具。只要有这些工具,操作系统就可以通过测试,这也是 IBM 的 z/OS 大型机操作系统等系统上榜的原因。

z/OS 是 IBM 1974 年为 System/370 大型机开发的 24 位 MVS的远亲,其核心与 Unix 的相似程度不亚于运行 ProDOS 的 Apple II。

这就是为什么年轻的 Linus Torvalds在 1991 年 7 月 3 日向comp.os.minix新闻组提问的内容:

由于我正在从事一个项目(在 minix 中),我对 posix 标准定义很感兴趣。有人能告诉我最新 posix 规则的(最好是)可读机器格式吗?

POSIX 标准多年来不断发展。有意思的是,Apple 从 2002 年起才宣称拥有UNIX 03。只有一款产品 IBM AIX 7宣称与该标准的第 4 版兼容,品牌为UNIX® V7 – 又名 POSIX.1-2008(https://unix.org/unixv7.html)。

从那时起,标准就一直在不断发展。

UNIX 版本 4 规范最后一次修订是在 2018 年,还有2024 年的版本,但似乎没人再关注它了,这很公平。世界已经从专有 Unix 中走出来,现在所有重要的类 Unix 操作系统都是 FOSS 或免费软件,你可以免费添加任何缺失的部分。

例如,POSIX 通过添加一个名为pax的新命令解决了各种归档工具之间的差异,该命令现在可以处理所有主要格式。它是tar和 的混合体cpio,大多数 Linux 发行版都不包含它,因为现有工具可以处理这些文件。缺少pax命令意味着操作系统不符合 POSIX-1.2001 或更高版本,但现在也没多少人关心了。

那么是什么让操作系统变得像 Unix ?


如果你不需要使用任何原始的 AT&T 的源代码,甚至那些继续为官方 Unix 认证付费的少数公司,也懒得去遵循最新版本的 POSIX,那么什么使得操作系统变得像 Unix 呢?


从更高层次的角度来看,Unix 的构成要素是它看起来像 Unix,它的行为也像 Unix,并且你可以将为 Unix 编写的程序移植到它上面而无需进行重大修改。


macOS 的核心已经足够接近这个标准了。


macOS使用一个名为 XNU 的内核(具有讽刺意味的是,它的“XNU 并不是 Unix”),以及一个主要源自 BSD 代码的用户空间。


XNU 基于Mach 内核。具体说说,在当年 Apple 收购 NeXT 之后,它使用DEC OSF/1(后来以 Compaq Tru64 的名称销售)的增强版本更新了 NeXTstep 内核的Mach 组件


它还有一个源自 BSD 代码的大型内核“Unix 服务器”——这意味着业界最著名、最成功的微内核操作系统实际上根本不是真正的微内核。


除此之外,“用户空间”——GUI 下面的文本模式内容、各种命令、shell 等——大部分都是使用开源的,其中大部分来自 BSD。


例如,XNU 内核在 GitHub 上。

https://github.com/apple-oss-distributions/xnu/tree/main

macOS 和 iOS 的大部分内容均是如此。


在GUI 层,即让它看起来漂亮的可见部分,这是苹果专有的;这些部分大多用 Objective-C 和最近的 Swift 语言来编写。


Apple 曾经将这些操作系统底层,作为一个名为 Darwin 的内核版本项目提供,并且有多个发行版尝试使用其他 FOSS 操作系统(例如OpenDarwinPureDarwin)的片段来完成它。


对我们来说,最有意思的项目之一是NextBSD。

https://github.com/NextBSD/NextBSD

它走了另一条路,保留了 FreeBSD 内核,但对其进行了修改,以便它可以使用 Apple 的一些高级代码,例如launchd,这是 Apple 的下一代 init 系统。


换句话说,它是 Cupertino 的 systemd 版本。


1996 年底,苹果宣布收购 NeXT Computer,并于 1997 年 10 月发布了下一代操作系统Rhapsody的预览版。Rhapsody 实际上就是NeXTstep 5。


1999年,它更名为Mac OS X Server 1.0,仍然明显具有 NeXTstep 风格。

2000年,它又演变为Mac OS X 1.0 。

NeXTstep(大小写变化了好几次)后来变成了 OPENSTEP,后来又变成了 Rhapsody,然后是 Mac OS X Server、Mac OS X,然后是 OS X 10.8 Mountain Lion。

从10.12 Sierra开始,它就变成了macOS 。但它显然与NeXTstep 0.8还是同一个操作系统,就像 1988 年时史蒂夫·乔布斯展示的界面一个样子。

作者:万能的大雄

评论