unix与linux的区别
如果您是20多岁或30多岁的软件开发人员,那么您已经在Linux主导的世界中长大了。 数十年来,它一直是数据中心的重要参与者,尽管很难找到确定的操作系统市场份额报告,但Linux在数据中心操作系统中的份额可能高达70%,而Windows变体几乎占据了其余所有百分比。 使用任何主要公共云的开发人员都可以期望目标系统将运行Linux。 近年来,当您在智能手机,电视,汽车和许多其他设备中添加基于Android和Linux的嵌入式系统时,Linux无处不在的证据越来越多。
即便如此,大多数软件开发人员,甚至是在这场古老的“ Linux革命”中成长的软件开发人员,至少都听说过Unix。 听起来与Linux类似,您可能已经听说过人们可以互换使用这些术语。 也许您听说过Linux,称为“类Unix”操作系统。
那么,这是什么Unix? 漫画中讲的是坐在发光的绿色屏幕后面的向导般的“灰胡须”,写着C代码和shell脚本,由老式的滴灌咖啡驱动。 但是Unix的历史比1970年代那些有胡子的C程序员要丰富得多。 尽管有许多文章详细介绍了Unix的历史以及“ Unix vs. Linux”的比较,但本文将提供高级背景知识,并列出这些互补领域之间的主要差异。
Unix的开始
Unix的历史始于1960年代后期的AT&T贝尔实验室,当时有一群程序员希望为PDP-7编写多任务,多用户操作系统。 贝尔实验室研究机构的这个团队中最著名的两个成员是肯·汤普森和丹尼斯·里奇。 尽管Unix的许多概念是其前身( Multics )的派生,但Unix团队在1970年代初决定用C语言重写这种小型操作系统,这是将Unix与所有其他操作系统区分开来的原因。 当时,很少有操作系统是可移植的。 取而代之的是,根据其设计和低级源语言的性质,操作系统与它们所针对的硬件平台紧密相连。 通过在C编程语言上重构Unix,Unix现在可以移植到许多硬件体系结构上。
除了这种新的可移植性,它使Unix可以从Bell LabsSwift扩展到其他研究,学术甚至商业用途之外,该操作系统的设计原则中的几个关键要素对用户和程序员也很有吸引力。 首先,肯·汤普森(Ken Thompson)的Unix哲学成为模块化软件设计和计算的强大模型。 Unix的哲学建议结合使用专用的小型程序来完成复杂的整体任务。 由于Unix是围绕文件和管道设计的,所以这种将程序的输入和输出“管道化”到输入上的线性操作集合的模型今天仍然很流行。 实际上,当前的云功能即服务(FaaS)/无服务器计算模型的大部分继承都归功于Unix哲学。
快速增长和竞争
在1970年代末和80年代末,Unix成为了家族谱系的根源,家族谱系遍及研究,学术界和不断增长的商业Unix操作系统业务。 Unix不是开源软件,并且Unix源代码可通过与所有者AT&T达成协议来获得许可。 1975年,第一个已知的软件许可证出售给了伊利诺伊大学。
Unix在学术界Swift发展,由于70年代肯·汤普森(Ken Thompson)休假,伯克利成为重要的活动中心。 在伯克利(Berkeley)从事与Unix有关的所有活动之后,诞生了一种新的Unix软件:伯克利软件发行版(BSD)。 最初,BSD并不是AT&T Unix的替代品,而是具有附加软件和功能的附加组件。 到1979年2BSD(第二个Berkeley软件发行版)问世时,Berkeley的研究生Bill Joy才添加了现在著名的程序,例如vi
和C shell(/ bin / csh)。
除了BSD成为Unix系列中最受欢迎的分支之一外,Unix的商业产品在1980年代爆发到90年代,其名称包括HP-UX,IBM的AIX,Sun的Solaris,Sequent和Xenix。 随着分支机构从最初的根基发展而来,“ Unix战争 ”开始了,标准化成为社区的新焦点。 POSIX标准诞生于1988年,其他的标准化后续活动则通过The Open Group进入1990年代。
BSD许可证 。 其中包括FreeBSD,OpenBSD和NetBSD,它们在Unix服务器行业中的目标市场略有不同。 这些Unix变体今天仍在使用,尽管许多人看到它们的服务器市场份额下降到个位数(或更低)。 BSD可能是当今任何现代Unix系统中最大的安装基础。 另外,由于BSD的OS X(现为macOS)操作系统,BSD可以要求最近历史上发货的每个Apple Mac硬件单元。尽管Unix的完整历史及其学术和商业变体可能要花更多篇幅,但为了我们的文章重点,让我们继续Linux的兴起。
进入Linux
我们今天所说的Linux操作系统实际上是1990年代初期的两种努力的结合。 理查德·斯托曼(Richard Stallman)希望创建一个真正的免费开放源码替代专有Unix系统。 他以GNU的名称从事实用程序和程序的开发,GNU是递归的缩写,意思是“ GNU不是Unix!”。 尽管正在进行一个内核项目,但事实证明这是很难的,没有内核,就无法实现自由和开源操作系统的梦想。 正是Linus Torvald的工作-产生了一个他称为Linux的可行且可行的内核-才使完整的操作系统栩栩如生。 鉴于Linus使用了多个GNU工具(例如GNU Compiler Collection或GCC ),GNU工具与Linux内核的完美结合。
Linux发行版以GNU组件,Linux内核,MIT的X-Windows GUI以及可以在开源BSD许可下使用的其他BSD组件而栩栩如生。 Slackware和Red Hat等发行版的较早普及使1990年代的“普通PC用户”可以访问Linux操作系统,以及Linux操作系统,以及它们在工作或学术生活中使用的许多专有Unix系统功能和实用程序。
由于所有Linux组件都具有免费和开源的地位,因此任何人都可以付出一点努力就可以创建Linux发行版,很快发行版的总数就达到了数百个。 今天, distrowatch.com列出了312种以某种形式可用的独特Linux发行版。 当然,许多开发人员可以通过云提供商或使用流行的免费发行版(例如Fedora,Canonical的Ubuntu,Debian,Arch Linux,Gentoo和许多其他变体)来利用Linux。 商业Linux产品在免费和开源组件之上提供了支持,随着包括IBM在内的许多企业从专有Unix迁移到在Linux上提供中间件和软件解决方案的趋势,商业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终端中轻松工作。 可通过Homebrew等工具轻松获得Linux上可用的许多开源软件组件。
Linux和Unix之间的其余差异主要与许可模式有关:开源软件与专有许可软件。 同样,Unix发行版中缺少通用内核也对软件和硬件供应商产生了影响。 对于Linux,供应商可以为特定的硬件设备创建设备驱动程序,并期望它可以在大多数发行版中运行。 由于Unix树的商业和学术分支,供应商可能必须为Unix变体编写不同的驱动程序,并且需要许可和其他与访问SDK或软件分发模型相关的其他问题,作为跨许多设备的二进制设备驱动程序Unix变体。
随着这两个社区在过去十年中的成熟,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的所有IoT设备打开了大门。 我们已经提到过Linux设备,汽车(具有汽车级Linux)和智能电视,而Linux在这些设备上占有很大的市场份额。 地球上的每个云提供商都提供运行Linux的虚拟服务器,并且无论您是在谈论容器运行时,Kubernetes还是正在流行的许多无服务器平台,当今许多最流行的云原生堆栈都是基于Linux的。
近年来,Microsoft的转型是Linux崛起的最生动体现。 如果您在十年前告诉软件开发人员Windows操作系统将在2016年“运行Linux”,那么大多数人都会大笑。 但是,适用于Linux的Windows子系统(WSL)的存在和普及以及最近宣布的诸如Docker的Windows端口之类的功能,包括对LCOW(Windows上的Linux容器)的支持,都证明了Linux的影响-以及显然,在整个软件世界中,它将继续存在。
翻译自: https://opensource.com/article/18/5/differences-between-linux-and-unix
unix与linux的区别