Unix 歷史:一個偉大作品的誕生

語言: CN / TW / HK
作者: Arindam

譯者:LCTT Donkey

| 2022-09-13 00:26

關於 Unix 及其起源的簡短回憶。

Unix 的起源

如今,幾乎整個世界都執行在 Linux 之上。數以十億計的行動電話和伺服器執行在 Linux 之上。但在 Linux 之前,是 Unix,沒有 Unix 就沒有現在的 Linux。

Unix 的起源可以追溯到人類登陸月球的時候。在 1965 年,三個著名的機構共同開展了一個作業系統研發專案,準備開發一個能夠服務多個使用者,並共享資料和資源的作業系統。

這三個機構是著名的 貝爾電話實驗室 Bell Telephone Laboratories 通用電氣公司 General Electric Company (GE)以及 麻省理工學院 Massachusetts Institute of Technology (MIT)。這個合作專案被稱為 “Multics” —— 即“ 多路傳輸資訊和計算業務 Multiplex Information and Computing Service ”的縮寫。

不幸的是,該專案並沒有見到成功的曙光,由於系統設計複雜且沒有什麼成果,貝爾實驗室停止了該專案。

曾參與該專案開發的貝爾實驗室的 肯·湯普森 Ken Thompson ,也投入到了新的工作中。在  數字裝置公司 Digital Equipment Corporation (DEC)的一臺古老的 PDP-7 計算機上,他重新開始設計了一個新作業系統。不久後, 丹尼斯·裡奇 Dennis Ritchie 也加入了,二人一起設計了分層檔案系統、裝置檔案、命令列直譯器以及程序。這就是 Unix 的誕生過程,它的名字是由 Multics 專案的另一名成員  布萊恩·克尼漢 Brian Kernighan 給命名的。(LCTT 校注:前不久,80 高齡的布萊恩還為他共同創造的 AWK 添加了新的特性。)

接著在 1971 年,Unix 被移植到了稍微先進一些的 PDP-11 計算機上,它僅有 512 KB 的磁碟。當時,Unix 只支援 16 KB 記憶體,可以為使用者程式分配 8 KB 的記憶體。

然而,Unix 大多數程式碼是用匯編語言編寫的,十分依賴於硬體。因此它並不具備移植性。

C 語言的建立

如此一來,要使 Unix 具有可移植性,使之與 機器無關 machine-independent ,唯一的方法是使用高階語言編寫它,這樣編譯和相應的目的碼就可以進行機器指令的轉換了。

解決該問題的偉大思想誕生於一瞬間。肯·湯普森從零開始建立了一種名為 “B” 的高階語言。然後,他做了大量的工作,將 Unix 的彙編程式碼轉換成這種新建立的語言。然而,“B” 語言也存在一些侷限性,丹尼斯·裡奇在此基礎上建立了著名的 “C” 語言,這使得 Unix 真正成為一個可移植的作業系統。

著名的 “C” 語言至今還在使用。

到上世紀 80 年代中期,Unix 已經變得十分成功,從微型計算機到大型機,它可以在成千上萬種硬體上執行。

MINIX 和 Linux 的誕生

1987 年,電腦科學教授 安德魯·斯圖爾特·特南鮑姆 Andrew S. Tanenbaum 開發了一個名為 NINIX 的類 Unix 系統,在其著作《 作業系統設計與實現 Operating Systems: Design and Implementation 》中用以解釋作業系統的概念,並隨該書一起免費分發了這個作業系統(16 位的版本)。那些學習電腦科學專業(包括我)或相關專業的人都知道,這是一本解釋作業系統基礎知識的“神級”教科書。

1991 年, 李納斯·託沃茲 Linus Torvalds 在赫爾辛基大學學習期間開始了一項  愛好專案 。他的專案是基於 MINIX 和 GNU C 編譯器的。他啟動這個專案是為了能夠在他的配有新款 80386 處理器的新 PC 上執行程式。他編寫的整個作業系統包含了 MINIX 所缺乏的特性,最終成為了 Linux 核心。

BSD 和 macOS

上世紀 80 年代,當 Unix 初具規模時,貝爾實驗室基於 Unix 的最初原始碼(在 PDP-7 和 PDP-11 上執行的版本)開發了 BSD( 伯克利標準發行版 Berkeley Standard Distribution )。BSD 是由加州大學伯克利分校的  計算機系統研究小組 Computer Systems Research Group (CSRG)分發的。在其形成之後,BSD 被許多工作站供應商(傳統桌面系統),如  昇陽微系統 Sun Microsystems ,改編為專有的 Unix 變體。

該版本最終分叉建立了一些開源的變體,例如 OpenBSD、FreeBSD 等。這些自由版本為 史蒂夫·喬布斯 Steve Jobs 創立的 NeXT 建立 NeXTSTEP 開闢了道路。而 NeXTSTEP 最終成為蘋果公司 macOS 的基礎。

總結

Unix 是少數具有獨到思想並致力於解決問題的人取得的非凡成就。如果考慮到在建立作業系統當時可用的計算能力和記憶體量,這個作業系統簡直就是一件藝術品。

幾十年來,所有這些一步步的進步,最終使我們走到了今天。無論有多少核心、作業系統和以程式語言形式出現的抽象概念,就其本質而言,它們都始於一個單一的來源。

我一直認為程式或程式碼是人類的思想,是你的邏輯、想法,只是寫在 “IF-ELSE” 語句中,以實現一些現實世界的結果。

參考資料:

“所有的革命,在它們發生之前,都是歷史的必然。” —— 大衛·米切爾 《雲圖》

via: http://www.debugpoint.com/unix-history/

作者: Arindam 選題: lkxed 譯者: Donkey-Hao 校對: wxy

本文由 LCTT 原創編譯,Linux中國榮譽推出