AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 423121
Accepted
Seninha
Seninha
Asked: 2018-02-10 13:11:49 +0800 CST2018-02-10 13:11:49 +0800 CST 2018-02-10 13:11:49 +0800 CST

macOS 是 Unix 发行版吗?

  • 772

我知道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 标准的操作系统。

distributions osx
  • 2 2 个回答
  • 16018 Views

2 个回答

  • Voted
  1. Best Answer
    Sergiy Kolodyazhnyy
    2018-02-10T13:20:48+08:002018-02-10T13:20:48+08:00

    什么是 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® 标准和后来的 Single UNIX Specification。

    所以这表明(或者至少我的解释是这样)是,当操作系统符合 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 发行版(通常缩写为 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 内核编程的书籍,而不是特定于发行版的系统编程,因为特定发行版没有特定于系统的内容。

    我们在这里看到的确认可以在官方文档中找到。例如,IBM 在 developerWorks上的文章解决了 UNIX 操作系统类型和 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 系统

    笔记

    • 前面提到的 POSIX 标准也被称为IEEE 标准(其中 IEEE 是电气和电子工程师协会,它处理 IT 类型的事物等)。
    • 引用维基百科的话:“2016 年,随着 macOS 10.12 Sierra 的发布,名称从 OS X 更改为 macOS,以简化它与 Apple 其他主要操作系统的品牌:iOS、watchOS 和 tvOS。[56]”
    • Mac OS X 历史答案
    • Linux和BSD内核之间的概念区别

    综上所述:

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

    问: 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是 Apple Inc. 自 1996 年 12 月以来开发的计算机操作系统内核,用于macOS操作系统,并作为Darwin操作系统的一部分作为免费和开源软件发布。它也被用作 iOS 的内核, tvOS 和 watchOS 操作系统。XNU是X is Not U nix 的缩写。


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

    "构建你的第一个内核

    在构建内核之前,您必须首先获取源代码。OS X 内核的源代码可以在http://www.opensource.apple.com上的Darwin xnu项目中找到。要找出您当前的内核版本,请使用命令 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 - Apple 的图形集成开发环境。它可以通过 OS X 开发者工具包免费获得。

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


    • 建筑学

    来源:https ://en.wikipedia.org/wiki/MacOS#Architecture

    “macOS 的核心是建立在XNU 内核之上的符合 POSIX 的操作系统,可从命令行界面使用标准的 Unix 工具。Apple 已将这个软件系列发布为名为Darwin的免费和开源操作系统。达尔文,Apple 将许多组件分层,包括 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 的第十四个主要版本,这是 Apple Inc. 的 Macintosh 计算机桌面操作系统。macOS Sierra 的继任者,于 2017 年 6 月 5 日在 WWDC 2017 上宣布。”。“内核类型:混合 (XNU)”。


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

    • HP-UX Unix 操作系统的专有实现,基于UNIX System V

    • Solaris Unix SVR4

    • 4

相关问题

  • Linux 是类 Unix/Unix 操作系统中唯一使用“fsuid”和“fsgid”的操作系统吗?

  • “弹出”如何让进程关闭文件句柄?

  • 确定自上次以来目录内容是否已更改的最快方法

  • 如何使用 `at` 安排脚本在 macOS 上执行?

  • csplit 无法识别提供的正则表达式

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve