標籤:

十年回顧-我的Linux之路

2006年,我還在上大學,那一年,我在學校的圖書館裡看到了一本介紹Linux操作系統的書籍,覺得這個操作系統挺好玩的:可以根據自己的需要定製軟體,可以從源代碼編譯軟體,更重要的是,使用了這個系統,可以讓自己看起來與眾不同,人在年輕時,總是喜歡通過標新立異來刷存在感,就如同東莞電子廠里的小夥子小姑娘各種拉風的髮型。理想是豐滿的,現實卻是骨感的。在剛開始折騰Linux,總的來說,痛苦是多於快樂。那時書本上介紹的Linux發行版是Redhat9.0,但這個發行版在當時來說已經有點老,最重要的是它不支持SATA硬碟。而在硬體上,2006年IDE 硬碟已經逐漸被淘汰,SATA硬碟成為主流。有一天下午在圖書館看完書,覺得光看不練假把式,便跑到學校的列印店裡買了三張RH9.0的光碟,放到光碟機里去安裝。看到書本裡面介紹的啟動界面變成了現實,內心是相當的激動的。可是過了沒有多久,就出現了錯誤,提示無法識別到硬碟。那時候還沒有養成出現問題第一時間通過搜索引擎來找解決問題的方法,於是打電話給在軟體學校上學的同學,他沒有安裝過RH9.0,他向他的同學請教,他的同學說可能是硬碟沒有插好,讓我檢查硬碟的連接線。我檢查了過了,沒有問題。這才想起來通過百度搜索如何解決這個問題,網上有許多人都碰到了這個問題,解決的辦法主要為一是通過grub for dos,加上新版本的initrd.img和vmlinuz來進行引導 ,二是使用新版本的Fedora Core。我決定使用第一種方法,通過了折騰,讓我學習了通過硬碟引導來安裝操作系統。原來一直都覺得操作系統的安裝只能通過光碟來安裝,讓我開了眼界。

通過網路搜索,我知道了當時紅帽已經開始走新的產品路線,即Redhat9.0以後,產品分為企業版本的RHEL系列和Fedora Core系列。作為個人愛好者,選擇Fedora Core系列是再合適不過了,而Redhat9.0是2003年的發行版,對於喜歡折騰系統、追求新事物的我來說,顯然有點太老了。於是我的電腦成了雙系統,Windows XP+ Fedora。用了Fedora以後,發現Linux作為日常辦公來說,還是有許多不便。沒有QQ,沒有網銀插件,沒有下載軟體迅雷,mp3要載入插件才能播放,視頻也要安裝插件才能播放。那時候Windows平台有一些第三方QQ,比如珊瑚蟲QQ ,可以顯示對方IP,Linux平台也有第三方QQ,叫做LumaQQ,基於JAVA開發的。好不容易安裝了,但是太卡了。當然壁紙也是要換的,安裝完基本系統,第一件事就是將默認的桌面壁紙換成我的女神高圓圓。修改系統自帶的yum源地址,將地址改為國內地址,加速軟體包下載。用了Fedora一段時間,很快新鮮感就過去了,我這個人天生愛折騰,小時候在家裡就喜歡自製小刀、自製木梯子、自製弓箭、拉電線等,那一段時間經常泡在論壇上,主要是linuxsir.orgChinaunix.net,知道還有許多其它Linux發行版,比如SUSE, Mandrive, Debian,Ubuntu, Gentoo, LFS等。SUSE源於德國,許多人對於德國製造有良好的印象,因此對於德國產品總體有很好的印象,我也不例外。下載安裝了OpenSUSE,默認界面比較漂亮,包管理為yast,打包格式為rpm。畢業後進入星網銳捷做技術支持,主要客戶為金融行業,其中工商銀行和農業銀行都是SUSE 的客戶,那幾年我無數次安裝摺騰SUSE 系統,看著公司業務系統在SUSE上運行起來,對於SUSE系統還是比較有感情。微博問世以後,關注了SUSE的母公司Novell,參加了它舉辦的「我與SUSE Linux的故事」活動中,我成功中獎,獲得巨獎一個「OpenSUSE 10光碟一張」。2006年,Ubuntu母公司為了推廣Ubutntu Linux,在全球範圍內免費贈送Ubuntu光碟活動,聽聞有公司免費送東西,我也在其官網填寫了申請,兩個星期以後,收到了從荷蘭阿姆斯特丹還是鹿特丹寄來的光碟。Ubuntu為了推廣也是蠻拼的,這個國際快遞的成本可不低,那幾年其花在免費送光碟行動的費用應該不少,用現在的話來說就是「有錢任性」。

繼Ubuntu全球免費送光碟以後,SUN也推出了這樣的活動。我也申請了光碟。申請了以後就放在書架里吃灰塵,繼續折騰Linux系統。安裝過Mandrive,Debian, Ubuntu這三個版本,覺得自己的Linux水平沒有什麼進展,論壇上稍微有一點難度的問題就回答不了。怎麼突破這個困境,讓Linux水平得到提升呢?我苦苦思索著。直到後來在linuxsir論壇碰到Gentoo Linux。這個系統的創始人原來是FreeBSD的大神,玩膩了FreeBSD系統,就轉到Linux陣營了。在Linux陳營中deb和rpm包管理機製為主流的情況下,他使用portage樹進行包管理,同時操作系統採用滾動升級。由於安裝比較麻煩,在國內Gentoo Linux屬於小眾發行版本。

