Linux基础知识:Linux和Unix有什么不同

  • 时间:2018-09-16 22:59 作者:关注IT新进展 来源:关注IT新进展 阅读:239
  • 扫一扫,手机访问
摘要:假如你是位二、三十岁的软件开发人员,那么你已经成长在一个由 Linux 主导的世界。数十年来,它一直是数据中心的重要参加者,虽然很难找到明确的操作系统市场份额报告,但 Linux 的数据中心操作系统份额可能高达 70%,而 Windows 及其变体几乎涵盖了所有剩余的百分比。使用任何主流公共云服务的

假如你是位二、三十岁的软件开发人员,那么你已经成长在一个由 Linux 主导的世界。数十年来,它一直是数据中心的重要参加者,虽然很难找到明确的操作系统市场份额报告,但 Linux 的数据中心操作系统份额可能高达 70%,而 Windows 及其变体几乎涵盖了所有剩余的百分比。使用任何主流公共云服务的开发人员都可以预期目标系统会运行 Linux。

近些年来,随着 Android 和基于 Linux 的嵌入式系统在智能手机、电视、汽车和其余设施中的应用,Linux 已经随处可见。

即使如此,大多数软件开发人员,甚至是那些在这场历史悠久的 “Linux 革命”中长大的软件开发人员,也都听过说 Unix。它听起来与 Linux 类似,你可能已经听到人们互换使用这些术语。或者者你也许听说过 Linux 被称为“类 Unix ”操作系统。

Linux基础知识:Linux和Unix有什么不同

那么,Unix 是什么?漫画中提到了像巫师一样留着“灰胡子”,坐在发光的绿色屏幕后面,写着 C 代码和 shell 脚本,由老式的、滴灌的咖啡提供动力。但是,Unix 的历史比上世纪 70 年代那些留着胡子的 C 程序员要丰富得多。尽管详细详情 Unix 历史和 “Unix 与 Linux” 比较的文章比比皆是,但本文将提供高级背景和列出这些互补世界之间的主要区别。

Unix 的起源

Linux基础知识:Linux和Unix有什么不同

丹尼斯·里奇,C语言和Unix之父

Unix 的历史始于 20 世纪 60 年代后期的 AT&T 贝尔试验室,有一小组程序员希望为 PDP-7 编写一个多任务、多客户操作系统。这个贝尔试验室研究机构的团队中最著名的两名成员是 Ken Thompson 和 Dennis Ritchie。虽然 Unix 的许多概念都是其前身(Multics)的衍生物,但 Unix 团队早在 70 年代就决定用 C 语言重写这个小型操作系统,这是将 Unix 与其余操作系统区分开来的起因。当时,操作系统很少,更不要说可移植的操作系统。相反,因为它们的设计和底层语言的本质,操作系统与他们所编写的硬件平台紧密相关。而通过 C 语言重构 Unix、Unix 现在可以移植到许多硬件体系结构中。

除了这种新的可移植性,之所以使得 Unix 迅速扩展到贝尔试验室以外的其余研究和学术机构甚至商业用途,是由于操作系统设计准则的几个关键点吸引了客户和程序员们。首先是 Ken Thompson 的 Unix 哲学成为板块化软件设计和计算的强大模型。Unix 哲学推荐使用小型的、专用的程序组合起来完成复杂的整体任务。因为 Unix 是围绕文件和管道设计的,因而这种“管道”模式的输入和输出程序的组合成一组线性的输入操作,现在依然流行。事实上,目前的云功能即服务(FaaS)或者无服务器计算模型要归功于 Unix 哲学的许多传统。

快速增长和竞争

到 70 年代末和 80 年代,Unix 成为了一个操作系统家族的起源,它遍及了研究和学术机构以及日益增长的商业 Unix 操作系统业务领域。Unix 不是开源软件,Unix 源代码可以通过与它的所有者 AT&T 达成协议来取得许可。第一个已知的软件许可证于 1975 年出售给 伊利诺伊大学(University of Illinois)。

Unix 在学术界迅速发展,在 Ken Thompson 在上世纪 70 年代的学术假期间,伯克利成为一个重要的活动中心。通过在伯克利的各种有关 Unix 的活动,Unix 软件的一种新的交付方式诞生了: 伯克利软件发行版(Berkeley Software Distribution)(BSD)。最初,BSD 不是 AT&T Unix 的替代品,而是一种增加相似于附加软件和功能。在 1979 年, 2BSD(第二版伯克利软件发行版)出现时,伯克利研究生 Bill Joy 已经增加了现在非常有名的程序,例如 vi 和 C shell(/bin/csh)。

