Linux 与 Unix:有什么区别?

深入了解这两种操作系统之间的差异,它们拥有许多相同的传承和许多相同的目标。
504 位读者喜欢这篇文章。
Arrows moving a process forward

Opensource.com

如果您是一位 20 多岁或 30 多岁的软件开发人员,那么您成长于一个 Linux 占主导地位的世界。几十年来,它一直是数据中心的重要参与者,虽然很难找到权威的操作系统市场份额报告,但 Linux 在数据中心操作系统中的份额可能高达 70%,而 Windows 变体几乎占据了剩余的所有份额。使用任何主要公共云的开发人员都可以预期目标系统将运行 Linux。近年来,当您将 Android 和基于 Linux 的嵌入式系统添加到智能手机、电视、汽车和许多其他设备中时,Linux 无处不在的证据越来越多。

即便如此,大多数软件开发人员,即使是那些在“Linux 革命”时期成长起来的人,至少也听说过 Unix。它听起来与 Linux 相似,您可能已经听到人们互换使用这些术语。或者您可能听说过 Linux 被称为“类 Unix”操作系统。

那么,Unix 究竟是什么?漫画中描绘的是像巫师一样的“老前辈”坐在闪闪发光的绿色屏幕后面,编写 C 代码和 shell 脚本,靠老式的滴滤咖啡提神。但是,Unix 的历史远比 20 世纪 70 年代的那些留着胡子的 C 程序员要丰富得多。虽然详细介绍 Unix 历史和“Unix 与 Linux”比较的文章比比皆是,但本文将提供一个高层次的背景,并列出这两个互补世界之间的主要差异。

Unix 的起源

Unix 的历史始于 20 世纪 60 年代末的 AT&T 贝尔实验室,当时一小群程序员希望为 PDP-7 编写一个多任务、多用户操作系统。贝尔实验室研究机构团队中最著名的两位成员是 Ken Thompson 和 Dennis Ritchie。虽然 Unix 的许多概念都源自其前身(Multics),但 Unix 团队在 20 世纪 70 年代初期决定用 C 语言重写这个小型操作系统,这使 Unix 与所有其他操作系统区分开来。当时,操作系统很少是可移植的,甚至根本不是。相反,由于其设计性质和低级源代码语言,操作系统与为其编写的硬件平台紧密相连。通过用 C 编程语言重构 Unix,Unix 现在可以移植到许多硬件架构。

除了这种新的可移植性(使 Unix 能够迅速扩展到贝尔实验室以外的其他研究、学术甚至商业用途)之外,操作系统的几个关键设计原则对用户和程序员也很有吸引力。首先,Ken Thompson 的 Unix 哲学 成为了模块化软件设计和计算的强大模型。Unix 哲学建议利用小型、专用程序组合来完成复杂的总体任务。由于 Unix 是围绕文件和管道设计的,因此这种“管道”程序的输入和输出组合成输入上的一系列线性操作的模型至今仍然流行。事实上,当前的云无服务器计算模型在很大程度上归功于 Unix 哲学。

快速增长和竞争

在 20 世纪 70 年代末和 80 年代,Unix 成为一个家族树的根基,该家族树在研究、学术界和不断增长的商业 Unix 操作系统业务中扩展开来。Unix 不是开源软件,Unix 源代码可以通过与其所有者 AT&T 达成的协议获得许可。第一个已知的软件许可证于 1975 年出售给伊利诺伊大学。

Unix 在学术界发展迅速,伯克利成为重要的活动中心,这得益于 Ken Thompson 在 70 年代在那里休假。随着伯克利围绕 Unix 的所有活动,一种新的 Unix 软件交付方式诞生了:伯克利软件发行版,或 BSD。最初,BSD 不是 AT&T Unix 的替代品,而是一个带有附加软件和功能的附加组件。到 1979 年 2BSD(第二伯克利软件发行版)问世时,伯克利研究生 Bill Joy 已经添加了现在著名的程序,例如 viC shell (/bin/csh)。

