当前位置:主页 > 系统教程 >

Linux vs. unix:有什么不同?

发布日期:2017-10-15      作者:专注于电脑系统      来源:http://www.08153.com


Linux vs. unix:有什么不同??

如果您是位二、三十岁的软件开发人员,那么您已经成长在一个由Linux主导的世界。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操作系统市场份额报告,但Linux的数据中心操作系统份额可能高达70%,而win及其变体几乎涵盖了所有剩余的百分比。

使用任何主流公共云服务的开发人员都可以预期目标系统会运行Linux。近些年来,随着Android和基于Linux的嵌入式系统在智能手机、电视、汽车和其他设备中的应用,Linux已经随处可见。

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

那么,unix是什么?漫画中提到了像巫师一样留着“灰胡子”,坐在发光的官方屏幕后面,写着 C 代码和 shell 脚本,由老式的、滴灌的咖啡提供动力。

但是,unix的历史比上世纪70年代那些留着胡子的 C 程序员要丰富得多。虽然全面教程unix历史和 “unix 与 Linux” 比较的文章比比皆是,但本文将提供高级背景和列出这些互补世界之间的主要区别。

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操作系统实际上是90年代初期的两个努力的结合。Richard stallman但愿创建一个真正的自由而开放源代码的专有unix系统的替代品。他正在以Gnu的名义开发实用程序和程序,这是一种递归的说法,意思是“Gnu‘s not unix!”。

虽然当时有一个内核项目正在进行,但事实证明这是一件很困难的事情,而且没有内核,自由和开源操作系统的梦想无法实现。

而这是 Linus Torvald 的工作 —— 生产出一种可工作和可行的内核,他称之为 Linux -- 它将整个操作系统带入了生活。鉴于 Linus 使用了几个Gnu 工具(例如 Gnu 编译器集合,即 GCC),Gnu工具和Linux内核的结合是完海尔搭配。

Linux发行版采用了Gnu的组件、Linux 内核、MiT 的 x-win 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的优势是近年来微软的转变。如果您十年前告诉软件开发人员,win操作系统将在2016 年“运行 Linux”,他们中的大多数人会歇斯底里地大笑。

但是 win Linux子系统(wsL)的存在和普及,以及近期宣布的诸如 docker 的 win 移植版,包括 LCow(win 上的 Linux 容器)支持等功能都证明了 Linux 在整个软件世界中所产生的影响 —— 而且显然还会继续存在。

友情链接