鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)
最近更新日期:2009/08/05
2. Torvalds的Linux發(fā)展
2.1 與Minix之間
2.2 對(duì)386硬件的多任務(wù)測(cè)試
2.3 初次釋出Linux 0.02
2.4 Linux的發(fā)展:虛擬團(tuán)隊(duì)的產(chǎn)生
2.5 Linux 的核心版本
2.6 Linux distributions
Torvalds的Linux發(fā)展
我們前面一節(jié)當(dāng)中,提到了Unix的歷史,也提到了Linux是由Torvalds這個(gè)芬蘭人所發(fā)明的。那么為何托瓦茲可以發(fā)明Linux呢? 憑空想象而來的?還是有什么淵源?這里我們就來談一談啰!
與Minix之間
Linus Torvalds(托瓦茲, 1969年出生)的外祖父是赫爾辛基大學(xué)的統(tǒng)計(jì)學(xué)家, 他的外祖父為了讓自己的小孫子能夠?qū)W點(diǎn)東西,所以從小就將托瓦茲帶到身邊來管理一些微計(jì)算機(jī)。 在這個(gè)時(shí)期,托瓦茲接觸了匯編語言(Assembly Language),那是一種直接與芯片對(duì)談的程序語言,也就是所謂的低級(jí)語言。 必須要很了解硬件的架構(gòu),否則很難以匯編語言撰寫程序的。
在1988年間,托瓦茲順利的進(jìn)入了赫爾辛基大學(xué),并選讀了計(jì)算機(jī)科學(xué)系。在就學(xué)期間,因?yàn)閷W(xué)業(yè)的需要與自己的興趣, 托瓦茲接觸到了Unix這個(gè)操作系統(tǒng)。當(dāng)時(shí)整個(gè)赫爾辛基只有一部最新的Unix系統(tǒng),同時(shí)僅提供16個(gè)終端機(jī)(terminal)。 還記得我們上一節(jié)剛剛提過的,早期的計(jì)算機(jī)僅有主機(jī)具有運(yùn)算功能,terminal僅負(fù)責(zé)提供Input/Output而已。在這種情況下, 實(shí)在很難滿足托瓦茲的需求,因?yàn)?....光是等待使用Unix的時(shí)間,就很耗時(shí)~為此,他不禁想到: 『我何不自己搞一部Unix來玩?』不過,就如同Stallman當(dāng)初的GNU計(jì)劃一樣,要寫核心程序,談何容易~
不過,幸運(yùn)之神并未背離托瓦茲,因?yàn)椴痪弥?#xff0c;他就知道有一個(gè)類似Unix的系統(tǒng), 并且與Unix完全兼容,還可以在Intel 386機(jī)器上面跑的操作系統(tǒng), 那就是我們上一節(jié)提過的,譚寧邦教授為了教育需要而撰寫的Minix系統(tǒng)! 他在購買了最新的Intel 386的個(gè)人計(jì)算機(jī)后,就立即安裝了Minix這個(gè)操作系統(tǒng)。 另外,上個(gè)小節(jié)當(dāng)中也談到,Minix這個(gè)操作系統(tǒng)是有附上原始碼的, 所以托瓦茲也經(jīng)由這個(gè)原始碼學(xué)習(xí)到了很多的核心程序設(shè)計(jì)的設(shè)計(jì)概念喔!
對(duì)386硬件的多任務(wù)測(cè)試
事實(shí)上,托瓦茲對(duì)于個(gè)人計(jì)算機(jī)的CPU其實(shí)并不滿意,因?yàn)樗芭龅挠?jì)算機(jī)都是工作站型的計(jì)算機(jī), 這類計(jì)算機(jī)的CPU特色就是可以進(jìn)行『多任務(wù)處理』的能力。什么是多任務(wù)呢?理論上, 一個(gè)CPU在一個(gè)時(shí)間內(nèi)僅能進(jìn)行一個(gè)程序, 那如果有兩個(gè)以上的程序同時(shí)出現(xiàn)到系統(tǒng)中呢?舉例來說, 你可以在現(xiàn)今的計(jì)算機(jī)中同時(shí)開啟兩個(gè)以上的辦公軟件,例如電子電子表格與文字處理軟件。 這個(gè)同時(shí)開啟的動(dòng)作代表著這兩個(gè)程序同時(shí)要交給CPU來處理~
啊!CPU一個(gè)時(shí)間點(diǎn)內(nèi)僅能處理一個(gè)程序,那怎么辦?沒關(guān)系,這個(gè)時(shí)候如果具有多任務(wù)能力的CPU就會(huì)在不同的程序間切換~ 還記得前一章談到的CPU頻率吧?假設(shè)CPU頻率為1GHz的話,那表示CPU一秒鐘可以進(jìn)行109次工作。 假設(shè)CPU對(duì)每個(gè)程序都只進(jìn)行1000次運(yùn)作周期,然后就得要切換到下個(gè)程序的話,那么CPU一秒鐘就能夠切換106次呢! (當(dāng)然啦,切換工作這件事情也會(huì)花去一些CPU時(shí)間,不過這里暫不討論)。這么快的處理速度下,你會(huì)發(fā)現(xiàn), 兩個(gè)程序感覺上幾乎是同步在進(jìn)行啦!
| Tips: 為什么有的時(shí)候我同時(shí)開兩個(gè)檔案(假設(shè)為A, B檔案)所花的時(shí)間, 要比開完A再去開B檔案的時(shí)間還要多?現(xiàn)在是否稍微可以理解? 因?yàn)槿绻瑫r(shí)開啟的話,CPU就必須要在兩個(gè)工作之間不停的切換~ 而切換的動(dòng)作還是會(huì)耗去一些CPU時(shí)間的!所以啰,同時(shí)啟用兩個(gè)以上的工作在一個(gè)CPU上, 要比一個(gè)一個(gè)的執(zhí)行還要耗時(shí)一點(diǎn)。這也是為何現(xiàn)在CPU開發(fā)商要整合兩個(gè)CPU于一個(gè)芯片中! 也是為何在運(yùn)作情況比較復(fù)雜的服務(wù)器上,需要比較多的CPU負(fù)責(zé)的原因! |
早期Intel x86架構(gòu)計(jì)算機(jī)不是很受重視的原因,就是因?yàn)閤86的芯片對(duì)于多任務(wù)的處理不佳, CPU在不同的工作之間切換不是很順暢。但是這個(gè)情況在386計(jì)算機(jī)推出后,有很大的改善。 托瓦茲在得知新的386芯片的相關(guān)信息后,他認(rèn)為,以性能價(jià)格比的觀點(diǎn)來看, Intel的386相當(dāng)?shù)谋阋?#xff0c;所以在性能上也就稍微可以將就將就 ^_^。最終他就貸款去買了一部Intel的386來玩。
早期的計(jì)算機(jī)效能沒有現(xiàn)在這么好,所以壓榨計(jì)算機(jī)效能就成了工程師的一項(xiàng)癖好! 托瓦茲本人早期是玩匯編語言的,匯編語言對(duì)于硬件有很密切的關(guān)系,托瓦茲自己也說:『我始終是個(gè)性能癖』^_^。 為了徹底發(fā)揮386的效能,于是托瓦茲花了不少時(shí)間在測(cè)試386機(jī)器上! 他的重要測(cè)試就是在測(cè)試386的多功效能。首先,他寫了三個(gè)小程序,一個(gè)程序會(huì)持續(xù)輸出A、一個(gè)會(huì)持續(xù)輸出B, 最后一個(gè)會(huì)將兩個(gè)程序進(jìn)行切換。他將三個(gè)程序同時(shí)執(zhí)行,結(jié)果,他看到屏幕上很順利的一直出現(xiàn)ABABAB...... 他知道,他成功了! ^_^
圖2.2.1、386計(jì)算機(jī)的多任務(wù)測(cè)試
| Tips: 要達(dá)到多任務(wù)(multitasking)的環(huán)境,除了硬件(主要是CPU)需要能夠具有多任務(wù)的特性外,操作系統(tǒng)也需要支持這個(gè)功能喔! 一些不具有多任務(wù)特性的操作系統(tǒng),想要同時(shí)執(zhí)行兩個(gè)程序是不可能的。除非先被執(zhí)行的程序執(zhí)行完畢,否則, 后面的程序不可能被主動(dòng)執(zhí)行。 至于多任務(wù)的操作系統(tǒng)中,每個(gè)程序被執(zhí)行時(shí),都會(huì)有一個(gè)最大CPU使用時(shí)間,若該工作運(yùn)作的時(shí)間超過這個(gè)CPU使用時(shí)間時(shí), 該工作就會(huì)先被丟出CPU的運(yùn)作中,而再度的進(jìn)入核心工作排程中等待下一次被CPU取用來運(yùn)作。 這有點(diǎn)像在開記者會(huì)啦,主持人(CPU)會(huì)問『誰要發(fā)問』?一群記者(工作程序) 就會(huì)舉手(看誰的工作重要!),先舉手的自然就被允許發(fā)問,問完之后, 主持人又會(huì)問一次誰要發(fā)問,當(dāng)然,所有人(包括剛剛那個(gè)記者)都可以舉手! 如此一次一次的將工作給他完成啊! ^_^ 多任務(wù)的環(huán)境對(duì)于復(fù)雜的工作情況,幫助很大喔! |
初次釋出Linux 0.02
探索完了386的硬件之后,終于拿到Minix并且安裝在托瓦茲的386計(jì)算機(jī)上之后,托瓦茲跟BBS上面一堆工程師一樣, 他發(fā)現(xiàn)Minix雖然真的很棒,但是譚寧邦教授就是不愿意進(jìn)行功能的加強(qiáng),導(dǎo)致一堆工程師在操作系統(tǒng)功能上面的欲求不滿! 這個(gè)時(shí)候年輕的托瓦茲就想:『既然如此,那我何不自己來改寫一個(gè)我想要的操作系統(tǒng)?』 于是他就開始了核心程序的撰寫了。
撰寫程序需要什么呢?首先需要的是能夠進(jìn)行工作的環(huán)境,再來則是可以將原始碼編譯成為可執(zhí)行文件的編譯程序。 好在有GNU計(jì)劃提供的bash工作環(huán)境軟件以及gcc編譯程序等自由軟件, 讓托瓦茲得以順利的撰寫核心程序。他參考Minix的設(shè)計(jì)理念與書上的程序代碼,然后仔細(xì)研究出386個(gè)人計(jì)算機(jī)的效能優(yōu)化, 然后使用GNU的自由軟件將核心程序代碼與386緊緊的結(jié)合在一起,最終寫出他所需要的核心程序。 而這個(gè)小玩意竟然真的可以在386上面順利的跑起來~還可以讀取Minix的文件系統(tǒng)。 真是太好了!不過還不夠,他希望這個(gè)程序可以獲得大家的一些修改建議, 于是他便將這個(gè)核心放置在網(wǎng)絡(luò)上提供大家下載,同時(shí)在BBS上面貼了一則消息:
| Hello everybody out there using minix- I'm doing a (free) operation system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. I've currently ported bash (1.08) and gcc (1.40), and things seem to work. This implies that i'll get something practical within a few months, and I'd like to know what features most people want. Any suggestions are welcome, but I won't promise I'll implement them :-) |
他說,他完成了一個(gè)小小的操作系統(tǒng),這個(gè)核心是用在386機(jī)器上的, 同時(shí),他真的僅是好玩,并不是想要做一個(gè)跟GNU一樣大的計(jì)劃! 另外,他希望能夠得到更多人的建議與回饋來發(fā)展這個(gè)操作系統(tǒng)!這個(gè)概念跟Minix剛好背道而馳呢! 這則新聞引起很多人的注意,他們也去托瓦茲提供的網(wǎng)站上下載了這個(gè)核心來安裝。 有趣的是,因?yàn)橥型咂澐胖煤诵牡哪莻€(gè)FTP網(wǎng)站的目錄為:Linux, 從此,大家便稱這個(gè)核心為L(zhǎng)inux了。(請(qǐng)注意,此時(shí)的Linux就是那個(gè)kernel喔! 另外,托瓦茲所丟到該目錄下的第一個(gè)核心版本為0.02呢!)
同時(shí),為了讓自己的Linux能夠兼容于Unix系統(tǒng),于是托瓦茲開始將一些能夠在Unix上面運(yùn)作的軟件拿來在Linux上面跑。 不過,他發(fā)現(xiàn)到有很多的軟件無法在Linux這個(gè)核心上運(yùn)作。這個(gè)時(shí)候他有兩種作法, 一種是修改軟件,讓該軟件可以在Linux上跑, 另一種則是修改Linux,讓Linux符合軟件能夠運(yùn)作的規(guī)范! 由于Linux希望能夠兼容于Unix,于是托瓦茲選擇了第二個(gè)作法『修改Linux』! 為了讓所有的軟件都可以在Linux上執(zhí)行,于是托瓦茲開始參考標(biāo)準(zhǔn)的POSIX規(guī)范。
| Tips: POSIX是可攜式操作系統(tǒng)接口(Portable Operating System Interface)的縮寫,重點(diǎn)在規(guī)范核心與應(yīng)用程序之間的接口, 這是由美國(guó)電器與電子工程師學(xué)會(huì)(IEEE)所發(fā)布的一項(xiàng)標(biāo)準(zhǔn)喔! |
這個(gè)正確的決定讓Linux在起步的時(shí)候體質(zhì)就比別人優(yōu)良~因?yàn)镻OSIX標(biāo)準(zhǔn)主要是針對(duì)Unix與一些軟件運(yùn)行時(shí)候的標(biāo)準(zhǔn)規(guī)范, 只要依據(jù)這些標(biāo)準(zhǔn)規(guī)范來設(shè)計(jì)的核心與軟件,理論上,就可以搭配在一起執(zhí)行了。 而Linux的發(fā)展就是依據(jù)這個(gè)POSIX的標(biāo)準(zhǔn)規(guī)范,Unix上面的軟件也是遵循這個(gè)規(guī)范來設(shè)計(jì)的, 如此一來,讓Linux很容易就與Unix兼容共享互有的軟件了!同時(shí),因?yàn)長(zhǎng)inux直接放置在網(wǎng)絡(luò)下,提供大家下載, 所以在流通的速度上相當(dāng)?shù)目?#xff01;導(dǎo)致Linux的使用率大增!這些都是造成Linux大受歡迎的幾個(gè)重要因素呢!
Linux 的發(fā)展:虛擬團(tuán)隊(duì)的產(chǎn)生
Linux能夠成功除了托瓦茲個(gè)人的理念與力量之外,其實(shí)還有個(gè)最重要的團(tuán)隊(duì)!
- 單一個(gè)人維護(hù)階段
Linux雖然是托瓦茲發(fā)明的,而且內(nèi)容還絕不會(huì)涉及專利軟件的版權(quán)問題。 不過,如果單靠托瓦茲自己一個(gè)人的話,那么Linux要茁壯實(shí)在很困難~ 因?yàn)橐粋€(gè)人的力量是很有限的。好在托瓦茲選擇Linux的開發(fā)方式相當(dāng)?shù)膭?wù)實(shí)! 首先,他將釋出的Linux核心放置在FTP上面,并請(qǐng)告知大家新的版本信息, 等到使用者下載了這個(gè)核心并且安裝之后,如果發(fā)生問題, 或者是由于特殊需求亟需某些硬件的驅(qū)動(dòng)程序,那么這些使用者就會(huì)主動(dòng)回報(bào)給托瓦茲。 在托瓦茲能夠解決的問題范圍內(nèi),他都能很快速的進(jìn)行Linux核心的更新與除錯(cuò)。
- 廣大黑客志工加入階段
不過,托瓦茲總是有些硬件無法取得的啊,那么他當(dāng)然無法幫助進(jìn)行驅(qū)動(dòng)程序的撰寫與相關(guān)軟件的改良。 這個(gè)時(shí)候,就會(huì)有些志工跳出來說:『這個(gè)硬件我有,我來幫忙寫相關(guān)的驅(qū)動(dòng)程序。』 因?yàn)長(zhǎng)inux的核心是Open Source的,黑客志工們很容易就能夠跟隨Linux的原本設(shè)計(jì)架構(gòu), 并且寫出兼容的驅(qū)動(dòng)程序或者軟件。志工們寫完的驅(qū)動(dòng)程序與軟件托瓦茲是如何看待的呢? 首先,他將該驅(qū)動(dòng)程序/軟件帶入核心中,并且加以測(cè)試。 只要測(cè)試可以運(yùn)行,并且沒有什么主要的大問題,那么他就會(huì)很樂意的將志工們寫的程序代碼加入核心中!
總之,托瓦茲是個(gè)很務(wù)實(shí)的人,對(duì)于Linux核心所欠缺的項(xiàng)目,他總是『先求有且能跑, 再求進(jìn)一步改良』的心態(tài)!這讓Linux使用者與志工得到相當(dāng)大的鼓勵(lì)! 因?yàn)長(zhǎng)inux的進(jìn)步太快了!用戶要求虛擬內(nèi)存,結(jié)果不到一個(gè)星期推出的新版Linux就有了! 這不得不讓人佩服啊!
另外,為因應(yīng)這種隨時(shí)都有程序代碼加入的狀況,于是Linux便逐漸發(fā)展成具有模塊的功能! 亦即是將某些功能獨(dú)立出于核心外,在需要的時(shí)候才加載到核心中。如此一來, 如果有新的硬件驅(qū)動(dòng)程序或者其他協(xié)議的程序代碼進(jìn)來時(shí),就可以模塊化, 大大的增加了Linux核心的可維護(hù)能力!
| Tips: 核心是一組程序,如果這組程序每次加入新的功能都得要重新編譯與改版的話會(huì)變成如何? 想象一下,如果你只是換了顯示適配器就得要重新安裝新的Windows操作系統(tǒng),會(huì)不會(huì)傻眼? 模塊化之后,原本的核心程序不需要更動(dòng),你可以直接將他想成是『驅(qū)動(dòng)程序』即可! ^_^ |
- 核心功能細(xì)部分工發(fā)展階段
后來,因?yàn)長(zhǎng)inux核心加入了太多的功能,光靠托瓦茲一個(gè)人進(jìn)行核心的實(shí)際測(cè)試并加入核心原始程序?qū)嵲谔M(fèi)力~ 結(jié)果,就有很多的朋友跳出來幫忙這個(gè)前置作業(yè)!例如考克斯(Alan Cox)、與崔迪(Stephen Tweedie)等等, 這些重要的副手會(huì)先將來自志工們的修補(bǔ)程序或者新功能的程序代碼進(jìn)行測(cè)試, 并且結(jié)果上傳給托瓦茲看,讓托瓦茲作最后核心加入的原始碼的選擇與整并! 這個(gè)分層負(fù)責(zé)的結(jié)果,讓Linux的發(fā)展更加的容易!
特別值得注意的是,這些托瓦茲的Linux發(fā)展副手,以及自愿?jìng)魉托扪a(bǔ)程序的黑客志工, 其實(shí)都沒有見過面,而且彼此在地球的各個(gè)角落,大家群策群力的共同發(fā)展出現(xiàn)今的Linux, 我們稱這群人為虛擬團(tuán)隊(duì)!而為了虛擬團(tuán)隊(duì)數(shù)據(jù)的傳輸,于是Linux便成立的核心網(wǎng)站: http://www.kernel.org!
而這群素未謀面的虛擬團(tuán)隊(duì)們,在1994年終于完成的Linux的核心正式版!version 1.0。 這一版同時(shí)還加入了X Window System的支持呢!更于1996年完成了2.0版。此外,托瓦茲指明了企鵝為L(zhǎng)inux的吉祥物。
| Tips: 奇怪的是,托瓦茲是因?yàn)樾r(shí)候去動(dòng)物園被企鵝咬了一口念念不忘, 而正式的2.0推出時(shí),大家要他想一個(gè)吉祥物。他在想也想不到什么動(dòng)物的情況下, 就將這個(gè)念念不忘的企鵝當(dāng)成了Linux的吉祥物了...... |
Linux由于托瓦茲是針對(duì)386寫的,跟386硬件的相關(guān)性很強(qiáng),所以, 早期的Linux確實(shí)是不具有移植性的。不過,大家知道Open source的好處就是, 可以修改程序代碼去適合作業(yè)的環(huán)境。因此,在1994年以后,Linux便被開發(fā)到很多的硬件上面去了! 目前除了x86之外,IBM、HP、Sun等等公司出的硬件也都有被Linux所支持呢!
Linux的核心版本
Linux的核心版本編號(hào)有點(diǎn)類似如下的樣子:
| 2.6.18-92.el5 主版本.次版本.釋出版本-修改版本 |
如前所述,因?yàn)閷?duì)于Linux核心的開發(fā)者太多了,以致于造成Linux核心經(jīng)常性的變動(dòng)。 但對(duì)于一般家庭計(jì)算機(jī)或企業(yè)關(guān)鍵應(yīng)用的話,常變動(dòng)的核心并不適合的。因此托瓦茲便將核心的發(fā)展趨勢(shì)分為兩股, 并根據(jù)這兩股核心的發(fā)展分別給予不同的核心編號(hào),那就是:
- 主、次版本為奇數(shù):發(fā)展中版本(development)
如2.5.xx,這種核心版本主要用在測(cè)試與發(fā)展新功能,所以通常這種版本僅有核心開發(fā)工程師會(huì)使用。 如果有新增的核心程序代碼,會(huì)加到這種版本當(dāng)中,等到眾多工程師測(cè)試沒問題后,才加入下一版的穩(wěn)定核心中;
- 主、次版本為偶數(shù):穩(wěn)定版本(stable)
如2.6.xx,等到核心功能發(fā)展成熟后會(huì)加到這類的版本中,主要用在一般家庭計(jì)算機(jī)以及企業(yè)版本中。 重點(diǎn)在于提供使用者一個(gè)相對(duì)穩(wěn)定的Linux作業(yè)環(huán)境平臺(tái)。
至于釋出版本則是在主、次版本架構(gòu)不變的情況下,新增的功能累積到一定的程度后所新釋出的核心版本。 而由于Linux核心是使用GPL的授權(quán),因此大家都能夠進(jìn)行核心程序代碼的修改。因此,如果你有針對(duì)某個(gè)版本的核心修改過部分的程序代碼, 那么那個(gè)被修改過的新的核心版本就可以加上所謂的修改版本了。
Linux核心版本與distribution (下個(gè)小節(jié)會(huì)談到) 的版本并不相同,很多朋友常常上網(wǎng)問到:『我的Linux是9.x版,請(qǐng)問....』之類的留言, 這是不對(duì)的提問方式,因?yàn)樗^的Linux版本指的應(yīng)該是核心版本, 而目前最新的核心版本應(yīng)該是2.6.30(2009/08) 才對(duì),并不會(huì)有9.x的版本出現(xiàn)的。
妳常用的Linux系統(tǒng)則應(yīng)該說明為distribution才對(duì)!因此,如果以CentOS這個(gè)distribution來說, 妳應(yīng)該說:『我用的Linux是CentOS這個(gè) distribution,版本為5.x 版,請(qǐng)問....』才對(duì)喔!
| Tips: 當(dāng)妳有任何問題想要在Linux論壇發(fā)言時(shí),請(qǐng)務(wù)必仔細(xì)的說明妳的distribution版本, 因?yàn)殡m然各家distributions使用的都是Linux核心,不過每家distributions所選用的軟件以及他們自己發(fā)展的工具并不相同, 多少還是有點(diǎn)差異,所以留言時(shí)得要先聲明distribution的版本才行喔! ^_^ |
Linux distributions
好了,經(jīng)過上面的說明,我們知道了Linux其實(shí)就是一個(gè)操作系統(tǒng)最底層的核心及其提供的核心工具。 他是GNU GPL授權(quán)模式,所以,任何人均可取得原始碼與可執(zhí)行這個(gè)核心程序,并且可以修改。 此外,因?yàn)長(zhǎng)inux參考POSIX設(shè)計(jì)規(guī)范,于是兼容于Unix操作系統(tǒng),故亦可稱之為Unix Like的一種。
| Tips: 鳥哥曾在上課的時(shí)候問過同學(xué):『什么是Unix Like啊』?可愛的同學(xué)們回答的答案是:『就是很喜歡(like)Unix啦!』 囧rz...那個(gè)like是『很像』啦!所以Unix like是『很像Unix的操作系統(tǒng)』哩! |
- 可完全安裝的Linux發(fā)布套件
Linux的出現(xiàn)讓GNU計(jì)劃放下了心里的一塊大石頭,因?yàn)镚NU一直以來就是缺乏了核心程序, 導(dǎo)致他們的GNU自由軟件只能在其他的Unix上面跑。既然目前有Linux出現(xiàn)了,且 Linux也用了很多的GNU相關(guān)軟件,所以Stallman認(rèn)為L(zhǎng)inux的全名應(yīng)該稱之為GNU/Linux呢! 不管怎么說,Linux實(shí)在很不錯(cuò),讓GNU軟件大多以Linux為主要操作系統(tǒng)來進(jìn)行開發(fā), 此外,很多其他的自由軟件團(tuán)隊(duì),例如sendmail, wu-ftp, apache等等也都有以Linux 為開發(fā)測(cè)試平臺(tái)的計(jì)劃出現(xiàn)!如此一來,Linux除了主要的核心程序外,可以在Linux 上面運(yùn)行的軟件也越來越多,如果有心,就能夠?qū)⒁粋€(gè)完整的Linux操作系統(tǒng)搞定了!
雖然由Torvalds負(fù)責(zé)開發(fā)的Linux僅具有Kernel與Kernel提供的工具, 不過,如上所述,很多的軟件已經(jīng)可以在Linux上面運(yùn)作了,因此, 『Linux + 各種軟件』就可以完成一個(gè)相當(dāng)完整的操作系統(tǒng)了。 不過,要完成這樣的操作系統(tǒng)......還真難~ 因?yàn)長(zhǎng)inux早期都是由黑客工程師所開發(fā)維護(hù)的,他們并沒有考慮到一般使用者的能力......
為了讓使用者能夠接觸到Linux,于是很多的商業(yè)公司或非營(yíng)利團(tuán)體, 就將Linux Kernel(含tools)與可運(yùn)行的軟件整合起來,加上自己具有創(chuàng)意的工具程序, 這個(gè)工具程序可以讓用戶以光盤/DVD或者透過網(wǎng)絡(luò)直接安裝/管理Linux系統(tǒng)。 這個(gè)『Kernel + Softwares + Tools的可完全安裝』的咚咚,我們稱之為L(zhǎng)inux distribution, 一般中文翻譯成可完全安裝套件,或者Linux發(fā)布商套件等。
圖2.5.1、Linux可完全安裝發(fā)布套件
| Tips: 由于Linux核心是由黑客工程師寫的,要由原始碼安裝到x86計(jì)算機(jī)上面成為可以執(zhí)行的binary檔案, 這個(gè)過程可不是人人都會(huì)的~所以早期確實(shí)只有工程師對(duì)Linux有興趣。 一直到一些社群與商業(yè)公司將Linux核心配合自由軟件,并提供完整的安裝程序, 且制成光盤/DVD后,對(duì)于一般使用者來說,Linux才越來越具有吸引力! 因?yàn)橹灰恢薄合乱徊健痪涂梢詫inux安裝完成啊! ^_^ |
由于GNU的GPL授權(quán)并非不能從事商業(yè)行為,于是很多商業(yè)公司便成立來販賣Linux distribution。 而由于Linux的GPL版權(quán)宣告,因此,商業(yè)公司所販賣的Linux distributions通常也都可以從Internet上面來下載的! 此外,如果你想要其他商業(yè)公司的服務(wù),那么直接向該公司購買光盤來安裝,也是一個(gè)很不錯(cuò)的方式的!
- 各大Linux Distributions的主要異同:支持標(biāo)準(zhǔn)!
不過,由于發(fā)展Linux distributions的社群與公司實(shí)在太多了,例如在臺(tái)灣有名的Red Hat, SuSE, Ubuntu, Fedora, Debian等等,所以很多人都很擔(dān)心,如此一來每個(gè)distribution是否都不相同呢? 這就不需要擔(dān)心了,因?yàn)槊總€(gè)Linux distributions使用的kernel都是http://www.kernel.org所釋出的,而他們所選擇的軟件,幾乎都是目前很知名的軟件,重復(fù)性相當(dāng)?shù)母?#xff0c; 例如網(wǎng)頁服務(wù)器的Apache,電子郵件服務(wù)器的Postfix/sendmail,文件服務(wù)器的Samba等等。
此外,為了讓所有的Linux distributions開發(fā)不致于差異太大,且讓這些開發(fā)商在開發(fā)的時(shí)候有所依據(jù),還有Linux Standard Base (LSB)等標(biāo)準(zhǔn)來規(guī)范開發(fā)者,以及目錄架構(gòu)的File system Hierarchy Standard (FHS)標(biāo)準(zhǔn)規(guī)范! 唯一差別的,可能就是該開發(fā)者自家所開發(fā)出來的管理工具,以及套件管理的模式吧! 所以說,基本上,每個(gè)Linux distributions除了架構(gòu)的嚴(yán)謹(jǐn)度與選擇的套件內(nèi)容外, 其實(shí)差異并不太大啦! ^_^ 。大家可以選擇自己喜好的distribution來安裝即可!
- FHS: http://www.pathname.com/fhs/
- LSB: http://www.linuxbase.org/
| Tips: 事實(shí)上鳥哥認(rèn)為distributions主要分為兩大系統(tǒng),一種是使用RPM方式安裝軟件的系統(tǒng),包括Red Hat, Fedora, SuSE等都是這類; 一種則是使用Debian的dpkg方式安裝軟件的系統(tǒng),包括Debian, Ubuntu, B2D等等。 |
底下列出幾個(gè)主要的Linux distributions發(fā)行者網(wǎng)址:
- Red Hat: http://www.redhat.com
- Fedora: http://fedoraproject.org/
- Mandriva: http://www.mandriva.com
- Novell SuSE: http://www.novell.com/linux/
- Debian: http://www.debian.org/
- Slackware: http://www.slackware.com/
- Gentoo: http://www.gentoo.org/
- Ubuntu: http://www.ubuntu.com/
- CentOS: http://www.centos.org/
| Tips: 到底是要買商業(yè)版還是社群版的Linux distribution呢?如果是要裝在個(gè)人計(jì)算機(jī)上面做為桌面計(jì)算機(jī)用的,建議使用社群版, 包括Fedora, Ubuntu, OpenSuSE等等。如果是用在服務(wù)器上面的,建議使用商業(yè)版本,包括Red Hat, SuSE等。 這是因?yàn)樯缛喊嫱ǔi_發(fā)者會(huì)加入最新的軟件,這些軟件可能會(huì)有一些bug存在。至于商業(yè)版則是經(jīng)過一段時(shí)間的磨合后, 才將穩(wěn)定的軟件放進(jìn)去。 舉例來說,Fedora出來的軟件套件經(jīng)過一段時(shí)間的維護(hù)后,等到該軟件穩(wěn)定到不容易發(fā)生錯(cuò)誤后, Red Hat才將該軟件放到他們最新的釋出版本中。所以,Fedora的軟件比較經(jīng)常改版,Red Hat的軟件就較少更版。 |
- Linux在臺(tái)灣
當(dāng)然發(fā)行套件者不僅于此。但是值得大書特書的,是中文Linux的延伸計(jì)劃:CLE這個(gè)套件! 早期的Linux因?yàn)槭枪こ處煱l(fā)展的,而這些工程師大多以英文語系的國(guó)家為主, 所以Linux對(duì)于國(guó)人的學(xué)習(xí)是比較困擾一點(diǎn)。后來由國(guó)人發(fā)起的CLE計(jì)劃: http://cle.linux.org.tw/ 開發(fā)很多的中文套件及翻譯了很多的英文文件,使得我們目前得以使用中文的Linux呢! 另外,目前正在開發(fā)中的還有臺(tái)南縣臥龍小三等老師們發(fā)起的眾多自由軟件計(jì)劃, 真是造福很多的朋友啊!
- 自由軟件技術(shù)交流網(wǎng): http://freesf.tnc.edu.tw/index.php
- B2D: http://b2d.tnc.edu.tw/
- http://www.knoppix.net/
- 中文 KNOPPIX: http://knoppix.tnc.edu.tw/
| Tips: 對(duì)于沒有額外的硬盤或者是沒有額外的主機(jī)的朋友來說,KNOPPIX這個(gè)可以利用光盤開機(jī)而進(jìn)入Linux操作系統(tǒng)的Live CD 真的是一個(gè)不錯(cuò)的選擇!你只要下載了KNOPPIX的映象檔,然后將他刻錄成為CD, 放入你主機(jī)的光驅(qū),并在BIOS內(nèi)設(shè)定光盤為第一個(gè)開機(jī)選項(xiàng),就可以使用Linux系統(tǒng)了呢! |
- http://distrowatch.com/
- 選擇適合你的Linux distribution
那我到底應(yīng)該要選擇哪一個(gè)distributions?就如同我們上面提到的,其實(shí)每個(gè)distributions差異性并不大! 不過,由于套件管理的方式主要分為Debian的dpkg及Red Hat系統(tǒng)的RPM方式, 目前鳥哥的建議是,先學(xué)習(xí)以RPM套件管理為主的RHEL/Fedora/SuSE/CentOS等臺(tái)灣使用者較多的版本, 這樣一來,發(fā)生問題時(shí),可以提供解決的管道比較多。如果你已經(jīng)接觸過Linux了, 還想要探討更嚴(yán)謹(jǐn)?shù)腖inux版本,那可以考慮使用Debian,如果你是以效能至上來考慮, 那么或許Gentoo是不錯(cuò)的建議!
總之,版本很多,但是各版本差異其實(shí)不大,建議你一定要先選定一個(gè)版本后, 先徹頭徹尾的了解他,那再繼續(xù)玩其他的版本時(shí),就可以很快的進(jìn)入狀況。 鳥哥的網(wǎng)站僅提供一個(gè)版本,不過是以比較基礎(chǔ)的方式來介紹的, 因此,如果能夠熟練俺這個(gè)網(wǎng)站的話,呵呵!哪一個(gè)distributions對(duì)你來說,都不成問題啦!
不過,如果依據(jù)計(jì)算機(jī)主機(jī)的用途來分的話,在臺(tái)灣鳥哥會(huì)這樣建議:
- 用于企業(yè)環(huán)境:建議使用商業(yè)版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不錯(cuò)的選擇! 畢竟企業(yè)的環(huán)境強(qiáng)調(diào)的是永續(xù)的經(jīng)營(yíng),你可不希望網(wǎng)管人員走了之后整個(gè)機(jī)房的主機(jī)都沒有人管理吧! 由于商業(yè)版本都會(huì)提供客戶服務(wù),所以可以降低企業(yè)的風(fēng)險(xiǎn)喔!
- 用于個(gè)人或教學(xué)的服務(wù)器環(huán)境:要是你的服務(wù)器所在環(huán)境如果當(dāng)機(jī)還不會(huì)造成太大的問題的話, 加上你的環(huán)境是在教學(xué)的場(chǎng)合當(dāng)中時(shí)(就是說,唔!經(jīng)費(fèi)不足的環(huán)境啦!)那么可以使用『號(hào)稱』完全兼容商業(yè)版RHEL的CentOS。 因?yàn)镃entOS是抓RHEL的原始碼來重新兜起來的一個(gè)Linux distribution,所以號(hào)稱兼容于RHEL。 這一版的軟件完全與RHEL相同,在改版的幅度較小,適合于服務(wù)器系統(tǒng)的環(huán)境;
- 用于個(gè)人的桌面計(jì)算機(jī):想要嘗鮮嗎?建議使用很炫的Fedora/Ubuntu等Desktop(桌面環(huán)境)使用的版本! 如果不想要安裝Linux的話,那么Fedora或CentOS也有推出Live CD了!也很容易學(xué)習(xí)喔!
出處:http://vbird.dic.ksu.edu.tw/linux_basic/0110whatislinux_2.php
總結(jié)
以上是生活随笔為你收集整理的鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鸟哥的Linux私房菜(基础篇)-第一章
- 下一篇: 鸟哥的Linux私房菜(基础篇)-第一章