除了 BSD(它成为 Unix 家族最受欢迎的分支之一)之外,Unix 的商业产品在 20 世纪 80 年代和 90 年代也呈爆炸式增长,名称包括 HP-UX、IBM 的 AIX、Sun 的 Solaris、Sequent 和 Xenix。随着分支从原始根部生长出来,“Unix 战争”开始了,标准化成为社区新的关注点。POSIX 标准于 1988 年诞生,以及通过 The Open Group 在 20 世纪 90 年代进行的 अन्य 标准化后续工作。

大约在这个时候,AT&T 和 Sun 发布了 System V Release 4 (SVR4),它被许多商业供应商采用。另外,BSD 家族 操作系统多年来不断发展壮大,导致一些开源变体以现在熟悉的 BSD 许可证 发布。其中包括 FreeBSD、OpenBSD 和 NetBSD,每个都针对 Unix 服务器行业中略有不同的目标市场。这些 Unix 变体今天仍然有一些用途,尽管许多变体的服务器市场份额已萎缩到个位数(或更低)。BSD 可能拥有当今任何现代 Unix 系统中最大的安装基础。此外,最近历史上出货的每台 Apple Mac 硬件单元都可以归功于 BSD,因为其 OS X(现在的 macOS)操作系统是 BSD 衍生产品。

虽然 Unix 及其学术和商业变体的完整历史可能需要更多页,但为了本文的重点,让我们继续讨论 Linux 的崛起。

进入 Linux

我们今天称之为 Linux 操作系统实际上是 20 世纪 90 年代初期两项努力的结合。Richard Stallman 正在寻求创建一种真正自由和开源的替代专有 Unix 系统的方案。他正在以 GNU 的名义开发实用程序和程序,GNU 是“GNU's not Unix!”的递归首字母缩写。虽然有一个内核项目正在进行中,但事实证明进展艰难,并且在没有内核的情况下,自由和开源操作系统的梦想无法实现。正是 Linus Torvald 的工作——制作了一个可工作且可行的内核,他称之为 Linux——才使完整的操作系统得以实现。鉴于 Linus 正在使用一些 GNU 工具(例如,GNU 编译器集合,或 GCC),GNU 工具和 Linux 内核的结合是天作之合。

Linux 发行版随着 GNU 组件、Linux 内核、MIT 的 X-Windows GUI 以及其他可以在开源 BSD 许可证下使用的 BSD 组件应运而生。Slackware 以及后来的 Red Hat 等发行版的早期流行使 20 世纪 90 年代的“普通 PC 用户”能够访问 Linux 操作系统,并随之获得他们在工作或学术生活中使用的许多专有 Unix 系统功能和实用程序。

由于所有 Linux 组件都具有免费和开源的地位,任何人都可以通过一些努力创建一个 Linux 发行版,很快,发行版的总数就达到了数百个。当然,许多开发人员通过云提供商或使用流行的免费发行版(如 Fedora、Canonical 的 Ubuntu、Debian、Arch Linux、Gentoo 和许多其他变体)来使用 Linux。商业 Linux 产品在免费和开源组件之上提供支持,随着包括 IBM 在内的许多企业从专有 Unix 迁移到在 Linux 之上提供中间件和软件解决方案,商业 Linux 产品变得可行。Red Hat围绕 Red Hat Enterprise Linux 构建了一个商业支持模型,德国提供商 SUSE 也围绕 SUSE Linux Enterprise Server (SLES) 构建了商业支持模型。

Unix 和 Linux 的比较

到目前为止,我们已经了解了 Unix 的历史以及 Linux 和 GNU/自由软件基金会的崛起,它们是 Unix 的免费和开源替代方案的基础。让我们检查一下这两种操作系统之间的差异,它们拥有许多相同的传承和许多相同的目标。

从用户体验的角度来看,没有太大的不同!Linux 的许多吸引力在于该操作系统在许多硬件架构(包括现代 PC)上的可用性,以及使用 Unix 系统管理员和用户熟悉的工具的能力。

