Unix 歷史:一個偉大作品的誕生
關於 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” 語句中,以實現一些現實世界的結果。
參考資料:
- http://www.bell-labs.com/usr/dmr/www/picture.html 1
- http://groups.google.com/g/comp.os.minix/c/dlNtH7RRrGA/m/SwRavCzVE7gJ
- http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum
- http://en.wikipedia.org/wiki/History_of_Linux
- http://en.wikipedia.org/wiki/History_of_Unix
- http://computerhistory.org/blog/the-earliest-unix-code-an-anniversary-source-code-release/
“所有的革命,在它們發生之前,都是歷史的必然。” —— 大衛·米切爾 《雲圖》
via: http://www.debugpoint.com/unix-history/
作者: Arindam 選題: lkxed 譯者: Donkey-Hao 校對: wxy
本文由 LCTT 原創編譯,Linux中國榮譽推出
- GNOME 43 釋出,標誌性的版本
- systemd 已可用於 WSL | Linux 中國
- 在 Arch Linux 和其他發行版中使用終端連線到 WiFi | Linux 中國
- Arch Linux 已從儲存庫中徹底移除 Python 2
- 關於 Linux 和 Git 的創造者 Linus Torvalds 的 20 件趣事 | Linux 中國
- FreeDOS 的 16 種顏色的由來 | Linux 中國
- CubyText:一個正在開發中的快速的跨平臺開源知識管理應用
- U 盤啟動盤建立工具 Rufus 在 Linux 上不能使用?這裡有 6 個替代品
- 11 個有趣的 Firefox 瀏覽器擴充套件,改善你的瀏覽體驗 | Linux 中國
- 深度 deepin 開源自研程式語言:Unilang
- 哇!Torvalds 為自己的 Apple M2 Macbook 專門修改了 Fedora Linux | Linux 中國
- Linus Torvalds 談工作與生活、Rust 和他的 M2 MacBook Air | Linux 中國
- 如何在瀏覽器中啟用深色模式 | Linux 中國
- Mesa 新補丁大幅優化 CS:GO for Linux 的啟動時間
- 如何在 Ubuntu 桌面中應用強調色 | Linux 中國
- Unix 歷史:一個偉大作品的誕生
- 10 大可以摧毀你的 Linux 的命令 | Linux 中國
- 在 Linux 中使用 Etcher 建立可啟動 USB – 下載和使用指南 | Linux 中國
- 開源貢獻者翻譯組 LCTT 九歲啦 | Linux 中國
- 微軟宣佈 SQL Server 2022 RC 0 在 Linux 上的可用性