欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

了解Linux

 更新時間:2006年10月24日 00:00:00   作者:  

"Linux"這個名字我想大家現(xiàn)在都不會陌生了,這一年多來隨著國內(nèi)各種媒體的爭相的宣傳與報導,Linux已經(jīng)成為了一個熱門的話題。
    我想就這幾個方面談談Linux:Linux的歷史和發(fā)展歷程、設計宗旨和方法、主要特點、構(gòu)成、Linux上的常用軟件、Linux的應用,最后是Linux的發(fā)展趨勢。

我們今天的第一件事情或許是要了解Linux這個單詞的讀法。我們很多人對Linux的讀音都不盡相同,大致有這么幾種: “來那克斯”與“林你克斯”“里扭克斯“等,這幾種發(fā)音我們大家可能都聽過。不僅僅是在我們大家之間,在世界范圍內(nèi)人們對Linux的讀音差別也是很大。由于是這樣的原因Linus本人自己錄了一段他對Linux的發(fā)音放到互聯(lián)網(wǎng)上,讓大家下載。這段錄音的內(nèi)容是這樣的: "Hello,this is Linus Torvalds and I pronounce Linux as Linux"。他念的讀音是['li:nэks], 所以我們認為還是應當以Linus Torvalds本人的發(fā)音為準。

那么什么是Linux呢?

    Linux有兩種不同的含義。從嚴格的技術(shù)定義講,Linux指的是開放源代碼的Unix類操作系統(tǒng)的內(nèi)核。然而,目前大多數(shù)人用它來表示以Linux內(nèi)核為基礎的整個操作系統(tǒng)。從這種意義講,Linux指的是開放源代碼的,包含內(nèi)核、系統(tǒng)工具、完整的開發(fā)環(huán)境和應用的Unix類操作系統(tǒng)。

    它是一個支持多用戶, 多進程,實時性好的功能強大而穩(wěn)定的操作系統(tǒng)。它可以運行在x86 PC,Sun Sparc,Digital Alpha,680x0,PowerPC, MIPS等平臺上,可以說Linux是目前運行硬件平臺最多的操作系統(tǒng).,但是它主要還是面向Intel PC硬件平臺。 所以也可以這樣的說:Linux是Unix在Pc機上的完整實現(xiàn)。
Linux的歷史

    Linux的又是怎樣發(fā)展起來的呢?
   最早期的Linux是Linus Torvalds于1991年開始著手進行開發(fā)的,當時他是芬蘭赫爾辛基大學計算機系的學生,23歲。最初,他是在Minix環(huán)境下用匯編語言寫了一個在80386保護模式下處理多任務切換的程序,后來從Minix(Andy Tanenbaum教授所寫的很小的Unix操作系統(tǒng),主要用于操作系統(tǒng)教學)得到靈感,進一步產(chǎn)生了一個想法----寫一個比Minix更好的Minix,于是開始寫了一些硬件的設備驅(qū)動程序,一個小的文件系統(tǒng),......, 這樣幾個月后0.0.1版本的Linux就出來了,其實Linus開始想把這個系統(tǒng)命名為"freax",只是他把所有的源代碼放到了芬蘭最大的ftp站點中的Linux(它的意思就是Linus 的Minix)目錄下,后來Linux這個名字就被大家接受并保留下來了。我們知道軟件要到理論上已經(jīng)完備或者基本上沒有毛病的時候才能給予1.0版本,可見這個時候推出的0.01版是相當簡陋的了。它只具有操作系統(tǒng)內(nèi)核的勉強的雛形,甚至不能運行,你必須在有Minix的機器上編譯以后才能用。所以這個版本從來沒有正式宣布發(fā)布過。這時候Linus已經(jīng)完全著迷于這個系統(tǒng)的開發(fā)上了,他決定完全拋開Minix。于是在1991年10月5號他象世界公布了Linux 0.0.2版本,并在comp.os.minix新聞討論組里發(fā)布消息Linux 0.0.2。在這個版本中已經(jīng)可以運行不少的程序了。其中包括bash(the GNU Bourne Again Shell----一種用戶與操作系統(tǒng)內(nèi)核通訊的軟件)和gcc(GNU C 編譯器)和GNU-make,sed,compress。

    從0.02版以后,越來越多的人參與到該系統(tǒng)的開發(fā)工作,所以Linux的發(fā)展越來越快,這樣只過了一年多,到1994年Linux1.0就問世了。而Linus Toralds在今年的Linuxworld專業(yè)會議上宣布到今年年中Linux可以升級到2.4.x版本,我們知道Linux是通過互聯(lián)網(wǎng)發(fā)展的現(xiàn)在真是日新月異,基本上每幾個月就有一個新的版本,尤其是第三位數(shù)變化實在太快所以很難定位現(xiàn)在的版本。 我們剛才看到2.4.x,它這個是什么意思呢?
    Linux的版本號要比其他的軟件復雜一些,它分為兩類:內(nèi)核(kernel)版本與發(fā)行(distribution)。目前最新的內(nèi)核版本號大約是2.2.x:發(fā)行版本最常Slackware3.5RedHat6.0,Turbolinux4.0等:實際上,我們看到市場上銷售的發(fā)行版本就是Linux的一個大軟件包,相當與內(nèi)核版本,發(fā)行版本號隨發(fā)行者的不同而不同,與系統(tǒng)內(nèi)核的版本號是相對獨立的。例如Slackware3.5,RedHat6.5,Debian1.3等。

我們主要講講Linux的內(nèi)核版本

    Linux從1.0版本后就具有兩種不同的版本號,叫做版本樹。 一個版本樹是由一個是實驗版本,一個是產(chǎn)品版本。 每一個版本是由三位數(shù)字組成的,第二位數(shù)字說明版本類型。如果第二位是偶數(shù),則說明這種版本是產(chǎn)品化版本,如果是奇數(shù),則是實驗版本,比如說版本1.2.0是產(chǎn)品化的版本,而1.3.0則是實驗版本。這兩種版本是有關(guān)聯(lián)的,是一前一后完成的。每一個版本樹開始時間都是相同的,然后呢,這兩個版本不斷的擴充增長,穩(wěn)定代碼會添加到產(chǎn)品化版本中,而測試階段的代碼則添加到實驗版本中。當linus確定實驗版本具有足夠的新功能并且性能穩(wěn)定的時候,他就稱為代碼凍結(jié)(code freeze)。這時候穩(wěn)定的實驗版本成為新的x.y.0,開發(fā)又按新的版本進行。

    比如說:1.0.0和1.1.0是相同的,1.0.1是對1.0版代碼的第一次錯誤修復,而1.1.1是往1.1版中第一次添加新功能。最后到1.0.9中的錯誤在1.0中得到修復,1.1.9最終為1.1。最后隨著新功能的不斷增加到達足夠有足夠的新功能時,代碼凍結(jié),版本一同升級為 1.2.0和1.3.0,然后繼續(xù)1.2.0修復錯誤,1.3.0添加功能。
    我們可以看到Linux的發(fā)展歷程要比其他的操作系統(tǒng)短暫的多,它的原因是多方面的,但談到Linux的發(fā)展歷程我們不得不先來談一下自由軟件基金會和它的GNU計劃。 我們知道當前流行的軟件按其提供方式可以大致劃分為三種模式:商業(yè)軟件、共享軟件、自由軟件。 商業(yè)軟件是由開發(fā)者出售拷貝并提供技術(shù)服務,用戶只有使用權(quán),但不能進行非授權(quán)的拷貝、擴散、修改或添加新功能; 共享軟件則是開發(fā)者提供軟件試用程序拷貝,用戶在使用一段時間后,必須向開發(fā)者交納使用費用,開發(fā)者則提供相應的升級和技術(shù)服務;
自由軟件則是由開發(fā)者提供軟件全部的源代碼,任何用戶都有權(quán)使用、拷貝、擴散、修改該軟件。同時用戶也有義務將自己修改過的程序源代碼公開。

    其實在計算機工業(yè)發(fā)展的初期,是沒有這三種模式的,當時軟件只是硬件的附屬品。公司只賣硬件,隨系統(tǒng)贈送軟件。在這一時期,軟件的設計思想,新的算法和軟件的源代碼在專家和公司技術(shù)人員之間自由交流,促進了軟件的迅速發(fā)展。但是,公司很快認識到軟件的價值,對軟件實施了版權(quán)控制,并限制源代碼的發(fā)布。許多原本屬于公眾創(chuàng)造的知識財富現(xiàn)在成為公司的私有財產(chǎn)。軟件的開發(fā)方式也發(fā)生了變化,變成以公司為主體的封閉的開發(fā)模式。Unix就是這樣的例子。 雖然AT&T開創(chuàng)了Unix的歷史,但是Unix的發(fā)展與完善卻與許多大學的專家、技術(shù)人員的努力分不開。事實上,Unix是在協(xié)作基礎上開發(fā)的。當AT&T在70年代末期對Unix的使用和發(fā)布強制實施版權(quán)控制后,使早期對Unix發(fā)展做出貢獻的人們感到失望。
Richard Stallman,與BillGates曾經(jīng)同是哈佛大學的學生,他就這個時候就在軟件開發(fā)團體中發(fā)起支持開發(fā)自由軟件的運動。自1984年起,麻省理工學院(MIT)開始支持他,這就導致了自由軟件基金會(Free Software Foundation,F(xiàn)SF)的建立。

    在同年Richard Stallman組織開發(fā)了一個完全基于自由軟件的軟件體系計劃——GNU(GNU's Not Unix)計劃,這個計劃的目的就是要開發(fā)一個完全自由的,與Unix類似的但功能更強大的操作系統(tǒng),以便為所有的計算機使用者提供一個功能齊全性能良好的基本系統(tǒng)。GNU的名稱很有意思,它采用了一個無限遞歸的法則來命名的,它的全稱是“GNU's Not Unix”,意思是說GNU不是Unix。取它的每個單詞的首寫字母就組成了“GNU”。 當開始實施GNU項目時,當時沒有多少高質(zhì)量的自由軟件可供項目使用。所以,為GNU項目做出貢獻的人們(Member of FSF)先從系統(tǒng)的應用軟件和工具入手,開發(fā)了大量的自由軟件。但是對核心GNU HURD的開發(fā)速度卻很遲緩,直到現(xiàn)在還沒有正式發(fā)布,仍處于測試階段。

      Richard Stallman針對這個GNU計劃還組織擬訂了一份通用公共許可證書GPL(General Public License),用它來規(guī)范這些“自由軟件”的發(fā)行、復制和修改等一系列行為。GPL許可證可能大家也聽說過,但是也有不少人對他還不是很清楚或者還有誤解。很多人認為GPL許可證下的軟件是公共領域的軟件,沒有任何的版權(quán),屬于公眾的。其實GPL是有版權(quán)的,它的版權(quán)屬于開發(fā)者,并且受到標準國際版權(quán)法的保護。GPL條款的目的是保證軟件自由地發(fā)行和修改。禁止在發(fā)行和使用上進行交易獲利,并且不允許任何人限制其他人在發(fā)布和修改方面的權(quán)利。但是GPL條款讓許多人迷惑的地方是它允許團體或個人從買賣GPL版權(quán)的軟件中獲利,換句話說,就是允許他們在發(fā)行時收取一定的費用,甚至贏利。

    這乍起來一看好象自相矛盾,為什么允許賣軟件贏利而另一方面允許任何人自由免費的獲取呢?其實這不難理解。免費并不意味著它不花錢。盡管通常情況下是這樣的。代碼的獲得是免費的,我們可以想一下,如果某個公司準備把大量的免費軟件裝到CD-Rom上發(fā)行,那這個公司肯定要收取一定的費用來支付生產(chǎn)和發(fā)行CD-Rom的成本。如果這個公司從中獲利,這也是GPL條款所允許的。允許公司發(fā)行和銷售免費軟件是一件相當好的事情,我們可以想一下,并非所有的人都能夠有機會通過Internet來免費獲取GPL軟件,GPL條款允許公司或團體銷售GPL軟件從而擴大了這些軟件的發(fā)行范圍,極大的拓展了這些軟件的全球用戶基礎。自由軟件基金會的GNU計劃為后來的Linux操作系統(tǒng)迅速發(fā)展奠定了堅實的基礎。

    在1994年,Linus發(fā)布Linux的第一個“產(chǎn)品”版Linux1.0的時候,它是按照完全自由發(fā)布的版權(quán)進行發(fā)布的。這種版權(quán)它要求所有的源代碼都必須公開,而且任何人均不得從Linux交易中獲利。這種純粹的自由軟件的方式對于Linux的發(fā)布和發(fā)展實際上是一種阻礙,因為它限制了Linux以磁盤或CD-Rom等媒體的形式進行發(fā)布的可能,同時也限制了一些商業(yè)公司參與Linux的進一步開發(fā)并提供技術(shù)支持的良好愿望。于是半年以后,Linus決定把Linux轉(zhuǎn)向GPL版權(quán)。這一步對Linux發(fā)展十分重要。它贏得了許多專業(yè)人員的支持,這些人將GNU項目的許多成果移植到Linux系統(tǒng)上來。包括很多系統(tǒng)工具包,程序開發(fā)環(huán)境,應用程序等等,甚至標準文件工具(如ls,mv,cp和rm等)都是GNU實用工具包的一部分。所以我們一開始說什么是Linux的時候有一種比較科學的說法是Linux只是一個操作系統(tǒng)的內(nèi)核,其實也是這樣的,Linux本身只有一些磁盤訪問代碼和很少的幾個軟件。它從GNU中得到了許多的益處。

    另外轉(zhuǎn)向GPL以后,很多技術(shù)力量雄厚又善于市場運作的商業(yè)軟件公司加入了這場自由軟件運動。他們把內(nèi)核、原代碼及相關(guān) 的應用程序組織在一起發(fā)行, 于是, 同是Linux, 有不同的發(fā)行者(distributor)版 本, 比較著名的發(fā)行者及相應的版本,其中有:
Linux的發(fā)行版本:(十幾種)

1.OpenLinux(Caldera):
發(fā)布商:Caldera公司
簡介:Caldera公司的Openlinux包括一些實用工具、圖形界面、
安裝指南、第3方的應用程序等。OpenLinux是各公
司優(yōu)化其現(xiàn)存系統(tǒng)、保護培訓投資的理想選擇。
網(wǎng)址:http://www.caldera.com

2.Red Hat Linux(Red Hat):
發(fā)布商:Redhat software
簡介:易于安裝,提供一個穩(wěn)定的包系統(tǒng)RPM,這樣就可以用
一個簡單的命令來安裝、升級、移去軟件的整個包。
每個版本都經(jīng)過了完整的測試,同時支持Intel,Alpha
和Sparc平臺。這也是Redhat公司最引以為自豪的地方。
Redhat在國外使用的最多。
網(wǎng)址:http://www.redhat.com

3.S.u.S.E Linux:
發(fā)布商:S.u.S.E Linux
簡介:格外注重細節(jié),優(yōu)質(zhì)的軟件包控制,出色的支持人員;
共有5張光盤,其中包括Linux操作系統(tǒng)和超過800個,
預設軟件包以及400頁的參考手冊。其中的YaST實用
工具允許用戶自己安裝、設置、和進一步地配置系統(tǒng)。
S.u.S.E支持X Servers的高端圖形卡。
網(wǎng)址:http://www.suse.com

4.Slackware(Walnut Creek Software):
發(fā)布商:Walnut Creek
簡介:Slackware Linux支持大多數(shù)Intel PC.它支持對稱多處
理(最多可達16個處理器)、PCI,并為486、Pentium
和Pentium Pro進行了特別的編碼優(yōu)化。極適合于Internet
服務器和路由器; 同時是自學的好工具;
網(wǎng)址:http://www.cdrom.com

5.Debian GNU/Linux:
發(fā)布商:Debian
簡介:Debian公司的GNU/Linux是基于操作系統(tǒng)的Linux的
自由發(fā)布。它由一群自愿者進行維護和升級。它的先進
的管理工具包使得安裝和維護都異常的簡單。發(fā)布前全
面的測試保證了系統(tǒng)的高度可靠性??梢孕K的形式下
載;它的功能,多樣化和普及方面可以與Redhat相比在
懂技術(shù)的人中很受歡迎,但是不熟練的用戶會有點麻煩,
因為它在安裝配置方面比較復雜一些。
網(wǎng)址:http://www.debian.org。

6.Linux Mandrake: (i.e. 曼德拉草帽)
發(fā)布商:Mandrake
簡介:Linux Mandrake是一個高質(zhì)量的商業(yè)版本。它是在早期 的
Redhat版本中建造起來的,它的開放性和可擴展性沒有
Redhat發(fā)行版高,但是它卻帶有一些商業(yè)軟件。

7.TurboLinux:
發(fā)布商:Pacific Hitech
簡介:TurboLinux包括一系列的應用程序,一個GUI(Xfree86 3.3)
的桌面,文檔和技術(shù)支持

8.LinuxPPC:
發(fā)布商:PowerPC Linux Project
簡介:它是Linux的PowerPC版發(fā)布。

9.MkLinux:
發(fā)布商:Apple Computer/The Open Group Research Group
簡介:Power Macintosh 平臺的Linux發(fā)布。

10.Linux Ware:
發(fā)布商:Trans-Ameritech

11.LinuxPro:
發(fā)布商:WorkGroup Solutions

12.Stampede Linux:
發(fā)布商:Stampede
當然最近還有我們國內(nèi)的幾個發(fā)行版:Xteam Linux、Bluepoint Linux 紅旗Linux、Cosix Linux 等等。

    還有很多著名的商業(yè)軟件開發(fā)公司比如Oracle、Informix、Sun他們也著手開發(fā)了基于Linux的商業(yè)軟件。 后來,Linus本人也認為:“使Linux成為GPL的一員是我一生中所做過的最漂亮的一件事”。

Linux的設計宗旨和方法

    Linux是一個很獨特的操作系統(tǒng),我們現(xiàn)在看看它的開發(fā)模式和設計的宗旨。

    我們知道在商業(yè)性軟件的開發(fā)中,整個系統(tǒng)的設計是按照一系列的步驟進行的,(質(zhì)量管理、源程序的修改控制、程序說明、錯誤問題報告和糾正等等)開發(fā)人員不能隨意增加新功能或改變代碼的關(guān)鍵部分,而且每個開發(fā)人員只負責系統(tǒng)程序的其中一部分或幾部分的工作。只有負責某一部分程序的這個人才可以取出該部分的源程序進行修改。

    而Linux系統(tǒng)的開發(fā)則完全不同。根本沒有類似的有組織的開發(fā)東西,它基本上可以說是一群遍布于全世界的Internet上的自愿人員開發(fā)出來的操作系統(tǒng)。我們每一個人都有機會幫助Linux的開發(fā)、測試、移植新軟件。我們也可以去開發(fā)核心。當然如果你想把你的程序加入到Linux的正式核心代碼中呢,你得把代碼寄給Linus Toralds。讓他測試。Linus在92年,他的主要工作就已經(jīng)轉(zhuǎn)變?yōu)閰f(xié)調(diào)核心代碼。

    Linux的整個系統(tǒng)的設計是開放式和功能式的,一般每過幾個月就會發(fā)布一個核心程序的新版本。只要系統(tǒng)沒有什么嚴重的或顯而易見的問題,它就會認為是穩(wěn)定的,于是就可以發(fā)行。這里面沒有嚴格的質(zhì)量管理和控制。說到這里我們應該認識一下Linux開發(fā)的宗旨,那就是不是發(fā)布一個完美的程序,更重要的是讓用戶盡早地使用和測試一個程序。也就是它把發(fā)展在了穩(wěn)定之上,當然不是說它只顧發(fā)展。我們不要認為Linux是不穩(wěn)定的,Linux 采用了這種開發(fā)模式激發(fā)了世界各地的軟件開發(fā)人員的積極性和創(chuàng)造熱情。大量軟件開發(fā)人員投入到自由軟件的開發(fā)中。軟件開發(fā)人員的集體智慧得到充分發(fā)揮,大大減少了不必要的重復勞動,很多人在為Linux做測試,這樣使Linux的脆弱點能夠及時發(fā)現(xiàn)和克服。任何一家公司都不可能投入如此強大的人力去開發(fā)和檢驗商品化軟件。這種開發(fā)模式使Linux具有強大的生命力。

    Linus率領的分布在世界各地的Linux內(nèi)核開發(fā)隊伍仍然在高速向前推進。事實上,Unix開始發(fā)展時,就采用了這種開發(fā)模式。它的安全漏洞比其它操作系統(tǒng)解決得更徹底。

Linux的主要特點

    作為一個操作系統(tǒng),Linux幾乎滿足當今Unix操作系統(tǒng)的所有要求,因此,它具有Unix操作系統(tǒng)的基本特征。
1.符合POSIX 1003.1標準
    POSIX 1003.1標準定義了一個最小的Unix操作系統(tǒng)接口,任何操作系統(tǒng)只有符合這一標準,才有可能運行Unix程序。Unix具有豐富的應用程序,當今絕大多數(shù)操作系統(tǒng)都把滿足POSIX 1003.1標準作為實現(xiàn)目標,Linux也不例外,它完全支持POSIX 1003.1標準。

2.支持多用戶訪問和多任務編程
    Linux是一個多用戶操作系統(tǒng),它允許多個用戶同時訪問系統(tǒng)而不會造成用戶之間的相互干擾。另外,Linux還支持真正的多用戶編程,一個用戶可以創(chuàng)建多個進程,并使各個進程協(xié)同工作來完成用戶的需求。

3.采用頁式存儲管理
    頁式存儲管理使Linux能更有效地利用物理存儲空間,頁面的換入換出為用戶提供了更大的存儲空間。

4.支持動態(tài)鏈接
    用戶程序的執(zhí)行往往離不開標準庫的支持,一般的系統(tǒng)往往采用靜態(tài)鏈接方式,即在裝配階段就已將用戶程序和標準庫鏈接好,這樣,當多個進程運行時,可能會出現(xiàn)庫代碼在內(nèi)存中有多個副本而浪費存儲空間的情況。Linux 支持動態(tài)鏈接方式,當運行時才進行庫鏈接,如果所需要的庫已被其它進程裝入內(nèi)存,則不必再裝入,否則才從硬盤中將庫調(diào)入。這樣能保證內(nèi)存中的庫程序代碼是唯一的。

5.支持多種文件系統(tǒng)
    Linux能支持多種文件系統(tǒng)。目前支持的文件系統(tǒng)有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系統(tǒng)是EXT2,它的文件名長度可達255字符,并且還有許多特有的功能,使它比常規(guī)的Unix文件系統(tǒng)更加安全。

6.支持TCP/IP、SLIP和PPP
    在Linux中,用戶可以使用所有的網(wǎng)絡服務,如網(wǎng)絡文件系統(tǒng)、遠程登錄等。SLIP和PPP能支持串行線上的TCP/IP協(xié)議的使用,這意味著用戶可用一個高速Modem通過電話線連入Internet網(wǎng)中。

除了上述基本特征外, Linux還具有其獨有的特色:

    支持硬盤的動態(tài)Cache 這一功能與MS-DOS中的Smartdrive相似。所不同的是,Linux能動態(tài)調(diào)整所用的Cache存儲器的大小,以適合當前存儲器的使用情況,當某一時刻沒有更多的存儲空間可用時,Cache將被減少,以增加空閑的存儲空間,一旦存儲空間不再緊張,Cache的大小又將增加。

     支持不同格式的可執(zhí)行文件 Linux具有多種模擬器,這使它能運行不同格式的目標文件。其中,DOS(DOSEMU)和MS-Windows(WINE),iBCS2模擬器能運行SCO Unix的目標程序。(iBCS2模擬器不是Linux標準核心的一部分,但可從ftp.informatik.huberlin.de:/pub/os/linux下載)

Linux的結(jié)構(gòu)

Linux的主要構(gòu)成 :
    Linux主要由存儲管理、進程管理、文件系統(tǒng)、進程間通信等幾部分組成,在許多算法及實現(xiàn)策略上,Linux借鑒了Unix的成功經(jīng)驗,但也不乏自己的特色。

1.存儲管理 :

    Linux采用頁式存儲管理機制,每個頁面的大小隨處理機芯片而異。例如,Intel 386處理機頁面大小可為4KB和2MB兩種,而Alpha處理機頁面大小可為8KB、16KB、32KB和64KB。頁面大小的選擇對地址變換算法和頁表結(jié)構(gòu)會有一定的影響,如Alpha的虛地址和物理地址的有效長度隨頁面尺寸的變化而變化,這種變化必將在地址變換和頁表項中有所反映。

    在Linux中,每一個進程都有一個比實際物理空間大得多的進程虛擬空間,為了建立虛擬空間和物理空間之間的映射,每個進程還保留一張頁表,用于將本進程空間中的虛地址變換成物理地址。頁表還對物理頁的訪問權(quán)限作出了規(guī)定,定義了哪些頁可讀寫,哪些頁是只讀頁,在進行虛實變換時,Linux將根據(jù)頁表中規(guī)定的訪問權(quán)限來判定進程對物理地址的訪問是否合法,從而達到存儲保護的目的。

    Linux存儲空間分配遵循的是不到有實際需要的時候決不分配物理空間的原則。當一個程序加載執(zhí)行時,Linux只為它分配了虛空間,只有訪問某一虛地址而發(fā)生了缺頁中斷時,才為它分配物理空間,這樣就可能出現(xiàn)某些程序運行完成后,其中的一些頁從來就沒有裝進過內(nèi)存。這種存儲分配策略帶來的好處是顯而易見的,因為它最大限度地利用了物理存儲器。

    盡管Linux對物理存儲器資源的使用十分謹慎,但還是經(jīng)常出現(xiàn)物理存儲器資源短缺的情況。Linux有一個名為kswapd的進程專門負責頁面的換出,當系統(tǒng)中的空閑頁面小于一定的數(shù)目時,kswapd將按照一定的淘汰算法選出某些頁面,或者直接丟棄(頁面未作修改),或者將其寫回硬盤(頁面已被修改)。這種換出方式不同于較舊版本Unix的換出方式,它是將一個進程的所有頁全部寫回硬盤。相比之下,Linux的效率更高。

2.進程管理

    在Linux中,進程是資源分配的基本單位,所有資源都是以進程為對象來進行分配的。 在一個進程的生命期內(nèi),它會用到許多系統(tǒng)資源,會用CPU運行其指令,用存儲器存儲其指令和數(shù)據(jù),它也會打開和使用文件系統(tǒng)中的文件,直接或間接用到系統(tǒng)中的物理設備,因此,Linux設計了一系列的數(shù)據(jù)結(jié)構(gòu),它們能準確地描述進程的狀態(tài)和其資源使用情況,以便能公平有效地使用系統(tǒng)資源。Linux的調(diào)度算法能確保不出現(xiàn)某些進程過度占用系統(tǒng)資源而導致另一些進程無休止地等待的情況。

    進程的創(chuàng)建是一個十分復雜的過程,通常的做法需為子進程重新分配物理空間,并把父進程空間的內(nèi)容全盤復制到子進程空間中,其開銷非常大。為了降低進程創(chuàng)建的開銷,Linux采用了Copyonwrite技術(shù),即不拷貝父進程的空間,而是拷貝父進程的頁表,使父進程和子進程共享物理空間,并將這個共享空間的訪問權(quán)限置為只讀。當父進程和子進程的某一方進行寫操作時,Linux檢測到一個非法操作,這時才將要寫的頁進行復制。這一做法免除了只讀頁的復制,從而降低了開銷。

3.文件系統(tǒng) :

    Linux最重要的特征之一就是支持多個不同的文件系統(tǒng),前面我們已經(jīng)看到,Linux目前支持的文件系統(tǒng)多達十余種,隨著時間的推移,這一數(shù)目還在不斷增加。

    在Linux中,一個分離的文件系統(tǒng)不是通過設備標識(如驅(qū)動器號或驅(qū)動器名)來訪問,而是把它合到一個單一的目錄樹結(jié)構(gòu)中,通過目錄來訪問,這一點與Unix十分相似。Linux用安裝命令將一個新的文件系統(tǒng)安裝到系統(tǒng)單一目錄樹的某一目錄下,一旦安裝成功,該目錄下的所有內(nèi)容將被新安裝的文件系統(tǒng)所覆蓋,當文件系統(tǒng)被卸下后,安裝目錄下的文件將會被重新恢復。

    Linux最初的文件系統(tǒng)是Minix。該文件系統(tǒng)對文件限制過多,并且性能低下,如文件名長度不能超過14個字符、文件大小不能超過64MB。為了解決這些問題,Linux的開發(fā)者們設計了一個Linux專用的文件系統(tǒng)EXT。EXT對文件的要求放松了許多,但在性能上并沒有大的改觀,于是就有了后面的EXT2文件系統(tǒng)。EXT2文件系統(tǒng)是一個非常成功的文件系統(tǒng),它無論是對文件的限制還是在性能方面都大大優(yōu)于EXT文件系統(tǒng),所以,EXT2自從推出就一直是Linux最常用的文件系統(tǒng)。

    為了支持多種文件系統(tǒng),Linux用一個被稱為虛擬文件系統(tǒng)(VFS)的接口層將真正的文件系統(tǒng)同操作系統(tǒng)及系統(tǒng)服務分離開。VFS允許用戶同時透明地安裝多個不同的文件系統(tǒng)。
VFS掩蓋了不同文件系統(tǒng)之間的差異,使所有文件系統(tǒng)在操作系統(tǒng)和用戶程序看來都是等同的。4.進程間通信:

    Linux提供了多種進程間的通信機制,其中,信號和管道是最基本的兩種。除此以外,Linux也提供System V的進程間通信機制,包括消息隊列、信號燈及共享內(nèi)存。為了支持不同機器之間的進程通信,Linux還引入了BSD的Socket機制。

Linux上的常用軟件

    一個操作系統(tǒng)很重要的部分就是它所支持的各種界面和應用軟件,Linux上的軟件還有一個特點,那就是這些軟件都是免費的。

1. 基本的命令和工具

    應該說現(xiàn)在的Linux已經(jīng)把在標準的UNIX系統(tǒng)上可以找到的應用軟件幾乎都已移植過來了,還包括一些基本的命令ls,cp,mv,more等等,Linux上有許多文本編輯程序,象vi,ed,joe,還有GNU Emacs等,另外還有多種Shell,比如:C Shell、Bourne Shell、Bash(GNU Bourne Again Shell)、Tcsh,(帶有許多擴充功能的C shell)、Zsh(一個類似于Bourne Shell的小型shell)。Shell對很多用戶來說都是很重要的應用軟件,它相當于ms-dos下的批處理文件(batch file),但是shell的功能要強大很多,shell程序讀入用戶的命令,然后執(zhí)行,shell的最重要的特點就是包含了一個任務描述的命令語言。

    Linux上的多種shell之間的最大差別就在于這種命令語言,C Shell的命令語言很像C語言,Bourne Shell使用另一種不同的語言。其中最廣泛使用的就是Bash,這是Bourne Shell的遍體,它包括了例如任務控制、歷史命令、重定向,補全命令等完整化的操作。有了這些不同的Shell,我們就可以自己動手設計我們自己需要的工作環(huán)境了。

2. 程序設計語言

    Linux提供了一個完整的UNIX編程環(huán)境,包括標準程序庫、編程工具、編譯器和調(diào)試器。在UNIX環(huán)境下,應用程序和系統(tǒng)程序的設計通常是C或C++語言,在Linux上的標準C或C++編譯器是GNU的gcc,gcc是一個比較先進的編譯器,有多種的選項。除了C語言之外,許多其它的語言的編譯器和解釋器也都移植到Linux上了。比如說FORTRAN、PASCAL、PERL、GWK等等。還有先進的調(diào)試器gdb。幫助用戶一步一步地運行自己地程序,進行調(diào)試。

     Linux還實現(xiàn)了共享程序庫的動態(tài)鏈接機制,簡稱DLL。這樣就使程序的二進制代碼的長度大為減少。
在Linux上開發(fā)應用程序是很方便的,除了我們剛才提到的語言外,Linux上還有許多非常小巧實用的語言(gawk語言.Etc)

3. X窗口系統(tǒng)

    X-Window是由MIT開發(fā)的一套標準圖形接口,當前的版本為X11R6.3,它與Window和Macintosh的圖形界面不同,它是一套平臺獨立的基本圖形功能調(diào)用接口,它不包括硬件和具體的顯示風格。因此,X-Window具有高度可配置性。但是MIT發(fā)布的X-Window源代碼沒有包括在具體硬件上的實現(xiàn),所以如果讓它在硬件上運行起來的話,還需要開發(fā)相應的硬件驅(qū)動程序, Linux下的X-Window系統(tǒng)是Xfree86,現(xiàn)在的版本是3.3.3。它包括了多種的應用程序、程序庫和文檔資料。

    標準的X應用程序有用于X窗口的以文本方式為主的應用程序的終端仿真器Xterm,還有中文的環(huán)境Cxterm,管理用戶登陸的X管理程序xdm,時鐘顯示器xclock,還有用于X窗口聯(lián)機用戶手冊Xman,等等。
我們知道X窗口圖形界面的外觀和使用在很大程度上取決于窗口管理程序。標準的Xfree86包括twm,這是一個經(jīng)典的窗口管理程序。當然使用最多的還是fvwm。

4. 網(wǎng)絡設置

    Linux支持兩種基本的UNIX上的網(wǎng)絡協(xié)議:TCP/IP、UUCP。它還支持SLIP和PPP協(xié)議。它提供標準的SOCKET編程界面,所以基本上任何使用TCP/IP協(xié)議的應用程序都可以移植到Linux上。 UUCP(UNIX to UNIX COPY)現(xiàn)在用的不是很多了,它是一個比較老的協(xié)議,主要用于在UNIX機器間進行文件、郵件和新聞傳送的機制。原先UUCP是用調(diào)制解調(diào)器在電話線連接的機器之間進行工作的,后來也可以用在TCP/IP網(wǎng)絡上。

5. 其它應用程序

    其它的一些商業(yè)軟件廠商也加入了Linux應用程序貢獻者的隊伍。 在Linux上有幾個關(guān)系數(shù)據(jù)庫,有Postgres,Oracle8I,Imgres,Mbase等。由于Linux支持POSIX1003.1標準,我們自己也可以把在UNIX上運行的免費軟件在Linux上編譯,應該不會遇到什么困難。

Linux的應用

個人Unix工作站 :

    Linux對于那些負擔不起Sun或是HP工作站的公司,對于每一個工程師和所有在X 終端上遇到困難的人來說都是極棒的產(chǎn)品,可以同時保留一些舊格式文件和繼續(xù)使用原有程序的DOS和Windows混合環(huán)境下用戶使用。
X應用服務器 :

    使用Linux作為應用服務器去加快RISC工作站與使用Linux作為工作站一樣,都是非常合理的選擇。如果把Linux配置成應用服務器,就能通過運行DOS X服務器把286、386等低檔次的機器作為啞終端重新利用起來。這也說明了Linux是低預算的X Windows網(wǎng)絡的選擇。

Unix開發(fā)平臺 :

    Linux能夠支持Unix開發(fā),不但支持主流語言,也支持其它語言;其跨平臺的環(huán)境還可以為其它Unix操作系統(tǒng)平臺產(chǎn)生二進制代碼;GNU C、GNU C++、GNU Fortran 77、ADA、Pascal、Modula 2和TCL/Tk、Scheme 和SmallTalk/X 均可免費使用,并附帶詳細的工作代碼庫;流行的Motif Widgets也能從幾個供應商手中買到;多種語言的編譯器有助于節(jié)省開發(fā)時間。所有這些,再加上靈活的shell語言編輯器(大小寫敏感)、源代碼包和詳細文檔都給了編程者充分的可定制環(huán)境。另外,它也能作為一個理想的計算機學習系統(tǒng),在不打擾用戶共享設施的環(huán)境中,盡情控制這個復雜的系統(tǒng)。

商業(yè)開發(fā) :

    在商業(yè)開發(fā)系統(tǒng)中,執(zhí)行CA/Clipper(基于DBase和Fox超集的面向?qū)ο缶幾g器的含義是,Clipper的開發(fā)者只需對軟件做很少的改動就能適應Linux的運行。其結(jié)果是功能相同,而性能提高了,在一樣的硬件條件下,速度比DOS版本快了20~200倍。

網(wǎng)絡服務器 :

    可將Linux配置為使用NFS、Apple Talk及NetBIOS協(xié)議。其性優(yōu)價廉的特性使其頗具吸引力。由LAN橋接而生成WAN也是Linux的一個很好的用途。當Linux運行于RISC和SMP(對稱多處理)硬件系統(tǒng)時,它可為嚴謹?shù)暮笈_處理帶來便利及易用性。

