我的 Linux 故事:從 8 位發燒友到 Unix 系統管理員
故事得從 1980 年中期我父母給家裡購買[蘋果 ]c 開始。儘管很喜歡打遊戲,但我還是很快被實用又好玩的 BASIC 編程迷住了。那個年代的人們還是把電腦當作小一點的打字機對待,所以擁有「高級電腦技能」的人可以輕鬆使用他們的魔法。
以用 BASIC 和點陣印表機自動生成懲罰作業來舉個例子。被罰寫兩百遍道歉時,我問老師我可不可以用打字代替手寫。經過同意後,我寫了 5 行 BASIC 語句來自動生成作業。另外一個小技巧是用非可視化文本編輯器,比如用 AppleWorks 微調字體、行距和邊距,把學期論文「拉長」到要求的篇幅。
對電腦的痴迷很快讓我得到了帶有內存驅動卡和 x86 協處理器的蘋果 ][gs。那時候,數據機和 BBS 剛開始火起來,有了這樣的雙處理器系統後,我就可以安裝各種琳琅滿目的軟體。但是由於數據機 2400bps 的速度限制,對我每天都要下載幾 KB 的有趣東西形成了阻礙。我對蘋果痴迷一段時間,不久之後就換了。
探索 Unix
我的本科專業是計算機信息系統,研究生專業是計算機科學。本科教育主要使用個人電腦,很少涉及大型分時系統。研究生的時候才開始真正有意思起來,撥號進入帶有互聯網連接的 Unix 簡直打開了新世界的大門。儘管我依然用著我的雙處理器 ][gs 來使用數據機還有寫寫論文,不過 Unix 系統真正吸引了我的注意力,因為它可以訪問通用的 Telnet 遊戲、文件傳輸協議(FTP)、在線郵箱和進行 C 語言編程。當時 Gopher 非常受歡迎,特別是在我們這群終端用戶當中。
被分到學院計算機部門是我研究生命運的轉折點,這個部門主管學校的計算機服務。學生們可以使用 X Window 終端來登錄基於 Ultrix 的系統。大部分都是灰度的黑白界面,彩色處理在當時非常佔用 CPU,也很影響系統性能。也有一些彩色系統還不錯,但是這些機器都很慢。
我很喜歡那個時候,我有系統管理員許可權而且工作是維護系統和網路。我有一些很好的導師,他們對我選擇從事系統管理員而不是程序員起了關鍵作用(儘管我至今仍然熱愛編程)。
從 Unix 到 Linux
稀缺是創造之母,當需要分享匱乏的學校電腦系統資源的時候,我們學生們變得富有創造力。需要用電腦的學生是 Ultrix 工作站承受量的三到五倍,所以尋找資源往往是個難題(特別是要交付項目的時候)。在不需要圖形化顯示的時候,我們有一個 56k 的點對點協議的數據機池可供遠程系統訪問接入。但是找到一個有空餘資源的機器並共享系統進行源碼編譯通常會導致進度緩慢。和大部分人一樣,我發現晚上工作通常會有所幫助,但我還需要其它一些東西讓我的項目迭代快一點。
後來學校的一個系統管理員建議我去看一個免費提供的 Unix 系統。那就是 Linux,它被裝在 3.5 英寸的軟盤裡。多虧我們學校超快的 T1 線路,我很容易就搜索到新聞組和其他資源來學習如何下載它。它全是基於 32 位的英特爾 PC 機的,而我並沒有這一類的設備。
幸運的是,我在學校的工作讓我有機會接觸到堆積如山的廢舊電腦,所以命運的齒輪又開始旋轉起來。
我找到了足夠多的廢舊 PC 組裝了一個可靠的 80386 PC,帶有足夠內存(我確定不到 1GB),它有一個能用的顯卡、一個細纜(同軸)乙太網卡和一個硬碟。我所用的鏡像是 Linux 內核 0.98,我不記得它是不是正式發行版的一部分了(可能是 SLS)。我所記得的是,它有一系列的軟盤鏡像,第一張軟盤啟動內核和一個最小安裝程序,然後格式化硬碟,接著要求插入每個後續的軟盤來安裝 GNU 核心實用程序。在核心實用程序裝好並引導系統之後,你可以下載和安裝其他的軟體包鏡像,比如編譯器之類的。
這是我學術道路上巨大的福音。在沒有運行 X Window 顯示伺服器的情況下,這台電腦性能比學校的 Ultrix 工作站強很多。學校允許我把這台機器連到校園網路,掛載學校的學生網路文件系統(NFS)共享,並且能直接訪問互聯網。因為我的研究生課程用 GCC(還有 Perl 4)來完成大部分學生作業,所以我可以在本地進行開發工作。這使得我可以獨享關鍵資源,從而使我能夠更快速地迭代我的項目。
但是,這個方案不是完美的。硬體有時會有點不穩定(這可能就是它們被丟棄的原因),但我都能搞定。真正讓我感受到的是 Linux 和 Ultrix 在操作系統和系統庫層面的差異。我開始理解移植軟體到其他操作系統的意義,我可以自由地在任何地方開發,但是我必須以 Ultrix 編譯的二進位文件交付項目。在一個平台上完美運行的 C 語言代碼可能在另一個平台出錯。這非常令人沮喪,但是我可能本能的察覺到了早期 Linux 解引用空指針的方法。Linux 傾向於把它作為空操作處理,但是 Ultrix 會立即觸發核心轉儲和段錯誤 SIGSEGV。這是我第一次程序移植時的重大發現,正好在要交作業的幾天之前。這同時對我研究 C++ 造成了一些麻煩,因為我粗心地同時使用了 malloc()
/free()
和自動構造函數和析構函數處理,讓我的項目到處都是空指針炸彈。
研究生課程快結束的時候,我升級到了一台性能野獸工作站:一顆英特爾 486DX2 66MHz 晶元、一塊 SCSI 硬碟、一塊光碟機和一個 1024x768 RGB 顯示器,並且還用一個 16550 UART 串口卡完美地匹配了我的新 US Robotics V.Everything 牌數據機。它可以雙啟動 Windows 和 Linux 系統,但更重要的是顯卡和 CPU 的速度讓我的開發環境幸福感倍增。那台舊的 386 依然在學校服役,不過我我現在大部分繁重的功課和鑽研都轉移到了家裡。
和 Mike Harris 關於 90 年代的 Linux 故事類似,我真的對當時流行的 CD 集合很著迷。我住的附近有家新開的 Micro Center 計算機商店,這個寶庫充滿了電腦配件、高級專業書籍和你能想到的各種 Linux(以及免費的 Unix)CD。我還記得 Yggdrasil 和 Slackware 是我最喜歡的發行版。真正讓人難以置信的是 CD 存儲空間的巨大容量 —— 650MB!使它成為獲得軟體的必不可少的載體。是的,你可以用 56k 的速度下載,但是真的很慢。更別提大部分人負擔不起存檔這麼多供以後使用的閑置數據。
而到了今天
就是這些開啟了我長達 25 年的系統管理員的職業生涯和開源軟體的樂趣。Linux 一直是我事業和個人開發中的重要組成部分。最近我依舊醉心於 Linux(主要是 CentOS、RedHat 和 Ubuntu),但也經常從 FreeBSD 和其他炫酷開源軟體中得到樂趣。
Linux 讓我來到了 Opensource.com,我希望在這裡能回饋社區,為新一代電腦愛好者出一份力。
via: https://opensource.com/article/20/4/linux-story
作者:James Farrell 選題:lujun9972 譯者:Accelerator 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive