home products tech support contact us

 Linux 技術支援    ⇒   基礎篇    進階篇    補腦篇    指令索引    中⇒ENG
版權所有, 引用請註明出處

 認識 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 kernel line of code



不管 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 發行版。

^ back on top ^

安裝 Linux/選擇適當的學習機
俗話說「百聞不如一見,百見不如自己做一遍!」「迷者師度,悟者自度」 要〝自度〞學 Linux 一定要親自操作,故不可免要有一台 PC 來當學習機 ,這裡對 Linux 學習機的選擇和要求以不危及服役中的硬碟為原則。

^ 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