Internet服務器 :

    Internet服務器使用是Linux的一項重要應用。以Linux和Apache 為基礎的Internet和Intranet 服務器價格低廉、性能卓越和易于維護。在美國,大多數(shù)廉價服務器以Linux為基礎。根據(jù)Infobeads的考察,有26%或更多的ISP在利用Linux。Linux能用作WWW服務器、域名服務器、防火墻、FTP 服務器、郵件服務器等。用單一的服務器能提供所有這些功能。

    Ios對網(wǎng)絡服務器實用的操作系統(tǒng)作了一次調(diào)查。Internet Operating System Counter(ios++)在1998年的9月進行了一次比較特別的調(diào)查,它的基本思路是對互聯(lián)網(wǎng)上所有的服務器使用的操作系統(tǒng)進行識別并統(tǒng)計結(jié)果,Ios++使用了一個程序自動收集互聯(lián)網(wǎng)上的計算機地址,查詢計算機并判斷使用的系統(tǒng),雖然有些系統(tǒng)識別不出來,但是絕大多數(shù)的系統(tǒng)都可以識別。遺憾的是,這次調(diào)查沒有徹底完成,這個系統(tǒng)會掃描網(wǎng)絡中所有的主機,它的行為也類似于黑客的做法。在對意大利的計算機進行網(wǎng)絡查詢時被一家以色列網(wǎng)絡安全公司懷疑為黑客入侵,所以被迫中斷,不過這次運行了大約10天,掃描了上百萬的服務器,它的結(jié)果也可以真實反映網(wǎng)絡操作系統(tǒng)的真實情況。http://www.leb.net/hzo/ioscount/ .
