Linus Torvalds 的好友兼 linux 發展的重要人物 Lars Wirzenius 發文詳細講述了他記憶中的 Linux 稱,作為現在全球范圍內都相當成功的一個項目,Linux 的開端其實并不起眼。
Linux 誕生之初的一些代碼是由 Linus Torvalds 與 Lars Wirzenius 合寫的,因此 Lars 也是第一個與 Linux 合作的開發者。不過后來 Lars 選擇了在社區方面,而不是直接對內核做出貢獻,并幫助回答問題、編寫文檔等等。他還曾打理了一個 Linux 相關的短暫的時事通訊,因為發表了對 Linus 的第一次采訪而受到關注,之后被 comp.os.linux.announce 新聞組所取代。

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






