你知道 Linux 与 Unix 到底有什么不同吗?
Posted 计蒜客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你知道 Linux 与 Unix 到底有什么不同吗?相关的知识,希望对你有一定的参考价值。
如果你是一名 20 多岁或 30 多岁的软件开发人员,那么你已成长在一个由 Linux 主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额的报告,但 Linux 在数据中心操作系统上的份额可能高达 70%,而 Windows 变体几乎涵盖了所有剩余的比例。使用任何主流公共云的开发人员可以假定目标系统将运行 Linux。近些年来,随着 android 和基于Linux的嵌入式系统在智能手机、电视、汽车和其他设备中的应用,Linux 随处可见的证据比比皆是。
即便如此,大多数软件开发人员,甚至是那些在这场古老的“Linux 革命”中成长的软件开发人员,也至少听说过 Unix。这听起来与 Linux 类似,你可能已经听说过人们可以互换地使用这些术语。或者你也许听说过 Linux 被称为“类 Unix”操作系统。
那么,这个 Unix 是什么呢? 一些漫画种讲到的是坐在发绿光的屏幕后面的精灵般的“老人”,他编写 C 代码和 shell 脚本,由老式的滴灌咖啡所驱动。但除了那些 1970 年代那些老去的 C 程序员以外,Unix 有更丰富的历史。虽然详细介绍 Unix 历史和“Unix 与 Linux”比较的文章比比皆是,但本文将提供高层的背景介绍和这些互补世界之间的主要差别的列表。
Unix 开端
Unix 的历史起始于二十世纪六十年代的 AT&T 贝尔实验室,在那时,一小组程序员正在为 PDP-7 编写多任务、多用户操作系统。在贝尔实验室研究机构的这个小组里有两位最知名的人物,ken Thompson 和 Dennis Ritchie。尽管Unix的许多概念继承于它的先驱 Multics,但在二十世纪八十代早期 Unix 小组用 C 语言重写这个小型操作系统的决定使得 Unix 与其它的系统区别开来。那个时候的操作系统很少是可移植的。相反,由于先天的设计和底层源语言,那些操作系统和所被授权运行的硬件平台紧密地联系在一起。通过使用 C 语言重构 Unix,现在 Unix 可以被移植到许多硬件平台。
除了这个新的可移植移能力,有几个对于用户和程序员来说很有吸引力的操作系统设计的关键点使得 Unix 扩张到除贝尔实验室以外的其它领域,如研究、学术甚至商业用途。关键点一,Ken Thompson 的 Unix 哲学成为了模块化软件设计和计算的强有力的典范。Unix 哲学建议使用小规模的为特定目的构建的程序的结合体来处理复杂的总体任务。由于 Unix 是围绕着文件和管道设计的,这个"piping(管道)“模型至今仍然很流行,它把程序的输入和输出链接在一起作为一系列的线性输入操作。实际上,当今的函数即服务(FaaS)/无服务器计算模型要更多地归功于对 Unix 哲学的继承。
快读增长和竞争
在 20 世纪 70 和 80 年代末,Unix 成为了族谱的根,族谱扩展到研究届、学术届和不断增长的商业 Unix 操作系统业务。Unix 不是开源软件,Unix 源码可以与它的拥有者 AT&T 通过协议获得许可证。第一个已知的软件许可证在 1975 年卖给了伊利诺伊大学。
Unix 在学术界发展迅速,随着伯克利成为重要的活动中心,在 70 年代给了 Ken Thompson 一个学术休假。通过在伯克利的Unix的所有活动,一个新的 Unix 软件支付诞生了:伯克利软件发行版,或者叫 BSD。最初,BSD 并不是 AT&T 的 Unix 的代替品,而是附加软件和功能附加品。直到 1979 年的 2BSD(第二 Berkeley 软件发型版),伯克利研究生 Bill Joy 已经添加了现在知名的程序,例如 vi 和 C shell(/bin/csh)。
除了 BSD,它成为了 Unix 家族中最受欢迎的分支之一,Unix 的商业产品在 20 世纪 80 年代和 90 年代激增,包括 HP-UX、IBM 的 AIX、Sun 的 Solaris、Sequent 和 Xenix。随着分支从最初的根开始增长,“Unix 战争”开始了,标准化成为了社区的一个新焦点。POSIX 标准诞生于 1988 年,以及其他开源工作组的标准化工作一直进行到到 20 世纪 90 年代。
大约在这个时候,AT&T 和 Sun 发布了 System V Release 4(SVR4),这是许多商业厂商采用的。另外,BSD 家族的操作系统在过去的几年里不断增长,导致了一些开源的变种,这些变种是在现在熟悉的 BSD 许可下发布的。这包括 FreeBSD、OpenBSD 和 NetBSD,每个都在 Unix 服务器行业中有一个稍微不同的目标市场。这些 Unix 变体在今天仍然有一些使用,尽管许多人已经看到他们的服务器市场份额减少到个位数(或更低)。BSD 可能是当今所有现代 Unix 系统中最大的安装基础。此外,在最近的历史中,每一个苹果 Mac 硬件单元搭载的系统都可以被称为 BSD,因为它的 OS X(现在的macOS)操作系统是一个 BSD- 派生。
虽然 Unix 的完整历史和它的学术和商业变体可能需要更多的篇幅来介绍,但是为了突出我们的文章的重点,让我们继续关注 Linux 的兴起。
讲讲 Linux
今天我们所说的 Linux 操作系统实际上是 90 年代初期的两个成果的组合。Richard Stallman 希望创建一个作为替代私有 Unix 系统的真正免费的和开源的系统。他正在以 GNU 的名义开发实用工具和程序,这是一种递归算法,意思是“GNU 不是 Unix!” 虽然它有一个内核项目正在进行,但结果证实开展起来很困难,这样没有内核,免费并开源操作系统的梦想就无法实现。这是 Linus Torvald 的工作 - 编写出一种可工作的和可行的内核,被他称为 Linux-- 整个操作系统因此而诞生。鉴于 Linus 使用的是多种 GNU 工具(例如 GNU 编译器集合或 GCC),GNU 工具和 Linux 内核的结合是天生的绝配。
Linux 发行版使用 GNU 提供的组件、Linux 内核,MIT 的 X-Windows GUI 以及其他可以在开源 BSD 许可下使用的 BSD 组件来实现。像 Slackware 和 Red Hat 这样的发行版的早期流行给了上世纪 90 年代的“普通 PC 用户”使用 Linux 操作系统的机会,以及他们在工作或学术生活中使用的许多专有的 Unix 系统功能和实用工具。
由于所有 Linux 组件的免费和开源,任何人都可以通过一些努力来创建一个 Linux 发行版,很快,发行版的总数就达到了数百个。今天,distrowatch.com 列出了 312 种独特的 Linux 发行版。当然,许多开发人员通过云提供商使用 Linux 或使用流行的免费发行版,如 Fedora、Canonical 的 Ubuntu、Debian、Arch Linux、Gentoo 和许多其他变体 Linux。在免费和开源组件之上提供支持的商业 Linux 产品变得可行,因为包括 IBM 在内的许多企业都从专有的 Unix 迁移到在 Linux 上提供中间件和软件解决方案。Red Hat在Red Hat Enterprise Linux周围建立了一个商业支持模型,德国供应商 SUSE Linux Enterprise Server(SLES)也是如此。
比较 Unix 和 Linux
目前为止,我们已经了解了 Unix 的历史,和 Linux 的崛起,以及与 Unix 不同的以免费和开源为基础的 GNU/Free 软件基金会。这两个操作系统有着相同的文化遗产和相同的目标,我们现在来看一下他们的区别。
从一个用户体验角度来讲,没有太多区别!Linux 的大部分优点包括操作系统可跨多硬件架构(包括现代 PC)特性,以及能够让 Unix 系统的管理员和用户使用他们熟悉的工具的能力。
由于 POSIX 标准和兼容性,在 Unix 上编写的软件可以在 Linux 操作系统上编译,而在移植方面不用花费太多的功夫。很多情况下,Shell 脚本可以直接在 Linux 上使用。虽然在 Unix 和 Linux 之间有一些工具的标志/命令行选项略微不同,但是他们的很多操作是相同的。
要注意的一方面是,作为把 Linux 作为主要目标的开发平台,macOS 设备和操作系统的普及,可能归功于类 BSD 的 macOS 操作系统。很多 Linux 系统工具和脚本可以简单地在 macOS 终端运行。很多在 Linux 上可用的开源软件组件也可以在 macOS 上使用,如 Homebrew。
其他 Linux 和 Unix 区别主要与授权模式相关:开源 vs.私有,授权软件。此外,Unix 发行版中缺少通用内核对软件和硬件供应商都有影响。对于 Linux,供应商可以为特定硬件设备创建设备驱动,并有理由预计,它可以在大多数发行版中运行。由于 Unix 家族的商业和学术分支,供应商可能不得不为不同版本的 Unix 开发不同的驱动,而且作为很多不同版本的 Unix 的二进制设备驱动,对这些软件的 SDK 或者发行版本的访问,也会让他们有授权和其他方面的担忧。
在过去十年中随着这两个社区的日渐成熟,Linux 中许多进步已经在 Unix 世界中被采用了。许多 GNU 实用程序已经被作为 Unix 系统的附属而提供,他们提供了开发人员需要的来自不属于 Unix 的 GNU 程序的功能。例如,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 的各种物联网设备打开了大门。 我们已经提到了 Android 设备,汽车(包括 Automotive Grade Linux)和智能电视,其中 Linux 占有很大的市场份额。 这个星球上的每个云提供商都提供运行 Linux 的虚拟服务器,而且当今许多最受欢迎的云本地堆栈都是基于 Linux 的,无论您是在谈论容器运行时还是 Kubernetes,还是许多无服务器的平台都越来越受欢迎。
其中一个最显着的趋势是近年来微软的转变。 如果你十年前告诉软件开发人员,Windows 操作系统将在 2016 年“运行 Linux”,他们中的大多数人会歇斯底里地笑了。 但是 Windows Linux 子系统(WSL)的存在和普及,以及最近宣布的诸如 Docker 的 Windows 端口(包括 Windows 上的 Linux 容器)支持等功能都证明了 Linux 具有的影响 - 以及 显然将会继续存在 - 跨软件世界。
摘自开源中国
英文原文:Linux vs. Unix: What's the difference?
以上是关于你知道 Linux 与 Unix 到底有什么不同吗?的主要内容,如果未能解决你的问题,请参考以下文章