排名 操作系統(tǒng) 主機比率

1 Linux 26.3%
2 Window95/98/nt 23.4%
3 BSD family 22.6%
4 Solaris/SunOS 14.4%
Linux的不足及發(fā)展趨勢

    Linux從出現(xiàn)到現(xiàn)今只經(jīng)歷了短短9年的時間,但其發(fā)展速度是驚人的,這與它的開放性和優(yōu)良的性能是密不可分的。不過我們應該看到,Linux還有許多不足,具體表現(xiàn)在以下幾個方面:

    首先是安裝配置不方便,Linux把每一個程序都做成一個安裝包,這樣在安裝時,用戶可以任意選擇要安裝的軟件包。這對非常熟悉 Linux系統(tǒng)的人來說當然是一件好事,可以更有效地安裝配置自己所使用的Linux。但對廣大不熟悉Linux安裝和配置的PC用戶來說,Linux安裝的極大靈活性卻給他們造成了極大的困惑,這樣最很多人就不得不回過頭去轉(zhuǎn)向其它傻瓜式安裝的操作系統(tǒng)。這就阻礙了將Linux推向商業(yè)PC操作系統(tǒng)。

    其次是圖形界面運行速度慢,Linux在圖形界面下運行程序的速度比Win95慢很多,同時Linux圖形界面的可操作性也遠不及 Win95。如果只把Linux用于網(wǎng)絡服務器,此時所有的操作均可以在字符界面下完成,其工作效率非常高。但是,當今PC操作界面流行的是圖形操作界面,喜歡鼠標的人遠遠多于喜歡鍵盤的人,已經(jīng)很少有人樂于使用字符操作界面了,所以Linux要想沖入PC 操作系統(tǒng)市場,就必須在人機操作界面上有更大的進步,提供更好的可操作性和友好性,使得廣大PC用戶樂于使用。

    再有一個不足之處是支持Linux系統(tǒng)的,基于圖形界面的應用程序非常少,尤其是缺乏功能強大的文本處理器。由于Linux 是自由軟件,Linux應用程序的開發(fā)也是自由進行的,所以其應用程序的開發(fā)并沒有太多大公司的支持,在開發(fā)大型應用程序方面,Linux可以說先天不足。而當今天下,要想在PC操作系統(tǒng)市場站住腳跟,沒有功能強大、使用方便的文本處理器又是絕不可能的,從這點來看,Linux任重道遠。目前,Linux下的文本處理器(StarOffice,wordperfect)較之微軟的Office,差距極大,它還不能同時兼容當今流行的多種文本文件格式,導致其文檔處理器不可能得到廣泛的應用,大大阻礙了其向辦公系統(tǒng)邁進的步伐。
