Unix 歷史:一個偉大作品的誕生
Unix 的起源
如今,幾乎整個世界都運行在 Linux 之上。數以十億計的行動電話和伺服器運行在 Linux 之上。但在 Linux 之前,是 Unix,沒有 Unix 就沒有現在的 Linux。
Unix 的起源可以追溯到人類登陸月球的時候。在 1965 年,三個著名的機構共同開展了一個操作系統研發項目,準備開發一個能夠服務多個用戶,並共享數據和資源的操作系統。
這三個機構是著名的 貝爾電話實驗室 、 通用電氣公司 (GE)以及 麻省理工學院 (MIT)。這個合作項目被稱為 「Multics」 —— 即「 多路傳輸信息和計算業務 」的縮寫。
不幸的是,該項目並沒有見到成功的曙光,由於系統設計複雜且沒有什麼成果,貝爾實驗室停止了該項目。
曾參與該項目開發的貝爾實驗室的 肯·湯普森 ,也投入到了新的工作中。在 數字設備公司 (DEC)的一台古老的 PDP-7 計算機上,他重新開始設計了一個新操作系統。不久後, 丹尼斯·里奇 也加入了,二人一起設計了分層文件系統、設備文件、命令行解釋器以及進程。這就是 Unix 的誕生過程,它的名字是由 Multics 項目的另一名成員 布萊恩·克尼漢 給命名的。(LCTT 校註:前不久,80 高齡的布萊恩還為他共同創造的 AWK 添加了新的特性。)
接著在 1971 年,Unix 被移植到了稍微先進一些的 PDP-11 計算機上,它僅有 512 KB 的磁碟。當時,Unix 只支持 16 KB 內存,可以為用戶程序分配 8 KB 的內存。
然而,Unix 大多數代碼是用彙編語言編寫的,十分依賴於硬體。因此它並不具備移植性。
C 語言的創建
如此一來,要使 Unix 具有可移植性,使之與 機器無關 ,唯一的方法是使用高級語言編寫它,這樣編譯和相應的目標代碼就可以進行機器指令的轉換了。
解決該問題的偉大思想誕生於一瞬間。肯·湯普森從零開始創建了一種名為 「B」 的高級語言。然後,他做了大量的工作,將 Unix 的彙編代碼轉換成這種新創建的語言。然而,「B」 語言也存在一些局限性,丹尼斯·里奇在此基礎上創建了著名的 「C」 語言,這使得 Unix 真正成為一個可移植的操作系統。
著名的 「C」 語言至今還在使用。
到上世紀 80 年代中期,Unix 已經變得十分成功,從微型計算機到大型機,它可以在成千上萬種硬體上運行。
MINIX 和 Linux 的誕生
1987 年,計算機科學教授 安德魯·斯圖爾特·特南鮑姆 開發了一個名為 NINIX 的類 Unix 系統,在其著作《 操作系統設計與實現 》中用以解釋操作系統的概念,並隨該書一起免費分發了這個操作系統(16 位的版本)。那些學習計算機科學專業(包括我)或相關專業的人都知道,這是一本解釋操作系統基礎知識的「神級」教科書。
1991 年, 李納斯·托沃茲 在赫爾辛基大學學習期間開始了一項 愛好項目。他的項目是基於 MINIX 和 GNU C 編譯器的。他啟動這個項目是為了能夠在他的配有新款 80386 處理器的新 PC 上運行程序。他編寫的整個操作系統包含了 MINIX 所缺乏的特性,最終成為了 Linux 內核。
BSD 和 macOS
上世紀 80 年代,當 Unix 初具規模時,貝爾實驗室基於 Unix 的最初源代碼(在 PDP-7 和 PDP-11 上運行的版本)開發了 BSD( 伯克利標準發行版 )。BSD 是由加州大學伯克利分校的 計算機系統研究小組 (CSRG)分發的。在其形成之後,BSD 被許多工作站供應商(傳統桌面系統),如 昇陽微系統 ,改編為專有的 Unix 變體。
該版本最終分叉創建了一些開源的變體,例如 OpenBSD、FreeBSD 等。這些自由版本為 史蒂夫·喬布斯 創立的 NeXT 創建 NeXTSTEP 開闢了道路。而 NeXTSTEP 最終成為蘋果公司 macOS 的基礎。
總結
Unix 是少數具有獨到思想並致力於解決問題的人取得的非凡成就。如果考慮到在創建操作系統當時可用的計算能力和內存量,這個操作系統簡直就是一件藝術品。
幾十年來,所有這些一步步的進步,最終使我們走到了今天。無論有多少內核、操作系統和以編程語言形式出現的抽象概念,就其本質而言,它們都始於一個單一的來源。
我一直認為程序或代碼是人類的思想,是你的邏輯、想法,只是寫在 「IF-ELSE」 語句中,以實現一些現實世界的結果。
參考資料:
- https://www.bell-labs.com/usr/dmr/www/picture.html1
- https://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ
- https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
- https://en.wikipedia.org/wiki/History_of_Linux
- https://en.wikipedia.org/wiki/History_of_Unix
- https://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/
「所有的革命,在它們發生之前,都是歷史的必然。」 —— 大衛·米切爾 《雲圖》
via: https://www.debugpoint.com/unix-history/
作者:Arindam 選題:lkxed 譯者:Donkey-Hao 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive