• <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ā)長過,書為會選 Linux 系統(tǒng)學(xué)習(xí)象的。說明 Linux 內(nèi)核版學(xué)習(xí)優(yōu)不 足之步的學(xué)習(xí)。內(nèi)容。

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

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

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

            當(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 數(shù)字數(shù)在開發(fā)系統(tǒng)穩(wěn)。 Linux的一發(fā),和書,不重復(fù)

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

            Linux  系統(tǒng)UNIX 作系統(tǒng)個克隆 UNIX  系統(tǒng)貝爾Ken.Thompson  Dennis Ritchie  1969  DEC PDP-7 開發(fā)的一統(tǒng)。

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

            1.1.2 MINIX 操作系統(tǒng) 

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

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

            1.1.3 GNU 計劃 

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

            到上紀(jì)90 ,GNU 經(jīng)發(fā)質(zhì)量,括有 emacs 編輯系 統(tǒng)、bash shell gcc 列編gdb 調(diào)程序等等。 Linux 操作統(tǒng)發(fā)創(chuàng)了一 合適 環(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 經(jīng),描述統(tǒng)調(diào)務(wù)接。應(yīng) 用程序可以在源代碼一級上在多種操作系統(tǒng)上移植和運行。它是  1980  早期一  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ù)標(biāo)準(zhǔn)TCOS-SS開始 ANSI 的支下責(zé) IEEE 標(biāo)準(zhǔn)關(guān)源代統(tǒng)服務(wù)標(biāo)準(zhǔn)。 1986 4 月,IEEE 出 了試標(biāo)準(zhǔn)。第一個正式標(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 , 15 續(xù)制定 ISO 標(biāo)準(zhǔn)。 1990,POSIX.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)作組 期望統(tǒng)制定標(biāo)準(zhǔn)。 IEEE  POSIX 。剛準(zhǔn)的計 劃在 300 參加。工具標(biāo)準(zhǔn)(POSIX.2)、法標(biāo)準(zhǔn)(POSIX.3、實 APIPOSIX.4。到 1990 經(jīng) 25 個計, 16 個工。此同,在制標(biāo)準(zhǔn) X/Open,AT&T,OSF 等。 

            90 POSIX 標(biāo)準(zhǔn)的制定的時候 1991-1993 Linux 剛剛, UNIX 標(biāo)準(zhǔn) Linux 提供極為,使 Linux 標(biāo)準(zhǔn)導(dǎo)下進 行開發(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)關(guān) POSXI 標(biāo)準(zhǔn)常數(shù), Linus 在注釋中已寫道OK,是個玩 笑,

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

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

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

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

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

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

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

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

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

            從 1991 年4 月份起,他通過修改終端仿真程序和硬件驅(qū)動程序,開始編制起自己的操作系統(tǒng)來。剛開始,他的目的很簡單,只是為了學(xué)習(xí)Intel 386 體系結(jié)構(gòu)保護模式運行方式下的編程技術(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ōu)化的問題(MINIX-386 是一個由Bruce Evans 改進的利用Intel 386 特性的32 位MINIX 系統(tǒng))。由此可知,Linus 在1991 年初期就已經(jīng)開始深入研究了MINIX 系統(tǒng),并在這段時間有了改進MINIX 操作系統(tǒng)的思想。在進一步學(xué)習(xí)MINIX 系統(tǒng)之后,這個想法逐步演變成想重新設(shè)計一個基于Intel 80386 體系結(jié)構(gòu)的新操作系統(tǒng)的構(gòu)思。

            他在回答有人提出MINIX 上的一個問題時,所說的第一句話就是“閱讀源代碼”(“RTFSC (Read the F**ing Source Code :-)”)。他認為答案就在源程序中。這也說明了對于學(xué)習(xí)系統(tǒng)軟件來說,我們不光需要懂得系統(tǒng)的工作基本原理,還需要結(jié)合實際系統(tǒng),學(xué)習(xí)實際系統(tǒng)的實現(xiàn)方法。因為理論畢竟是理論,其中省略了許多枝節(jié),而這些枝節(jié)問題雖然沒有太多的理論含量,但卻是一個系統(tǒng)必要的組成部分,就象麻雀身上的一根羽毛。
            從 1991 年4 月份開始,Linus 幾乎花費了全部時間研究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)愛不釋手、不能離開這個shell 軟件了。

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

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

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

            最后,Linus 申明他開發(fā)的操作系統(tǒng)沒有使用一行MINIX 的源代碼;而且由于使用了386 的任務(wù)切換特性,所以該操作系統(tǒng)不好移植(沒有可移植性),并且只能使用AT 硬盤。對于Linux 的移植性問題,Linus 當(dāng)時并沒有考慮。但是目前Linux 幾乎可以運行在任何一種硬件體系結(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 日對Linux 社區(qū)來說是一個特殊的日子,許多后來Linux 的新版本發(fā)布時都選擇了這個日子。所以RedHat 公司選擇這個日子發(fā)布它的新系統(tǒng)也不是偶然的。

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

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

            版本號

            發(fā)布日期

            說明

            0.00

            (1991.2-4)

            兩個進程,分別在屏幕上顯示’AAA’BBB’。

             

            0.01

             

            (1991.8)

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

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

            0.02

            (1991.10.5)

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

            0.10

            (1991.10)

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

            0.11

            (1991.12.8)

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

             

            0.12

             

            (1992.1.15)

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

            擬控制臺、文件符號鏈接和虛擬內(nèi)存對換功能。

             

            0.95(0.13)

             

            (1992.3.8)

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

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

             

            0.96

             

            (1992.5.12)

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

            能,支持動態(tài)鏈接庫,并能運行 X-Windows 程序。

            0.97

            (1992.8.1)

            增加了對新的 SCSI 驅(qū)動程序支持。

            0.98

            (1992.9.29)

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

            0.99

            (1992.12.13)

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

            1.0

            (1994.3.14)

            第一個正式版。

             

             Linux 統(tǒng) 0.13 內(nèi)直接 0.95 版,Linus 的意 1.0 , 0.95 ,對內(nèi)核的(序的), Linus 的主任務(wù) 開始內(nèi)決定。現(xiàn)為止,新的內(nèi)核版本 2003 12 18 日公 2.6.2 中包 15000 ,使 gz 后源件包 40MB !到現(xiàn)在, 1–2  

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

            內(nèi)核版本號

            發(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)時并沒有被稱 Linux,Linus 給他統(tǒng) FREAX,怪誕、等意操作系統(tǒng)上載 ftp.funet.fi 務(wù)器上時, Ari Lemke 很不。為既 Linus 的操作統(tǒng)就 Linux 作為該操統(tǒng)Linux 流傳下來。

            Linus 的自傳Just for Fun,Linus 解釋1

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

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

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

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

            Linux  內(nèi)行也 Linux  操作統(tǒng)時,熱 情 linux 發(fā) Maillist,幾乎是 Linux 剛開發(fā), Linux 做出。他 也是最早 Linux 內(nèi)核加程Linux 內(nèi) 0.10 驅(qū) ramdisk.c 和內(nèi)核內(nèi)配 程 kmalloc.c)。目前為止事著 Linux 關(guān)洲地區(qū)他設(shè)立 Linux ftp tsx-11.mit.edu,而且 Linux 用戶務(wù)。 Linux 獻 之一實現(xiàn) ext2 文件統(tǒng)。統(tǒng)現(xiàn) Linux 世界上的統(tǒng)標(biāo)準(zhǔn)。他 又推 ext3 統(tǒng)。該系統(tǒng)統(tǒng)的穩(wěn)作為 97 2002 5 Linux Journal 了封面人,了采。, 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)計算網(wǎng)絡(luò)。了玩運 行游網(wǎng)絡(luò)輸速,最為滿。是他操 作系統(tǒng)。,使 MINIX 統(tǒng)不起。當(dāng) Linux 0.11 386BSD 發(fā)算 購置了一 386SX 。 386BSD 數(shù)學(xué)協(xié)處理而采 Intel 386SX CPU 不帶 數(shù)學(xué)協(xié), Linux 系統(tǒng)于是他開學(xué)習(xí) Linux, Linux 系統(tǒng)產(chǎn),有關(guān)網(wǎng)絡(luò)現(xiàn)。關(guān) Linux 式問, Linux 實現(xiàn)巧妙(beautifully)。

            Linux 0.95 發(fā),他 Linux 系統(tǒng)丁程記得他最丁程 序, Linus 采納,并 Linux 統(tǒng) TCP/IP 網(wǎng)絡(luò)使用人之。加入 Linux 的開發(fā)成為 Linux 內(nèi)碼的責(zé),可以說成 Linux 社團Linus 之后。 Microsoft 曾經(jīng)邀請,拒絕。 2001 始, 他負責(zé) Linux 內(nèi) 2.4.x Linus 主要負責(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 計劃Linux Document Project - LDP發(fā) 起者經(jīng) Linux Journel ,現(xiàn) RedHat 公司作。 

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

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

             1.2 內(nèi)容綜述

             本文 Linux 內(nèi) 0.11 細描述和釋。Linux-0.11 1991 12 日發(fā)。發(fā)以下件: 

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

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

            本文  linux-0.11  內(nèi)序,進行,包 括 Makefile 注釋。算機。結(jié) 束內(nèi)始調(diào) shell 序均針對,有連貫性根據(jù)自 己的。分析應(yīng)用實。 

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

            Linux 0.11 內(nèi)們認 Linux 運行。Linux-0.11 版整內(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)足之,驅(qū),有很數(shù)學(xué)協(xié) 的使。導(dǎo)動程序的結(jié)構(gòu)不太一樣 0.11 的引導(dǎo) 啟動結(jié)構(gòu)現(xiàn)基本外一個原 0.11 早期經(jīng)內(nèi) (bootimage),導(dǎo)示。文件統(tǒng)(rootimage), 那么運行 

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

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

            列表  1-1 Linux/目錄 


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

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

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

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

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

            6   kernel/dev_blk/目錄設(shè)了注。有硬、設(shè)備 的驅(qū),文件統(tǒng)區(qū)交道關(guān)的內(nèi)。,這 章內(nèi)資料。下文統(tǒng)節(jié)。

            7   kernel/dev_chr/目錄設(shè)驅(qū)序進中主驅(qū) 動程驅(qū)序和顯示驅(qū)。些驅(qū)動程構(gòu) 0.11 內(nèi)核支持的端 設(shè)備。多與關(guān)內(nèi)。閱讀關(guān)硬件

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

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

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

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

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

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

            14 學(xué)習(xí)內(nèi)核源代碼環(huá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)模 式運述。 

            為了便,附錄內(nèi)中要關(guān) PC  。考 文獻,閱讀書籍、,有包的 繁雜。如在 Linux LDPLinux Document Project)中會 明確 HOWTO ,而并不僅給 LDP 網(wǎng)站地。

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

            在對,我的主、輸出數(shù)程 序的關(guān),的完碼進對原任 何方 C 類語文注數(shù)、名 等也息。更為,碼中現(xiàn)件 方面關(guān)。如回頭會有。

            對于些基散布節(jié)應(yīng)方,了 能夠便結(jié)合,些基解。

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

             1.3 本章小結(jié) 

            首先 Linux 誕生發(fā)展UNIX 開放原代碼版 Linux 提供了 實現(xiàn)Rechard Stallman GNU Linux 統(tǒng)富且、 POSIX 標(biāo)準(zhǔn)出現(xiàn) Linux 提供現(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 小默 閱讀(452) 評論(0)  編輯 收藏 引用 所屬分類: Linux

            導(dǎo)航

            統(tǒng)計

            留言簿(13)

            隨筆分類(287)

            隨筆檔案(289)

            漏洞

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            久久99精品免费一区二区| 久久夜色精品国产亚洲| 国内精品久久久久影院亚洲| 久久天堂AV综合合色蜜桃网| 国产激情久久久久影院老熟女| 久久香蕉国产线看观看精品yw| 国产成人精品久久亚洲高清不卡 | 97久久国产综合精品女不卡| 99国内精品久久久久久久| 日本强好片久久久久久AAA| 久久久久亚洲爆乳少妇无| 久久精品无码一区二区无码 | 久久av免费天堂小草播放| 97精品国产91久久久久久| 欧美精品国产综合久久| 久久久久免费视频| 久久精品成人国产午夜| 亚洲狠狠婷婷综合久久蜜芽| 久久久久一级精品亚洲国产成人综合AV区 | 97久久久久人妻精品专区| 一本色道久久88精品综合 | 久久久青草青青国产亚洲免观| 国产精品99久久久久久人| 亚洲国产精品无码久久| 国内精品九九久久精品| 亚洲精品成人久久久| 女同久久| 久久久无码精品午夜| 久久久综合香蕉尹人综合网| 久久99精品国产麻豆蜜芽| 色综合久久久久网| 狠狠色丁香久久综合婷婷| 狠狠色噜噜狠狠狠狠狠色综合久久| 婷婷五月深深久久精品| 色偷偷久久一区二区三区| 久久天堂AV综合合色蜜桃网| 久久99国产综合精品| 久久r热这里有精品视频| 久久综合狠狠色综合伊人| 国产精品久久国产精品99盘| 久久精品国产一区二区三区日韩|