如果你是位二、三十歲的軟件開(kāi)發(fā)人員,那么你已經(jīng)成長(zhǎng)在一個(gè)由 Linux 主導(dǎo)的世界。數(shù)十年來(lái),它一直是數(shù)據(jù)中心的重要參與者,盡管很難找到明確的操作系統(tǒng)市場(chǎng)份額報(bào)告,但 Linux 的數(shù)據(jù)中心操作系統(tǒng)份額可能高達(dá) 70%,而 Windows 及其變體幾乎涵蓋了所有剩余的百分比。使用任何主流公共云服務(wù)的開(kāi)發(fā)人員都可以預(yù)期目標(biāo)系統(tǒng)會(huì)運(yùn)行 Linux。近些年來(lái),隨著 Android 和基于 Linux 的嵌入式系統(tǒng)在智能手機(jī)、電視、汽車和其他設(shè)備中的應(yīng)用,Linux 已經(jīng)隨處可見(jiàn)。
即便如此,大多數(shù)軟件開(kāi)發(fā)人員,甚至是那些在這場(chǎng)歷史悠久的 “Linux 革命”中長(zhǎng)大的軟件開(kāi)發(fā)人員,也都聽(tīng)過(guò)說(shuō) Unix。它聽(tīng)起來(lái)與 Linux 相似,你可能已經(jīng)聽(tīng)到人們互換使用這些術(shù)語(yǔ)。或者你也許聽(tīng)說(shuō)過(guò) Linux 被稱為“類 Unix ”操作系統(tǒng)。
那么,Unix 是什么?漫畫(huà)喜歡將它畫(huà)成巫師一樣留著“灰胡子”的形象,坐在發(fā)光的綠色屏幕后面,寫(xiě)著 C 代碼和 shell 腳本,由老式的、滴灌的咖啡提供動(dòng)力。但是,Unix 的歷史比上世紀(jì) 70 年代那些留著胡子的 C 程序員要豐富得多。雖然詳細(xì)介紹 Unix 歷史和 “Unix 與 Linux” 比較的文章比比皆是,但本文將提供高級(jí)背景和列出這些互補(bǔ)世界之間的主要區(qū)別。
Unix 的起源
Unix 的歷史始于 20 世紀(jì) 60 年代后期的 AT&T 貝爾實(shí)驗(yàn)室,有一小組程序員希望為 PDP-7 編寫(xiě)一個(gè)多任務(wù)、多用戶操作系統(tǒng)。這個(gè)貝爾實(shí)驗(yàn)室研究機(jī)構(gòu)的團(tuán)隊(duì)中最著名的兩名成員是 Ken Thompson 和 Dennis Ritchie。盡管 Unix 的許多概念都是其前身(Multics)的衍生物,但 Unix 團(tuán)隊(duì)早在 70 年代就決定用 C 語(yǔ)言重寫(xiě)這個(gè)小型操作系統(tǒng),這是將 Unix 與其他操作系統(tǒng)區(qū)分開(kāi)來(lái)的原因。當(dāng)時(shí),操作系統(tǒng)很少,更不要說(shuō)可移植的操作系統(tǒng)。相反,由于它們的設(shè)計(jì)和底層語(yǔ)言的本質(zhì),操作系統(tǒng)與他們所編寫(xiě)的硬件平臺(tái)緊密相關(guān)。而通過(guò) C 語(yǔ)言重構(gòu) Unix、Unix 現(xiàn)在可以移植到許多硬件體系結(jié)構(gòu)中。
除了這種新的可移植性,之所以使得 Unix 迅速擴(kuò)展到貝爾實(shí)驗(yàn)室以外的其他研究和學(xué)術(shù)機(jī)構(gòu)甚至商業(yè)用途,是因?yàn)椴僮飨到y(tǒng)設(shè)計(jì)原則的幾個(gè)關(guān)鍵點(diǎn)吸引了用戶和程序員們。首先是 Ken Thompson 的 Unix 哲學(xué)成為模塊化軟件設(shè)計(jì)和計(jì)算的強(qiáng)大模型。Unix 哲學(xué)推薦使用小型的、專用的程序組合起來(lái)完成復(fù)雜的整體任務(wù)。由于 Unix 是圍繞文件和管道設(shè)計(jì)的,因此這種“管道”模式的輸入和輸出程序的組合成一組線性的輸入操作,現(xiàn)在仍然流行。事實(shí)上,目前的云功能即服務(wù)(FaaS)或無(wú)服務(wù)器計(jì)算模型要?dú)w功于 Unix 哲學(xué)的許多傳統(tǒng)。
快速增長(zhǎng)和競(jìng)爭(zhēng)
到 70 年代末和 80 年代,Unix 成為了一個(gè)操作系統(tǒng)家族的起源,它遍及了研究和學(xué)術(shù)機(jī)構(gòu)以及日益增長(zhǎng)的商業(yè) Unix 操作系統(tǒng)業(yè)務(wù)領(lǐng)域。Unix 不是開(kāi)源軟件,Unix 源代碼可以通過(guò)與它的所有者 AT&T 達(dá)成協(xié)議來(lái)獲得許可。第一個(gè)已知的軟件許可證于 1975 年出售給伊利諾伊大學(xué)University of Illinois。
Unix 在學(xué)術(shù)界迅速發(fā)展,在 Ken Thompson 在上世紀(jì) 70 年代的學(xué)術(shù)假期間,伯克利成為一個(gè)重要的活動(dòng)中心。通過(guò)在伯克利的各種有關(guān) Unix 的活動(dòng),Unix 軟件的一種新的交付方式誕生了:伯克利軟件發(fā)行版Berkeley Software Distribution(BSD)。最初,BSD 不是 AT&T Unix 的替代品,而是一種添加類似于附加軟件和功能。在 1979 年, 2BSD(第二版伯克利軟件發(fā)行版)出現(xiàn)時(shí),伯克利研究生 Bill Joy 已經(jīng)添加了現(xiàn)在非常有名的程序,例如 vi 和 C shell(/bin/csh)。
除了成為 Unix 家族中最受歡迎的分支之一的 BSD 之外,Unix 的商業(yè)產(chǎn)品的爆發(fā)貫穿了二十世紀(jì)八、九十年代,其中包括 HP-UX、IBM 的 AIX、 Sun 的 Solaris、 Sequent 和 Xenix 等。隨著分支從根源頭發(fā)展壯大,“Unix 戰(zhàn)爭(zhēng)”開(kāi)始了,標(biāo)準(zhǔn)化成為社區(qū)的新焦點(diǎn)。POSIX 標(biāo)準(zhǔn)誕生于 1988 年,其他標(biāo)準(zhǔn)化后續(xù)工作也開(kāi)始通過(guò) The Open Group 在 90 年代到來(lái)。
在此期間,AT&T 和 Sun 發(fā)布了 System V Release 4(SVR4),許多商業(yè)供應(yīng)商都采用了這一版本。另外,BSD 系列操作系統(tǒng)多年來(lái)一直在增長(zhǎng),最終一些開(kāi)源的變體在現(xiàn)在熟悉的 BSD許可證下發(fā)布。這包括 FreeBSD、 OpenBSD 和 NetBSD,每個(gè)在 Unix 服務(wù)器行業(yè)的目標(biāo)市場(chǎng)略有不同。這些 Unix 變體今天仍然有一些在使用,盡管人們已經(jīng)看到它們的服務(wù)器市場(chǎng)份額縮小到個(gè)位數(shù)字(或更低)。在當(dāng)今的所有 Unix 系統(tǒng)中,BSD 可能擁有最大的安裝基數(shù)。另外,每臺(tái) Apple Mac 硬件設(shè)備從歷史的角度看都可以算做是 BSD ,這是因?yàn)?OS X(現(xiàn)在是 macOS)操作系統(tǒng)是 BSD 衍生產(chǎn)品。
雖然 Unix 的全部歷史及其學(xué)術(shù)和商業(yè)變體可能需要更多的篇幅,但為了我們文章的重點(diǎn),讓我們來(lái)討論 Linux 的興起。
進(jìn)入 Linux
今天我們所說(shuō)的 Linux 操作系統(tǒng)實(shí)際上是 90 年代初期的兩個(gè)努力的結(jié)合。Richard Stallman 希望創(chuàng)建一個(gè)真正的自由而開(kāi)放源代碼的專有 Unix 系統(tǒng)的替代品。他正在以 GNU 的名義開(kāi)發(fā)實(shí)用程序和程序,這是一種遞歸的說(shuō)法,意思是“GNU‘s not Unix!”。雖然當(dāng)時(shí)有一個(gè)內(nèi)核項(xiàng)目正在進(jìn)行,但事實(shí)證明這是一件很困難的事情,而且沒(méi)有內(nèi)核,自由和開(kāi)源操作系統(tǒng)的夢(mèng)想無(wú)法實(shí)現(xiàn)。而這是 Linus Torvald 的工作 —— 生產(chǎn)出一種可工作和可行的內(nèi)核,他稱之為 Linux — 它將整個(gè)操作系統(tǒng)帶入了生活。鑒于 Linus 使用了幾個(gè) GNU 工具(例如 GNU 編譯器集合,即 GCC),GNU 工具和 Linux 內(nèi)核的結(jié)合是完美的搭配。
Linux 發(fā)行版采用了 GNU 的組件、Linux 內(nèi)核、MIT 的 X-Windows GUI 以及可以在開(kāi)源 BSD 許可下使用的其它 BSD 組件。像 Slackware 和 Red Hat 這樣的發(fā)行版早期的流行給了 20 世紀(jì) 90 年代的“普通 PC 用戶”一個(gè)進(jìn)入 Linux 操作系統(tǒng)的機(jī)會(huì),并且讓他們?cè)诠ぷ骱蛯W(xué)術(shù)生活中可以使用許多 Unix 系統(tǒng)特有的功能和實(shí)用程序。
由于所有 Linux 組件都是自由和開(kāi)放的源代碼,任何人都可以通過(guò)一些努力來(lái)創(chuàng)建一個(gè) Linux 發(fā)行版,所以不久后發(fā)行版的總數(shù)達(dá)到了數(shù)百個(gè)。今天,distrowatch.com 列出了 312 種各種形式的獨(dú)特的 Linux 發(fā)行版。當(dāng)然,許多開(kāi)發(fā)人員通過(guò)云提供商或使用流行的免費(fèi)發(fā)行版來(lái)使用 Linux,如 Fedora、 Canonical 的 Ubuntu、 Debian、 Arch Linux、 Gentoo 和許多其它變體。隨著包括 IBM 在內(nèi)的許多企業(yè)從專有 Unix 遷移到 Linux 上并提供了中間件和軟件解決方案,商用 Linux 產(chǎn)品在自由和開(kāi)源組件之上提供支持變得可行。紅帽公司圍繞 Red Hat Enterprise Linux(紅帽企業(yè)版 Linux) 建立了商業(yè)支持模式,德國(guó)供應(yīng)商 SUSE 使用 SUSE Linux Enterprise Server(SLES)也提供了這種模式。
比較 Unix 和 Linux
到目前為止,我們已經(jīng)了解了 Unix 的歷史以及 Linux 的興起,以及 GNU/自由軟件基金會(huì)對(duì) Unix 的自由和開(kāi)源替代品的支持。讓我們來(lái)看看這兩個(gè)操作系統(tǒng)之間的差異,它們有許多共同的傳統(tǒng)和許多相同的目標(biāo)。
從用戶體驗(yàn)角度來(lái)看,兩者差不多!Linux 的很大吸引力在于操作系統(tǒng)在許多硬件體系結(jié)構(gòu)(包括現(xiàn)代 PC)上的可用性以及類似使用 Unix 系統(tǒng)管理員和用戶熟悉的工具的能力。
由于 POSIX 的標(biāo)準(zhǔn)和合規(guī)性,在 Unix 上編寫(xiě)的軟件可以針對(duì) Linux 操作系統(tǒng)進(jìn)行編譯,通常只有少量的移植工作量。在很多情況下,Shell 腳本可以在 Linux 上直接使用。雖然一些工具在 Unix 和 Linux 之間有著略微不同的標(biāo)志或命令行選項(xiàng),但許多工具在兩者上都是相同的。
一方面要注意的是,macOS 硬件和操作系統(tǒng)作為主要針對(duì) Linux 的開(kāi)發(fā)平臺(tái)的流行可能歸因于類 BSD 的 macOS 操作系統(tǒng)。許多用于 Linux 系統(tǒng)的工具和腳本可以在 macOS 終端內(nèi)輕松工作。Linux 上的許多開(kāi)源軟件組件都可以通過(guò) Homebrew 等工具輕松獲得。
Linux 和 Unix 之間的其他差異主要與許可模式有關(guān):開(kāi)源與專有許可軟件。另外,在 Unix 發(fā)行版中缺少一個(gè)影響軟件和硬件供應(yīng)商的通用內(nèi)核。對(duì)于 Linux,供應(yīng)商可以為特定的硬件設(shè)備創(chuàng)建設(shè)備驅(qū)動(dòng)程序,并期望在合理的范圍內(nèi)它可以在大多數(shù)發(fā)行版上運(yùn)行。由于 Unix 家族的商業(yè)和學(xué)術(shù)分支,供應(yīng)商可能必須為 Unix 的變體編寫(xiě)不同的驅(qū)動(dòng)程序,并且需要許可和其他相關(guān)的權(quán)限才能訪問(wèn) SDK 或軟件的分發(fā)模型,以跨越多個(gè)二進(jìn)制設(shè)備驅(qū)動(dòng)程序的 Unix 變體。
隨著這兩個(gè)社區(qū)在過(guò)去十年中的成熟,Linux 的許多優(yōu)點(diǎn)已經(jīng)在 Unix 世界中被采用。當(dāng)開(kāi)發(fā)人員需要來(lái)自不屬于 Unix 的 GNU 程序的功能時(shí),許多 GNU 實(shí)用程序可作為 Unix 系統(tǒng)的附件提供。例如,IBM 的 AIX 為 Linux 應(yīng)用程序提供了一個(gè) AIX Toolbox,其中包含數(shù)百個(gè) GNU 軟件包(如 Bash、 GCC、 OpenLDAP 和許多其他軟件包),這些軟件包可添加到 AIX 安裝包中以簡(jiǎn)化 Linux 和基于 Unix 的 AIX 系統(tǒng)之間的過(guò)渡。
專有的 Unix 仍然活著而且還不錯(cuò),許多主要供應(yīng)商承諾支持其當(dāng)前版本,直到 2020 年。不言而喻,Unix 還會(huì)在可預(yù)見(jiàn)的將來(lái)一直出現(xiàn)。此外,Unix 的 BSD 分支是開(kāi)源的,而 NetBSD、 OpenBSD 和 FreeBSD 都有強(qiáng)大的用戶基礎(chǔ)和開(kāi)源社區(qū),它們可能不像 Linux 那樣顯眼或活躍,但在最近的服務(wù)器報(bào)告中,在 Web 服務(wù)等領(lǐng)域它們遠(yuǎn)高于專有 Unix 的數(shù)量。
Linux 已經(jīng)顯示出其超越 Unix 的顯著優(yōu)勢(shì)在于其在大量硬件平臺(tái)和設(shè)備上的可用性。樹(shù)莓派Raspberry Pi受到業(yè)余愛(ài)好者的歡迎,它是由 Linux 驅(qū)動(dòng)的,為運(yùn)行 Linux 的各種物聯(lián)網(wǎng)設(shè)備打開(kāi)了大門(mén)。我們已經(jīng)提到了 Android 設(shè)備,汽車(包括 Automotive Grade Linux)和智能電視,其中 Linux 占有巨大的市場(chǎng)份額。這個(gè)星球上的每個(gè)云提供商都提供運(yùn)行 Linux 的虛擬服務(wù)器,而且當(dāng)今許多最受歡迎的原生云架構(gòu)都是基于 Linux 的,無(wú)論你是在談?wù)撊萜鬟\(yùn)行時(shí)還是 Kubernetes,或者是許多正在流行的無(wú)服務(wù)器平臺(tái)。
其中一個(gè)最顯著的代表 Linux 的優(yōu)勢(shì)是近年來(lái)微軟的轉(zhuǎn)變。如果你十年前告訴軟件開(kāi)發(fā)人員,Windows 操作系統(tǒng)將在 2016 年“運(yùn)行 Linux”,他們中的大多數(shù)人會(huì)歇斯底里地大笑。 但是 Windows Linux 子系統(tǒng)(WSL)的存在和普及,以及最近宣布的諸如 Docker 的 Windows 移植版,包括 LCOW(Windows 上的 Linux 容器)支持等功能都證明了 Linux 在整個(gè)軟件世界中所產(chǎn)生的影響 —— 而且顯然還會(huì)繼續(xù)存在。
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210391 -
UNIX
+關(guān)注
關(guān)注
0文章
296瀏覽量
41577
原文標(biāo)題:Unix vs. Linux:有什么不同?
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論