Linux 26 週年,來一場懷舊之旅

發表於2017-09-15

通過安裝 SLS 1.05 展示了 Linux 核心在這 26 年間走過了多遠。

我第一次安裝 Linux 是在 1993 年。那時我跑的是 MS-DOS,但我真的很喜歡學校機房電腦的 Unix 系統,就在那裡度過了我大學本科時光。 當我聽說了 Linux,一個 Unix 的免費版本,可以在我家的 386 電腦上執行的時候,我立刻就想要試試。我的第一個 Linux 發行版是 Softlanding Linux System (SLS) 1.03,帶有 11 級補丁的 0.99 alpha 版本的 Linux 核心。它要求高達 2 MB 的記憶體,如果你想要編譯專案需要 4 MB,執行 X windows 則需要 8 MB。

我認為 Linux 相較於 MS-DOS 世界是一個巨大的進步。 儘管 Linux 缺乏執行在 MS-DOS 上的廣泛的應用及遊戲,但我發現 Linux 帶給我的是巨大的靈活性。不像 MS-DOS ,現在我可以進行真正的多工,同時執行不止一個程式。並且 Linux 提供了豐富的工具,包括一個 C 語言編譯器,讓我可以構建自己的專案。

一年後,我升級到了 SLS 1.05,它支援全新的 Linux 核心 1.0。 更重要的,Linux 引入了核心模組。通過核心模組,你不再需要為支援新硬體而編譯整個核心;取而代之,只需要從包含 Linux 核心之內的 63 個模組里載入一個就行。在 SLS 1.05 的發行自述檔案中包含這些關於模組的註釋:

核心的模組化旨在正視減少並最終消除重新編譯核心的要求,無論是變更、修改裝置驅動或者為了動態訪問不常用的驅動。也許更為重要的是,個別工作小組的工作不再影響到核心的正確開發。事實上,這讓以二進位制釋出官方核心現在成為了可能。

在 8 月 25 日,Linux 核心將迎來它的第 26 週年(LCTT 譯註:已經過去了 =.= )。為了慶祝,我重新安裝了 SLS 1.05 來提醒自己 Linux 1.0 核心是什麼樣子,去認識 Linux 自二十世紀 90 年代以來走了多遠。和我一起踏上 Linux 的懷舊之旅吧!

安裝

SLS 是第一個真正的 “發行版”,因為它包含一個安裝程式。 儘管安裝過程並不像現代發行版一樣順暢。 不能從 CD-ROM 啟動安裝,我需要從安裝軟盤啟動我的系統,然後從 login 提示中執行安裝程式。

Installing SLS 1.05 from the login prompt

在 SLS 1.05 中引入的一個漂亮的功能是支援彩色的文字模式安裝器。當我選擇彩色模式時,安裝器切換到一個帶有黑色文字的亮藍色背景,不再是我們祖祖輩輩們使用的原始的普通黑白文字。

Color-enabled text-mode installer in SLS 1.05

SLS 安裝器是個簡單的東西,文字從螢幕底部滾動而上,顯示其做的工作。通過對一些簡單的提示的響應,我能夠建立一個 Linux 分割槽,掛載上 ext2 檔案系統,並安裝 Linux 。 安裝包含了 X windows 和開發工具的 SLS 1.05,需要大約 85 MB 的磁碟空間。依照今天的標準這聽起來可能不是很多,但在 Linux 1.0 出來的時候,120 MB 的硬體裝置才是主流裝置。

Creating a partition for Linux, putting an ext2 filesystem on it, and installing Linux

First boot

系統級別

當我第一次啟動到 Linux 時,讓我想起來了一些關於這個早期版本 Linux 系統的事情。首先,Linux 沒有佔據很多的空間。在啟動系統之後執行一些程式來檢查的時候,Linux 佔用了不到 4 MB 的記憶體。在一個擁有 16MB 記憶體的系統中,這就意味著節省了很多記憶體用來執行程式。

Checking out the filesystem and available disk space

熟悉的 /proc 元檔案系統在 Linux 1.0 就存在了,儘管對比我們今天在現代系統上看到的,它並不能提供許多資訊。在 Linux 1.0, /proc 包含一些介面來探測類似 meminfo 和 stat 之類的基本系統狀態。

The familiar /proc meta filesystem

在這個系統上的 /etc 檔案目錄非常簡單。值得一提的是,SLS 1.05 借用了來自 BSD Unixrc 指令碼來控制系統啟動。 初始化是通過 rc 指令碼進行的,由 rc.local 檔案來定義本地系統的調整。後來,許多 Linux 發行版採用了來自 Unix System V 的很相似的 init 指令碼,後來又是 systemd 初始化系統。

The /etc directory

你能做些什麼

隨著我的系統的啟動執行,接下來就可以使用了了。那麼,在這樣的早期 Linux 系統上你能做些什麼?

