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