• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小默

            Linux內(nèi)核完全注釋 趙炯 第1章 概述 //50min

              

            1   概述

             本章回顧 Linux  操作系統(tǒng)發(fā)長過書為會(huì)選 Linux 系統(tǒng)學(xué)習(xí)對(duì)象的說明 Linux 內(nèi)核版進(jìn)學(xué)習(xí)優(yōu)點(diǎn)不 足之進(jìn)步的學(xué)習(xí)對(duì)內(nèi)容進(jìn)

             1.1 Linux 的誕生和發(fā)展

             Linux 操作統(tǒng) UNIX 操作統(tǒng)統(tǒng)。它 1991 10 5 日(正 式向時(shí)此后 Internet 網(wǎng)絡(luò)經(jīng)全世計(jì)機(jī)的共現(xiàn)已為當(dāng) 今世使的一 UNIX 統(tǒng)使用數(shù)長。

            Linux  統(tǒng)發(fā)展下五個(gè)柱:UNIX 操作統(tǒng)MINIX  操作 系統(tǒng)GNU 計(jì)POSIX 標(biāo)準(zhǔn) Internet 網(wǎng)絡(luò)根據(jù)個(gè) Linux 的開發(fā)歷程、 它的發(fā)展經(jīng)其中個(gè)據(jù) Linux 的創(chuàng) Linus Toravlds 對(duì)計(jì)機(jī)感興趣而學(xué)計(jì)機(jī)識(shí)心里個(gè)己的系統(tǒng) Linux 內(nèi) 0.01 如何個(gè)地在 hacker 幫助下最完善1.0版本時(shí)發(fā)經(jīng),也對(duì) Linux 發(fā)展歷進(jìn)細(xì)

            當(dāng)然 Linux 內(nèi)核版本已經(jīng)發(fā) 2.5.52 。而數(shù) Linux 統(tǒng)中所用內(nèi)穩(wěn)2.4.20 內(nèi) 2 個(gè)數(shù)字數(shù)在開發(fā)系統(tǒng)穩(wěn)對(duì) Linux的一發(fā)和書不重復(fù)

            1.1.1 UNIX 操作統(tǒng)的誕生

            Linux  系統(tǒng)UNIX 作系統(tǒng)個(gè)克隆 UNIX  系統(tǒng)貝爾實(shí)驗(yàn)Ken.Thompson  Dennis Ritchie  1969  DEC PDP-7 計(jì)機(jī)開發(fā)的一個(gè)時(shí)統(tǒng)

            Ken  Thompson 在閑置不 PDP-7 計(jì)機(jī)上運(yùn)行行(Space  travel)游 戲 1969 他夫鄉(xiāng)渡假個(gè)內(nèi)發(fā) UNIX 統(tǒng)型。當(dāng)時(shí)使用的 BCPL 語言,后經(jīng) Dennis  Ritchie 1972 強(qiáng) C 語言進(jìn)使 UNIX 系統(tǒng)到了推廣。

            1.1.2 MINIX 操作系統(tǒng) 

            MINIX 系統(tǒng) Andrew S. TanenbaumAST開發(fā)AST Amsterdam Vrije 學(xué)數(shù)學(xué) 與計(jì)機(jī)學(xué)統(tǒng) ACM IEEE 深會(huì)(兩會(huì)會(huì)員)發(fā) 100 5 計(jì)算機(jī)籍。

            AST  雖出在美國紐約,但卻是荷蘭(1914  他的祖輩來美國)。他紐約上的中學(xué)M.I.T 上的大學(xué)學(xué) Berkeley 分校念學(xué)于讀緣故他來到了鄉(xiāng)荷蘭與 家鄉(xiāng) Vrije 學(xué)研究 Amsterdam 是個(gè)常綿綿的 城市對(duì) AST 這最樣的環(huán)經(jīng)待在計(jì)機(jī)了MINIX 1987 的,學(xué)學(xué)習(xí)作系統(tǒng)理。 1991 時(shí) 1.5要 有兩個(gè)使用1.5 2.0 當(dāng)時(shí)統(tǒng)在大學(xué)使費(fèi)其它當(dāng) MINIX 統(tǒng)經(jīng)免費(fèi)的,從許 FTP 上下
            對(duì)
            Linux 系統(tǒng),曾表對(duì)發(fā) Linus 的稱認(rèn) Linux 的發(fā)于 他為 MINIX 小型化,學(xué)個(gè)學(xué)內(nèi)就學(xué)納全對(duì) MINIX 的擴(kuò)的前激發(fā) Linus Linux 系統(tǒng)當(dāng) Linus 也正個(gè)時(shí)機(jī)。 作為個(gè)統(tǒng)MINIX 優(yōu)時(shí)提供 C 編語言編統(tǒng)。 這是使負(fù)程序 hacker 操作統(tǒng)當(dāng)時(shí)一直護(hù)密。

            1.1.3 GNU 計(jì)劃 

            GNU 計(jì)基金會(huì) FSF(the Free Software Foundation) Richard M. Stallman 1984 年一 手創(chuàng)發(fā)個(gè) UNIX 件的統(tǒng)GNU 系統(tǒng)GNU "GNU'Not Unix"的發(fā)音為"guh-NEW"種使 Linux 作為 GNU 操作統(tǒng)的使 用。統(tǒng)稱作"Linux",但 Stallman 認(rèn)為嚴(yán)它們應(yīng)該 GNU/Linux 統(tǒng)。

            到上紀(jì)90 GNU 項(xiàng)經(jīng)發(fā)質(zhì)量費(fèi)括有 emacs 編輯系 統(tǒng)bash shell gcc 列編gdb 調(diào)程序等等 Linux 操作統(tǒng)發(fā)創(chuàng)了一個(gè) 合適 環(huán)境  Linux  生的礎(chǔ)之一 以至 目前  Linux  系統(tǒng) GNU/Linux”操作統(tǒng)。

            1.1.4 POSIX 標(biāo)準(zhǔn) 

            POSIXPortable Operating System Interface for Computing Systems)是 IEEE ISO/IEC 發(fā)的一 簇標(biāo)準(zhǔn)標(biāo)準(zhǔn)現(xiàn) UNIX 實(shí)經(jīng)驗(yàn)描述統(tǒng)調(diào)務(wù)接應(yīng) 用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植和運(yùn)行。它是  1980  早期一個(gè)  UNIX  用戶組(usr/group)基礎(chǔ)上取 UNIX 戶組原來 AT&T System V 操作系統(tǒng) BerkeleyCSRG  BSD 統(tǒng)的調(diào)用區(qū)調(diào)和。并 1984 年定制出了/usr/group 標(biāo)準(zhǔn)

            1985 IEEE 系統(tǒng)技術(shù)會(huì)標(biāo)準(zhǔn)會(huì)TCOS-SS開始 ANSI 的支下責(zé) IEEE 標(biāo)準(zhǔn)會(huì)關(guān)源代統(tǒng)服務(wù)標(biāo)準(zhǔn) 1986 4 月,IEEE 出 了試標(biāo)準(zhǔn)。第一個(gè)正式標(biāo)準(zhǔn)  1988    9  月份批準(zhǔn)IEEE  1003.1-1988,也既以經(jīng)常提到的 POSIX.1 標(biāo)準(zhǔn)

            1989 POSIX 被轉(zhuǎn) ISO/IEC 團(tuán) 15 續(xù)制定 ISO 標(biāo)準(zhǔn) 1990POSIX.1 經(jīng) C 標(biāo)準(zhǔn)聯(lián)準(zhǔn) IEEE 1003.1-1990 ANSI 標(biāo)準(zhǔn) ISO/IEC9945-1:1990 標(biāo)準(zhǔn)

            POSIX.1 規(guī)統(tǒng)服務(wù)應(yīng)口(API統(tǒng)服務(wù)標(biāo)準(zhǔn)作組 期望對(duì)統(tǒng)制定標(biāo)準(zhǔn) IEEE  POSIX 。剛個(gè)準(zhǔn)的計(jì) 劃在進(jìn) 300 參加會(huì)工具標(biāo)準(zhǔn)(POSIX.2)法標(biāo)準(zhǔn)(POSIX.3、實(shí)時(shí) APIPOSIX.4。到 1990 經(jīng) 25 個(gè)計(jì)進(jìn) 16 個(gè)工進(jìn)此同時(shí)在制標(biāo)準(zhǔn) X/OpenAT&TOSF 等。 

            90 POSIX 標(biāo)準(zhǔn)的制定的時(shí)候 1991-1993 時(shí) Linux 剛剛時(shí)個(gè) UNIX 標(biāo)準(zhǔn) Linux 提供極為使 Linux 標(biāo)準(zhǔn)導(dǎo)下進(jìn) 行開發(fā)數(shù) UNIX 統(tǒng)兼容。在最 Linux 內(nèi)核源代碼中0.01 版、0.11 就 已經(jīng) Linux 系統(tǒng) POSIX 標(biāo)準(zhǔn)準(zhǔn)備 Linux 0.01 內(nèi)核的/include/unistd.h 中 就已經(jīng)個(gè)關(guān) POSXI 標(biāo)準(zhǔn)號(hào)常數(shù) Linus 在注釋中已寫道OK是個(gè)玩 笑,

            1991 年7 月3 日在comp.os.minix 上發(fā)布的post 上就已經(jīng)提到了正在搜集POSIX 的資料。其中透露了他正在著手一個(gè)操作系統(tǒng)的開發(fā),并且在開發(fā)之初已經(jīng)想到要實(shí)現(xiàn)與POSIX 相兼容的問題了。

            1.1.5 Linux 操作系統(tǒng)的誕生

            在 1981 年,IBM 公司推出了享譽(yù)全球的微型計(jì)算機(jī)IBM PC。在1981-1991 年間,MS-DOS 操作系統(tǒng)一直是微型計(jì)算機(jī)操作系統(tǒng)的主宰。此時(shí)計(jì)算機(jī)硬件價(jià)格雖然逐年下降,但軟件價(jià)格仍然居高不下。當(dāng)時(shí)Apple 的MACs 操作系統(tǒng)可以說是性能最好的,但是其天價(jià)使得沒人能夠輕易靠近。

            當(dāng)時(shí)的另一個(gè)計(jì)算機(jī)技術(shù)陣營就是UNIX 世界。但是UNIX 操作系統(tǒng)就不僅是價(jià)格昂貴的問題了。為了尋求高利潤率,UNIX 經(jīng)銷商們把價(jià)格抬得極高,PC 小用戶根本不能靠近它。曾經(jīng)一度收到Bell Labs許可而能在大學(xué)中用于教學(xué)的UNIX 源代碼也一直被小心地守衛(wèi)著不許公開。對(duì)于廣大的PC 用戶,軟件行業(yè)的大型供應(yīng)商們始終沒有給出有效的解決這個(gè)問題的手段。

            正在此時(shí),出現(xiàn)了MINIX 操作系統(tǒng),并且有一本描述其設(shè)計(jì)實(shí)現(xiàn)原理的書同時(shí)發(fā)行。由于AST 的這本書寫的非常詳細(xì),并且敘述得有條有理,于是幾乎全世界的計(jì)算機(jī)愛好者都開始看這本書,以期能理解操作系統(tǒng)的工作原理。其中也包括Linux 系統(tǒng)的創(chuàng)始者Linus Benedict Torvalds。

            當(dāng)時(shí)(1991 年),Linus Benedict Torvalds 是赫爾辛基大學(xué)計(jì)算機(jī)科學(xué)系的二年級(jí)學(xué)生,也是一個(gè)自學(xué)的計(jì)算機(jī)hacker。這個(gè)21 歲的芬蘭年輕人喜歡鼓搗他的計(jì)算機(jī),測試計(jì)算機(jī)的性能和限制。但當(dāng)時(shí)他所缺乏的就是一個(gè)專業(yè)級(jí)的操作系統(tǒng)。

            在同一年間,GNU 計(jì)劃已經(jīng)開發(fā)出了許多工具軟件。其中最受期盼的GNU C 編譯器已經(jīng)出現(xiàn),但還沒有開發(fā)出免費(fèi)的GNU 操作系統(tǒng)。即使是教學(xué)使用的MINIX 操作系統(tǒng)也開始有了版權(quán),需要購買才能得到源代碼。雖然GNU 的操作系統(tǒng)HURD 一直在開發(fā)之中,但在當(dāng)時(shí)看來不能在幾年內(nèi)完成。

            為了能更好地學(xué)習(xí)計(jì)算機(jī)知識(shí)(或許也只是為了興趣?),Linus 使用圣誕節(jié)的壓歲錢和貸款購買了一臺(tái)386 兼容電腦,并從美國郵購了一套MINIX 系統(tǒng)軟件。就在等待MINIX 軟件期間,Linus 認(rèn)真學(xué)習(xí)了有關(guān)Intel 80386 的硬件知識(shí)。為了能通過Modem 撥號(hào)連接到學(xué)校的主機(jī)上,他使用匯編語言并利用80386 CPU 的多任務(wù)特性編制出一個(gè)終端仿真程序。此后為了將自己一臺(tái)老式電腦上的軟件復(fù)制到新電腦上,他還為軟盤驅(qū)動(dòng)器、鍵盤等硬件設(shè)備編制出相應(yīng)的驅(qū)動(dòng)程序

            通過編程實(shí)踐,并在學(xué)習(xí)過程中認(rèn)識(shí)到MINIX 系統(tǒng)的諸多限制(MINIX 雖然很好,但只是一個(gè)用于教學(xué)目的簡單操作系統(tǒng),而不是一個(gè)強(qiáng)有力的實(shí)用操作系統(tǒng)),而且通過上述實(shí)踐Linus 已經(jīng)有了一些類似于操作系統(tǒng)硬件設(shè)備驅(qū)動(dòng)程序的代碼,于是他開始有了編制一個(gè)新操作系統(tǒng)的想法。此時(shí)GNU 計(jì)劃已經(jīng)開發(fā)出許多工具軟件,其中最受期盼的GNU C 編譯器已經(jīng)出現(xiàn)。雖然GNU的免費(fèi)操作系統(tǒng)HURD正在開發(fā)中。但Linus 已經(jīng)等不急了。

            從 1991 年4 月份起,他通過修改終端仿真程序和硬件驅(qū)動(dòng)程序,開始編制起自己的操作系統(tǒng)來。剛開始,他的目的很簡單,只是為了學(xué)習(xí)Intel 386 體系結(jié)構(gòu)保護(hù)模式運(yùn)行方式下的編程技術(shù)。但后來Linux的發(fā)展卻完全改變了初衷。根據(jù)Linus 在comp.os.minix 新聞組上發(fā)布的消息,我們可以知道他逐步從學(xué)習(xí)MINIX 系統(tǒng)階段發(fā)展到開發(fā)自己的Linux 系統(tǒng)的過程。

            Linus 第1 次向comp.os.minix 投遞消息是在1991 年3 月29 日。所發(fā)帖子的題目是“gcc on minix-386 doesn't optimize”,是有關(guān)gcc 編譯器在MINIX-386 系統(tǒng)上運(yùn)行優(yōu)化的問題(MINIX-386 是一個(gè)由Bruce Evans 改進(jìn)的利用Intel 386 特性的32 位MINIX 系統(tǒng))。由此可知,Linus 在1991 年初期就已經(jīng)開始深入研究了MINIX 系統(tǒng),并在這段時(shí)間有了改進(jìn)MINIX 操作系統(tǒng)的思想。在進(jìn)一步學(xué)習(xí)MINIX 系統(tǒng)之后,這個(gè)想法逐步演變成想重新設(shè)計(jì)一個(gè)基于Intel 80386 體系結(jié)構(gòu)的新操作系統(tǒng)的構(gòu)思。

            他在回答有人提出MINIX 上的一個(gè)問題時(shí),所說的第一句話就是“閱讀源代碼”(“RTFSC (Read the F**ing Source Code :-)”)。他認(rèn)為答案就在源程序中。這也說明了對(duì)于學(xué)習(xí)系統(tǒng)軟件來說,我們不光需要懂得系統(tǒng)的工作基本原理,還需要結(jié)合實(shí)際系統(tǒng),學(xué)習(xí)實(shí)際系統(tǒng)的實(shí)現(xiàn)方法。因?yàn)槔碚摦吘故抢碚摚渲惺÷粤嗽S多枝節(jié),而這些枝節(jié)問題雖然沒有太多的理論含量,但卻是一個(gè)系統(tǒng)必要的組成部分,就象麻雀身上的一根羽毛。
            從 1991 年4 月份開始,Linus 幾乎花費(fèi)了全部時(shí)間研究MINIX-386 系統(tǒng)(Hacking the kernel),并且嘗試著移植GNU 的軟件到該系統(tǒng)上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上發(fā)布說自己已經(jīng)成功地將bash 移植到了MINIX 上,而且已經(jīng)愛不釋手、不能離開這個(gè)shell 軟件了。

            第一個(gè)與Linux 有關(guān)的消息是在1991 年7 月3 日在comp.os.minix 上發(fā)布的(當(dāng)然,那時(shí)還不存在Linux 這個(gè)名稱,當(dāng)時(shí)Linus 腦子里想的名稱可能是FREAX ?,F(xiàn)REAX 的英文含義是怪誕的、怪物、異想天開等)。其中透露了他正在進(jìn)行Linux 系統(tǒng)的開發(fā),并且已經(jīng)想到要實(shí)現(xiàn)與POSIX 兼容的問題了。

            在 Linus 另一個(gè)發(fā)布的消息中(1991 年8 月25 日 comp.os.minix),他向所有MINIX 用戶詢問“What would you like to see in minix?”(“你最想在MINIX 系統(tǒng)中見到什么?”),在該消息中他首次透露出正在開發(fā)一個(gè)(免費(fèi)的)386(486)操作系統(tǒng),并且說只是興趣而已,代碼不會(huì)很大,也不會(huì)象GNU 的那樣專業(yè)。

            希望大家反饋一些對(duì)于MINIX 系統(tǒng)中喜歡哪些特色不喜歡什么等信息,并且說明由于實(shí)際和其它一些原因,新開發(fā)的系統(tǒng)剛開始與MINIX 很象(并且使用了MINIX 的文件系統(tǒng))。并且已經(jīng)成功地將bash(1.08版)和gcc(1.40 版)移植到了新系統(tǒng)上,而且在過幾個(gè)月就可以實(shí)用了。

            最后,Linus 申明他開發(fā)的操作系統(tǒng)沒有使用一行MINIX 的源代碼;而且由于使用了386 的任務(wù)切換特性,所以該操作系統(tǒng)不好移植(沒有可移植性),并且只能使用AT 硬盤。對(duì)于Linux 的移植性問題,Linus 當(dāng)時(shí)并沒有考慮。但是目前Linux 幾乎可以運(yùn)行在任何一種硬件體系結(jié)構(gòu)上。


            到了 1991 年的10 月5 日,Linus 在comp.os.minix 新聞組上發(fā)布消息,正式向外宣布Linux 內(nèi)核系統(tǒng)的誕生(Free minix-like kernel sources for 386-AT)。這段消息可以稱為Linux 的誕生宣言,并且一直廣為流傳。因此10 月5 日對(duì)Linux 社區(qū)來說是一個(gè)特殊的日子,許多后來Linux 的新版本發(fā)布時(shí)都選擇了這個(gè)日子。所以RedHat 公司選擇這個(gè)日子發(fā)布它的新系統(tǒng)也不是偶然的。

            1.1.6 Linux 操作系統(tǒng)版本的變遷

            Linux 操作系統(tǒng)從誕生到1.0 版正式出現(xiàn),共發(fā)布了表1–1 中所示的一些主要版本。
            表 1–1 內(nèi)核的主要版本
             

            版本號(hào)

            發(fā)布日期

            說明

            0.00

            (1991.2-4)

            兩個(gè)進(jìn)程,分別在屏幕上顯示’AAA’BBB’

             

            0.01

             

            (1991.8)

            第一個(gè)正式向外公布的 Linux 內(nèi)核版本多線程文件系統(tǒng)分段

            和分頁內(nèi)存管理。

            0.02

            (1991.10.5)

            該版本以及 0.03 版是內(nèi)部版,目前已經(jīng)無法找到特點(diǎn)同上。

            0.10

            (1991.10)

            Ted Ts’o 發(fā)布的 Linux 內(nèi)版本。增加了內(nèi)存分配庫函數(shù)。

            0.11

            (1991.12.8)

            基本可以正常運(yùn)行的內(nèi)核版本。至此硬盤和軟驅(qū)驅(qū)動(dòng)。

             

            0.12

             

            (1992.1.15)

            主要增加了數(shù)學(xué)協(xié)處理器的軟件模擬程序增加了作業(yè)控制

            擬控制臺(tái)、文件符號(hào)鏈接和虛擬內(nèi)存對(duì)換功能。

             

            0.95(0.13)

             

            (1992.3.8)

            加入虛擬文件系統(tǒng)支持增加了登錄功能改善了軟盤驅(qū)動(dòng)程序

            和文件系統(tǒng)的性能。改變了硬盤編號(hào)方式。支持 CDROM

             

            0.96

             

            (1992.5.12)

            開始加入網(wǎng)絡(luò)支持改善了串行驅(qū)動(dòng)高速緩沖內(nèi)存管的性

            能,支持動(dòng)態(tài)鏈接庫,并能運(yùn)行 X-Windows 程序。

            0.97

            (1992.8.1)

            增加了對(duì)新的 SCSI 驅(qū)動(dòng)程序支持。

            0.98

            (1992.9.29)

            改善了對(duì) TCP/IP0.8.1)網(wǎng)絡(luò)的支持,糾正了 extfs 的錯(cuò)誤。

            0.99

            (1992.12.13)

            重新設(shè)計(jì)進(jìn)程對(duì)內(nèi)存的使用分配,每個(gè)進(jìn)程有 4G 線性空間。

            1.0

            (1994.3.14)

            第一個(gè)正式版。

             

             Linux 統(tǒng) 0.13 內(nèi)直接 0.95 版,Linus 的意 1.0 遠(yuǎn)時(shí) 0.95 對(duì)內(nèi)核的進(jìn)(補(bǔ)序的) Linus 的主任務(wù) 開始對(duì)內(nèi)護(hù)決定個(gè)補(bǔ)現(xiàn)為止新的內(nèi)核版本 2003 12 18 日公 2.6.2 中包 15000 個(gè)使 gz 后源件包 40MB !到現(xiàn)在 1–2  

            12 內(nèi)字節(jié)數(shù)

            內(nèi)核版本號(hào)

            發(fā)布日期

            源代碼大小(經(jīng) gz 壓縮后)

            2.4.22

            2004.2.4

            35MB

            2.6.5

            2004.4.4

            41MB

              

            1.1.7 Linux 稱的由來

             Linux 統(tǒng)時(shí)并沒有被稱 LinuxLinus 給他統(tǒng) FREAX怪誕等意操作系統(tǒng)上載 ftp.funet.fi 務(wù)器上時(shí) Ari Lemke 很不個(gè)認(rèn)為既 Linus 的操作統(tǒng)就 Linux 作為該操統(tǒng)Linux 個(gè)流傳下來。

            Linus 的自傳Just for FunLinus 解釋1

            “坦想到過要 Linux 這個(gè)稱發(fā)個(gè)統(tǒng)為這個(gè)負(fù) 了發(fā)版準(zhǔn)備的呢?Freax實(shí)內(nèi)中某些早 Makefile -  用于描 述如  -  文件中經(jīng)含有Freax”個(gè)了,大在了左右。但實(shí)這 也沒關(guān)當(dāng)時(shí)不需個(gè)還沒發(fā)內(nèi)核代

            Ari Lemke,他堅(jiān)持用自內(nèi) ftp 點(diǎn)上,非常 Freax 這個(gè)名 字堅(jiān)現(xiàn)這個(gè)名字(Linux)認(rèn)當(dāng)時(shí)我并這都名字。所以我 可以自負(fù)我并但我個(gè)名 字,能說現(xiàn)做的

             1.1.8 Linux 系統(tǒng)開發(fā)的要貢獻(xiàn)者

              Linux 早期以看Linux 統(tǒng)早期主要發(fā) Linus 本人以外員之一就 Theodore Ts'o (Ted Ts'o) 1990 年畢業(yè) MIT 計(jì)機(jī)學(xué)業(yè)。在學(xué)時(shí)積極參 加學(xué)學(xué)活動(dòng)行車當(dāng)有就 Hacking  on  Linux開始 喜歡業(yè)報(bào)運(yùn)動(dòng) IBM 從事系統(tǒng)務(wù)網(wǎng)絡(luò)設(shè)計(jì)操 作、團(tuán) IETF 成員。

            Linux  內(nèi)行也 Linux  操作統(tǒng)時(shí),熱 情 linux 發(fā) Maillist,幾乎是 Linux 剛開發(fā)時(shí) Linux 做出獻(xiàn)他 也是最早 Linux 內(nèi)核加程Linux 內(nèi) 0.10 驅(qū)動(dòng) ramdisk.c 和內(nèi)核內(nèi)配 程 kmalloc.c)目前為止事著 Linux 關(guān)洲地區(qū)他設(shè)立 Linux ftp 點(diǎn)tsx-11.mit.edu而且點(diǎn) Linux 用戶務(wù)對(duì) Linux 獻(xiàn) 之一實(shí)現(xiàn) ext2 文件統(tǒng)統(tǒng)現(xiàn) Linux 世界實(shí)上的統(tǒng)標(biāo)準(zhǔn)他 又推 ext3 統(tǒng)。該系統(tǒng)統(tǒng)的穩(wěn)作為對(duì) 97 2002 5 Linux Journal 了封面人對(duì)進(jìn)了采 IBM Linux   技術(shù)關(guān) Linux 標(biāo)準(zhǔn) LSB(Linux Standard Base)工作。 

            Linux  區(qū)  Alan  Cox作于西學(xué)(Swansea  University College)別喜歡玩游戲 MUDMulti-User Dungeon or Dimension網(wǎng)絡(luò) 游戲 90 games.mud 新聞組 posts 中你可發(fā)帖子還寫了 一 MUD 發(fā)展史(rec.games.mud 新聞1992 3 9 A history of MUD)

            MUD 網(wǎng)絡(luò)切相關(guān)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)了玩運(yùn) 行游網(wǎng)絡(luò)輸速個(gè)最為滿臺(tái)是他操 作系統(tǒng)使 MINIX 統(tǒng)不起當(dāng) Linux 0.11 386BSD 發(fā)時(shí)算 購置了一臺(tái) 386SX 386BSD 數(shù)學(xué)協(xié)處理而采 Intel 386SX CPU 不帶 數(shù)學(xué)協(xié) Linux 系統(tǒng)于是他開學(xué)習(xí)費(fèi) Linux對(duì) Linux 系統(tǒng)產(chǎn)有關(guān)網(wǎng)絡(luò)實(shí)現(xiàn)關(guān) Linux 運(yùn)式問 Linux 實(shí)現(xiàn)巧妙(beautifully)

            Linux 0.95 發(fā),他 Linux 系統(tǒng)補(bǔ)丁程記得他最個(gè)補(bǔ)丁程 序, Linus 采納,并 Linux 統(tǒng) TCP/IP 網(wǎng)絡(luò)使用人之加入 Linux 的開發(fā)隊(duì)成為護(hù) Linux 內(nèi)碼的負(fù)責(zé)可以說成 Linux 社團(tuán)Linus 之后 Microsoft 曾經(jīng)邀請(qǐng)拒絕 2001 始, 他負(fù)責(zé)護(hù) Linux 內(nèi) 2.4.x Linus 主要負(fù)責(zé)發(fā)發(fā)內(nèi)的研制(數(shù) 2.5.x)

            《內(nèi)The Linux Kernel Hackers' Guide)一 Michael K. Johnson 接觸 Linux 統(tǒng)之一( 0.97 )。他 Linux 計(jì)劃Linux Document Project - LDP發(fā) 起者經(jīng) Linux Journel 現(xiàn) RedHat 公司作。 

            Linux  統(tǒng)些中堅(jiān)發(fā)天這個(gè)計(jì)算機(jī)對(duì) Linux  出了獻(xiàn)里就不一舉了貢獻(xiàn)者的可參 Linux 內(nèi) CREDITS 文件, 其中出了對(duì) Linux 獻(xiàn)的 400 括他 email 地址和信地 址、獻(xiàn)跡等息。 

            通過對(duì) Linux 的五歸納下:
            UNIX 統(tǒng)  --  UNIX  1969  Bell 實(shí)驗(yàn)室。Linux  UNIX 的一種克統(tǒng)。UNIX的重了。
            MINIX 操作統(tǒng)  --  MINIX 統(tǒng) UNIX 一種統(tǒng),它 1987 年由計(jì)機(jī)教授 Andrew  S.  Tanenbaum 開發(fā)完 MINIX 系統(tǒng)的出現(xiàn)(能免費(fèi)學(xué)內(nèi))界的學(xué)學(xué)習(xí) UNIX 系統(tǒng)風(fēng)。Linux 始就是參 MINIX 統(tǒng) 1991 發(fā)
            GNU 計(jì)劃--  發(fā) Linux 操作統(tǒng) Linux 上所用數(shù) GNU 計(jì)劃。Linux只是統(tǒng)個(gè)內(nèi) GNU 環(huán)境( bash shell) Linux 將寸
            POSIX 標(biāo)準(zhǔn)  --  該標(biāo)準(zhǔn)動(dòng) Linux 操作系統(tǒng)朝著規(guī)發(fā)要的 Linux 進(jìn)的塔。INTERNET --  如果沒 Intenet 網(wǎng)界的無數(shù)計(jì)機(jī)獻(xiàn) Linux 最多 只能發(fā)展 0.13(0.95)水平。

             1.2 內(nèi)容綜述

             本文對(duì) Linux 內(nèi) 0.11 進(jìn)細(xì)描述和釋。Linux-0.11 1991 12 日發(fā)發(fā)時(shí)以下件: 

            bootimage.Z           -  具有美鍵盤碼的動(dòng)映像件;
            rootimage.Z            -   1200kB 壓縮的根文件統(tǒng)映像件;
            linux-0.11.tar.Z       -  內(nèi)核源碼文。大 94KB,展開后也 325KB
            as86.tar.Z               -  Bruce  Evans'二進(jìn)制執(zhí)行件。是 16 位的匯程序裝入程
            INSTALL-0.11      -  更新過安裝息文 

            目前原來 rootimage.Z 文件其它個(gè)能找到。不經(jīng) Internet 上的源為Linux  0.11  出了一個(gè)使用 rootimage-0.11  統(tǒng)重新出能 0.11 環(huán)境使 gcc 1.40 實(shí)驗(yàn)開發(fā)環(huán)境些文件均可以 oldlinux.org 網(wǎng)站 上下 

            本文細(xì)  linux-0.11  內(nèi)序,對(duì)個(gè)進(jìn)行細(xì),包 括對(duì) Makefile 注釋計(jì)算機(jī)動(dòng)進(jìn)結(jié) 束內(nèi)始調(diào) shell 個(gè)序均針對(duì)進(jìn)有連貫性根據(jù)自 己的進(jìn)分析時(shí)應(yīng)用實(shí) 

            所有如果認(rèn)理解時(shí)關(guān)知識(shí)細(xì)比 如, C 內(nèi)時(shí),對(duì) GNU  C 內(nèi)嵌匯編進(jìn)細(xì)介 紹;對(duì)進(jìn)行/時(shí)對(duì) Intel 中斷控8259A細(xì)并列使。這對(duì)碼的解所使作 者認(rèn)單獨(dú)內(nèi)介紹識(shí)率高多。 

            Linux 0.11 內(nèi)們認(rèn)識(shí) Linux 運(yùn)行機(jī)Linux-0.11 版整個(gè)內(nèi)核 源代碼只 325K 節(jié)左內(nèi)基本 Linux 的精目前最新 2.5.XX 內(nèi)核非 常大 188 節(jié),即使經(jīng)閱讀。也簡 入手 Linux  0.01 內(nèi)碼呢 240K 節(jié)左右 0.01 版的內(nèi)足之對(duì)驅(qū)動(dòng)有很數(shù)學(xué)協(xié) 的使對(duì)導(dǎo)動(dòng)程序的結(jié)構(gòu)不太一樣 0.11 的引導(dǎo) 啟動(dòng)結(jié)構(gòu)現(xiàn)基本外一個(gè)原 0.11 早期經(jīng)內(nèi) (bootimage)進(jìn)導(dǎo)示。文件統(tǒng)(rootimage)那么進(jìn)運(yùn)行 

             Linux  0.11  進(jìn)學(xué)習(xí)處。內(nèi)不包關(guān)進(jìn)待隊(duì)TCP/IP 網(wǎng)絡(luò)當(dāng)前對(duì)內(nèi)存使現(xiàn)的內(nèi)區(qū)Linux  網(wǎng)絡(luò)上是內(nèi)機(jī)制關(guān)此可了解 Linux  工作 的基這些碼。 

            對(duì) Linux 內(nèi)核的代進(jìn)了保結(jié)構(gòu)對(duì)代碼內(nèi)中 源代結(jié)構(gòu)進(jìn)的,個(gè)碼中內(nèi)進(jìn)行介件 的次列表。整個(gè) Linux 內(nèi)核源結(jié)構(gòu) 1.1 結(jié) 構(gòu)均 linux 當(dāng)目錄

            列表  1-1 Linux/目錄 


            本書內(nèi)個(gè) 1  4 內(nèi)導(dǎo)動(dòng) 32 位運(yùn)行方準(zhǔn)為學(xué)習(xí)內(nèi)學(xué)應(yīng)全部進(jìn) 5 10 內(nèi)核代碼 5 章內(nèi)分后續(xù)節(jié)進(jìn) 11 13 三部內(nèi)讀 第二

            2 章概 Linux 操作統(tǒng)結(jié)構(gòu)內(nèi)核織結(jié)構(gòu)個(gè)大 致功 Linux 對(duì)內(nèi)使內(nèi)使用使用內(nèi)核  Linux/下的個(gè),也內(nèi)Makefile 內(nèi)文件內(nèi)編譯譯管具軟 make 使

            3 細(xì) boot/錄下個(gè)中包導(dǎo)程 bootsect.s BIOS 中參 數(shù) setup.s 32 位運(yùn)動(dòng) head.s個(gè)了把內(nèi)設(shè)引導(dǎo) 加載內(nèi)工作并對(duì)系統(tǒng)數(shù)進(jìn)探測完成了進(jìn) 32 護(hù)模式運(yùn)行內(nèi) 核系統(tǒng)執(zhí)進(jìn)化工準(zhǔn)備。

            4 要介 init/中內(nèi)統(tǒng) main.c。它是內(nèi)所有初始進(jìn)入正 常運(yùn)關(guān)地方在完成了統(tǒng)創(chuàng) shell 進(jìn)時(shí)將需 要查調(diào)序,對(duì)續(xù)節(jié)讀可調(diào)序進(jìn)內(nèi)序 的函數(shù)內(nèi)使內(nèi)應(yīng)該最先選當(dāng)看懂 main.c 的所有 程序時(shí)應(yīng)經(jīng)對(duì) Linux  內(nèi),可經(jīng)?對(duì)統(tǒng)、統(tǒng)調(diào)驅(qū)動(dòng)程序進(jìn)讀。

            5 要介 kenel/目錄中的程序最重要的進(jìn)調(diào)度函數(shù) schedule()sleep_on()函數(shù)關(guān)統(tǒng)調(diào)序。時(shí)應(yīng)經(jīng)對(duì)中的解。

            6  對(duì) kernel/dev_blk/目錄設(shè)進(jìn)了注有硬設(shè)備 的驅(qū)動(dòng)文件統(tǒng)區(qū)交道關(guān)的內(nèi)這 章內(nèi)時(shí)資料下文統(tǒng)節(jié)。

            7  對(duì) kernel/dev_chr/目錄設(shè)驅(qū)動(dòng)序進(jìn)中主驅(qū) 動(dòng)程驅(qū)動(dòng)序和顯示驅(qū)動(dòng)些驅(qū)動(dòng)程構(gòu) 0.11 內(nèi)核支持的臺(tái)端 設(shè)備多與關(guān)內(nèi)閱讀時(shí)關(guān)硬件

            8 章介 kernel/math/目錄中數(shù)學(xué)協(xié)仿真程注釋的內(nèi)有真 正開協(xié)此本內(nèi)較簡了解可。

             9  內(nèi)  fs/目錄件系統(tǒng)序,在看內(nèi)時(shí)夠暫閱讀 Andrew S. Tanenbaum 《操作統(tǒng)設(shè)計(jì)實(shí)現(xiàn)書中關(guān) MINIX 系統(tǒng)的章節(jié) Linux 系統(tǒng) MINIX 一種文件統(tǒng),Linux 0.11 版也不例

             10  mm/目錄中內(nèi)存理解內(nèi)對(duì) Intel 80X86 器的護(hù)運(yùn)足夠適當(dāng)整的關(guān) 80X86 保護(hù)運(yùn)行方的說明,這知識(shí)基上都可以 Intel  80386  程序編程手(Intel  80386  Programmer's Reference  Manual)。但此章中以源碼中的運(yùn)用實(shí)例對(duì)象進(jìn)行解說,應(yīng)該可更好理解它的工 作原

            現(xiàn) Linux 內(nèi)核籍都對(duì)內(nèi)描述對(duì)個(gè)學(xué)者來內(nèi)程 序時(shí)會(huì) 11 對(duì) include/錄中進(jìn)詳細(xì)對(duì)個(gè) 定義個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)細(xì)為了便時(shí)對(duì)些 經(jīng)常數(shù)據(jù)結(jié)構(gòu)進(jìn)釋,內(nèi)實(shí)能在該 章內(nèi)章節(jié)使的,內(nèi)核的運(yùn)機(jī)了 解這細(xì)節(jié)。

            12 Linux 0.11 版內(nèi) lib/所有數(shù)件主統(tǒng)等 系統(tǒng)數(shù),對(duì)統(tǒng)會(huì)有較個(gè)版本內(nèi)容 并不看完 0.11

            13 tools/錄下 build.c 個(gè)不會(huì)內(nèi)核映像(image)中, 它僅內(nèi)引導(dǎo)內(nèi)核模個(gè)內(nèi)核kernel image)文件。

            14 學(xué)習(xí)內(nèi)核源代碼時(shí)實(shí)驗(yàn)環(huán)實(shí)驗(yàn)方 Bochs 仿統(tǒng)使用和 編 Linux 內(nèi)核法以及磁法。 Linux  0.11 使其 RedHat 9 統(tǒng)順利編譯內(nèi)

            最后中給 Linux 內(nèi)一些數(shù)數(shù)據(jù)結(jié)構(gòu)護(hù)模 式運(yùn)機(jī)述。 

            為了便附錄獨(dú)內(nèi)中要關(guān) PC  機(jī)考 文獻(xiàn)閱讀時(shí)書籍有包的 繁雜獻(xiàn)如在 Linux 項(xiàng) LDPLinux Document Project)中時(shí)會(huì) 明確 HOWTO ,而并不僅給 LDP 網(wǎng)站地

            Linus 在最發(fā) Linux 作系統(tǒng)內(nèi)時(shí) 3 M. J. Bach UNIX 操作 系統(tǒng)設(shè)計(jì) UNIX System V 內(nèi)核原理數(shù)據(jù)結(jié)構(gòu)Linus 使用了數(shù)的算 法,Linux 內(nèi)核源代碼很多重要數(shù)的名自該書。此,在書時(shí),這一本必的 內(nèi)核書籍一本 John H. Crawford 的《Programming the 80386講解80x86 護(hù)法的好書 Andrew S.Tanenbaum MINIX 統(tǒng)設(shè)計(jì)與實(shí) 現(xiàn) 1 Linus 主要使 MINIX 文件系統(tǒng) 1.0 版,而且 Linux 內(nèi)核 中也統(tǒng)所以關(guān)系統(tǒng)內(nèi)時(shí)統(tǒng)的識(shí)完 全可 Tanenbaum 中獲 

            在對(duì)個(gè)進(jìn)時(shí),我的主輸出數(shù)程 序的關(guān)的完對(duì)碼進(jìn)細(xì)時(shí)對(duì)原任 何方動(dòng) C 類語文注對(duì)數(shù)號(hào)名 等也息。對(duì)更為對(duì)碼中現(xiàn)件 方面關(guān)識(shí)進(jìn)。如回頭會(huì)有會(huì)

            對(duì)于些基識(shí)散布個(gè)節(jié)應(yīng)方,了 能夠便結(jié)合時(shí)對(duì)些基解。

            最后當(dāng)經(jīng)完全一切時(shí)經(jīng)成個(gè) Linux 行家了,你只剛踏 Linux 的征途個(gè) Linux  GURU 知識(shí)時(shí)應(yīng)多的漸進(jìn) 1.0  到最發(fā)數(shù)編號(hào)本 書時(shí) Linux 內(nèi)核 2.5.44 當(dāng)速理解這發(fā)甚至補(bǔ) 丁(patch時(shí)我也甘拜風(fēng)?

             1.3 本章小結(jié) 

            首先 Linux 誕生發(fā)展個(gè)UNIX 開放原代碼版 Linux 提供了 實(shí)現(xiàn)Rechard Stallman GNU 計(jì) Linux 統(tǒng)富且費(fèi)實(shí)POSIX 標(biāo)準(zhǔn)出現(xiàn) Linux 提供實(shí)現(xiàn)標(biāo)準(zhǔn)兼容系統(tǒng)南、A.S.T MINIX 操作系統(tǒng) Linux 的誕參考Internet Linux 成長和環(huán)后本內(nèi)容。

            posted on 2010-02-06 03:00 小默 閱讀(457) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Linux

            導(dǎo)航

            統(tǒng)計(jì)

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            国产福利电影一区二区三区久久久久成人精品综合| 精品国产乱码久久久久久1区2区| 久久精品九九亚洲精品天堂| 精品久久久久香蕉网| 久久香蕉综合色一综合色88| 国内精品久久久久国产盗摄| 美女久久久久久| 久久久久高潮综合影院| 久久ww精品w免费人成| 久久精品男人影院| 一本久久综合亚洲鲁鲁五月天| 久久精品国产99久久久古代 | 久久精品人成免费| 91精品国产综合久久四虎久久无码一级| 久久99精品国产| 久久久国产99久久国产一| 久久久久人妻一区二区三区vr| 久久91这里精品国产2020| 无码人妻久久一区二区三区免费丨 | 亚洲香蕉网久久综合影视| 2020久久精品国产免费| 亚洲精品无码久久久久AV麻豆| 人妻精品久久久久中文字幕69| 久久精品视屏| 久久精品人人做人人爽电影蜜月| 久久本道综合久久伊人| 国产午夜福利精品久久2021| 午夜精品久久影院蜜桃| 色综合久久中文色婷婷| 久久精品无码一区二区WWW| 久久天天躁狠狠躁夜夜2020| 久久国产精品久久久| 久久国产乱子伦免费精品| 久久精品免费一区二区| 武侠古典久久婷婷狼人伊人| 国产精品午夜久久| 久久精品国产91久久综合麻豆自制| 久久久久久国产精品免费无码| 久久精品国产亚洲αv忘忧草| 看全色黄大色大片免费久久久| 国产精品久久久天天影视香蕉|