電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>Linux內(nèi)核源代碼情景分析上下冊合集免費下載

Linux內(nèi)核源代碼情景分析上下冊合集免費下載

2019-08-28 | rar | 5.12 MB | 次下載 | 1積分

資料介紹

  在計算機技術的發(fā)展史上。 Unix操作系統(tǒng)的出現(xiàn)是一個重要的里程碑。早期的Unix曾免費供美國及一些西方國家的大學和科研機構使用,并且提供源代碼,這一方面為高校和科研機構普及使用計算機提供了條件:另一方面,也是更重要的,為計算機軟件的核心技術“操作系統(tǒng)”的教學和實驗提供了條件,特別是Unix內(nèi)核第6版的源代碼,在相當長的一段時明內(nèi)是大學計算機系高年級學生和研究生使用的教材,甚至可以說,美國當時整整一代的計算機專業(yè)人 員都是讀著Unix的源代碼成長的。反過來,這也促進了Unix的普及和發(fā)展,并且在當時形成了一個Unix產(chǎn)業(yè)。事實上,回既硅谷的形成和發(fā)展,也可以看到Unix起著重要的作用。Unix 兩大主流之:的BSD就是在加州大學白克利分校開發(fā)的,后來,Unix 成了商品,其源代碼也受到了版權的保護,再說也日益復親和龐大了,面第6版則又慢慢顯得陳舊了,便逐斷不再用Unix內(nèi)核的源代碼作為教材了(但是直到現(xiàn)在還有在用的)。

  在這種情況下,出于教學的需嬰,荷蘭的著8教授Andrew s. Tanenbaum 編寫了一個小型的“類Unix“操作系統(tǒng)Minix,在PC機上運行,其源代碼在20世紀80年代后期和90年代前期普被廣泛采用但是,Minix 雖說是“類Unis”。其實離Unix相當遠。首先,Minix 是個所謂“微內(nèi)核”。與Unmix內(nèi)核屬于不同的設計,功能上更是不可同日而語。再說Unix也不僅僅是內(nèi)核。還包括了其“外殼Shell和許多工具性的“實用程序”,如果內(nèi)核提供的支持不完整,就不能與這些成分結合起來形成Unix環(huán)境。這樣,Minix雖然不失為一一個 不錯的教學工具,卻缺乏實用價值。看到Minix的這個缺點,當時的一個5蘭學生Linus Torvaks 就萌生了一一個念頭, 即組織一些人,以Minix為起點,基本上按照Unix的設計,并且博采各種版本之長,在PC機上實現(xiàn),開發(fā)由一個真正可以實用的Unix內(nèi)核。這樣,公眾就既有免費的(現(xiàn)代) Unix系統(tǒng),又有系統(tǒng)的源代碼,且不存在版權問題。可是,Tanenbaum 教授的目光卻完全盯在教學E.因此并不認為這是一個好主意,沒有采納這個建議。

