新聞中心
Linux是一種開源操作系統(tǒng),它具有高度的安全性、靈活性和可定制性。無論是在移動(dòng)設(shè)備上還是在數(shù)據(jù)中心中,Linux都扮演著至關(guān)重要的角色。它的成功部分歸功于其穩(wěn)定而強(qiáng)大的內(nèi)核。本文將深入探討linux底層操作系統(tǒng)的奧秘,包括內(nèi)核結(jié)構(gòu)、內(nèi)存管理、進(jìn)程管理和文件系統(tǒng)等方面。

成都創(chuàng)新互聯(lián)公司成立10余年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名申請(qǐng)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
內(nèi)核結(jié)構(gòu)
Linux的內(nèi)核是一個(gè)模塊化的系統(tǒng),它由不同的模塊組成,每個(gè)模塊都負(fù)責(zé)特定的功能。這種模塊化的設(shè)計(jì)使得Linux更加靈活,并且易于開發(fā)和維護(hù)。通常情況下,內(nèi)核包含如下幾個(gè)主要模塊:
1. 進(jìn)程管理模塊。
這個(gè)模塊負(fù)責(zé)管理進(jìn)程并維護(hù)它們的狀態(tài)。Linux內(nèi)核遵循進(jìn)程管理方式,通過創(chuàng)建新的進(jìn)程和線程,來管理和使用系統(tǒng)資源。
2. 內(nèi)存管理模塊。
Linux內(nèi)核使用虛擬內(nèi)存技術(shù),將物理內(nèi)存和虛擬內(nèi)存映射起來。這個(gè)模塊負(fù)責(zé)維護(hù)內(nèi)核映射表、物理內(nèi)存分配和釋放、虛擬內(nèi)存的映射,以及內(nèi)核頁表的維護(hù)等。
3. 網(wǎng)絡(luò)協(xié)議棧。
這個(gè)模塊是Linux內(nèi)核中最重要的一個(gè)模塊,它負(fù)責(zé)所有網(wǎng)絡(luò)通信。Linux支持多種協(xié)議,如TCP/IP、UDP、SCTP等。
4. 文件系統(tǒng)模塊。
文件系統(tǒng)是計(jì)算機(jī)操作系統(tǒng)中的一個(gè)重要部分,它負(fù)責(zé)管理文件和目錄。Linux支持多種文件系統(tǒng)類型,如EXT4、NTFS等。
內(nèi)存管理
在Linux中,內(nèi)存管理模塊的作用尤為重要。這個(gè)模塊負(fù)責(zé)從系統(tǒng)的內(nèi)存池中分配和釋放內(nèi)存,同時(shí)還維護(hù)了操作系統(tǒng)的虛擬內(nèi)存。Linux內(nèi)核中采用了以頁為單位的內(nèi)存管理,頁是內(nèi)存管理的最小單位,一個(gè)頁通常為4KB。當(dāng)程序需要內(nèi)存時(shí),內(nèi)存管理模塊會(huì)從系統(tǒng)的內(nèi)存池中申請(qǐng)一頁或多頁內(nèi)存,然后將其提供給應(yīng)用程序使用。程序不需要這些內(nèi)存時(shí),內(nèi)存管理模塊會(huì)將這些內(nèi)存返回給內(nèi)存池。
進(jìn)程管理
Linux內(nèi)核的進(jìn)程管理模塊負(fù)責(zé)管理進(jìn)程的創(chuàng)建、啟動(dòng)、運(yùn)行、停止和銷毀等操作。進(jìn)程是計(jì)算機(jī)系統(tǒng)中任務(wù)的基本單位,每個(gè)進(jìn)程擁有自己的地址空間、全局變量和文件句柄等。Linux內(nèi)核中采用了多進(jìn)程機(jī)制,每個(gè)進(jìn)程都有一個(gè)唯一的進(jìn)程標(biāo)識(shí)符(PID),用于在系統(tǒng)內(nèi)唯一表示它。進(jìn)程常常需要占用一定的資源,如內(nèi)存、文件和設(shè)備等,Linux內(nèi)核采用了CFS算法,根據(jù)進(jìn)程的優(yōu)先級(jí)來分配CPU時(shí)間。進(jìn)程管理模塊還提供了信號(hào)機(jī)制,用于向進(jìn)程發(fā)送信號(hào),信號(hào)既可以是系統(tǒng)自帶的也可以是應(yīng)用程序通過系統(tǒng)調(diào)用發(fā)送的。
文件系統(tǒng)
文件系統(tǒng)是計(jì)算機(jī)操作系統(tǒng)中的一個(gè)重要組成部分,它負(fù)責(zé)管理文件和目錄。Linux內(nèi)核支持多種文件系統(tǒng)類型,如EXT4、NTFS等。文件系統(tǒng)模塊提供了讀寫文件的函數(shù)接口,這些函數(shù)接口是應(yīng)用程序與底層文件系統(tǒng)之間的橋梁。應(yīng)用程序通過這些函數(shù)接口來讀寫文件,文件系統(tǒng)模塊負(fù)責(zé)將讀寫請(qǐng)求轉(zhuǎn)換成底層的磁盤讀寫操作。
本文深入剖析了Linux底層操作系統(tǒng)的奧秘,講解了其內(nèi)核結(jié)構(gòu)、內(nèi)存管理、進(jìn)程管理和文件系統(tǒng)等方面。Linux的模塊化設(shè)計(jì)和虛擬內(nèi)存技術(shù)使其具有高度的靈活性和可定制性,并且良好的進(jìn)程管理和內(nèi)存管理使Linux內(nèi)核更加穩(wěn)定和強(qiáng)大。Linux的文件系統(tǒng)支持多種文件系統(tǒng)類型,為應(yīng)用程序提供了高效的讀寫接口。深入了解Linux操作系統(tǒng)的內(nèi)部工作原理對(duì)于開發(fā)人員和系統(tǒng)管理員來說都具有重要的意義,對(duì)于安全性、穩(wěn)定性和可靠性的確保非常有幫助。
相關(guān)問題拓展閱讀:
- linux系統(tǒng)是怎么回事?可以簡(jiǎn)單的介紹下嗎?
linux系統(tǒng)是怎么回事?可以簡(jiǎn)單的介紹下嗎?
good.
什么是 Linux ?什么是操作系統(tǒng)?
要了解 Linux 之前,就不能不知道什么是操作系統(tǒng) ( Operation System, OS ),所以,首先我們來簡(jiǎn)單的說一說什么是操作系統(tǒng)吧!先來想一想,當(dāng)我們使用計(jì)算機(jī)時(shí),屏幕上面顯示的咚咚是由哪里來的?嗯!是由顯示卡與屏幕顯像的;那么你現(xiàn)在可以藉由網(wǎng)絡(luò)看到這篇文章,則是藉由 Internet 、網(wǎng)絡(luò)卡、網(wǎng)絡(luò)線以及所有相關(guān)的電子器材與網(wǎng)絡(luò)器材所完成的一項(xiàng)任務(wù)!如果你要看 VCD 呢?那么就需要光驅(qū)、光盤、聲卡的發(fā)聲等等的支持。這么說來的話,所以在『工作』的東西歷液都是『硬件』的工作呀!對(duì)了!就是這些計(jì)算機(jī)硬件在工作的。那么硬件怎么工作呢?那就是藉由『操作系統(tǒng)』來達(dá)成的啰!這個(gè)操作系統(tǒng)就是在溝通你這個(gè)使用者跟硬件之間的訊息傳遞啦!也就是說,沒有操作系統(tǒng),那么你的計(jì)算機(jī)硬件就只是一堆廢鐵,什么工作都不能做的!
那么操作系統(tǒng)里面含有什么東西呢?簡(jiǎn)單的來說,操作系統(tǒng)主要分為兩個(gè)東西,一個(gè)是『核心』、一個(gè)是『一堆核心提供的工具』我們以使用者常使用的 Windows 計(jì)算機(jī)來做一個(gè)簡(jiǎn)單的說明好了。大家應(yīng)該都使用過 Windows 計(jì)算機(jī)里面的檔案總管吧?那么當(dāng)你開啟檔案總管的時(shí)候,他是否會(huì)顯示你硬盤當(dāng)中的資料?這個(gè)顯示硬盤里面的資料,就是『核心』幫你做的,但是,你要核心去顯示硬盤哪一個(gè)目錄下的資料,則是由『檔案總管』這個(gè)『工具』幫你達(dá)成的!這樣可以理解嗎?再來,如果您曾經(jīng)使用過 Windows 2023 或 Windows XP 的話,那就更好了!你就應(yīng)該聽過有所謂的『FAT32 與 NTFS 檔案格式』吧?在 Windows 98 這個(gè)早期的 Windows 版本中,他并無法讀取或者是找到 Windows XP 的 NTFS 檔案格式的硬盤,為什么呢?因?yàn)樗摹汉诵摹槐緛砭筒徽J(rèn)識(shí) NTFS ??!所以,即使你有檔案總管,但是由于核心根本不認(rèn)識(shí) NTFS ,所以,檔案總管也是沒有能力幫你達(dá)到你想要做的事情!這樣應(yīng)該就更清楚了吧?沒錯(cuò)!你的整個(gè)硬件是由核心來管理的,而如果核心不認(rèn)識(shí)你的硬件,那么你將無法使用該硬設(shè)備,例如上面提到的 NTFS 檔案格式的硬盤!核心就是『 Kernel 』,他是一個(gè)操作系統(tǒng)的更底層的東西,由他來掌管整個(gè)硬件資源的工作狀態(tài),而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以說,當(dāng)有新的硬件加入到你的系統(tǒng)中的時(shí)候,那么若你的『 Kernel 』并沒有支持他的時(shí)候,呵呵,這個(gè)新的硬件就肯定無法工作的,因?yàn)榭刂扑?Kernel 并不認(rèn)識(shí)他呀!這樣了解了嗎?!先有個(gè)概略性的了解,后面我們提到『核心編譯』的時(shí)候會(huì)在更詳細(xì)的談到他!
一般來說,Kernel 管理的事項(xiàng)有:
System call interface :一些服務(wù)與 kernel 溝通之后,將硬件的資源進(jìn)一步的利用;
Process control :系統(tǒng)過程控制中心,所以核心編的越小越好;
Memory management :控制整個(gè)系統(tǒng)的內(nèi)存管理;
File system management :檔案系統(tǒng)的管理,例如 I/O 等等的工作啦!還有不同檔案格式的支持啦等等,如果你的核心不認(rèn)識(shí)某個(gè)檔案系統(tǒng),那么您將無法使用該檔案格式的檔案啰!例如上面提到的 Windows 98 不認(rèn)識(shí) NTFS 檔案格式的硬盤;
Device drivers :就如同上面提到的,硬件的管理是 Kernel 的主要工作之一,當(dāng)然啰,裝置的驅(qū)動(dòng)程序就是核心需要做的事情啦!好在目前都有所謂的『可加載模塊』功能,可以將驅(qū)動(dòng)程序編輯成模塊,就不需要重新的編譯核心啦!這個(gè)也會(huì)在后續(xù)的核心編譯當(dāng)中提到的!
所以啦隱悶!所有硬件的資源都是他來管理的!至于我們要達(dá)成一些工作時(shí),除了藉由核心本身提供的功能 ( 例如上面提到的檔案總管 ) 之外,還可以藉由其它的應(yīng)用軟件來達(dá)成喔!舉個(gè)例子來說,你要看 VCD 影片是吧!那么除了 Windows 提供的媒體播放程序之外,你也可以自行安裝 VCD 播放程序來播放 VCD 啰!這個(gè)播放程序就是應(yīng)用軟件啰,肢攜物而這個(gè)應(yīng)用軟件可以幫你去控制核心來工作 ( 就是放映影片啰 ) ,因此,我們可以這樣說,核心是控制整個(gè)硬件支持的咚咚,也是一個(gè)操作系統(tǒng)的更底層,然而要讓整個(gè)操作系統(tǒng)更完備的話,那還需要含有相當(dāng)豐富的核心提供的工具,以及核心相關(guān)的應(yīng)用軟件來支持!
OK!提到這里那么您知道 Linux 是什么了嗎?呵呵!對(duì)啦!其實(shí) Linux 就是一個(gè)操作系統(tǒng),這個(gè)操作系統(tǒng)里頭含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一個(gè)完整的操作系統(tǒng)當(dāng)中更底層的硬件控制與資源管理的完整架構(gòu),這個(gè)架構(gòu)是沿襲 Unix 良好的傳統(tǒng)來的,所以相當(dāng)?shù)姆€(wěn)定而功能強(qiáng)大!此外,由于這個(gè)優(yōu)良的架構(gòu)可以在目前的個(gè)人計(jì)算機(jī) ( X86 系統(tǒng) ) 上面跑,所以很多的軟件開發(fā)者將他們的工作心血移轉(zhuǎn)到這個(gè)架構(gòu)上面,那就是很多的應(yīng)用軟件啦!雖然 Linux 僅是其核心與核心提供的工具,不過,由于核心、核心工具與這些軟件開發(fā)者提供的軟件的整合,使得 Linux 成為一個(gè)更完整的、功能強(qiáng)大的操作系統(tǒng)啰!我們可以將 Linux 的系統(tǒng)與使用者的相關(guān)性看成底下的圖標(biāo):
圖一、使用者、使用者接口與核心工具、核心、與硬件之相關(guān)性
約略了解 Linux 是何物之后,接下來,我們要談一談,『為什么說 Linux 是很穩(wěn)定的操作系統(tǒng)呢?他是如何來的?』
從 Unix 到 Linux 這一段歷史
為什么大家常常會(huì)說, Linux 是很穩(wěn)定的一套操作系統(tǒng)呢?這是因?yàn)椋?Linux 他有個(gè)老前輩,那就是 Unix 家族啰!有這個(gè)前輩的提攜,讓 Linux 這個(gè)小老弟很快的就成為一套穩(wěn)定而優(yōu)良的操作系統(tǒng)啦!所以,底下我們來談一談 Unix 到 Linux 的這一段歷史吧!
早在 Linux 出現(xiàn)之前的二十年 ( 大約在 1970 年代 ), 就有一個(gè)相當(dāng)穩(wěn)定而成熟的操作系統(tǒng)存在了!那就是 Linux 的老大哥『 Unix 』是也!怎么這么說呢?!他們這兩個(gè)家伙有什么關(guān)系呀?這里就給他說一說啰!眾所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的時(shí)候給他開發(fā)出來的,并且丟到網(wǎng)絡(luò)上提供大家下載,后來大家覺得這個(gè)小東西 ( Linux Kernel ) 相當(dāng)?shù)男《?,所以慢慢的就有相?dāng)多的朋友投入這個(gè)小東西的研究領(lǐng)域里面去了!但是為什么這的小東西這么棒呢?!然而又為什么大家都可以免費(fèi)的下載這個(gè)東西呢?!嗯!等鳥哥慢慢的唬xx….喔不!聽我慢慢的道來!
一個(gè)沒有完成的夢(mèng)想: Bell, MIT 與 GE 的『 Multics 』系統(tǒng)
早期的計(jì)算機(jī)并不像現(xiàn)在的個(gè)人計(jì)算機(jī)一般,他可不是一般人碰的到的玩意兒,除非是軍事或者是高科技用途才有可能接觸到這類的 Computer !而如前面所言,有計(jì)算機(jī)硬件還需要操作系統(tǒng)的配合才能夠發(fā)揮計(jì)算機(jī)的效能,不過,在那個(gè)年代,由于計(jì)算機(jī)算是『奢侈品』,喔~應(yīng)該說是『貴重物品』,所以,可能一間學(xué)校就只有一部大型主機(jī)當(dāng)然,那個(gè)年代所謂的大型主機(jī)仍然無法提供適度的運(yùn)算能力的。不過,既然只有一部大型主機(jī),然而有許許多多的教師、學(xué)生要想要來使用,怎么辦呢?為了解決這個(gè)問題,在 1960 年代初期,麻省理工學(xué)院 ( MIT ) 發(fā)展了所謂的『兼容分時(shí)系統(tǒng) ( Compatible Time-Sharing System, CTSS )』,就字面上的意義來看,他主要讓大型主機(jī)可以提供多個(gè)終端機(jī)聯(lián)機(jī)進(jìn)入主機(jī)使用主機(jī)的資源, ( 附帶一提,當(dāng)時(shí)的終端機(jī) ( Terminal ) 本身并沒有軟件或者可供使用的資源,這些終端機(jī)要能使用,一定必需要聯(lián)機(jī)登入主機(jī)之后,才能夠使用主機(jī)的資源來工作!) 當(dāng)時(shí)可以讓約 30 位使用者聯(lián)機(jī)使用主機(jī)。而為了讓這個(gè)分時(shí)系統(tǒng)更加的強(qiáng)大,所以,在 1965 年前后由貝爾研究室 ( Bell )、 麻省理工學(xué)院 ( MIT ) 及奇異電器公司 ( GE ) 開始來共同開發(fā)一個(gè)名為 Multics 的大型計(jì)畫,目標(biāo)是想讓大型主機(jī)可以聯(lián)機(jī) 300 位以上的使用者。不過,在奮斗了四年之后,該計(jì)畫仍然宣告不治…喔!是失敗啦!(注: Multics 有復(fù)雜、多數(shù)的意思。)
一個(gè)小型檔案系統(tǒng)的產(chǎn)生:1969 年 Ken Thompson 的小型 file server system
在復(fù)雜的 Multics 系統(tǒng)的計(jì)畫失敗后,貝爾研究室當(dāng)然就退出該計(jì)畫。就在這個(gè)計(jì)畫解散之后,曾經(jīng)參與 Muitics 的貝爾研究室的成員 Ken Thompson 由于自己工作上的需求,需要一套檔案存取的小型操作系統(tǒng),便在 1969 年的時(shí)候以 DEC 公司 ( Digital Equipment Corporation ) 的計(jì)算機(jī) PDP-7 為硬件基準(zhǔn),設(shè)計(jì)了一個(gè)適合自己工作環(huán)境的小型檔案系統(tǒng),其中也含有他自行開發(fā)的一些小工具。那個(gè)系統(tǒng)就是最早期的 Unix 的源頭!當(dāng)初 Ken 設(shè)計(jì)這個(gè)檔案系統(tǒng)時(shí),主要是為了自己的存取方便所設(shè)計(jì)的簡(jiǎn)單 OS ,因此將原有的 Multics 系統(tǒng)大幅度的簡(jiǎn)化,不過,在當(dāng)時(shí)還并沒有 Unix 這個(gè)名詞的出現(xiàn)!
Unix 的正式誕生:1973 年 Ritchie 等人以 C 語言寫出之一個(gè)正式 Unix 核心
由于 Thompson 寫的那個(gè)操作系統(tǒng)實(shí)在太好用了,所以在 Bell 研究室內(nèi)部廣為流傳,并且數(shù)度經(jīng)過改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人為了讓這個(gè)系統(tǒng)的執(zhí)行效能更佳化,所以使用編譯效能更好的 C 語言將原有的 1969 年的那個(gè)系統(tǒng)之核心大幅度的改寫過,并且確定該操作系統(tǒng)名稱為 Unix,呵呵!那就是最早的 Unix 操作系統(tǒng)啰!不過,由于這個(gè)操作系統(tǒng)是由這一群工程師所開發(fā)完成的,而且使用者也大多是這方面的工程師,因此造成了后來 Unix 系統(tǒng)接口較難被一般使用者接受的情況 @_@ (注: 相對(duì)于 Multics ,Unix 具有單一的意思!)
重要的 Unix 分支: 1977 年 BSD 的誕生
在 Unix 早期的發(fā)展中,有一件相當(dāng)重要的事情,那就是 BSD 的誕生!由于 C 語言是一種高級(jí)語言,他可以被應(yīng)用在不同的硬件架構(gòu)上面,而 Unix 本身就是 C 語言寫成的!在 Unix 發(fā)表之后, 柏克萊大學(xué) ( Berkeley ) 的教授對(duì)于這個(gè)操作系統(tǒng)相當(dāng)?shù)挠信d趣,在經(jīng)過取得 Unix 的原始碼,并且?guī)捉?jīng)修改之后,終于在 1977 年發(fā)表了之一代的 Berkeley Software Distribution ( BSD ) 。這個(gè) BSD 是 Unix 的一個(gè)分支,他的發(fā)展對(duì)于 Unix 有相當(dāng)大的影響,例如后來的 Sun 公司就是使用 BSD 發(fā)展的核心進(jìn)行自己商業(yè)的 Unix 版本的發(fā)展的!
百家齊鳴的 Unix 版本:
由于 C 語言是一個(gè)相當(dāng)高階的程序語言,他與硬件沒有很直接的相關(guān)性,例如你的 Windows 也可以執(zhí)行 C 程序語言!而由于 Unix 是由 C 語言寫成的,因此,也就是說,你只要經(jīng)過稍微的原始碼修改程序,就可以在不同的硬件架構(gòu)上面執(zhí)行這個(gè)操作系統(tǒng)!后來,由于 Unix 的方便性,因此很多的商業(yè)公司及學(xué)術(shù)機(jī)構(gòu)就加入這個(gè)操作系統(tǒng)的研發(fā)啰。不過,也由于 Unix 的便利性與改寫容易,因此就造成了很多的不同版本的 Unix 啰,例如 ATT 的 System V 、 加州大學(xué)的 BSD 版、 IBM 的 AIX 等等。
由于『操作系統(tǒng)的核心 ( Kernel ) 必須要跟硬件配合,以提供及控制硬件的資源進(jìn)行良好的工作!』,而在早期每一家生產(chǎn)計(jì)算機(jī)硬件的公司還沒有所謂的『協(xié)議』的概念,所以每一個(gè)計(jì)算機(jī)公司出產(chǎn)的硬件自然就不相同啰!因此他們必須要為自己的計(jì)算機(jī)硬件開發(fā)合適的 Unix 系統(tǒng),所以,他們自行開發(fā)的 Unix 當(dāng)然只能配合本身的硬件配備啰!例如在學(xué)術(shù)機(jī)構(gòu)相當(dāng)有名的 Sun 、 Cray 與 HP 就是這一種情況,他們開發(fā)出來的 Unix 并沒有辦法在其它的硬件架構(gòu)下工作的! ( 我們都稱呼這種系統(tǒng)與配備為『超級(jí)計(jì)算機(jī)』 ) !由于沒有廠商針對(duì)個(gè)人計(jì)算機(jī)設(shè)計(jì) Unix 系統(tǒng),因此,在早期并沒有支持個(gè)人計(jì)算機(jī)的 Unix 操作系統(tǒng)的出現(xiàn) ( 當(dāng)然,這是由于早期的個(gè)人計(jì)算機(jī)并沒有現(xiàn)在這樣風(fēng)行就是了! ) ,每一家公司自己出的 Unix 雖然在架構(gòu)上面大同小異,但是卻真的僅能支持自身的硬件,所以啰,早先的 Unix 只能與服務(wù)器 ( Server ) 或者是大型工作站 ( Workstation ) 劃上等號(hào)!
此外,由于版本太多了,而大家都是同樣來自于 Unix 這個(gè)老祖宗,當(dāng)然也都稱自己是 Unix ,好了,如此一來,許多商業(yè)公司自然就會(huì)有類似的軟件發(fā)表,喝!那么自然就有些許的商業(yè)糾紛啰!真是傷腦筋~
年的 GNU 與 Free Software Foundation:
Unix 在商業(yè)上面的問題讓許多對(duì)于 Unix 喜好者感到相當(dāng)?shù)膽n心,其中一個(gè)就是有名的 Richard M. Stallman 先生。他認(rèn)為, Unix 是一個(gè)相當(dāng)好的操作系統(tǒng),在這個(gè)系統(tǒng)上面,如果大家能夠?qū)⒆约核鶎W(xué)的貢獻(xiàn)出來,那么這個(gè)系統(tǒng)將會(huì)更加的優(yōu)異!Stallman 先生認(rèn)為更大的快樂就是讓自己發(fā)展的良好的軟件讓大家來使用了!而且,由于每個(gè)人的工作環(huán)境 ( 指軟硬件平臺(tái) ) 可能都不太相同,所以,他也強(qiáng)調(diào)應(yīng)該要有 Open Source 的概念,讓大家都能夠分享這一份的心得!他認(rèn)為,有了 Open Source 之后,你的程序?qū)⒂泻芏嗟娜丝梢詭兔z驗(yàn),將使得 Unix 社群更佳的茁壯。為了自己的理想, Stallman 在 1984 年實(shí)際創(chuàng)立了 GNU 與 自由軟件基金會(huì) ( Free Software Foundation, FSF ),并創(chuàng)作了許多『自由軟件』供大眾來使用,此外,對(duì)于其作品以自由 ( free ) 的 GNU General Public License ( GPL ) 的授權(quán)模式提供大眾使用。這個(gè) FSF 的核心觀念是『版權(quán)制度是促進(jìn)社會(huì)進(jìn)步的手段,版權(quán)本身不是自然權(quán)力?!粚?duì)于 FSF 有興趣或者對(duì)于 GNU 想要更深入的了解時(shí),請(qǐng)參考朝陽大學(xué)的洪朝貴教授的網(wǎng)站,里面有更為深入的解說!而且,Stallman 的 GNU General Public License 一直強(qiáng)調(diào) Free 這個(gè)字眼!他是這樣說的:『”Free software” is a matter of liberty, not price. To understand the concept, you should thik of “free speech”, not “free beer”. “Free software” refers to the users freedom to run, copy, distribute, study, change, and improve the software』大意是說,自由軟件并不是指『免費(fèi)』的,而是指具有『自由度, freedom』的軟件,什么是自由度呢?也就是你在取得這個(gè)軟件之后,可以進(jìn)行修改、進(jìn)一步發(fā)表與復(fù)制在不同的計(jì)算機(jī)平臺(tái)上面。這無疑是個(gè)好消息!因?yàn)槿绱艘粊恚闼玫降能浖赡茉戎荒茉?Unix 上面跑,但是經(jīng)過原始碼的修改之后,你將可以拿他在 Linux 或者是 Windows 上面來跑!Stallman 先生更直接對(duì)自由度下了這樣的說明:
你可以根據(jù)任何你想要的提議 ( purpose ) 來跑這個(gè) Free 的程序;
你可以在理解了這支 Free 的程序的運(yùn)作之后,將他修改成你所想要的樣式與功能;
你可以將你自己修改過的 Free 的程序再次的發(fā)表,以幫助你的朋友們;
你可以將這支 Free 的程序進(jìn)行改良,并將改良過的程序公開發(fā)表,以造福社群!
簡(jiǎn)單的來說, GPL 授權(quán)具有幾個(gè)特點(diǎn):
任何軟件掛上 GPL 授權(quán)之后,即為自由的軟件,任何人均可取得,同時(shí),亦可取得其原始碼 ( Source Code );
取得 GPL 授權(quán)之軟件后,任何人均可進(jìn)行修改原始碼,以符合自己的喜好;
除此之外,經(jīng)過修改的 Source Code 應(yīng)回報(bào)給網(wǎng)絡(luò)社會(huì),提供大家來參考!
但請(qǐng)?zhí)貏e留意,并非掛上 GPL 之后的軟件就不可販賣,這個(gè)是不同的兩回事呦!舉個(gè)例子來說,在 Red Hat 的官方網(wǎng)站上面提供 Red Hat 釋出的 Linux 安裝光盤提供大眾下載,但是 Red Hat 本身依然有在賣 Linux 的套件,而且還賣的『很不便宜!』為何可以如此呢?呵呵!因?yàn)?Red Hat 他們賣的資料當(dāng)中,含有相當(dāng)大量經(jīng)過整了的文件資料,這些資料雖然在網(wǎng)絡(luò)上面可以下載,然而花了這么多的時(shí)間來整理這些資料,當(dāng)然應(yīng)該要給予相當(dāng)程度的報(bào)酬啰!您說是吧!所以,請(qǐng)留意喔!并非 GPL 不可用來營利!
這個(gè) GNU 對(duì)于后來的 Linux 有相當(dāng)深遠(yuǎn)的影響,由于 Stallman 先生發(fā)展了 GNU 這個(gè)計(jì)畫中,主力在推出各種方便而優(yōu)異的工具軟件,例如廣為大家所知的 Emacs 文書編輯器、GCC, BASH..然而沒有作業(yè)平臺(tái)怎么使用這些軟件呢?然而,由于他倡導(dǎo)的自由軟件,讓后來的心血能很快的接觸原始碼來發(fā)展軟件,這就是后來的 Linux 的故事….這是后來的故事,等一下來說~
年的圖形接口 X-Free86 project:
有鑒于圖形使用者接口 ( Graphical User Interface, GUI ) 的需求日益加重,在 1984 年由 MIT 與其它協(xié)力廠商首次發(fā)表了 X Window System ,并且更在 1988 年成立了非營利性質(zhì)的 XFree86 這個(gè)組織。所謂的 XFree86 其實(shí)是 X window system 與 Free 及 x86 系統(tǒng)架構(gòu)的整合名稱呢!而這個(gè) XFree86 的 GUI 接口更在 Linux 的核心 1.0 版于 1994 年釋出時(shí),整合于 Linux 操作系統(tǒng)當(dāng)中!
年 芬蘭大學(xué)生 Linus Torvalds 的一則簡(jiǎn)訊:
在后來的幾年內(nèi),由于計(jì)算機(jī)硬件工業(yè)的強(qiáng)力運(yùn)作,以 intel 主導(dǎo)的 x86 系統(tǒng)架構(gòu)的個(gè)人計(jì)算機(jī)大行其道,所以個(gè)人計(jì)算機(jī)算是相當(dāng)流行的一個(gè)機(jī)器了!但在此時(shí),人們使用的大多還是舊舊而且需要吃很多系統(tǒng)資源的 DOS 系列或其它的操作系統(tǒng)。 此時(shí),有個(gè)芬蘭的郝爾辛基大學(xué) (Helsinki )Linus Torvalds 學(xué)生做了件不尋常的事情! Linus 手邊有個(gè) Minix 系統(tǒng) ( 這也是 Unix 的分支 ) ,他對(duì)這個(gè)操作系統(tǒng)相當(dāng)?shù)挠信d趣!此外,由于當(dāng)時(shí)他正好買了一部 386 的計(jì)算機(jī),所以他就想說,咦!這個(gè) Unix 這么棒!這么穩(wěn)定,那我可不可以將他移植到個(gè)人計(jì)算機(jī) ( X86 架構(gòu) ) 來使用呢?!好在由于 Stallman 提倡的 Open Source 風(fēng)氣,他得以接觸到一些 source code ,而就經(jīng)由這樣的一個(gè)想法,呵呵!他就很有心的讀取 Unix 的核心,并且去除較為繁復(fù)的核心程序,將他改寫成可以適用于一般個(gè)人計(jì)算機(jī)的 x86 系統(tǒng)上面,到了 1991 年,他終于將 0.02 版的 hobby 放到網(wǎng)絡(luò)上面供大家下載,并且由于 hobby 受到大家的肯定,相當(dāng)多的朋友一起投入這個(gè)工作中!終于到了 1994 年將之一個(gè)完整的核心 Version 1.0 釋出!并且造成目前的大流行…..由于 Linux kernel 的發(fā)展是由『虛擬團(tuán)隊(duì)』所達(dá)成的,大家都是透過網(wǎng)絡(luò)取得 Linux 的核心原始碼,經(jīng)由自己精心改造后再回傳給 Linux 社群,進(jìn)而一步一步的發(fā)展完成完整的 Linux 系統(tǒng),至于 Torvalds 先生是這個(gè)集團(tuán)中的發(fā)起者。由于這個(gè)群策群力的緣故, Torvalds 先生將 Linux 定為同樣造福大家的 GNU 授權(quán)模式!
企鵝的來源:
1994年發(fā)表 Linux 正式核心 1.0 的時(shí)候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小時(shí)候去動(dòng)物園被一只企鵝追著滿地打滾~還被咬了一口!既然想不到其它的吉祥物了,干脆就以這支企鵝來當(dāng)吉祥物算了!所以,呵呵!目前我們常??吹竭@一只企鵝就是這么來的咯!
什么是 distribution
好了,經(jīng)由上面的說明,我們知道 Linux 是個(gè)『操作系統(tǒng)』,而且他是 GNU 的授權(quán)模式,并且有個(gè)老大哥是 Unix 。不過,畢竟由 Torvalds 先生負(fù)責(zé)維護(hù)的 Linux 提供的僅是『核心』與『核心工具』的,對(duì)于需要更完整功能的操作系統(tǒng)來說,畢竟還不夠完備,例如如果你要桌面程序,還得要加入 X-Window 系統(tǒng)對(duì)吧?。咳绻阋茉O(shè) WWW 還得加入服務(wù)器軟件對(duì)吧?所以,雖然 Linux 的核心已經(jīng)提供了相當(dāng)多的支持與工具程序,但畢竟還不足以構(gòu)成一個(gè)很完整的操作系統(tǒng)。
好在,由于 Linux 的穩(wěn)定性良好,并且可以在便宜的 x86 架構(gòu)下的計(jì)算機(jī)平臺(tái)運(yùn)作,所以吸引了很多的套件商與自由軟件的開發(fā)團(tuán)隊(duì)在這個(gè) Linux 的核心上面開發(fā)相關(guān)的軟件,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商業(yè)公司發(fā)現(xiàn)這個(gè)商機(jī),因此,這些商業(yè)公司或者是非營利性的工作團(tuán)隊(duì),便將 Linux 核心、核心工具與相關(guān)的軟件起來,并加入自己公司或團(tuán)隊(duì)的創(chuàng)意的系統(tǒng)管理模塊與工具,而釋出一套可以完整安裝的操作系統(tǒng),這個(gè)完整的 Linux 操作系統(tǒng),我們就稱呼他為 distribution,或者是中文所謂的『安裝套件』啰!當(dāng)然啰,由于是基于 GNU 的架構(gòu)下,因此各家公司所發(fā)行的光盤套件是可以在網(wǎng)絡(luò)上面自由下載的。不過,如果想要有較佳的服務(wù),那么購買該公司發(fā)行的光盤也是不錯(cuò)的!
不過,由于發(fā)展的 Linux 公司實(shí)在太多了,例如有名的 Red Hat, OpenLinux, Mandrake, Debian, SuSE 等等,所以很多人都很擔(dān)心,如此一來每個(gè) distribution 是否都不相同呢?這就不需要擔(dān)心了,由于各個(gè) distribution 都是架構(gòu)在 Linux Kernel 下來發(fā)展屬于自己公司風(fēng)格的 distribution,因此大家都遵守 Linux Standard Base ( LSB ) 的規(guī)范,也就是說,各個(gè) distribution 其實(shí)都是差不多的!反正用到的都是 Linux Kernel ?。≈皇歉鱾€(gè) distribution 里面所使用的各套件可能并不完全相同而已。所以啰,大家可以按照自己的喜好來選擇 Linux 的 distribution 光盤啰!底下列出幾個(gè)主要的 Linux 發(fā)行者網(wǎng)址:
Red Hat:
Mandrake:
Slackware:
SuSE:
OpenLinux:
Debian:
Linpus:
UniteLinux:
當(dāng)然發(fā)行套件者不僅于此,您可以查閱其它的 Linux 新聞來發(fā)現(xiàn)喔!而其中中文化較為有名的就屬 CLE 這個(gè)套件發(fā)行者了!有興趣的話也可以到底下的網(wǎng)頁上看看!
CLE:
好了,那么哪一個(gè)安裝套件比較好呢?!就如同 VBird 前面提到的,每一個(gè)發(fā)行者所使用的 Linux 核心其實(shí)是一樣的,都是由
www.kernel.org
開發(fā)出來的核心呀!所以其架構(gòu),甚至包括其檔案放置的目錄,都是大同小異的,基本上除了某些內(nèi)容套件不太一樣之外 ( 例如有人使用 wu-ftpd 有人使用 proftpd 等等 ) ,其它的檔案架構(gòu)與指令系統(tǒng)其實(shí)幾乎都是相同的,因此我們不去探討哪一個(gè)套件比較棒!而是要來介紹如何學(xué)習(xí)與使用一個(gè)套件!至于下載的地點(diǎn),網(wǎng)友提供了一個(gè)相當(dāng)棒的多種 Linux distributions 的下載網(wǎng)站:
www.linuxiso.org
Linux 的功能與優(yōu)缺點(diǎn)
Linux 的起源:
前面提到了,Linus Torvalds 先生一直以來就喜歡那個(gè)小小的操作系統(tǒng)核心,而核心是管理一個(gè)系統(tǒng)的更底層的東西,所有的硬件資源都是由 kernel 來管控的!但是,就如同前面說的,早期的 Unix 并不支持 x86 的個(gè)人計(jì)算機(jī)架構(gòu),一直到了 1991 年在 BBS 里面 Linus 先生貼了個(gè)小布告之后,才有了重大的轉(zhuǎn)變: 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.
這封 BBS 的郵件即是由當(dāng)時(shí)還是芬蘭的大學(xué)生 Linus Torvalds 所發(fā)表的,他說他修改了一個(gè)簡(jiǎn)單的操作系統(tǒng)核心,核心名稱為 hobby,這個(gè) hobby 的核心 ( Kernel ) 即為之一個(gè) Linux 的核心系統(tǒng)!此外,由于他是基于 GNU 的協(xié)議而開發(fā)這個(gè)操作系統(tǒng),所以他是 Free 的,任何人都可以下載使用!( 注:hobby 是個(gè)人興趣,just a hobby, won’t be big and professional like gnu,其意思是:僅為個(gè)人興趣,不會(huì)玩得跟 gnu 那么大啦~~~)
Linus 所開發(fā)的這個(gè) hobby 是基于 Unix 的系統(tǒng)所發(fā)展出來的,他將 Unix 里面的很多資料又加以簡(jiǎn)化,并且使之可以適用于 intel 主導(dǎo)的 x86 的系統(tǒng)下(當(dāng)初的個(gè)人計(jì)算機(jī)系統(tǒng)為 386 與 486 架構(gòu)),因此當(dāng)初他所發(fā)表的這個(gè)最新的系統(tǒng)核心就被稱為 linus’s unix ,簡(jiǎn)稱為 Linux !當(dāng)然,由于這個(gè)核心很像是當(dāng)時(shí)的 Unix 系統(tǒng),因此也稱為 Unix-like 系統(tǒng)啰!( 注:其實(shí) Unix-Like 可以說是目前服務(wù)器類型的操作系統(tǒng)的統(tǒng)稱啦!因?yàn)?,不論?FreeBSD, BSD, Sun Unix, SCO Unix, HP Unix, Red Hat Linux, Mandrake Linux 等等,都是由同一個(gè)祖先『Linux』來的,因此,這些咚咚都被統(tǒng)稱為 Unix-Like 的操作系統(tǒng)啰! )
那么這個(gè)系統(tǒng)有什么特異功能呢?簡(jiǎn)單的說:
免費(fèi):由于他是基于 GPL ( General Public License ) 的架構(gòu)之下,因此他是 Free 的,也就是任何人都可以免費(fèi)的使用或者是修改其中的原始碼的意思!這就是所謂的『開放性架構(gòu)』,這對(duì)科學(xué)界來說是相當(dāng)重要的!因?yàn)楹芏嗟墓こ處熡捎谔厥獾男枨?,常常需要修改系統(tǒng)的原始碼,使該系統(tǒng)可以符合自己的需求!而這個(gè)開放性的架構(gòu)將可以滿足各不同需求的工程師!因此當(dāng)然就有可能越來越流行啰!
配備需求低廉:而他可以支持個(gè)人計(jì)算機(jī)的 X86 架構(gòu),系統(tǒng)資源不必像早先的 Unix 系統(tǒng)那般,僅適合于單一公司 ( 例如 Sun ) 設(shè)備!單就這一點(diǎn)來看,就可以造成很大的流行啰!
功能強(qiáng)大而穩(wěn)定:也且由于功能并不會(huì)輸給一些大型的 Unix 工作站,因此,近年來越來越多的公司或者是團(tuán)體、個(gè)人投入這一個(gè)操作系統(tǒng)的開發(fā)與整合工作!
獨(dú)立作業(yè):另外,由于很多的軟件套件逐漸被這套操作系統(tǒng)來來使用,而很多套件軟件也都在 Linux 這個(gè)操作系統(tǒng)上面進(jìn)行發(fā)展與測(cè)試,因此, Linux 近來已經(jīng)可以獨(dú)力完成幾乎所有的工作站或服務(wù)器的服務(wù)了,例如 Web, Mail, Proxy, FTP…..。
所以,目前他已經(jīng)是相當(dāng)成熟的一套操作系統(tǒng)啰!而且不耗資源又免費(fèi),呵呵,可以說造成微軟相當(dāng)大的壓力呀!此外,由于他的系統(tǒng)硬件要求很低,加上目前很多的人由于『Intel 的陰謀』(呵呵!開玩笑的,因?yàn)?Tom 的硬件評(píng)論網(wǎng)站常常這樣說 Intel 的不是!呵!很好笑?。┒斐墒诌呌邢喈?dāng)多的淘汰掉的硬件配備, Linux
要了解 Linux 之前,就不能不知道什么是操作系統(tǒng) ( Operation System, OS ),所以,首先我們來簡(jiǎn)單的說一說什么是操作系統(tǒng)吧!先來想一想,當(dāng)我們使用計(jì)算機(jī)時(shí),屏幕上面顯示的咚咚是由哪里來的?嗯!是由顯示卡與屏幕顯像的;那么你現(xiàn)在可以藉由網(wǎng)絡(luò)看到這篇文章,則是藉由 Internet 、網(wǎng)絡(luò)卡、網(wǎng)絡(luò)線以及所有相關(guān)的電子器材與網(wǎng)絡(luò)器材所完成的一項(xiàng)任務(wù)!如果你要看 VCD 呢?那么就需要光驅(qū)、光盤、聲卡的發(fā)聲等等的支持。這么說來的話,所以在『工作』的東西都是『硬件』的工作呀!對(duì)了!就是這些計(jì)算機(jī)硬件在工作的。那么硬件怎么工作呢?芹改檔那就是藉由『操作系統(tǒng)』來達(dá)成的啰!這個(gè)操作系統(tǒng)就是在溝通你這個(gè)使用者跟硬件之間的訊息傳遞啦!也就是說,沒有操作系統(tǒng),那么你的計(jì)算機(jī)硬件就只是一堆廢鐵,什么工作都不能做的!
那么操作系統(tǒng)里面含有殲梁什么東西呢?簡(jiǎn)單的來說,操作系統(tǒng)主要分為兩個(gè)東西,一個(gè)是『核心』、一個(gè)是『一堆核心提供的工具』我們以使用者常使用的 Windows 計(jì)算機(jī)來做一個(gè)簡(jiǎn)單的說明好了。大家應(yīng)該都使用過 Windows 計(jì)算機(jī)里面的檔案總管吧?那么當(dāng)你開啟檔案總管的時(shí)候,他是否會(huì)顯示你硬盤當(dāng)中的資料?這個(gè)顯示硬盤里面的資料,就是『核心』幫你做的,但是,你要核心去顯示硬盤哪一個(gè)目錄下的資料,則是由『檔案總管』這個(gè)『工具』幫你達(dá)成的!這樣可以理解嗎?再來,如果您曾經(jīng)使用過 Windows 2023 或 Windows XP 的話,那就更好了!你就應(yīng)該聽過有所謂的『FAT32 與 NTFS 檔案格式』吧?在 Windows 98 這個(gè)早期的 Windows 版本中,他并無法讀取或者是找到 Windows XP 的 NTFS 檔案格式的硬盤,為什么呢?因?yàn)樗摹汉诵摹槐緛砭筒徽J(rèn)識(shí) NTFS ??!所以,即使你有檔案總管,但是由于核心根本不認(rèn)識(shí) NTFS ,所以,檔案總管也是沒有能力幫你達(dá)到你想要做的事情!這樣應(yīng)該就更清楚了吧?沒錯(cuò)!你的整個(gè)硬件是由核心來管理的,而如果核心不認(rèn)識(shí)你的硬件,那么你將無法使用該硬設(shè)備,例如上面提到的 NTFS 檔案格式的硬盤!核心就是『 Kernel 』,他是一個(gè)操作系統(tǒng)的更底層的東西,由他來掌管整個(gè)硬件資源的工作狀態(tài),而 Linux 有 Linux 自己的核心, Windows 也有他自己的核心。所以說,當(dāng)有新的硬件加入到你的系統(tǒng)中的時(shí)候,那么若你的『 Kernel 』并沒有支持他的時(shí)候,呵呵,這個(gè)新的硬件就肯定無法工作的,因?yàn)榭刂扑?Kernel 并不認(rèn)識(shí)他呀!這樣了解了嗎?!先有個(gè)概略性的了解,后面我們提到『核心編譯』的時(shí)候會(huì)在更詳細(xì)的談到他!
一般來說,Kernel 管理的事項(xiàng)有:
System call interface :一些服務(wù)與 kernel 溝通之后,將硬件的資源進(jìn)一步的利用;
Process control :系統(tǒng)過程控制中心,所以核心編的越小越好;
Memory management :控制整個(gè)系統(tǒng)的內(nèi)存管理;
File system management :檔案系統(tǒng)的管理,例如 I/O 等等的工作啦!還有不同檔案格式的支持啦等等,如果你的核心不認(rèn)識(shí)某個(gè)檔案系統(tǒng),嫌亂那么您將無法使用該檔案格式的檔案啰!例如上面提到的 Windows 98 不認(rèn)識(shí) NTFS 檔案格式的硬盤;
Device drivers :就如同上面提到的,硬件的管理是 Kernel 的主要工作之一,當(dāng)然啰,裝置的驅(qū)動(dòng)程序就是核心需要做的事情啦!好在目前都有所謂的『可加載模塊』功能,可以將驅(qū)動(dòng)程序編輯成模塊,就不需要重新的編譯核心啦!這個(gè)也會(huì)在后續(xù)的核心編譯當(dāng)中提到的!
所以啦!所有硬件的資源都是他來管理的!至于我們要達(dá)成一些工作時(shí),除了藉由核心本身提供的功能 ( 例如上面提到的檔案總管 ) 之外,還可以藉由其它的應(yīng)用軟件來達(dá)成喔!舉個(gè)例子來說,你要看 VCD 影片是吧!那么除了 Windows 提供的媒體播放程序之外,你也可以自行安裝 VCD 播放程序來播放 VCD 啰!這個(gè)播放程序就是應(yīng)用軟件啰,而這個(gè)應(yīng)用軟件可以幫你去控制核心來工作 ( 就是放映影片啰 ) ,因此,我們可以這樣說,核心是控制整個(gè)硬件支持的咚咚,也是一個(gè)操作系統(tǒng)的更底層,然而要讓整個(gè)操作系統(tǒng)更完備的話,那還需要含有相當(dāng)豐富的核心提供的工具,以及核心相關(guān)的應(yīng)用軟件來支持!
OK!提到這里那么您知道 Linux 是什么了嗎?呵呵!對(duì)啦!其實(shí) Linux 就是一個(gè)操作系統(tǒng),這個(gè)操作系統(tǒng)里頭含有最主要的 kernel 以及 kernel 提供的工具啦!他提供了一個(gè)完整的操作系統(tǒng)當(dāng)中更底層的硬件控制與資源管理的完整架構(gòu),這個(gè)架構(gòu)是沿襲 Unix 良好的傳統(tǒng)來的,所以相當(dāng)?shù)姆€(wěn)定而功能強(qiáng)大!此外,由于這個(gè)優(yōu)良的架構(gòu)可以在目前的個(gè)人計(jì)算機(jī) ( X86 系統(tǒng) ) 上面跑,所以很多的軟件開發(fā)者將他們的工作心血移轉(zhuǎn)到這個(gè)架構(gòu)上面,那就是很多的應(yīng)用軟件啦!雖然 Linux 僅是其核心與核心提供的工具,不過,由于核心、核心工具與這些軟件開發(fā)者提供的軟件的整合,使得 Linux 成為一個(gè)更完整的、功能強(qiáng)大的操作系統(tǒng)啰!我們可以將 Linux 的系統(tǒng)與使用者的相關(guān)性看成底下的圖標(biāo):
圖一、使用者、使用者接口與核心工具、核心、與硬件之相關(guān)性
約略了解 Linux 是何物之后,接下來,我們要談一談,『為什么說 Linux 是很穩(wěn)定的操作系統(tǒng)呢?他是如何來的?』
從 Unix 到 Linux 這一段歷史
為什么大家常常會(huì)說, Linux 是很穩(wěn)定的一套操作系統(tǒng)呢?這是因?yàn)椋?Linux 他有個(gè)老前輩,那就是 Unix 家族啰!有這個(gè)前輩的提攜,讓 Linux 這個(gè)小老弟很快的就成為一套穩(wěn)定而優(yōu)良的操作系統(tǒng)啦!所以,底下我們來談一談 Unix 到 Linux 的這一段歷史吧!
早在 Linux 出現(xiàn)之前的二十年 ( 大約在 1970 年代 ), 就有一個(gè)相當(dāng)穩(wěn)定而成熟的操作系統(tǒng)存在了!那就是 Linux 的老大哥『 Unix 』是也!怎么這么說呢?!他們這兩個(gè)家伙有什么關(guān)系呀?這里就給他說一說啰!眾所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的時(shí)候給他開發(fā)出來的,并且丟到網(wǎng)絡(luò)上提供大家下載,后來大家覺得這個(gè)小東西 ( Linux Kernel ) 相當(dāng)?shù)男《?,所以慢慢的就有相?dāng)多的朋友投入這個(gè)小東西的研究領(lǐng)域里面去了!但是為什么這的小東西這么棒呢?!然而又為什么大家都可以免費(fèi)的下載這個(gè)東西呢?!嗯!等鳥哥慢慢的唬xx….喔不!聽我慢慢的道來!
一個(gè)沒有完成的夢(mèng)想: Bell, MIT 與 GE 的『 Multics 』系統(tǒng)
早期的計(jì)算機(jī)并不像現(xiàn)在的個(gè)人計(jì)算機(jī)一般,他可不是一般人碰的到的玩意兒,除非是軍事或者是高科技用途才有可能接觸到這類的 Computer !而如前面所言,有計(jì)算機(jī)硬件還需要操作系統(tǒng)的配合才能夠發(fā)揮計(jì)算機(jī)的效能,不過,在那個(gè)年代,由于計(jì)算機(jī)算是『奢侈品』,喔~應(yīng)該說是『貴重物品』,所以,可能一間學(xué)校就只有一部大型主機(jī)當(dāng)然,那個(gè)年代所謂的大型主機(jī)仍然無法提供適度的運(yùn)算能力的。不過,既然只有一部大型主機(jī),然而有許許多多的教師、學(xué)生要想要來使用,怎么辦呢?為了解決這個(gè)問題,在 1960 年代初期,麻省理工學(xué)院 ( MIT ) 發(fā)展了所謂的『兼容分時(shí)系統(tǒng) ( Compatible Time-Sharing System, CTSS )』,就字面上的意義來看,他主要讓大型主機(jī)可以提供多個(gè)終端機(jī)聯(lián)機(jī)進(jìn)入主機(jī)使用主機(jī)的資源, ( 附帶一提,當(dāng)時(shí)的終端機(jī) ( Terminal ) 本身并沒有軟件或者可供使用的資源,這些終端機(jī)要能使用,一定必需要聯(lián)機(jī)登入主機(jī)之后,才能夠使用主機(jī)的資源來工作!) 當(dāng)時(shí)可以讓約 30 位使用者聯(lián)機(jī)使用主機(jī)。而為了讓這個(gè)分時(shí)系統(tǒng)更加的強(qiáng)大,所以,在 1965 年前后由貝爾研究室 ( Bell )、 麻省理工學(xué)院 ( MIT ) 及奇異電器公司 ( GE ) 開始來共同開發(fā)一個(gè)名為 Multics 的大型計(jì)畫,目標(biāo)是想讓大型主機(jī)可以聯(lián)機(jī) 300 位以上的使用者。不過,在奮斗了四年之后,該計(jì)畫仍然宣告不治…喔!是失敗啦!(注: Multics 有復(fù)雜、多數(shù)的意思。)
一個(gè)小型檔案系統(tǒng)的產(chǎn)生:1969 年 Ken Thompson 的小型 file server system
在復(fù)雜的 Multics 系統(tǒng)的計(jì)畫失敗后,貝爾研究室當(dāng)然就退出該計(jì)畫。就在這個(gè)計(jì)畫解散之后,曾經(jīng)參與 Muitics 的貝爾研究室的成員 Ken Thompson 由于自己工作上的需求,需要一套檔案存取的小型操作系統(tǒng),便在 1969 年的時(shí)候以 DEC 公司 ( Digital Equipment Corporation ) 的計(jì)算機(jī) PDP-7 為硬件基準(zhǔn),設(shè)計(jì)了一個(gè)適合自己工作環(huán)境的小型檔案系統(tǒng),其中也含有他自行開發(fā)的一些小工具。那個(gè)系統(tǒng)就是最早期的 Unix 的源頭!當(dāng)初 Ken 設(shè)計(jì)這個(gè)檔案系統(tǒng)時(shí),主要是為了自己的存取方便所設(shè)計(jì)的簡(jiǎn)單 OS ,因此將原有的 Multics 系統(tǒng)大幅度的簡(jiǎn)化,不過,在當(dāng)時(shí)還并沒有 Unix 這個(gè)名詞的出現(xiàn)!
Unix 的正式誕生:1973 年 Ritchie 等人以 C 語言寫出之一個(gè)正式 Unix 核心
由于 Thompson 寫的那個(gè)操作系統(tǒng)實(shí)在太好用了,所以在 Bell 研究室內(nèi)部廣為流傳,并且數(shù)度經(jīng)過改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人為了讓這個(gè)系統(tǒng)的執(zhí)行效能更佳化,所以使用編譯效能更好的 C 語言將原有的 1969 年的那個(gè)系統(tǒng)之核心大幅度的改寫過,并且確定該操作系統(tǒng)名稱為 Unix,呵呵!那就是最早的 Unix 操作系統(tǒng)啰!不過,由于這個(gè)操作系統(tǒng)是由這一群工程師所開發(fā)完成的,而且使用者也大多是這方面的工程師,因此造成了后來 Unix 系統(tǒng)接口較難被一般使用者接受的情況 @_@ (注: 相對(duì)于 Multics ,Unix 具有單一的意思!)
重要的 Unix 分支: 1977 年 BSD 的誕生
在 Unix 早期的發(fā)展中,有一件相當(dāng)重要的事情,那就是 BSD 的誕生!由于 C 語言是一種高級(jí)語言,他可以被應(yīng)用在不同的硬件架構(gòu)上面,而 Unix 本身就是 C 語言寫成的!在 Unix 發(fā)表之后, 柏克萊大學(xué) ( Berkeley ) 的教授對(duì)于這個(gè)操作系統(tǒng)相當(dāng)?shù)挠信d趣,在經(jīng)過取得 Unix 的原始碼,并且?guī)捉?jīng)修改之后,終于在 1977 年發(fā)表了之一代的 Berkeley Software Distribution ( BSD ) 。這個(gè) BSD 是 Unix 的一個(gè)分支,他的發(fā)展對(duì)于 Unix 有相當(dāng)大的影響,例如后來的 Sun 公司就是使用 BSD 發(fā)展的核心進(jìn)行自己商業(yè)的 Unix 版本的發(fā)展的!
百家齊鳴的 Unix 版本:
由于 C 語言是一個(gè)相當(dāng)高階的程序語言,他與硬件沒有很直接的相關(guān)性,例如你的 Windows 也可以執(zhí)行 C 程序語言!而由于 Unix 是由 C 語言寫成的,因此,也就是說,你只要經(jīng)過稍微的原始碼修改程序,就可以在不同的硬件架構(gòu)上面執(zhí)行這個(gè)操作系統(tǒng)!后來,由于 Unix 的方便性,因此很多的商業(yè)公司及學(xué)術(shù)機(jī)構(gòu)就加入這個(gè)操作系統(tǒng)的研發(fā)啰。不過,也由于 Unix 的便利性與改寫容易,因此就造成了很多的不同版本的 Unix 啰,例如 ATT 的 System V 、 加州大學(xué)的 BSD 版、 IBM 的 AIX 等等。
由于『操作系統(tǒng)的核心 ( Kernel ) 必須要跟硬件配合,以提供及控制硬件的資源進(jìn)行良好的工作!』,而在早期每一家生產(chǎn)計(jì)算機(jī)硬件的公司還沒有所謂的『協(xié)議』的概念,所以每一個(gè)計(jì)算機(jī)公司出產(chǎn)的硬件自然就不相同啰!因此他們必須要為自己的計(jì)算機(jī)硬件開發(fā)合適的 Unix 系統(tǒng),所以,他們自行開發(fā)的 Unix 當(dāng)然只能配合本身的硬件配備啰!例如在學(xué)術(shù)機(jī)構(gòu)相當(dāng)有名的 Sun 、 Cray 與 HP 就是這一種情況,他們開發(fā)出來的 Unix 并沒有辦法在其它的硬件架構(gòu)下工作的! ( 我們都稱呼這種系統(tǒng)與配備為『超級(jí)計(jì)算機(jī)』 ) !由于沒有廠商針對(duì)個(gè)人計(jì)算機(jī)設(shè)計(jì) Unix 系統(tǒng),因此,在早期并沒有支持個(gè)人計(jì)算機(jī)的 Unix 操作系統(tǒng)的出現(xiàn) ( 當(dāng)然,這是由于早期的個(gè)人計(jì)算機(jī)并沒有現(xiàn)在這樣風(fēng)行就是了! ) ,每一家公司自己出的 Unix 雖然在架構(gòu)上面大同小異,但是卻真的僅能支持自身的硬件,所以啰,早先的 Unix 只能與服務(wù)器 ( Server ) 或者是大型工作站 ( Workstation ) 劃上等號(hào)!
此外,由于版本太多了,而大家都是同樣來自于 Unix 這個(gè)老祖宗,當(dāng)然也都稱自己是 Unix ,好了,如此一來,許多商業(yè)公司自然就會(huì)有類似的軟件發(fā)表,喝!那么自然就有些許的商業(yè)糾紛啰!真是傷腦筋~
1984 年的 GNU 與 Free Software Foundation:
Unix 在商業(yè)上面的問題讓許多對(duì)于 Unix 喜好者感到相當(dāng)?shù)膽n心,其中一個(gè)就是有名的 Richard M. Stallman 先生。他認(rèn)為, Unix 是一個(gè)相當(dāng)好的操作系統(tǒng),在這個(gè)系統(tǒng)上面,如果大家能夠?qū)⒆约核鶎W(xué)的貢獻(xiàn)出來,那么這個(gè)系統(tǒng)將會(huì)更加的優(yōu)異!Stallman 先生認(rèn)為更大的快樂就是讓自己發(fā)展的良好的軟件讓大家來使用了!而且,由于每個(gè)人的工作環(huán)境 ( 指軟硬件平臺(tái) ) 可能都不太相同,所以,他也強(qiáng)調(diào)應(yīng)該要有 Open Source 的概念,讓大家都能夠分享這一份的心得!他認(rèn)為,有了 Open Source 之后,你的程序?qū)⒂泻芏嗟娜丝梢詭兔z驗(yàn),將使得 Unix 社群更佳的茁壯。為了自己的理想, Stallman 在 1984 年實(shí)際創(chuàng)立了 GNU 與 自由軟件基金會(huì) ( Free Software Foundation, FSF ),并創(chuàng)作了許多『自由軟件』供大眾來使用,此外,對(duì)于其作品以自由 ( free ) 的 GNU General Public License ( GPL ) 的授權(quán)模式提供大眾使用。這個(gè) FSF 的核心觀念是『版權(quán)制度是促進(jìn)社會(huì)進(jìn)步的手段,版權(quán)本身不是自然權(quán)力?!粚?duì)于 FSF 有興趣或者對(duì)于 GNU 想要更深入的了解時(shí),請(qǐng)參考朝陽大學(xué)的洪朝貴教授的網(wǎng)站,里面有更為深入的解說!而且,Stallman 的 GNU General Public License 一直強(qiáng)調(diào) Free 這個(gè)字眼!他是這樣說的:『”Free software” is a matter of liberty, not price. To understand the concept, you should thik of “free speech”, not “free beer”. “Free software” refers to the users freedom to run, copy, distribute, study, change, and improve the software』大意是說,自由軟件并不是指『免費(fèi)』的,而是指具有『自由度, freedom』的軟件,什么是自由度呢?也就是你在取得這個(gè)軟件之后,可以進(jìn)行修改、進(jìn)一步發(fā)表與復(fù)制在不同的計(jì)算機(jī)平臺(tái)上面。這無疑是個(gè)好消息!因?yàn)槿绱艘粊?,你所拿到的軟件可能原先只能?Unix 上面跑,但是經(jīng)過原始碼的修改之后,你將可以拿他在 Linux 或者是 Windows 上面來跑!Stallman 先生更直接對(duì)自由度下了這樣的說明:
你可以根據(jù)任何你想要的提議 ( purpose ) 來跑這個(gè) Free 的程序;
你可以在理解了這支 Free 的程序的運(yùn)作之后,將他修改成你所想要的樣式與功能;
你可以將你自己修改過的 Free 的程序再次的發(fā)表,以幫助你的朋友們;
你可以將這支 Free 的程序進(jìn)行改良,并將改良過的程序公開發(fā)表,以造福社群!
簡(jiǎn)單的來說, GPL 授權(quán)具有幾個(gè)特點(diǎn):
任何軟件掛上 GPL 授權(quán)之后,即為自由的軟件,任何人均可取得,同時(shí),亦可取得其原始碼 ( Source Code );
取得 GPL 授權(quán)之軟件后,任何人均可進(jìn)行修改原始碼,以符合自己的喜好;
除此之外,經(jīng)過修改的 Source Code 應(yīng)回報(bào)給網(wǎng)絡(luò)社會(huì),提供大家來參考!
但請(qǐng)?zhí)貏e留意,并非掛上 GPL 之后的軟件就不可販賣,這個(gè)是不同的兩回事呦!舉個(gè)例子來說,在 Red Hat 的官方網(wǎng)站上面提供 Red Hat 釋出的 Linux 安裝光盤提供大眾下載,但是 Red Hat 本身依然有在賣 Linux 的套件,而且還賣的『很不便宜!』為何可以如此呢?呵呵!因?yàn)?Red Hat 他們賣的資料當(dāng)中,含有相當(dāng)大量經(jīng)過整了的文件資料,這些資料雖然在網(wǎng)絡(luò)上面可以下載,然而花了這么多的時(shí)間來整理這些資料,當(dāng)然應(yīng)該要給予相當(dāng)程度的報(bào)酬啰!您說是吧!所以,請(qǐng)留意喔!并非 GPL 不可用來營利!
這個(gè) GNU 對(duì)于后來的 Linux 有相當(dāng)深遠(yuǎn)的影響,由于 Stallman 先生發(fā)展了 GNU 這個(gè)計(jì)畫中,主力在推出各種方便而優(yōu)異的工具軟件,例如廣為大家所知的 Emacs 文書編輯器、GCC, BASH..然而沒有作業(yè)平臺(tái)怎么使用這些軟件呢?然而,由于他倡導(dǎo)的自由軟件,讓后來的心血能很快的接觸原始碼來發(fā)展軟件,這就是后來的 Linux 的故事….這是后來的故事,等一下來說~
1988 年的圖形接口 X-Free86 project:
有鑒于圖形使用者接口 ( Graphical User Interface, GUI ) 的需求日益加重,在 1984 年由 MIT 與其它協(xié)力廠商首次發(fā)表了 X Window System ,并且更在 1988 年成立了非營利性質(zhì)的 XFree86 這個(gè)組織。所謂的 XFree86 其實(shí)是 X window system 與 Free 及 x86 系統(tǒng)架構(gòu)的整合名稱呢!而這個(gè) XFree86 的 GUI 接口更在 Linux 的核心 1.0 版于 1994 年釋出時(shí),整合于 Linux 操作系統(tǒng)當(dāng)中!
1991 年 芬蘭大學(xué)生 Linus Torvalds 的一則簡(jiǎn)訊:
在后來的幾年內(nèi),由于計(jì)算機(jī)硬件工業(yè)的強(qiáng)力運(yùn)作,以 intel 主導(dǎo)的 x86 系統(tǒng)架構(gòu)的個(gè)人計(jì)算機(jī)大行其道,所以個(gè)人計(jì)算機(jī)算是相當(dāng)流行的一個(gè)機(jī)器了!但在此時(shí),人們使用的大多還是舊舊而且需要吃很多系統(tǒng)資源的 DOS 系列或其它的操作系統(tǒng)。 此時(shí),有個(gè)芬蘭的郝爾辛基大學(xué) (Helsinki )Linus Torvalds 學(xué)生做了件不尋常的事情! Linus 手邊有個(gè) Minix 系統(tǒng) ( 這也是 Unix 的分支 ) ,他對(duì)這個(gè)操作系統(tǒng)相當(dāng)?shù)挠信d趣!此外,由于當(dāng)時(shí)他正好買了一部 386 的計(jì)算機(jī),所以他就想說,咦!這個(gè) Unix 這么棒!這么穩(wěn)定,那我可不可以將他移植到個(gè)人計(jì)算機(jī) ( X86 架構(gòu) ) 來使用呢?!好在由于 Stallman 提倡的 Open Source 風(fēng)氣,他得以接觸到一些 source code ,而就經(jīng)由這樣的一個(gè)想法,呵呵!他就很有心的讀取 Unix 的核心,并且去除較為繁復(fù)的核心程序,將他改寫成可以適用于一般個(gè)人計(jì)算機(jī)的 x86 系統(tǒng)上面,到了 1991 年,他終于將 0.02 版的 hobby 放到網(wǎng)絡(luò)上面供大家下載,并且由于 hobby 受到大家的肯定,相當(dāng)多的朋友一起投入這個(gè)工作中!終于到了 1994 年將之一個(gè)完整的核心 Version 1.0 釋出!并且造成目前的大流行…..由于 Linux kernel 的發(fā)展是由『虛擬團(tuán)隊(duì)』所達(dá)成的,大家都是透過網(wǎng)絡(luò)取得 Linux 的核心原始碼,經(jīng)由自己精心改造后再回傳給 Linux 社群,進(jìn)而一步一步的發(fā)展完成完整的 Linux 系統(tǒng),至于 Torvalds 先生是這個(gè)集團(tuán)中的發(fā)起者。由于這個(gè)群策群力的緣故, Torvalds 先生將 Linux 定為同樣造福大家的 GNU 授權(quán)模式!
企鵝的來源:
1994年發(fā)表 Linux 正式核心 1.0 的時(shí)候,大家要 Linus Torvalds 想一只吉祥物,怪怪的 Torvalds 突然想到小時(shí)候去動(dòng)物園被一只企鵝追著滿地打滾~還被咬了一口!既然想不到其它的吉祥物了,干脆就以這支企鵝來當(dāng)吉祥物算了!所以,呵呵!目前我們常??吹竭@一只企鵝就是這么來的咯!
什么是 distribution
好了,經(jīng)由上面的說明,我們知道 Linux 是個(gè)『操作系統(tǒng)』,而且他是 GNU 的授權(quán)模式,并且有個(gè)老大哥是 Unix 。不過,畢竟由 Torvalds 先生負(fù)責(zé)維護(hù)的 Linux 提供的僅是『核心』與『核心工具』的,對(duì)于需要更完整功能的操作系統(tǒng)來說,畢竟還不夠完備,例如如果你要桌面程序,還得要加入 X-Window 系統(tǒng)對(duì)吧?。咳绻阋茉O(shè) WWW 還得加入服務(wù)器軟件對(duì)吧?所以,雖然 Linux 的核心已經(jīng)提供了相當(dāng)多的支持與工具程序,但畢竟還不足以構(gòu)成一個(gè)很完整的操作系統(tǒng)。
好在,由于 Linux 的穩(wěn)定性良好,并且可以在便宜的 x86 架構(gòu)下的計(jì)算機(jī)平臺(tái)運(yùn)作,所以吸引了很多的套件商與自由軟件的開發(fā)團(tuán)隊(duì)在這個(gè) Linux 的核心上面開發(fā)相關(guān)的軟件,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商業(yè)公司發(fā)現(xiàn)這個(gè)商機(jī),因此,這些商業(yè)公司或者是非營利性的工作團(tuán)隊(duì),便將 Linux 核心、核心工具與相關(guān)的軟件起來,并加入自己公司或團(tuán)隊(duì)的創(chuàng)意的系統(tǒng)管理模塊與工具,而釋出一套可以完整安裝的操作系統(tǒng),這個(gè)完整的 Linux 操作系統(tǒng),我們就稱呼他為 distribution,或者是中文所謂的『安裝套件』啰!當(dāng)然啰,由于是基于 GNU 的架構(gòu)下,因此各家公司所發(fā)行的光盤套件是可以在網(wǎng)絡(luò)上面自由下載的。不過,如果想要有較佳的服務(wù),那么購買該公司發(fā)行的光盤也是不錯(cuò)的!
不過,由于發(fā)展的 Linux 公司實(shí)在太多了,例如有名的 Red Hat, OpenLinux, Mandrake, Debian, SuSE 等等,所以很多人都很擔(dān)心,如此一來每個(gè) distribution 是否都不相同呢?這就不需要擔(dān)心了,由于各個(gè) distribution 都是架構(gòu)在 Linux Kernel 下來發(fā)展屬于自己公司風(fēng)格的 distribution,因此大家都遵守 Linux Standard Base ( LSB ) 的規(guī)范,也就是說,各個(gè) distribution 其實(shí)都是差不多的!反正用到的都是 Linux Kernel ?。≈皇歉鱾€(gè) distribution 里面所使用的各套件可能并不完全相同而已。所以啰,大家可以按照自己的喜好來選擇 Linux 的 distribution 光盤啰!底下列出幾個(gè)主要的 Linux 發(fā)行者網(wǎng)址
一樓的超棒的
linux底層操作系統(tǒng)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux底層操作系統(tǒng),深入剖析:Linux底層操作系統(tǒng)的奧秘,linux系統(tǒng)是怎么回事?可以簡(jiǎn)單的介紹下嗎?的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
文章名稱:深入剖析:Linux底層操作系統(tǒng)的奧秘 (linux底層操作系統(tǒng))
文章分享:http://fisionsoft.com.cn/article/coejpse.html


咨詢
建站咨詢
