版權所有,
引用請註明出處
認識 Linux
1.0 話說UNIX/Linux~皇圖霸業談笑間
UNIX
GNU
Linux
1.1 學習Linux的態度~一沙一世界的恆河沙
1.2 Linux已飛入尋常百姓家
1.3 認識 Linux 發行版
安裝 Linux/選擇適當的學習機
空機安裝 Linux
虛擬機(Virtual Machine)安裝 Linux
利用硬碟抽取盒
top ^
1.0 話說UNIX/Linux~皇圖霸業談笑間
很多人可能都不會想到現今的電腦科技基礎,從硬體的電晶體(Transistor),雷射(Laser)到軟體的 C/C++ 語言到 UNIX 作業系統都由和電腦沒直接關系的美國電信業者 AT&T 發明的。什麼是 UNIX 和 Linux
有什麼關係呢?始於為了爭奪武林絕學而引起的一埸江湖腥風血雨。
UNIX
「天下風雲出我輩,一入江湖歲月催,皇圖霸業談笑間,不勝人生一場醉」這是金庸<笑傲江湖>中東方不敗的自嘲,東方不敗自宮練成絕學〝葵花寶典〞仍還在自問「誰能笑傲江湖」?
誰能笑傲江湖?不是東方不敗而是自二戰到網路泡沫其間的西方不敗~〝AT&T〞。
AT&T -美國電信霸主,內有一煉丹習武秘密基地〝貝爾實驗室〞(Bell Laboratories)。
煉丹習武聖地的貝爾實驗室在其間煉成電晶體神丹,打造見血封喉暗器-雷射死光,並修成如入幻境的 C/C++ 和 UNIX
等神功,每項絕學都獨步武林,也唯有貝爾實驗室可在電腦,半導體和電信等許多領域稱霸和笑傲江湖。
後來美國朝廷深怕貝爾實驗室再練神功會威脅朝廷,對 AT&T 斷其龍脈進行反托拉斯法 (Antitrust) 拆分。AT&T
龍脈被破後貝爾實驗室也被斷六脈廢武功和遇網路泡沫而日薄西山,「天下風雲出我輩,一入江湖歲月催」真是貝爾實驗室的最佳寫照。
1970 年代當時貝爾實驗室的
Dennis Ritchie 和 Ken Thompson 等人用迪吉多 (Digital Equipment Corporation) 的16 bit 迷你電腦〝PDP-11〞 開發出 UNIX。因當時
AT&T 在美國雇用超過一百萬人,幾乎比美國政府的公務員還多,可說是美國的地下政府,喊水會結凍富可敵國,對 UNIX
的版權不放在眼裡。另一方面也怕美國朝廷以反托拉斯法將 AT&T 拆散,故將 UNIX 和其原始碼(source code)開放給美國許多大學或半賣半送授權給企業使用,但 UNIX 的〝多人多功〞的深厚內力,立刻驚動萬教,轟動武林。
後來一代宗師的西方不敗~AT&T 後悔了想回收版權,但已外傳的絕學衍生出許多派別如 BSD、System V、Solaris、AIX、SCO、IRIX,HP/UX、Xenix、,NextStep...等錯綜複雜,比愛因斯坦的<相對論>還難懂 。
至今 UNIX
到底那些是合法的受權那些是開放其間合法的改版,到最後是授權給誰是爛帳一本沒人弄的懂,。到現在還時常有廠商跳出來宣稱擁有 UNIX
最終合法的授權而告另一廠商山寨侵權。一代武林絕學到最後竟淪為法律大戰,AT&T 也沒能從 UNIX 得到應得的利潤,江湖不講倫理道義只講法律「天下負我,卻說我負天下人」,文成武德的西方教主不免也感嘆「皇圖霸業談笑間,不勝人生一場醉」。
(一些從 AT&T UNIX 衍生出的徒子徒孫版本或自行開發和 UNIX 相容的版本,為了有別於正宗
AT&T 的 UNIX 統稱〝UNIX-like〞。)
GNU
眼見各大門派為了一統江湖掌握 UNIX 陷入法律大戰,偷練 UNIX 神功就會被 AT&T
和自稱有版權的門派發出武林追殺令,你死我活江湖道德早已淪喪。
此時江湖清流 Richard Stallman 於 1983
年發起 GNU 宣言,成立〝自由軟體基金會〞(Free
Software Foundation,FSF),號召各路好漢放棄己見開發相容 UNIX 的自由作業系統。雖有志加入 GNU
的高手如雲,其間也完成了 C compiler GCC、文字編輯器 Emacs 和 UNIX
的程式函式庫(Library)等,但火候不夠,一直無法煉成 UNIX 所需最重要的核心。
Linux
1987 年,仙風道骨高人 Andrew S.Tanenbaum 教授,在沒參考 AT&T 的 source code
下,自行打通任督二脈,獨立開發出相容 UNIX 的〝Minix〞,但 Andrew 志在杏壇和出書立作,兩袖清風對紅塵俗事一點興趣也沒有。
1991 年,骨骼精奇,萬中無一的少年奇才芬蘭 Linus Torvalds 知道 Andrew 的
Minix 志不在江湖,於是讀完 Andrew 教授相關的武林秘笈後吸收其精華,閉關修練自己相容 UNIX 的核心〝Linux〞。幾個月後出關,一時金光閃閃,瑞氣千條已練成 Linux 大法。在網路上發英雄帖說道:「Hello everybody out there
using minix- I'm doing a (free) operation system」。一時之間震動武林,奔相走告。
GNU 有 compiler GCC 和 UNIX 程式函式庫,獨缺 Kernel。西域芬蘭奇才 Tovalds 則有 Kernel~〝Linux〞,兩大門派結合就是一套完整可獨步武林一統江湖的作業系統,這雙壁合一就叫〝GNU/Linux〞。但這二大門派也志不在〝皇圖霸業〞而在〝道濟天下之溺〞故採
GNU 精神:〝自由地使用、複製、修改和發布〞以救蒼生。因是兩大門派結合,嚴格來說目前所說的 Linux 應叫〝GNU/Linux〞,但多數人仍叫
Linux。
^ back on top ^
1.1 學習Linux的態度~一沙一世界的恆河沙
某天佛陀考弟子數學;<金剛經>記載這一有趣的〝沙等恆河〞數學題 :
<金剛經>曰:「須菩提!如恆河中所有沙數,如是沙等恆河,於意云何?是諸恆河沙寧為多不?」
翻為白話為「須菩提! 恆河中所有沙的數量,每顆沙粒又代表一條恆河,沙共有多少?沙多不多?」(〝沙等恆河〞意思為〝和沙同等數量的恆河〞)
翻為數學為「須菩提! 恆河沙的數量 x 恆河沙的數量 =多少顆沙? 多不多?」
佛陀的數學難題兩千年後另一神祇〝谷歌大神〞算出了答案,在 Google 輸入「恆河沙 * 恆河沙」google 竟算出答案為
「1.0 x 10104」。
谷歌大神的〝神諭〞恆河沙數=1052 ?! 神諭總是晦澀難懂, 為什
不是 1040 或是 1020 ?反正也無從反證,對人來說 1020 已是無限, 1040 也是無限,1052 還是無限。
好比說如我欠了別人 1 億和欠別人 10 億或 100
億是一樣的,死豬不怕熱水燙反正我都還不起,只能雙手一攤擺爛。
回到佛陀的考題:「恆河沙數 x 恆河沙數」以數學來解為 ∞ x ∞ = ∞, 所以恆河沙數 x 恆河沙數=恆河沙數(無限 x 無限還是等於無限);故〝沙等恆河沙〞=〝恆河沙〞。
恆河沙又和 Linux 有什麼關係?
常有人說「源碼之前了無秘密」,Linux 雖號稱開源(Open Source)但卻滿是秘密,有開源=沒開源,因所釋出的原始碼=恆河沙數。
Torvalds 剛釋出 Kernel 只有約 10,000 行的原始碼,後經各路英雄共同努力,只能用日進千里來形容。以 2005 年釋出的
Kernel 版本 2.6.12 來說,有近七百萬行的原始碼,四年後的版本 2.6.30 更暴增到一千多萬行的原始碼。
下表為 Linux Kernel 版本和原始碼的行數 (資料來源 The Linux Foundation:http://www.linuxfoundation.org)
Kernel version source line of code |
Kernel Version |
Files |
Lines |
Release Date
(YY/MM/DD) |
2.6.12 |
17,360 |
6,777,860 |
2005/05/17 |
2.6.13 |
18,090 |
6,988,800 |
2005/08/28 |
2.6.14 |
18,434 |
7,143,233 |
2005/10/27 |
2.6.15 |
18,811 |
7,290,070 |
2006/01/02 |
2.6.16 |
19,251 |
7,480,062 |
2006/03/19 |
2.6.17 |
19,553 |
7,588,014 |
2006/06/17 |
2.6.18 |
20,208 |
7,752,846 |
2006/09/19 |
2.6.19 |
20,936 |
7,976,221 |
2006/11/29 |
2.6.20 |
21,280 |
8,102,533 |
2007/02/04 |
2.6.21 |
21,614 |
8,246,517 |
2007/04/25 |
2.6.22 |
22,411 |
8,499,410 |
2007/07/08 |
2.6.23 |
22,530 |
8,566,606 |
2007/10/09 |
2.6.24 |
23,062 |
8,859,683 |
2008/01/24 |
2.6.25 |
23,813 |
9,232,592 |
2008/04/16 |
2.6.26 |
24,273 |
9,411,841 |
2008/07/13 |
2.6.27 |
24,356 |
9,630,074 |
2008/10/09 |
2.6.28 |
25,276 |
10,118,757 |
2008/12/24 |
2.6.29 |
26,702 |
10,934,554 |
2009/03/23 |
2.6.30 |
27,911 |
11,560,971 |
2009/06/09 |
2020年1月1日 更新 Linux 原始碼已暴漲到2780萬行。 (資料來源 https://www.phoronix.com/news/Linux-Git-Stats-EOY2019)
不管 Linux 的原始碼七百萬行或二千多萬行對一般人來說都是無限,
Linux 恆河沙數的原始碼,代表擁有沙等恆河的能力和複雜度。
〝解空第一〞的須菩提面對〝沙等恆河〞的無限的數學題,應是把無窮〝解空〞,不取於相,如如不動,不被無量的恆河沙數所〝著相〞。
<莊子-養生主>說「吾生也有涯,而知也無涯,以有涯隨無涯,殆已」(以有限的生命去追求無限的知識是不可能的.不要被無量無數無邊的知識所〝著相〞)也可以套用在 Linux,「吾生也有涯,而 Linux 也無涯,以有涯隨無涯,殆已」。
所以對於想要學習研究 Linux 的人,窮其一生也無法了解所有的功能。故學習沙等恆河能力和複雜度的
Linux 態度應把〝沙等恆河〞改〝沙等於恆河〞;好好研究一粒沙等於了解整個恆河,研究一粒沙就好,一粒沙就是一個世界。
所以 user 可以選一兩個自己比較感興趣的項目開始,可先用 Linux 取代 Windows 來完成日常工作,或了解 Linux 網路架構或 Shell Script,或
Kernel 某個原理等。〝弱水三千只取一瓢〞,太貪心〝著相〞全部都想學可會〝溺水三千〞。
^ back on top ^
1.2 Linux已飛入尋常百姓家
歐盟 2011年根據分析網路流量來統計 PC 所使用的作業系統,Linux 市佔約 0.9% 而 Windows 壓倒性的佔 90% 如下表
(資料來源 http://www.atinternet.com/Default.aspx)
PC OS Market Share 2011 |
OS |
Share |
Windows |
89.60% |
Mac OS |
8.70% |
Linux |
0.90% |
Other |
0.80% |
Linux 在 PC 上的市佔比起 Windows 少的可憐,那學 Linux 好像沒什麼用?換個競技場, Linux
可就逆轉勝。
根據〝世界超級電腦
500 強〞的統計,2010年世上最快速的超級電腦,前
500 強使用 Linux 作為其作業系統佔 91.8%,且前 30 名都是 Linux,而 Windows 在超級電腦只剩 3.8%,這也反應出 Linux/UNIX 在執行關鍵任務和多人多工和多 CPU 的環境比 Windows 強太多了。
下表為世界超級電腦
500 強,作業系統的市佔(資料來源
http://www.top500.org)
TOP500 OS Market Share 2010 |
OS |
Share |
Linux |
91.8% |
UNIX |
3.8% |
Winodws |
3.2% |
Other |
0.2% |
或許超級電腦離我們太遠,一般人用不到。其實 Linux 就在你身邊,目前智慧手機(smartphone)的出貨量已超過
PC,而智慧手機的作業系統,可說是 Linux/UNIX 的天下。
Apple 的 iPhone 作業系統為 iOS 其實是
UNIX-like,hTC/Samsung 等智慧手機的 Android,更是直接用 Linux 的 Kernel
來打造。在這領域
Microsoft 的 Windows Mobile 是少的可悲的 7%, Linux 不再躺在超級電腦裡,已飛入尋常百姓家。
下表為智慧手機作業系統的市佔
(資料來源www.nielsen.com )
Share of
worldwide 2011 Q3 smartphone by OS |
OS |
Share |
Android |
40% |
Apple iPhone iOS |
32% |
RIM |
11% |
Windows Mobile |
7% |
Other |
3% |
Unknow |
7% |
Last updated : June 23 2015
Linux 發行版 Ubuntu 把 Microsoft 長期壟斷市佔列為天字第一號 Bug,因行動裝置的掘起,Linux 的市佔已超過 Windows,因此 2013 五月 Ubuntu 公告此天字一號 Bug 已修正無誤[註]。
^ back on top ^
1.3 認識 Linux 發行版
習慣使用微軟 Winodws 的人,可能知道目前主流的 Windows 版本有 XP/Win7/Win10 等, 但對於 Linux 的版本如 Redhat、Fedora、Debian、GentOS、Ubuntu、SUSE 等常覺一頭霧水。
在話說 Unix/Linux有提到目前所謂的 Linux 正確應叫應 GNU/Linux;是兩大門派 GUN 和 Linux 雙壁合一。但 GNU/Linux 這二合一事實上就只有 Kernel+程式函式庫和一些工具軟體,這些都只是〝軟體零件〞只有駭客(Hacker)級的高手才有辦法把這些軟體零件組裝起來使用。於是就有許多公司或團體或個人幫忙把這些軟體零件組裝再加上一些應用軟體組成〝成品〞再釋出即稱〝Linux 發行版〞(Linux distribution) 或稱〝Linux 套件〞,也有人稱〝Linux 版本〞。
據非正式的統計目前活躍的發行版超過 200種,由於每一發行版預設的目地不一樣,所以包裝的應用軟體和使用環境不一樣,下為幾種國內比較常見的 Linux 發行版。
- Debian:
完全學院派氣息,不受任何商業公司控制和贊助,但志願開發者眾多,堅守〝Unix 風格〞和〝自由軟體精神〞這兩大聖經,市面上許多的發行版都基於 Debin 。
- Ubuntu:
相當注重易用性把〝Linux Windows 化〞,會操作 Windows 應就可馬上上手。
- Redhat/SUSE/GentOS/RockyLinux :
目標為企業用,特別注重穩定,適合來當伺服器(Server)或工作站(Workstation),部分版本會收服務費。(Last updated : Sep09 2022:「CentOS 團隊於 2020 年 12月8宣佈,CentOS 將僅維護至2021年底不再更新」 )
- Fedora/Open SuSE:
為通用發行版,可當工作站、桌面以及伺服器。
^ back on top ^
安裝 Linux/選擇適當的學習機
俗話說「百聞不如一見,百見不如自己做一遍!」「迷者師度,悟者自度」 要〝自度〞學 Linux 一定要親自操作,故不可免要有一台 PC 來當學習機 ,這裡對 Linux 學習機的選擇和要求以不危及服役中的硬碟為原則。
- 空機安裝 Linux
這對〝空機〞的定義為〝硬碟的資料都不要了〞,因 Linux 的安裝,難免因操作不熟或不小心而把硬碟資料都殺掉故請確認學習機中的硬碟資料都已備份或不要了。
如要用舊 PC 來當學習機,再加上服役中的 PC,可能滿桌都被螢幕和鍵盤佔據。此時可用〝KVM 切換器〞來讓二台 PC 共用周邊可節省投資和空間。
〝KVM〞為鍵盤(Keyboard)、螢幕(Video)、滑鼠(Mouse)三個輸出/入周邊的縮寫,〝KVM 切換器〞功能為讓二台以上的 PC 共用一組鍵盤、螢幕和滑鼠,如下為KVM 切換器的方塊圖 。

<圖片來源
http://en.wikipedia.org/wiki/KVM_switch>
有些的 KVM
切換器可利用鍵盤上的〝熱鍵〞(hotkey)自由切換所控制的 PC,一般的 3C
賣埸應都用在賣。以學習機用的2~4埠為例,價格約幾佰元到幾仟元,另外購買時鍵盤和滑鼠是有分 USB 或 PS/2介面,螢幕有分
D-SUB/DVI/HDMI 等介面不要買錯!如不知如何選擇可參考 KVM 大廠〝宏正科技〞(ATEN) SOHO 解決方案相關產品 (參考
http://www.aten.com.tw/)。
- 虛擬機(Virtual Machine)安裝 Linux
市埸上〝虛擬機〞(Virtual Machine)軟體有許多,Dell 公司的〝VMware〞主要市場在企業關鍵運算,而
Oracle 的 VirtualBox 為免費很適合來當 Linux 學習機。
VirtualBox 資訊和下載可參考官網:http://www.virtualbox.org/ 。
什麼是〝虛擬機〞?其實這概念在戰國時代就有了,在古代叫〝物化〞。
<莊子-齊物論>記載『莊周有一次〝覺得〞自己是隻自得快樂飛舞的蝴蝶,自己就是蝴蝶,忽然〝醒來〞是莊周夢到自己是蝴蝶。此時莊周迷惑自問:「說不定是蝴蝶夢到莊周,醒來是蝴蝶;而不是莊周夢到蝴蝶。」』
是莊周夢蝶?還是蝶夢莊周?
夢和醒之間如幻似真的糾纏交錯,千年來一直困擾哲人和騷人墨客,莊子稱這種如幻似真(或許如真似幻)的境界為〝物化〞。
或許我們沒莊子的〝物化〞神通,也沒騷人墨客有〝蝶夢〞雅致。我好像只有春夢 但 PC 的作業系統只要利用〝虛擬機〞馬上有〝物化〞的神通,可讓原本安裝的作業系統物化成另一作業系統,而物化成的作業系統會和〝莊周夢蝶〞中的蝴蝶一樣,虛實難辨。
如家中沒多餘的舊電腦,可用服役中的 Windows 利用〝虛擬機〞(Virtual Machine)來安裝 Linux。就好比
Windows〝夢到〞自己是 Linux,而夢到的 Linux 操作和真正安裝的 Linux 是一樣的。
用虛擬機好處之一是不會因練習 Linux
時操作不當把硬碟資料都 format 掉(因只是夢),
另一個優點為仍可保留原熟悉的 Windows 作業系統。用虛擬機讓 Windows 跑 Linux,〝Linux 皮 Windows 骨〞的電腦,同時可跑 Windows 的應用軟體,也可執行 Linux 程式,那麼使用中的作業系統是 Windows 還是 Linux ?是周是蝶? 還是亦周亦是蝶? 「〝色〞(實體)不異〝空〞(虛擬),空不異色」。
上例中原作業系統 Windows 叫〝宿主作業系統〞(Host OS) 夢中的作業系統
Linux 叫〝寄生作業系統〞(Guest OS),當然反之也可把 Linux 當 Host ,無論如何 Guest OS 是不知自己被虛擬出來的。
兩千年前莊子(或許是蝶)殘夢未醒,分不清是莊周還是蝴蝶,兩千年後西方也有一隻有名的飛蝶;約 1947 年,在美國一台運算中的真空管電腦忽然當機了,後來維修人員發現電腦當機原因是因電腦有 Bug, 是一隻飛進真空管電腦的飛蛾,短路了電路而使電腦當機。史上的第一支電腦 Bug,如其名〝Bug〞真的是一隻蟲,一隻把電腦短路的飛蛾;後來延伸電腦有問題就叫臭蟲(Bug),電腦的除錯叫捉蟲(Debug)。
其實據我的〝考證〞史上的第一支電腦 Bug 發生在中國,戰國時期的莊子把自己的〝色身〞當電腦的硬體,用大腦當軟體玩起〝虛擬機軟體〞實驗。或許是羽化成蝶比較快樂,或是莊子發現自己其實是蝴蝶,或者莊子也分不清自己是周還是蝶而〝當機〞了。
飛蛾在古今中外都引起當機。不同的是莊子對誤闖的飛蛾〝物化〞合而為一;「天地與我並生,而萬物與我為一」,天地萬物皆可並生,故對那飛蛾所引起的〝美麗的錯誤〞一點也不急著去捉蟲 Debug。
拜虛擬機之賜.任何人都可輕易「Linux 與 Windows 並生,而各作業系與我為一」。怎可錯過神游太虛幻境?
市埸上虛擬機軟體比較有名的有 VirtualBox, VMware 和 Virtual PC等,有些是免費有些是付費的商業版,
Oracle 的 VirtualBox 為 Open Source 且免費,很適合來當 Linux 學習機。
下圖為 Windows 下利用 VirtualBox 跑 Linux。

- 利用硬碟抽取盒
如只有一台 PC,用硬碟抽取盒也是一種不錯的方法,想用不同的作業系統,只要抽取更換不同作業系統的硬碟即可,蠻方便的。
<SATA 硬碟抽取盒,圖片來源 https://www.orico.com.cn>
^ back on top ^
[註]資料來源〝Ubuntu Bug #1 Marked As Fixed By Mark Shuttleworth〞 http://www.webupd8.org/2013/05/ubuntu-bug-1-marked-as-fixed-by-mark.html 。