Linus Torvalds 的好友兼 linux 發(fā)展的重要人物 Lars Wirzenius 發(fā)文詳細(xì)講述了他記憶中的 Linux 稱,作為現(xiàn)在全球范圍內(nèi)都相當(dāng)成功的一個(gè)項(xiàng)目,Linux 的開端其實(shí)并不起眼。
Linux 誕生之初的一些代碼是由 Linus Torvalds 與 Lars Wirzenius 合寫的,因此 Lars 也是第一個(gè)與 Linux 合作的開發(fā)者。不過后來 Lars 選擇了在社區(qū)方面,而不是直接對(duì)內(nèi)核做出貢獻(xiàn),并幫助回答問題、編寫文檔等等。他還曾打理了一個(gè) Linux 相關(guān)的短暫的時(shí)事通訊,因?yàn)榘l(fā)表了對(duì) Linus 的第一次采訪而受到關(guān)注,之后被 comp.os.linux.announce 新聞組所取代。
根據(jù) Lars 的回憶,1988 年秋天,他在赫爾辛基大學(xué)學(xué)習(xí)計(jì)算機(jī)科學(xué)時(shí)遇到了 Linus Torvalds;兩人在第一學(xué)年快結(jié)束時(shí),獲得了對(duì) Unix 服務(wù)器的訪問權(quán)限。之后在 1990 年秋天,兩人在服完兵役之后繼續(xù)回到大學(xué)學(xué)習(xí);選修了 C 和 Unix 編程課程,其中包括了相當(dāng)多的 Unix 內(nèi)核體系結(jié)構(gòu)理論,因此兩人也對(duì) QNX 和 Plan 9 等其他操作系統(tǒng)內(nèi)核進(jìn)行了解。彼時(shí),兩個(gè) 20 歲意氣風(fēng)發(fā)的年輕人,就已經(jīng)開始討論 “應(yīng)該如何正確構(gòu)建操作系統(tǒng)” 這一問題。
1991 年 1 月,Linus 從當(dāng)?shù)匾患矣昧慵M裝計(jì)算機(jī)的商店購(gòu)買了他的第一臺(tái) PC。為了滿足 Linus 想探索多任務(wù)處理以及不想設(shè)備降級(jí)的需求,該 PC 配備了一個(gè) 386 CPU。與此同時(shí),這臺(tái) PC 還擁有高達(dá) 4 兆字節(jié)的 RAM 和一個(gè)硬盤驅(qū)動(dòng)器。在之后的幾個(gè)月的時(shí)間里,Linus 的業(yè)余時(shí)間都花在了一個(gè)名為 Prince of Persia 的游戲上;后來還買了一份 MINIX。
As and Bs
游戲搞定后,Linus 開始學(xué)習(xí)英特爾匯編語言,并在某一天向 Lars 展示了他編寫的一個(gè)執(zhí)行多任務(wù)處理的程序:一個(gè)任務(wù)或線程會(huì)在屏幕上寫入字母 “A” 的流,另一個(gè)是 “B”;當(dāng)流 As 變成 Bs 時(shí),上下文切換在視覺上很明顯。這也是后來被稱為第一個(gè) Linux 內(nèi)核版本的東西。
后來,Linus 擴(kuò)展了這個(gè)程序,并采用 C 語言編寫了大部分內(nèi)容。在這段時(shí)間里,也就是 1991 年春末,Lars 幫忙寫了一個(gè) C sprintf 函數(shù)的實(shí)現(xiàn),目前這段代碼的核心仍然存在內(nèi)核中。隨著時(shí)間推移,內(nèi)核不斷更新變得更好:包括有了鍵盤和串行端口的驅(qū)動(dòng)程序、屏幕的 VT100 終端轉(zhuǎn)義序列仿真、并且可以用它通過調(diào)制解調(diào)器撥號(hào)到兩人就讀的大學(xué)。而有一次,在 Linus 不小心試圖用硬盤驅(qū)動(dòng)器撥打大學(xué)電話后,其主引導(dǎo)扇區(qū)變成了以 “ATDT” 和大學(xué)調(diào)制解調(diào)器池電話號(hào)碼開頭。但在解決了這一問題之后,Linus 就在內(nèi)核中實(shí)現(xiàn)了文件權(quán)限。
時(shí)間線來到 1991 年 8 月,Linus 在 comp.os.minix 新聞組中首次公開提及了他的新內(nèi)核,透露正在出于愛好開發(fā)新的免費(fèi)操作系統(tǒng) —— 最初命名為 Freax。幾周后,Linus 要求 ftp.f.NET.fi的管理員之一 Ari Lemmke 上傳第一個(gè) tar 存檔,Ari 則選擇了 Linux 這個(gè)名字。初始版本仍然包含嵌入其中一個(gè)源文件中的原始名稱。
Linus 為有興趣的用戶提供了安裝方法和說明,并上門為 Lars 進(jìn)行了安裝,而 Lars 的電腦也是真正意義上第一臺(tái)安裝了 Linux 的 PC。對(duì)此,Lars 則調(diào)侃稱,“在這一切發(fā)生時(shí),我正在小睡,我推薦這種安裝 Linux 的方法:小睡,而 Linus 則在努力工作。”
Linux 的第一個(gè)版本使用了禁止商業(yè)用途的許可證,一些早期貢獻(xiàn)者建議其更改為自由軟件許可證。1991 年秋天,Lars 帶 Linus 去聽了 Richard Stallman 在芬蘭的演講;于是,在貢獻(xiàn)者的壓力以及 Lars 的勸說下,Linus 在 1992 年初選擇了 GNU GPL 許可證。同一階段,Linus 也在 Linux 中實(shí)現(xiàn)了虛擬內(nèi)存。
1992
1992 年要從與 MINIX 作者 Andrew Tanenbaum 的那場(chǎng)著名辯論說起。Andrew Tanenbaum 對(duì) Linux 及其架構(gòu)有一些看法,Linus 則對(duì) MINIX 有意見。Lars 稱,“這場(chǎng)辯論彼時(shí)被描述為一場(chǎng)口水戰(zhàn),但事后看來實(shí)際上是相當(dāng)文明的”。同年,X11 系統(tǒng)被移植到了 Linux 上,使 1992 年成為 Linux 桌面年。
第一個(gè) Linux 發(fā)行版也始于 1992 年:Softlanding Linux System 或 SLS。第二年,SLS 演變?yōu)?Slackware,激發(fā)了 Ian Murdock 在 1993 年創(chuàng)建 Debian,以探索更加基于社區(qū)的開發(fā)結(jié)構(gòu)。接下來,其他一些發(fā)行版也相繼冒出。
1993 年,Linus 和 Lars 都被大學(xué)聘為助教。Linus 開始在學(xué)校辦公室的 PC 上進(jìn)行 Linux 開發(fā),并在某一天用匯編語言重寫了 Linux 內(nèi)核命令行解析器以實(shí)現(xiàn)提速;兩個(gè)人在這個(gè)辦公室度過了一段快樂的時(shí)光。在后來的某個(gè)時(shí)候,Linux 獲得了對(duì)以太網(wǎng)和 TCP/IP 的支持。
1.0
1994 年春天,Linux 好像已經(jīng)足夠成熟:用戶可以用 Linux 進(jìn)行自我編譯、閱讀 Usenet、同時(shí)運(yùn)行許多 xeyes 程序副本。因此,1.0 版本的發(fā)布被提上了日程。
1995 年,Linus 和 Lars 在大學(xué)上了一門軟件工程課程,其中主要包括一個(gè)建立在 Linux 之上的大型實(shí)踐項(xiàng)目。Lars 表示,他當(dāng)時(shí)出于一些經(jīng)驗(yàn)堅(jiān)持要使用一個(gè)版本控制系統(tǒng),也正是這種經(jīng)歷導(dǎo)致 Linus 不喜歡 CVS,并且多年來拒絕使用任何版本控制,除了將 tar 包上傳到 FTP 站點(diǎn)。同年,Linus 得到了一臺(tái) DEC Alpha 機(jī)器,并首次將 Linux 移植到新架構(gòu)。
1997 年 Linus 畢業(yè)并移居美國(guó),在 Transmeta 工作;Lars 則在赫爾辛基地區(qū)的另一所大學(xué)開始了新工作。在接下來的幾年里:Linux 功能日益完善、“開源” 一詞被創(chuàng)造、IBM 在 Linux 開發(fā)上投入了大量資金、 Netscape 將其 Web 瀏覽器的一個(gè)版本作為開源發(fā)布等等相繼。
Lars 稱,“跳過一些細(xì)節(jié)和許多年,開源基本上占領(lǐng)了世界。1991 年,Linus 稱 Linux 不會(huì)像 gnu 那樣龐大和專業(yè)。2023 年。Linux 正在各大洲、各大洋、數(shù)十億臺(tái)設(shè)備、軌道和火星上運(yùn)行。對(duì)于一開始只是兩個(gè)線程,在屏幕上寫入 As 和 Bs 流的東西來說,這個(gè)結(jié)果還不錯(cuò)。”
相關(guān)鏈接: https://lwn.net/SubscriberLink/928581/841b747332791ac4/