?

  畢竟是“初生牛犢不怕虎”,加上自身的天賦和動奮,還有公益心,Linus Tovalds就自己動手干了起來。由于所實現(xiàn)的基本是Lnix, Linus Tovalds就把它稱為Limux.那時候互聯(lián)網(wǎng)雖然還不像現(xiàn)在這么普及,但是在大學和公司中已經(jīng)用得很多了。Linus Torvalds 在基本完成了Linux 內(nèi)核的第一個版本以后就把它放在了互聯(lián)網(wǎng)E,一米是把自己寫的代碼公諸于眾,二米是邀請有興趣的人也來參與,他的這種做法很快便引起了熱烈的反應,并且與美國“自由軟件基金會“FSF的主張正好不謀而合。當時FSF已經(jīng)有計劃要開發(fā)一個類Unix (但又不是Unix,所以稱為GNU,這是“Gnu is Not Unix”的縮寫)的操作系統(tǒng)和應用環(huán)境,而Linux的出現(xiàn)正是適得其時,適得其所。于是,由Linus Torvalds主持的Linux內(nèi)核的開發(fā),改進與維護,就成了FSF的主要項目之-。同時,F(xiàn)SF 的其它項目,如GNU的C編譯gce.程序調(diào)試工具gadb.還有各種Shell和實用程序。乃至Web服務器Apache,河覽器Moilla(實際上就是Netscape) 等等,則正好與之配套成龍。人們普前認為自由軟件的開發(fā)是軟件領城中的一個奇跡, 這么多志愿者參與,只是通過5聯(lián)網(wǎng)維持松救的組織,居然能有條不紊地互相配合,開發(fā)出高質(zhì)量的而且又是準度較大的系統(tǒng)軟件。實在令人贊嘆。

  那么,Limux與它的前身Minix的區(qū)別有在呢?簡單地說,Minix 是個“微內(nèi)核”,而Linax是個“宏內(nèi)核”: Minix 是個類Unmix的教學用模型,面Linux甚本上就是Unix.而且是Unix的延續(xù)和發(fā)展,甚至是各種Unix版本與變種的集大成者。

  大家知道,傳統(tǒng)意義F的操作系統(tǒng)。其內(nèi)核應具備多個方面的功能或成分。既包含用于管理屬于應用層的“進程”的成分,如進程管理,也包含為這些進程提供各種服務的成分,如進程間通信、設備驅動和文件系統(tǒng)等等。內(nèi)核中提供各種服務的成分與使用這些服務的進程之間實際上就形成一種典型的“ClientServer“的關系,其實,這些服務提供者并不一定非得都留在內(nèi)核中不可,他們本身也可以被設計并實現(xiàn)某些“服務進程”,其中必須嬰留在內(nèi)核中的成分其實只有進程間通信。如果把這些服務提供者從內(nèi)核轉移到進程的層次t,那么內(nèi)核本身的結構就可以大大減小和簡化。而各個服務進程,既然已從內(nèi)核中游離出來,便可以”獨地設計,實現(xiàn)以及調(diào)試,更重要的是可以按實際的需要來配置和啟動,基于這樣的想法,各種“微內(nèi)核”(Micro Kemel)便應運而生。特別是對于一些專用的系統(tǒng),主要是實時系統(tǒng)和“嵌入式”系統(tǒng)(Enmbedded System), 微內(nèi)核的思想就很有吸引力。究其原因。主要是因為通常這些系統(tǒng)都不帶磁盤,整↑系統(tǒng)部必須放在EPROM中,常常受到存儲空間的限制,而所需要的服務又比較單一和簡單。 所以,幾乎所有的嵌入式系統(tǒng)和實時系統(tǒng)都采用微內(nèi)核,如PSOS.VxWorks等。當然,微內(nèi)核也有缺點。將這些服務的提供都放在進程層次t.再通過進程間通信(通常是報文傳遞》提供服務,勢必增加系線的運行開銷。降低了效率。

  與微內(nèi)核相對應,傳統(tǒng)的內(nèi)核結構就稱為“宏內(nèi)核”(Macro-Kermel),或稱為“一本化內(nèi)核”(Monolithic Kernel)。 通用式的系統(tǒng)由f所需的服務面廣而量大,- 體化內(nèi)核就更為合適,作為一種通用式系統(tǒng),Linux 采用-體化內(nèi)核是很自然的事。

  傳統(tǒng)的Unix內(nèi)核是“全封閉”的。如果要往內(nèi)核中加一個設備(增加一種服務),早期一般的做法是編寫這個設備的驅動程序,并變動內(nèi)核源程序中的某些數(shù)據(jù)結構《設備表),再重新編譯整個內(nèi)核,并重新引導整個系統(tǒng)。這樣做當然也有好處,如系統(tǒng)的安全性更能得到保證,但其缺點也是很明顯的。那就是太做化了。在這樣的情況下,當某一個公司開發(fā)出一種新的外部設備時(比方說,一臺彩色掃描儀),它就不可能的同這新的設備提供-片軟盤或光盤給用戶,使得用戶只要運行一F**setup“就可以把這設備安裝上了《像對DOS/Windows那樣),有能力修改Linux內(nèi)核的設備表,并重新編譯內(nèi)核的用戶畢竟不多。

  在Linux里,這個問題就解決得比較好。Linux 既允許把設備驅動程序在編譯時靜態(tài)地連接在內(nèi)核中,如傳統(tǒng)的驅動程序那樣:也允許動態(tài)地在運行時安裝,稱為“模塊”:還允許在運行狀態(tài)F當需要用到某一模塊時由系統(tǒng)自動安裝。這樣的模塊仍然在內(nèi)核中運行,面不是像在微內(nèi)核中那樣作為單獨的進程運行,所以其運行效率還是得到保證。模塊,也就是動態(tài)安裝的設備驅動程序的實現(xiàn)(詳見設備驅動程序一), 是很大的改進。它使Linux設備驅動程序的設計,實現(xiàn)、調(diào)試以及發(fā)布都大大地簡化,甚至可以說是發(fā)生了根本性地變化,

  Linux 最初是在Intel 80386 “平臺”上實現(xiàn)的,但是已經(jīng)被移植到各種主要的CPU系列上,包括Alpla. M68K. MIPS. SPARC. Power PC等等(Pentium. Pentium I等等均屬于386系列)》可以說Linux 內(nèi)核是現(xiàn)今覆蓋面最廣的-體化內(nèi)核。同時,在同一個系列的CPU E. Linux內(nèi)核還支持不同的系統(tǒng)結構,它既支持?,F(xiàn)的單CPU結構,也支持多CPU結構,不過,本書將專注于1386 CPU,并且以單CPU結構為主,但是最后有一。究專們討論多CPU結構。,

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費