國內目前將Gentoo用於商業應用的公司是豆瓣網,其號稱是全國文藝青年聚集地。deb和rpm打包的Linux發行版,一般來說用戶都是直接下載iso刻盤安裝,一路Next即可安裝完成,可Gentoo並不是這樣。Gentoo官網提供LiveCD(稱為mini CD)、Stage3、portage,安裝的方法是通過miniCD啟動基本系統,雖說是miniCD,但啟動以後還是有圖形界面,桌面管理器為XFCE,一個Linux平台下的輕量級桌面管理工具。Stage3其實就是官網將最新的Gentoo Linux 系統的根目錄去除/dev /proc等目錄打包的結果。通過miniCD進入系統,設置網路、DNS、rsync地址,對硬碟進行分區格式化,再解壓Stage3,將Stage3解壓到硬碟的根目錄,再將portage解壓到/usr目錄。在miniCD中,系統的根目錄為虛擬目錄。現在需要將系統的根目錄切換到硬碟中,通過chroot命令來切換。Stage3是不包括編譯好的操作系統內核的,因此需要先到Gentoo官網下載內核源碼到本地編譯。相對於Redhat的在線包管理工具yum,Gentoo的包管理工具為emerge。第一次下載內核源碼,手動編譯內核,重啟系統,悲劇了:kernel panic了。是沒有將SATA 控制器驅動編譯進內核,導致了無法啟動。又是一番搜索,發現Gentoo可以將miniCD中的/proc/.config.gz這個當前內核的配置文件提取出來編譯內核,命令為emerge genkernel。

編譯安裝完內核,修改grub.conf文件,可以進入基本系統了。這個系統看起來還是有點low,因為與用戶交互只有命令行,沒有圖形界面,需要自己安裝窗口管理器。我一開始接觸Linux,接觸到的窗口管理器是Gnome,但在Gentoo中,我採用的是編譯安裝軟體的方法,Gnome里包含的軟體包多達幾十個,如果全部在本地編譯安裝,時間長,耗電量大。好在Gentoo官方也考慮到這個問題,提供了只包含Gnome基本組件的Gnome-lite,以我當時的電腦配置,編譯安裝完Gnome-lite大約需要1個小時。為了使Gentoo看來像一個可用的操作系統而不只是一個玩具,我在其上編譯安裝了OpenOffice,這個耗時更長。為此,我晚上睡覺之前敲了emerge openoffice,第二天早上起來,終於安裝完成。那時候,同宿舍的弟兄都在昏天黑地地玩遊戲,他們看到我的電腦屏幕冒出大量的編譯軟體時跳過的字元,總是在上廁所經過時好奇地圍觀一會兒。

Gentoo Linux對我產生的較大的影響,首先是Gentoo的創始人叫做Daniel Robert,我也將自己的英文改為Daniel,將自己的ID 改為gentoofly。在使用Fedora時,知道Linux可以手動編譯源代碼,但幾乎都有軟體包都有現成rpm包,所以就沒有自己編譯源碼包,而到了Gentoo這兒,通過一個命令即可以編譯源碼包,敲下一條emerge xxx命令,身體後仰在椅背上看著屏幕上迅速跳過的字元,一股成就感油然則起。更重要的是,通過安裝Gentoo Linux,可以更深入理解Linux操作系統的基本組成,需要手動去配置、編譯內核,Linux窗口管理器的配置,Gnome軟體包具體包括了哪些包。有時候,順境不會讓人學到東西,逆境更容易讓人成長。安裝Redhat系列Linux很容易,只要安裝過Windows的人,在個人電腦上安裝一路Next幾乎沒有問題,但這個過程很順利也學不到什麼東西,如果安裝Gentoo,在安裝過程中肯定會碰到各種問題,一邊解決問題一邊學習,等到安裝好系統,也學習了不少知識。而且這種在實戰中學到的知識,比在本書中學到了知識印象更加深刻,記得再牢固。

安裝摺騰各種版本Linux操作系統,成了我大學生活很重要的一部分,也成了畢業後的一種回憶。對於男人來說,折騰各種版本的Linux就像是與不同的女孩子相處,通過不斷地相處、磨合、了解各自的優缺點,最終才能找到合適的人生伴侶。

大學畢業前,由於這些折騰經歷,找到了一份實習工作,從事系統集成的技術支持。時間過得很快,轉眼已經是2016年,距離我初次接觸Linux已經10年了,這10年里,我畢業、結婚、生子,工作也換了一份,進入國內Linux廠商從事研發與技術支持工作。工作中使用的是Linux發行版也從Debian到SUSE,再到公司自己的版本。這十年里,Ubuntu在南非富翁的頂力支持下,從默默無聞一躍成為全球知名Linux發行版本,Android從無到有並很快成為了智能手機第一操作系統。Linux早已是伺服器的第一操作系統,但在桌面操作系統方面,Linux還只有很小的市場份額,還不如蘋果的Mac OSX,在網路上認識的很多Linux愛好者,都從桌面Linux系統轉到了Mac OSX平台。我現在的主力電腦也是Macbook。這似乎是很多Linux愛好者的選擇,上學以及剛畢業那幾年,愛折騰,使用Linux當桌面,參加工作有了家庭以後,各種瑣事佔據了大量時間,就沒有精力折騰Linux桌面了,又怕病毒,那還是直接使用Macbook來得方便。


推薦閱讀:

openvswitch有什麼用?
感覺autoconf真不太好用,有何替代方案?
Linux頁表中虛擬內存地址如何映射到硬碟數據塊地址?
mount --bind 可以算是ln一個目錄么?

TAG:Linux |