Linux 1.0 之旅:回顧這一切的開始
通過安裝 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 提示中執行安裝程式。
在 SLS 1.05 中引入的一個漂亮的功能是支援彩色的文字模式安裝器。當我選擇彩色模式時,安裝器切換到一個帶有黑色文字的亮藍色背景,不再是我們祖祖輩輩們使用的原始的普通黑白文字。
SLS 安裝器是個簡單的東西,文字從螢幕底部滾動而上,顯示其做的工作。通過對一些簡單的提示的響應,我能夠建立一個 Linux 分割槽,掛載上 ext2 檔案系統,並安裝 Linux 。 安裝包含了 X windows 和開發工具的 SLS 1.05,需要大約 85 MB 的磁碟空間。依照今天的標準這聽起來可能不是很多,但在 Linux 1.0 出來的時候,120 MB 的硬體裝置才是主流裝置。
系統級別
當我第一次啟動到 Linux 時,讓我想起來了一些關於這個早期版本 Linux 系統的事情。首先,Linux 沒有佔據很多的空間。在啟動系統之後執行一些程式來檢查的時候,Linux 佔用了不到 4 MB 的記憶體。在一個擁有 16MB 記憶體的系統中,這就意味著節省了很多記憶體用來執行程式。
熟悉的 /proc
元檔案系統在 Linux 1.0 就存在了,儘管對比我們今天在現代系統上看到的,它並不能提供許多資訊。在 Linux 1.0, /proc
包含一些介面來探測類似 meminfo
和 stat
之類的基本系統狀態。
在這個系統上的 /etc
檔案目錄非常簡單。值得一提的是,SLS 1.05 借用了來自 BSD Unix 的 rc 指令碼來控制系統啟動。 初始化是通過 rc 指令碼進行的,由 rc.local
檔案來定義本地系統的調整。後來,許多 Linux 發行版採用了來自 Unix System V 的很相似的 init 指令碼,後來又是 systemd 初始化系統。
你能做些什麼
隨著我的系統的啟動執行,接下來就可以使用了了。那麼,在這樣的早期 Linux 系統上你能做些什麼?
讓我們從基本的檔案管理開始。 每次在你登入的時候,SLS 會讓你使用 Softlanding 選單介面(MESH),這是一個檔案管理程式,現代的使用者們可能覺得它和 Midnight Commander 很相似。 而二十世紀 90 年代的使用者們可能會拿 MESH 與更為接近的 Norton Commander 相比,這個可以說是在 MS-DOS 上最流行的第三方檔案管理程式。
除了 MESH 之外,在 SLS 1.05 中還少量包含了一些全屏應用程式。你可以找到熟悉的使用者工具,包括 Elm 郵件閱讀器、GNU Emacs 可程式設計編輯器,以及古老的 Vim 編輯器。
SLS 1.05 甚至包含了一個可以讓你在終端玩的俄羅斯方塊版本。
在二十世紀 90 年代,多數住宅的網路接入是通過撥號連線的,所以 SLS 1.05 包含了 Minicom 調變解調器撥號程式。Minicom 提供一個與調變解調器的直接連線,並需要使用者通過賀氏調變解調器的 AT 命令來完成一些像是撥號或掛電話這樣的基礎功能。Minicom 同樣支援巨集和其他簡單功能來使連線你的本地調變解調器池更容易。
但如果你想要寫一篇文件時怎麼辦? 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 生成一個簡單的文字文件。
執行 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!
但這是來自於 1994 年的 X windows,它仍然並沒有桌面的概念。我可以從 FVWM (一個虛擬視窗管理器)或 TWM (選項卡式的視窗管理器)中選擇。TWM 直觀地設定提供一個功能簡單的圖形環境。
關機
我已經在我的 Linux 尋根之旅沉浸許久,是時候最終回到我的現代桌面上了。最初我跑 Linux 的是一臺僅有 8MB 記憶體和 一個 120MB 硬碟驅動器的 32 位 386 電腦,而我現在的系統已經足夠強大了。擁有雙核 64 位 Intel Core i5 處理器,4 GB 記憶體和一個 128 GB 的固態硬碟,我可以在我的執行著 Linux 核心 4.11.11 的系統上做更多事情。那麼,在我的 SLS 1.05 的實驗結束之後,是時候離開了。
再見,Linux 1.0。很高興看到你的茁壯成長。
(題圖:圖片來源:litlnemo。由 Opnesource.com 修改。CC BY-SA 2.0.)
via: https://opensource.com/article/17/8/linux-anniversary
作者:Jim Hall 譯者:softpaopao 校對:wxy
相關文章
- GCC - 一切從這裡開始(轉)GC
- 一切的開始
- 新的開始 | Arthas GitHub Star 破萬後的回顧和展望Github
- 開始Go開發之旅Go
- 開始我的學習之旅。。。。
- MySQL 之旅開始啦MySql
- 技能樹之旅: 計算點數與從這開始
- 回顧:我的linux歷程薦Linux
- 一切從基礎開始Linux入門命令篇Linux
- 從零開始的Flutter之旅: MethodChannelFlutter
- 遊戲論·文化的邏輯丨回顧街機“現代史”,從PUMP開始遊戲
- Linux 網路開發常見面試題回顧Linux面試題
- Rust 1.0釋出一週年,發展回顧與總結Rust
- 回顧 Linux 和開源技術 2014 的大起大落Linux
- 從零開始的Flutter之旅: StatelessWidgetFlutter
- 從零開始的Flutter之旅: NavigatorFlutter
- 從零開始的Flutter之旅: ProviderFlutterIDE
- 從零開始的Flutter之旅: InheritedWidgetFlutter
- 開始Tornado的原始碼分析之旅原始碼
- 從這裡開始學習 LinuxLinux
- Java Web學習之旅開始JavaWeb
- 佟輝:回顧中國的開源浪潮
- 從Android Studio 開始的ARCore之旅Android
- 想試用Linux,這樣開始(轉)Linux
- 程式設計、出書、賽車……DHH 是如何兼顧這一切的?程式設計
- containerd 1.0 探索之旅AI
- 簡單回顧下過去這一年的工作
- 《實踐者的研究方法》——第2章軟體工程2.5這一切是如何開始的軟體工程
- 2013年Linux和開源界重要事件回顧Linux事件
- 從Hadoop開始的大資料之旅 - 75Hadoop大資料
- 一位程式媛回顧做軟體的這些年
- 兩年的工作回顧
- 回顧走上Linux運維路上的那點經驗Linux運維
- 基礎回顧
- Git指令回顧Git
- Linux 基礎回顧 之 程式與空間Linux
- Tita的OKR:如何開好 OKR 季度回顧會議?OKR
- 自學javase的回顧(2/10)Java