電子發(fā)燒友App

硬聲App

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

資料介紹

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

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

?

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

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

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

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

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

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

  Linux 最初是在Intel 80386 “平臺”上實(shí)現(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)結(jié)構(gòu),它既支持?,F(xiàn)的單CPU結(jié)構(gòu),也支持多CPU結(jié)構(gòu),不過,本書將專注于1386 CPU,并且以單CPU結(jié)構(gòu)為主,但是最后有一。究專們討論多CPU結(jié)構(gòu)。,

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

評論

查看更多

下載排行

本周

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

本月

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

總榜

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