資安

Linux萌芽 | 計算機百年趣味史(下)第11篇

上一篇:PC時代 | 計算機百年趣味史(上)第9-10篇

本文作者:衍雲

從上篇計算機硬件發展歷史中,我們知道1962年MIT計算中心使用IBM 7094研發了Compatible Time-Sharing System (CTSS)兼容的分時操作系統,當時硬件條件不符合,所以並不流行。

而當1964年,System/360發佈後,硬件具備保護機制後CTSS開始逐步流行。

1965年,隨著CTSS的成功,人們也開始試圖使用一臺計算機來滿足波士頓地區所有用戶的計算需求,因此貝爾實驗室(Bell Labs)加入了由通用電氣(General Electric)和麻省理工學院(MIT)合作的計劃;該項目要建立一套多使用者、多任務、多層次(multi-user、multi-processor、multi-level)的MULTICS(Multiplexed Information and Computing Service縮寫)操作系統,我們可以從名字看到起要實現的目標(不過這也應了《三國演義》中的一句老話,天下大勢久分必合久合必分,當時MULTICS的設計目標不就是現在的雲計算想做的嗎,一個數據中心向整個地區提供計算相關服務,不過雲計算不是一臺機器而是一大群)。

11.1 UNIX誕生

由於MULTICS的工作進度太慢,該計劃在1969年就被停下來了。雖然MULTICS商業上失敗了,但是需要肯定的是,在MULTICS中產生了大量的概念和雛形,影響著後來的操作系統。最後一個MULTICS的用戶是加拿大國防部,其在2000年10月停止了該系統。

當時貝爾實驗室退出MULTICS後,肯·湯普森Ken Thompson(後被稱為UNIX之父)手上有一個"星際旅行"的遊戲在GE-635(我們所說的大機,可見上篇中七個“小矮人“章節, 英文名mainframe)的機器上跑,不過玩起來不是很流暢。偶然間他發現了一部被閒置的PDP-7(Digital的主機,一個迷你電腦,就是早期小型機),然後肯·湯普森Ken Thompson和丹尼斯·裡奇Dennis Ritchie(C語言之父,兩人於1983年由於實現了UNIX操作系統獲得圖靈獎)就將"星際旅行"的遊戲通過彙編語言移植到了PDP-7上(當時還沒有C語言這麼高級的東西)。

到了第二年,也就是在1970年時,那部PDP-7還是隻能支持兩個使用者,布萊恩·科爾尼Brian Kernighan(與丹尼斯·裡奇在1978年合著發表了《C程序設計語言》)就開玩笑地稱他們的系統其實是:"UNiplexed Information and Computing Service",縮寫為"UNICS",後來,大家取其諧音,就稱其為"UNIX"了。1970年可稱為"UNIX元年"。

就是這麼巧,Thompson為了玩遊戲不巧成了UNIX之父,遊戲真是人的天性,是創造的源泉啊。

1971年,肯·湯普森Ken Thompson申請到了一臺PDP-11/24的機器,同時Unix第一版出來了。當時這臺電腦只有24KB的物理內存和500K磁盤空間。Unix佔用了12KB的內存,剩下的一半內存可以支持兩用戶進行“星際旅行”的遊戲,同時也產生了fork()系統調用。

到了1973年,肯·湯普森和丹尼斯·裡奇還是嫌彙編移植麻煩,於是開始尋找辦法,他們嘗試了Fortran(該語言產生於1954年,主要用於數值計算領域)和BCPL語言(該語言產生於1967年,劍橋大學開發,用於OS6操作系統開發),他們在這過程中整理形成了B語言。最後丹尼斯里奇還是覺得麻煩,改良了B語言產生於是了今天的C語言(取了BCPL中的第二個字母)。

在1974年7月肯·湯普森Ken Thompson和丹尼斯·裡奇Dennis Ritchie在Communications of the ACM中發表了第一篇UNIX的文章 “The UNIX Time Sharing System”。UNIX首次亮相,引起了學術界的廣泛興趣並對其源碼索取,Unix在第五版 “僅用於教育目的”提供給各大學作為教學之用,成為當時操作系統課程中的範例教材,培養了一大波操作系統人才。各大學公司開始對Unix進行了各種各樣的改進和擴展。於是,Unix開始廣泛流行(丹尼斯里奇 已在2011年過逝,另外兩位布萊恩·柯林漢和肯·湯普森還健在 )。
緊接著,AT&T公司開始注意到Unix所帶來的商業價值。公司的律師開始尋找手段來保護Unix,並讓其成為一種商業機密。從1979年Unix的版本V7開始,Unix的許可證開始禁止大學使用Unix的源碼,包括在授課中學習。

這樣到了1980年,有兩個最主要的Unix的版本線,一個是Berkeley的BSD UNIX,另一個是AT&T的Unix,最終引發了Unix的戰爭。然後就一發不可收拾地一夜之間出現了各種各樣的Unix變種。如SunOS(Solaris在之後的十年出現),AT&T發佈的Unix System V,而最終也造就了IBM的AIX和HP的HP-UX。

而學術上,因為Unix源碼問題也不能在授課中學習了。

11.2 MINUX

所以問題來了,當Unix源碼不能再教學中使用的時候,很多老師就頭疼了,其中包括塔內鮑姆(ACM和IEEE的兩會資深會員)。很多老師為了給學生造福利,是什麼事都做勇於嘗試的(之前我們講到人類首臺計算機的時候,1937年愛荷華州立大學的物理老師阿塔納索夫為了教學方便搞出了世界上第一個現代計算機)。

而塔內鮑姆呢,為了更好的滿足操作系統課程,索性自己寫了一個MINUX操作系統(意思Mini的UNIX)。MINIX最初發佈於1987年,開放全部源代碼給大學教學和研究工作。2000年重新改為BSD授權,成為自由和開放源碼軟件。

但是有問題,MINUX為了保持教學的目的,不接受其他同學提供的源碼,因為這樣會使得系統變動更加龐大和難以理解。所以也直接阻礙了MINUX的商業化道路發展。

11.3 Linux

然後就是到了Linux了……

這裡大家應該非常熟悉了,當時的Linus想通過MINUX安裝到電腦上,然後連學校的網絡,但是沒有網絡模塊,為了能夠上網,LINUX開始自己重新開發一個簡單的系統發佈在社區上。最早取名是叫FREAX怪誕,不過FTP管理員不是很喜歡這個名字,考慮到時Linus寫的操作系統就取名為了Linux。

他第一次發行的版本(1991年10月5日)迅速吸引了一些黑客。儘管最初的 Linux 並沒有多少用處,但由於一些黑客的加入使它很快就具有了許多吸引人的特性,其後由大量的Linux內核高手和開發人員參與,當前顯然已經成為最主流的操作系統了。

得益於UNIX操作系統,MINUX操作系統,POSIX標準,GNU計劃,和Internet網絡發展。

主要人物Theodor Ts’o畢業於MIT ,成立最早北美地區的Linux的ftp站點,另外實現了ext2文件系統,成為了Linux早期世界中事實上的文件系統標準,後又推出了ext3文件系統。

Alan Cox,是繼Linux前期發展中僅次於Linus的人物。

Michael K.Johnson是《內核黑客手冊》,發起了Linux文檔計劃(Linux Document Project, LDP)
隨著Linux不斷的壯大,中間也觸發了一次”大戰”(口戰)就是著名的微內核和宏內核之爭
…….

就這樣歷史到我們此時此刻,非我莫屬!

操作系統軟件這塊講得相對少一點,因為我覺得大家應該都是耳熟能詳的 事情了。

Leave a Reply

Your email address will not be published. Required fields are marked *