来自:开源中国linux
原文:Linux vs. Unix: What's the difference?程序员
连接:算法
https://opensource.com/article/18/5/differences-between-linux-and-unixshell
译者:Tocy, LinuxTech, 琪花亿草, lnovonl, 雪落无痕xdj, kevinlinkai, 无若服务器
若是你是一名20多岁或30多岁的软件开发人员,那么你已成长在一个由Linux主导的世界中。数十年来,它一直是数据中心的重要参与者,尽管很难找到明确的操做系统市场份额的报告,但Linux在数据中心操做系统上的份额可能高达70%,而Windows变体几乎涵盖了全部剩余的比例。使用任何主流公共云的开发人员能够假定目标系统将运行Linux。近些年来,随着Android和基于Linux的嵌入式系统在智能手机、电视、汽车和其余设备中的应用,Linux随处可见的证据比比皆是。架构
即使如此,大多数软件开发人员,甚至是那些在这场古老的“Linux革命”中成长的软件开发人员,也至少据说过Unix。这听起来与Linux相似,你可能已经据说过人们能够互换地使用这些术语。或者你也许据说过Linux被称为“类Unix”操做系统。app
那么,这个Unix是什么呢? 一些漫画种讲到的是坐在发绿光的屏幕后面的精灵般的“老人”,他编写C代码和shell脚本,由老式的滴灌咖啡所驱动。但除了那些1970年代那些老去的C程序员之外,Unix有更丰富的历史。虽然详细介绍Unix历史和“Unix与Linux”比较的文章比比皆是,但本文将提供高层的背景介绍和这些互补世界之间的主要差异的列表。ide
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发行版,很快,发行版的总数就达到了数百个。今天,http://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具备的影响 - 以及 显然将会继续存在 - 跨软件世界。
关于做者
Phil Estes
美国,弗吉尼亚州
Phil是IBM Watson和云平台部门的杰出工程师 & CTO、容器和Linux操做系统架构战略师。Phil目前是Docker(现为Moby)引擎项目、CNCF容器项目的OSS维护者,同时也是Open Container Initiative(OCI)技术监督委员会和Moby技术指导委员会的成员。Phil是Docker Captains计划的长期成员之一,而且与Docker生态系统的主要开源贡献者和专家有着长期的合做关系。