另外,針對我國的用戶,Linux的中文化的問題也是還有一段長路要走,雖然說是blue point 把核心中文化了,但是應用程序、說明文檔基本還都是上英文。

   盡管Linux有這樣和那樣的不足,但其發(fā)展?jié)摿Σ蝗莸凸?,其發(fā)展的動力就是遍布全球、為數(shù)眾多的Linux熱心者。今后Linux將會朝著完善功能、提高效率的方向發(fā)展我們相信,Linux、Unix及NT三足鼎立的時代將為期不遠。

    首先,通過提供完整的安裝定制方案,向用戶提供更方便的系統(tǒng)安裝及系統(tǒng)維護。根據(jù)不同用戶的不同需求,重新編譯系統(tǒng)內(nèi)核,精心選擇為用戶安裝的軟件包,盡量不讓用戶過多安裝無用的軟件。由于Linux操作系統(tǒng)的源代碼公開,所以其操作系統(tǒng)的售價非常低廉,即使為用戶設計專門的安裝定制時收取一定的服務費,其總體價格還是非常 低的,還是可以為用戶所接受的。另外,當用戶在使用過程中出現(xiàn)問題時,或希望更新 系統(tǒng)時,可以向系統(tǒng)定制商咨詢,因為系統(tǒng)定制商極其熟悉自已設計的安裝定制,可以想象,提供Linux系統(tǒng)定制安裝和安裝后維護服務在中國將是一個大有市場的行業(yè)。

    其次,開發(fā)基于Linux的面向圖形界面的專用系統(tǒng),提高圖形應用程序的性能。圖形界面是個人PC用戶必然的操作界面,而應用程序在其上的運行速度在很大程度上影 響了用戶的選擇。去掉Linux中大量與網(wǎng)絡和系統(tǒng)管理有關(guān)的應用程序,開發(fā)針對個人用戶的Linux圖形界面的專用系統(tǒng),提高Linux X-win dow的運行速度,并在操作上實現(xiàn)傻 瓜式操作。利用Linux系統(tǒng)在價格上優(yōu)勢,爭取在個人PC教 占領一塊陣地?

    另外,大力開發(fā)基于Linux平臺的應用程序,使Linux在PC平臺上有施展的天地。只 有得到大量應用軟件的支持,Linux才能廣泛應用起來。文字處理工具、媒體播放工具和 游戲是PC平臺上應用最多的軟件。所以,目前最緊迫的是,開發(fā)基于Linux的中文文字處理工具、媒體播放工具。使用戶在Linux下可以獲得良好的文檔處理功能及多媒體功能。 這樣才能使眾多的商業(yè)用戶放心地轉(zhuǎn)向Linux。

    目前,Linux的發(fā)展在國內(nèi)還剛剛開始,各種看法層出不窮,可謂百花齊放,但是到目前為止,還沒有一個確定的發(fā)展模式,剛才說的只是的一點個人想法。其實,Linux本身的發(fā)展模式已經(jīng)為我國的軟件業(yè)提供了一個很好的模式,那就是開放、協(xié)作、共進。Linux本身的發(fā)展是基于開放的因特網(wǎng),因為只有開放的東西才能不受制于人,才能長期保持新 鮮的生命力。所以我國的Linux業(yè)要想發(fā)展也必須符合自由軟件的規(guī)則,同時要根據(jù)我國現(xiàn)有軟件業(yè)的實際情況,制定自已的Linux發(fā)展計劃。目前,我國的軟件業(yè)尚未形成規(guī)?;?,尤其在操作系統(tǒng)領域長期落后,與國外相比,競爭力幾乎為“0”;如果想僅僅依靠 自已的力量開發(fā)操作系統(tǒng),必然代價巨大,而且成功可能性極小。但Linux的出現(xiàn),使我們開發(fā)自已的操作系統(tǒng)有了一個很高的起點,因為它的開放性,使我們與國外的發(fā)展幾乎是同步進行的。擁有一個自已的操作系統(tǒng),對于我國各項事業(yè)來說都具有極高的戰(zhàn)略 意義。所以我國基于Linux開發(fā)自已的操作系統(tǒng),或者說開發(fā)自已的Linux操作系統(tǒng)勢在必行。雖然當今的世界是利益驅(qū)動的世界,但也是一個共生的世界。只有共得利益,才能得到共同發(fā)展,只有共進才能生存。操作系統(tǒng)、應用和系統(tǒng)集成服務三個方面必須緊密合作才能形成良好的發(fā)展體系,少了哪一個環(huán)節(jié)Linux的發(fā)展都會受到阻礙。

    面對Linux這一新機會和新挑戰(zhàn),當前我們民族軟件業(yè)的發(fā)展模式只能是:團結(jié)協(xié)作 ,共創(chuàng)未來。
我就講到這里了,由于我的水平很有限,可能好多地方?jīng)]有講到,只是希望起個拋磚引玉的作用,讓大家有一點收獲,加深一下對Linux的了解。(出處:太平洋特約稿件)

相關(guān)文章

最新評論