讓我們從基本的檔案管理開始。 每次在你登入的時候,SLS 會讓你使用 Softlanding 選單介面(MESH),這是一個檔案管理程式,現代的使用者們可能覺得它和 Midnight Commander 很相似。 而二十世紀 90 年代的使用者們可能會拿 MESH 與更為接近的 Norton Commander 相比,這個可以說是在 MS-DOS 上最流行的第三方檔案管理程式。

The Softlanding menu shell (MESH)

除了 MESH 之外,在 SLS 1.05 中還少量包含了一些全屏應用程式。你可以找到熟悉的使用者工具,包括 Elm 郵件閱讀器、GNU Emacs 可程式設計編輯器,以及古老的 Vim 編輯器。

Elm mail reader

GNU Emacs programmable editor

SLS 1.05 甚至包含了一個可以讓你在終端玩的俄羅斯方塊版本。

Tetris for terminals

在二十世紀 90 年代,多數住宅的網路接入是通過撥號連線的,所以 SLS 1.05 包含了 Minicom 調變解調器撥號程式。Minicom 提供一個與調變解調器的直接連線,並需要使用者通過賀氏調變解調器的 AT 命令來完成一些像是撥號或掛電話這樣的基礎功能。Minicom 同樣支援巨集和其他簡單功能來使連線你的本地調變解調器池更容易。

Minicom modem-dialer application

但如果你想要寫一篇文件時怎麼辦? SLS 1.05 的存在要比 LibreOffice 或者 OpenOffice 早很長時間。在二十世紀 90 年代,Linux 還沒有這些應用。相反,如果你想要使用一個文書處理器,可能需要引導你的系統進入 MS-DOS,然後執行你喜歡的文書處理器程式,如 WordPerfect 或者共享軟體 GalaxyWrite。

但是所有的 Unix 系統都包含一套簡單的文字格式化程式,叫做 nroff 和 troff。在 Linux 系統中,他們被合併成 GNU groff 包,而 SLS 1.05 包含了 groff 的一個版本。我在 SLS 1.05 上的一項測試就是用 nroff 生成一個簡單的文字文件。

A simple nroff text document

nroff text document output

執行 X windows

獲取安裝 X windows 並不特別容易,如 SLS 安裝檔案承諾的那樣:

在你的 PC 上獲取安裝 X windows 可能會有一些發人深省的體驗,主要是因為 PC 的顯示卡型別太多。Linux X11 僅支援 VGA 型別的顯示卡,但在許多型別的 VGA 中僅有個別的某些型別是完全支援的。SLS 存在兩種 X windows 伺服器。全綵的 XFree86,支援一些或所有 ET3000、ET400、PVGA1、GVGA、Trident、S3、8514、Accelerated cards、ATI plus 等。

另一個伺服器 XF86_Mono,能夠工作在幾乎所有的 VGA 卡上,但只提供單色模式。因此,相比於彩色伺服器,它會佔用更少的記憶體並擁有更快的速度。當然就是看起來不怎麼漂亮。

X windows 的配置資訊都堆放在目錄 “/usr/X386/lib/X11/”。需要注意的是,“Xconfig” 檔案為監視器和顯示卡定義了時序。預設情況下,X windows 設定使用彩色伺服器,如果彩色伺服器出現問題,你可以切換到單色伺服器 x386mono,因為它已經支援各種標準的 VGA。本質上,這只是將 /usr/X386/bin/X 連結到它。

只需要編輯 Xconfig 來設定滑鼠驅動型別和時序,然後鍵入 “startx” 即可。

這些聽起來令人困惑,但它就是這樣。手工配置 X windows 真的可以是一個發人深省的體驗。幸好,SLS 1.05 包含了 syssetup 程式來幫你確定系統元件的種類,包括了 X windows 的顯示設定。在一些提示過後,經過一些實驗和調整,最終我成功啟動了 X windows!

The syssetup program

但這是來自於 1994 年的 X windows,它仍然並沒有桌面的概念。我可以從 FVWM (一個虛擬視窗管理器)或 TWM (選項卡式的視窗管理器)中選擇。TWM 直觀地設定提供一個功能簡單的圖形環境。

TWM

關機

我已經在我的 Linux 尋根之旅沉浸許久,是時候最終回到我的現代桌面上了。最初我跑 Linux 的是一臺僅有 8MB 記憶體和 一個 120MB 硬碟驅動器的 32 位 386 電腦,而我現在的系統已經足夠強大了。擁有雙核 64 位 Intel Core i5 處理器,4 GB 記憶體和一個 128 GB 的固態硬碟,我可以在我的執行著 Linux 核心 4.11.11 的系統上做更多事情。那麼,在我的 SLS 1.05 的實驗結束之後,是時候離開了。

Shutting down

再見,Linux 1.0。很高興看到你的茁壯成長。

相關文章