我是如何從一個電腦愛好者成爲職業系統管理員和 Linux 粉絲的。html
故事得從 1980 年中期我父母給家裏購買蘋果 ][c 開始。儘管很喜歡打遊戲,但我仍是很快被實用又好玩的 BASIC 編程迷住了。那個年代的人們仍是把電腦看成小一點的打字機對待,因此擁有「高級電腦技能」的人能夠輕鬆使用他們的魔法。linux
以用 BASIC 和點陣打印機自動生成懲罰做業來舉個例子。被罰寫兩百遍道歉時,我問老師我可不能夠用打字代替手寫。通過贊成後,我寫了 5 行 BASIC 語句來自動生成做業。另一個小技巧是用非可視化文本編輯器,好比用 AppleWorks 微調字體、行距和邊距,把學期論文「拉長」到要求的篇幅。git
對電腦的癡迷很快讓我獲得了帶有內存驅動卡和 x86 協處理器的蘋果 ][gs。那時候,調制解調器和 BBS 剛開始火起來,有了這樣的雙處理器系統後,我就能夠安裝各類琳琅滿目的軟件。可是因爲調制解調器 2400bps 的速度限制,對我天天都要下載幾 KB 的有趣東西造成了阻礙。我對蘋果癡迷一段時間,不久以後就換了。程序員
個人本科專業是計算機信息系統,研究生專業是計算機科學。本科教育主要使用我的電腦,不多涉及大型分時系統。研究生的時候纔開始真正有意思起來,撥號進入帶有互聯網鏈接的 Unix 簡直打開了新世界的大門。儘管我依然用着個人雙處理器 ][gs 來使用調制解調器還有寫寫論文,不過 Unix 系統真正吸引了個人注意力,由於它能夠訪問通用的 Telnet 遊戲、文件傳輸協議(FTP)、在線郵箱和進行 C 語言編程。當時 Gopher 很是受歡迎,特別是在咱們這羣終端用戶當中。github
被分到學院計算機部門是我研究生命運的轉折點,這個部門主管學校的計算機服務。學生們可使用 X Window 終端來登陸基於 Ultrix 的系統。大部分都是灰度的黑白界面,彩色處理在當時很是佔用 CPU,也很影響系統性能。也有一些彩色系統還不錯,可是這些機器都很慢。編程
我很喜歡那個時候,我有系統管理員權限並且工做是維護系統和網絡。我有一些很好的導師,他們對我選擇從事系統管理員而不是程序員起了關鍵做用(儘管我至今仍然熱愛編程)。服務器
稀缺是創造之母,當須要分享匱乏的學校電腦系統資源的時候,咱們學生們變得富有創造力。須要用電腦的學生是 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: opensource.com/article/20/…
做者:James Farrell 選題:lujun9972 譯者:Accelerator 校對:wxy