Linux中國

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

Unix 的起源

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

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

Scanned copy of actual Unix code

這三個機構是著名的 貝爾電話實驗室 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 大多數代碼是用彙編語言編寫的,十分依賴於硬體。因此它並不具備移植性。

Ken Thompson (sitting) and Dennis Ritchie at PDP-11 (credit and learn more about this image1)

C 語言的創建

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

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

著名的 「C」 語言至今還在使用。

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

The text book of C which we all read

MINIX 和 Linux 的誕生

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

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

Famous operating systems book by Tanenbaum

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: https://www.debugpoint.com/unix-history/

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

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國