由于 POSIX 标准和合规性,在 Unix 上编写的软件可以编译到 Linux 操作系统上,通常只需要少量移植工作。Shell 脚本可以在许多情况下直接在 Linux 上使用。虽然某些工具在 Unix 和 Linux 之间具有略微不同的标志/命令行选项,但许多工具在这两者上运行方式相同。

一个值得注意的旁注是,macOS 硬件和操作系统作为主要面向 Linux 的开发平台的普及可能归因于类 BSD 的 macOS 操作系统。许多用于 Linux 系统的工具和脚本可以在 macOS 终端中轻松运行。Linux 上提供的许多开源软件组件都可以通过 Homebrew 等工具轻松获得。

Linux 和 Unix 之间剩余的差异主要与许可模式有关:开源与专有、许可软件。此外,Unix 发行版中缺少通用内核对软件和硬件供应商也有影响。对于 Linux,供应商可以为特定的硬件设备创建设备驱动程序,并期望在合理范围内,它可以在大多数发行版中运行。由于 Unix 树的商业和学术分支,供应商可能需要为 Unix 的变体编写不同的驱动程序,并且存在与 SDK 访问或跨许多 Unix 变体的软件作为二进制设备驱动程序的发布模型相关的许可和其他问题。

随着这两个社区在过去十年中都日趋成熟,Linux 中的许多进步已被 Unix 世界采用。许多 GNU 实用程序作为 Unix 系统的附加组件提供,开发人员希望从 GNU 程序中获得 Unix 中没有的功能。例如,IBM 的 AIX 为 Linux 应用程序提供了一个 AIX 工具箱,其中包含数百个 GNU 软件包(如 Bash、GCC、OpenLDAP 和许多其他软件包),可以添加到 AIX 安装中,以简化 Linux 和基于 Unix 的 AIX 系统之间的过渡。

专有 Unix 仍然生机勃勃,许多主要供应商承诺在 2020 年代继续支持其当前版本,这无需赘言,Unix 将在可预见的未来继续存在。此外,Unix 树的 BSD 分支是开源的,NetBSD、OpenBSD 和 FreeBSD 都拥有强大的用户群和开源社区,这些社区可能不如 Linux 那样可见或活跃,但在最近的服务器份额报告中保持了自己的地位,在 Web 服务等领域远高于专有 Unix 的数量。

Linux 相对于专有 Unix 而言,最显着的优势在于其在大量硬件平台和设备上的可用性。Raspberry Pi 受爱好者和发烧友欢迎,它由 Linux 驱动,并为运行 Linux 的各种 IoT 设备打开了大门。我们已经提到了 Android 设备、汽车(配备汽车级 Linux)和智能电视,Linux 在这些领域拥有很大的市场份额。地球上的每家云提供商都提供运行 Linux 的虚拟服务器,并且当今许多最流行的云原生堆栈都基于 Linux,无论您谈论的是容器运行时还是 Kubernetes,还是许多越来越流行的无服务器平台。

Linux 崛起最能说明问题的表现之一是微软近年来的转型。如果您在十年前告诉软件开发人员 Windows 操作系统将在 2016 年“运行 Linux”,那么他们中的大多数人都会歇斯底里地大笑。但是,适用于 Linux 的 Windows 子系统 (WSL) 的存在和普及,以及最近宣布的功能(如 Windows 版 Docker,包括 LCOW(Windows 上的 Linux 容器)支持)都证明了 Linux 对软件世界的影响——并且显然将继续产生影响。


本文最初发表于 2018 年 5 月,并已由编辑更新。

接下来阅读什么
标签
User profile image.
Phil 是 IBM Watson 和云平台部门的杰出工程师兼容器和 Linux 操作系统架构战略首席技术官。Phil 目前是 Docker(现在的 Moby)引擎项目、CNCF containerd 项目的 OSS 维护者,并且是开放容器倡议 (OCI) 技术监督委员会和 Moby 技术指导委员会的成员。

8 条评论

顺便说一句,macOS *是* UNIX,这已通过 OpenGroup 验证,OpenGroup 是 UNIX 品牌和标准化大纲的当前所有者。Linux 是“类 UNIX”,因为没有单个发行版曾向 OpenGroup 申请将其发行版认证为官方 UNIX。

此外,FreeBSD、OpenBSD 和 NetBSD 目前也不是“UNIX”,即使它们 *是* BSD。原因与 Linux 相同。通过 OpenGroup 的认证过程非常昂贵。开源发行版只是认为没有必要将钱投入到品牌徽章上,以跟上 AIX 等公司的步伐。

有关 UNIX 品牌价格的信息可以在这里找到

https://www.opengroup.org/openbrand/Brandfees.htm

“BSD 可能拥有当今任何现代 Unix 系统中最大的安装基础。此外,最近历史上出货的每台 Apple Mac 硬件单元都可以归功于 BSD,因为其 OS X(现在的 macOS)操作系统是 BSD 衍生产品。”
----

我对“桌面” BSD 的发展速度与桌面 Linux 相比感到非常失望。可悲的是,FreeBSD 具有您在 Unix 中期望的打包、开发人员、尖端技术和稳定性。
那么,为什么 TrueOS(以前的 PC-BSD)不能交付一个坚如磐石的稳定桌面系统?如果我是他们,在看过 Ubuntu Mate 之后,我会直接选择 MATE。这就是我们在桌面上的 BSD 领域所需要的。

NetBSD 也将成为桌面 BSD 版本的绝佳基础。它坚固、可靠且设计精良。哎,这几乎就像有一个阴谋阻止一个可行、蓬勃发展的免费桌面 BSD 生根发芽。
但是,带有 Mate 桌面的 GhostBSD 看起来很有希望。我们将拭目以待。

回复 ,作者 Matakaheru

unix 的早期历史有点复杂。

AT&T 是 Multics 项目的一部分 - 他们负责编译器 - 与 MIT(操作系统)和 GE(硬件)一起。

Ritchie 和 Thompson 仅在贝尔退出 Multics 项目后才开始他们的 Unics(原始拼写)项目。给出的原因取决于您询问的对象。

Multics 从一开始就用高级语言 PL/1 编写,因此原则上它也是可移植的 - 但 Burroughs MCP 也是如此,它也是用 HLL 编写的。

很简单。Linux 是一个 OS 内核,Unix 是 OpenGroup 出售的认证...

在管理层看来,任何 Unix 或 AIX 都像 Linux。对我来说,Linux 可以独立存在。

GNU 项目比 Linux 早得多。自由软件基金会在 80 年代和 90 年代一直在开发和分发大量软件(除了内核之外的所有软件),用于各种 UNIX 平台。我个人在 Sun(SunOS,后来的 Solaris)、HP (HP-UX)、DEC (Ultrix) 和 IBM (AIX) 平台上使用了 GNU 软件,早在 Linux 出现之前很久。

并且由于 GNU 代码(主要是)可移植的特性,(大多数软件包)有很多端口到非 UNIX 平台。我个人在 MS-DOS 和 OS/2 上运行了许多 GNU 软件包,这两个平台甚至都不像 UNIX。

将 GNU 软件与 Linux 一起分发绝对是使 Linux 成为可行平台的关键,但这得益于 GNU 在 Linux 之前就已经移植到几乎所有 UNIX 和类 UNIX 平台。换句话说,Linux 需要 GNU 才能成功,但 GNU 不需要 Linux,因为它在 Linux 存在之前就已经成功了。

哦,顺便说一句,GNU 项目最终发布了自己的内核。他们称之为 HURD。虽然它有很多有趣和尖端的技术(并且非常值得作为大学操作系统课程的一部分进行研究),但它尚未取得商业上的成功。如果您有兴趣,可以在这里找到它:https://gnu.ac.cn/software/hurd/hurd.html

虽然作者指出“...Unix 树的 BSD 分支是开源的...”,但他忽略了说明 SVR4 分支也以开源形式存在,即 illumos,它又是 OpenSolaris(以及之前的 Solaris)的衍生产品。illumos 正在为三星的公共云构建提供动力,这是他们拥有 Joyent 的一部分

http://dtrace.org/blogs/bmc/2017/09/04/the-sudden-death-and-eternal-lif…

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.