除了成为 Unix 家族中最受欢迎的分支之一的 BSD 之外,Unix 的商业产品的爆发贯穿了二十世纪八、九十年代,其中包括 HP-UX、IBM 的 AIX、 Sun 的 Solaris、 Sequent 和 Xenix 等。随着分支从根源头发展壮大,“Unix 战争”开始了,标准化成为社区的新焦点。POSIX 标准诞生于 1988 年,其余标准化后续工作也开始通过 The Open Group 在 90 年代到来。

在此期间,AT&T 和 Sun 发布了 System V Release 4(SVR4),许多商业供应商都采用了这一版本。另外,BSD 系列操作系统多年来一直在增长,最终少量开源的变体在现在熟习的 BSD许可证下发布。这包括 FreeBSD、 OpenBSD 和 NetBSD,每个在 Unix 服务器行业的目标市场略有不同。这些 Unix 变体今天依然有少量在使用,虽然人们已经看到它们的服务器市场份额缩小到个位数字(或者更低)。在当今的所有 Unix 系统中,BSD 可能拥有最大的安装基数。另外,每台 Apple Mac 硬件设施从历史的角度看都可以算做是 BSD ,这是由于 OS X(现在是 macOS)操作系统是 BSD 衍生产品。

尽管 Unix 的一律历史及其学术和商业变体可能需要更多的篇幅,但为了我们文章的重点,让我们来探讨 Linux 的兴起。

进入 Linux

Linux基础知识:Linux和Unix有什么不同

林纳斯·托瓦兹,Linux之父

今天我们所说的 Linux 操作系统实际上是 90 年代初期的两个努力的结合。Richard Stallman 希望创立一个真正的自由而开放源代码的专有 Unix 系统的替代品。他正在以 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 发行版,所以不久后发行版的总数达到了数百个。今天,distrowatch.com 列出了 312 种各种形式的独特的 Linux 发行版。当然,许多开发人员通过云提供商或者使用流行的免费发行版来使用 Linux,如 Fedora、 Canonical 的 Ubuntu、 Debian、 Arch Linux、 Gentoo 和许多其它变体。随着包括 IBM 在内的许多企业从专有 Unix 迁移到 Linux 上并提供了中间件和软件处理方案,商用 Linux 产品在自由和开源组件之上提供支持变得可行。红帽公司围绕 Red Hat Enterprise Linux(红帽企业版 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 世界中被采用。当开发人员需要来自不属于 Unix 的 GNU 程序的功能时,许多 GNU 实用程序可作为 Unix 系统的附件提供。例如,IBM 的 AIX 为 Linux 应用程序提供了一个 AIX Toolbox,其中包含数百个 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,或者者是许多正在流行的无服务器平台。

其中一个最明显的代表 Linux 的优势是近年来微软的转变。假如你十年前告诉软件开发人员,Windows 操作系统将在 2016 年“运行 Linux”,他们中的大多数人会歇斯底里地大笑。 但是 Windows Linux 子系统(WSL)的存在和普及,以及最近宣布的诸如 Docker 的 Windows 移植版,包括 LCOW(Windows 上的 Linux 容器)支持等功能都证实了 Linux 在整个软件世界中所产生的影响 -- 而且显然还会继续存在。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|windows】字节跳动前台面试题解析:盛最多水的容器(2021-03-20 21:27)
【系统环境|windows】DevOps敏捷60问,肯定有你想理解的问题(2021-03-20 21:27)
【系统环境|windows】字节跳动最爱考的前台面试题:JavaScript 基础(2021-03-20 21:27)
【系统环境|windows】JavaScript 的 switch 条件语句(2021-03-20 21:27)
【系统环境|windows】解决 XML 数据应用实践(2021-03-20 21:26)
【系统环境|windows】20个编写现代CSS代码的建议(2021-03-20 21:26)
【系统环境|windows】《vue 3.0探险记》- 运行报错:Error:To install them, you can run: npm install --save core-js/modules/es.arra...(2021-03-20 21:24)
【系统环境|windows】浅谈前台可视化编辑器的实现(2021-03-20 21:24)
【系统环境|windows】产品经理入门迁移学习指南(2021-03-20 21:23)
【系统环境|windows】初识webRTC(2021-03-20 21:23)
血鸟云
手机二维码手机访问领取大礼包
返回顶部