亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 00000010.htm

?? 本書詳細地介紹了Linux下一些主要函數的功能
?? HTM
字號:
<HTML><HEAD>  <TITLE>BBS水木清華站∶精華區(qū)</TITLE></HEAD><BODY><CENTER><H1>BBS水木清華站∶精華區(qū)</H1></CENTER>發(fā)信人:&nbsp;axp33a&nbsp;(無聊中...),&nbsp;信區(qū):&nbsp;Linux&nbsp;<BR>標&nbsp;&nbsp;題:&nbsp;Linux內核源代碼分析3-5&nbsp;<BR>發(fā)信站:&nbsp;BBS&nbsp;水木清華站&nbsp;(Thu&nbsp;Aug&nbsp;&nbsp;3&nbsp;11:27:11&nbsp;2000)&nbsp;WWW-POST&nbsp;<BR>&nbsp;<BR>3.5&nbsp;&nbsp;&nbsp;設計和實現的關系
&nbsp;<BR>接下來的部分將介紹一些內核設計和實現之間的關系。本部分最重要的內容是對于內核源&nbsp;<BR>程序目錄結構的概述,這一點隨后就會提到。本章最后以實現中體系結構無關代碼和體系&nbsp;<BR>結構相關代碼的相對大小的估算作為總結。
&nbsp;<BR>3.5.1&nbsp;&nbsp;&nbsp;內核源程序目錄結構
&nbsp;<BR>按照慣例,內核源程序代碼安裝在/usr/src/linux目錄下。在該目錄下還有幾個其他目錄&nbsp;<BR>,每一個都代表一個特定的內核功能性子集(或者非常粗略地說是高層代碼模塊)。
&nbsp;<BR>1.&nbsp;Documentation
&nbsp;<BR>這個目錄下面沒有內核代碼,只有一套有用的文檔。但是這些文檔的質量不一。有一部分&nbsp;<BR>內核文檔,例如文件系統,在該目錄下有相當優(yōu)秀而且相當完整的文檔;而另外一部分內&nbsp;<BR>核,例如進程調度,則根本就沒有文檔。但是在這里你可以不時地發(fā)現自己所最需要的東&nbsp;<BR>西。
&nbsp;<BR>&nbsp;2.&nbsp;arch
&nbsp;<BR>arch目錄下的所有子目錄中都是體系結構相關的代碼。每個體系結構特有的子目錄下都又&nbsp;<BR>至少包含三個子目錄:kernel,存放支持體系結構特有的諸如信號處理和SMP之類特征的&nbsp;<BR>實現;lib,存放高速的體系結構特有的諸如strlen和memcpy之類的通用函數的實現;mm&nbsp;<BR>,存放體系結構特有的內存管理程序的實現。
&nbsp;<BR>除了這三個子目錄以外,大多數體系結構在必要的情況下還都有一個boot子目錄,該目錄&nbsp;<BR>中包含有在這種平臺上啟動內核所使用的部分或全部平臺特有代碼。這些啟動代碼中的部&nbsp;<BR>分或全部也可以在平臺特有的內核目錄下找到。
&nbsp;<BR>最后,大部分體系結構所特有的目錄還可以根據需要包含了供附加特性或改進組織使用的&nbsp;<BR>其他子目錄。例如,i386目錄包含一個math-emu子目錄,其中包括了在缺少數學協處理器&nbsp;<BR>(FPU)的CPU上運行模擬FPU的代碼。作為另外一個例子,m68k移植版本中為每一個該移&nbsp;<BR>植版本所支持的基于680x0的機器建立了一個子目錄,從而這些機器所特有的代碼都有一&nbsp;<BR>個自然的根目錄。
&nbsp;<BR>下面幾個是arch目錄下的子目錄:
&nbsp;<BR>*&nbsp;arch/alpha/—Linux內核到基于DEC&nbsp;Alpha&nbsp;CPU工作站的移植。
&nbsp;<BR>*&nbsp;arch/arm/—Linux到ARM系列CPU&nbsp;的移植,該類CPU主要用于諸如Corel的NetWinder和&nbsp;<BR>Acorn&nbsp;RiscPC之類的機器。
&nbsp;<BR>*&nbsp;arch/i386/—最接近于Linux內核原始平臺或標準平臺。這是為Intel的80386結構使用&nbsp;<BR>的,當然包括對同一系列后來的CPU(80486,Pentium等等)的支持。它還包括了對AMD、&nbsp;<BR>Cyrix和IDT等公司的一些兼容產品的支持。
&nbsp;<BR>本書基本上將這種體系結構稱為“x86”。即使這樣,嚴格說來“x86”對于我們的目標來&nbsp;<BR>說還是要求得過于寬泛。早期的Intel&nbsp;CPU,例如80286,并沒有包括Linux運行所需的所&nbsp;<BR>有特性。對于這些機器,Linux也沒有正式的支持版本(順便提一下,Linux對這種CPU的&nbsp;<BR>獨立移植版本是存在的,不過它在功能上有部分損失)。當本書中提到“x86平臺”時,&nbsp;<BR>通常是指80386或更新的CPU。
&nbsp;<BR>*&nbsp;arch/m68k/—到Motorola的680x0&nbsp;CPU系列的移植。該版本可以提供對基于從68020(只&nbsp;<BR>要它同內存管理單元(MMU)68851一起使用)到68060的一切機器的支持。很多公司在他&nbsp;<BR>們的產品中使用680x0系列芯片,例如Commodore(現在是Gateway)的Amiga、Apple的&nbsp;<BR>Macintosh、Atari&nbsp;ST等等。這些老機器中的很多現在正充當可靠的Linux工作站。另外,&nbsp;<BR>到NeXT工作站和SUN&nbsp;3工作站的移植也正在進行中。
&nbsp;<BR>*&nbsp;arch/mips/—到MIPS的CPU系列的移植。雖然有其他幾個廠商也使用MIPS開發(fā)了一些系&nbsp;<BR>統,但是基于這種CPU的最出名的機器是Silicon&nbsp;Graphics(SGI)工作站。
&nbsp;<BR>*&nbsp;arch/ppc/—到Motorola/IBM的PowerPC系列CPU的移植。這包括對基于PowerPC的&nbsp;<BR>Macintosh和Amiga以及BeBox、IBM的RS/6000等其他一些機器的支持。
&nbsp;<BR>*&nbsp;arch/sparc/—到32位SPARC&nbsp;CPU的移植。這包括對從Sun&nbsp;SPARC&nbsp;1到SPARC&nbsp;20的全部支&nbsp;<BR>持。
&nbsp;<BR>*&nbsp;arch/sparc64/—到基于64位SPARC&nbsp;CPU(UltraSPARC系列)系統的移植。這里所能夠支&nbsp;<BR>持的機器包括Sun的Ultra&nbsp;1、Ultra&nbsp;2和更高配置的機器,直到Sun的最新產品&nbsp;<BR>Enterprise&nbsp;10000。注意32位和64位的SPARC的移植版本正在合并中。
&nbsp;<BR>不幸的是,本書必須將注意力集中在x86上,因此只應用到了arch/i386/目錄下的代碼,&nbsp;<BR>而其他體系結構所特有的代碼將不再涉及了。
&nbsp;<BR>3.&nbsp;drivers
&nbsp;<BR>這個目錄是內核中非常大的一塊。實際上,drivers目錄下包含的代碼占整個內核發(fā)行版&nbsp;<BR>本代碼的一半以上。它包括顯卡、網卡、SCSI適配器、軟盤驅動器、PCI設備和其他任何&nbsp;<BR>你可以說出的Linux支持的外圍設備的軟件驅動程序。
&nbsp;<BR>drivers目錄下的一些子目錄是平臺特有的,例如,zorro子目錄中包含有和Zorro總線通&nbsp;<BR>訊的代碼。而Zorro總線只在Amiga中使用過,因此這些代碼必然是Amiga特有的。而其他&nbsp;<BR>一些子目錄,例如pci子目錄,則至少是部分平臺無關的。
&nbsp;<BR>4.&nbsp;fs
&nbsp;<BR>Linux支持的所有文件系統在fs目錄下面都有一個對應的子目錄。一個文件系統是存儲設&nbsp;<BR>備和需要訪問存儲設備的進程之間的媒介。
&nbsp;<BR>文件系統可能是本地的物理上可訪問的存儲設備,例如硬盤或CD-ROM驅動器;在這兩種情&nbsp;<BR>況下將分別使用ext2和isofs文件系統。文件系統也可能是可以通過網絡訪問的存儲設備&nbsp;<BR>;這種情況下使用的文件系統是NFS。
&nbsp;<BR>還有一些偽文件系統,例如proc文件系統,可以以偽文件的形式提供其他信息(例如,在&nbsp;<BR>proc的情況下是提供內核的內部變量和數據結構)。雖然在底層并沒有實際的存儲設備與&nbsp;<BR>這些文件系統相對應,但是進程可以像有實際存儲設備一樣處理(NFS也可以作為偽文件&nbsp;<BR>系統來使用)。
&nbsp;<BR>5.&nbsp;include
&nbsp;<BR>這個目錄包含了Linux源程序樹中大部分的包含(.h)文件。這些文件按照下面的子目錄&nbsp;<BR>進行分組:
&nbsp;<BR>*&nbsp;include/asm-*/—這樣的子目錄有多個,每一個都對應著一個arch的子目錄,例如&nbsp;<BR>include/asm-alpha、include/asm-arm、include/asm-i386等等。每個目錄下的文件中包&nbsp;<BR>含了支持給定體系結構所必須的預處理器宏和短小的內聯函數。這些內聯函數很多都是全&nbsp;<BR>部或部分地使用匯編語言實現的,而且在C或者匯編代碼中都會應用到這些文件。
&nbsp;<BR>當編譯內核時,系統將建立一個從include/asm到目標體系結構特有的目錄的符號鏈接。&nbsp;<BR>結果是體系結構無關內核源程序代碼可以使用如下形式的代碼來實現所需功能:
&nbsp;<BR>&nbsp;&nbsp;#include&nbsp;&lt;asm/some-file&gt;
&nbsp;<BR>這樣就能夠將適當地體系結構特有的文件包含(#include)進來。
&nbsp;<BR>*&nbsp;include/linux/—內核和用戶應用程序請求特定內核服務時所使用的常量和數據結構在&nbsp;<BR>頭文件中定義,而該目錄中就包含了這些頭文件。這些文件大都是平臺獨立的。這個目錄&nbsp;<BR>被全部復制(更多的情況是鏈接)到/usr/include/linux下。這樣用戶應用程序就可以使&nbsp;<BR>用#include包含這些頭文件,而且能夠保證所包含進來的頭文件的內容和內核中的定義一&nbsp;<BR>致。第9章將會給出有關的一個樣例。
&nbsp;<BR>*&nbsp;對這些文件的移植只有對于內核來說才是必須的,對用戶應用程序則沒有必要。移植工&nbsp;<BR>作可以按照如下的方式封裝處理:
&nbsp;<BR>*&nbsp;include/net/—這個目錄供與網絡子系統有關的頭文件使用。
&nbsp;<BR>*&nbsp;include/scsi/—這個目錄供與SCSI控制器和SCSI設備有關的頭文件使用。
&nbsp;<BR>*&nbsp;include/video/—這個目錄供與顯卡和幀顯示緩存有關的頭文件使用。
&nbsp;<BR>6.&nbsp;init
&nbsp;<BR>這個目錄下面的兩個文件中比較重要的一個是main.c,它包含了大部分協調內核初始化的&nbsp;<BR>代碼。第4章將詳細介紹這部分代碼。
&nbsp;<BR>7.&nbsp;ipc
&nbsp;<BR>這個目錄下的文件實現了System&nbsp;V的進程間通訊(IPC)。在第9章中將會對它們進行詳細&nbsp;<BR>介紹。
&nbsp;<BR>8.&nbsp;kernel
&nbsp;<BR>這個目錄中包含了Linux中最重要的部分:實現平臺獨立的基本功能。這部分內容包括進&nbsp;<BR>程調度(kernel/sched.c)及創(chuàng)建和撤銷進程的代碼(kernel/fork.c和kernel/exit.c)&nbsp;<BR>;以上所有內容將在第7章中有所涉及。但是我并不想給你留下這樣的印象:需要了解的&nbsp;<BR>內容都在這個目錄下。實際上在其他目錄下也有很多重要的內容。但是,不管怎樣說,最&nbsp;<BR>重要部分的代碼是在這個目錄下的。
&nbsp;<BR>9.&nbsp;lib
&nbsp;<BR>lib目錄包含兩部分的內容。lib/inflate.c中的函數能夠在系統啟動時展開經過壓縮的內&nbsp;<BR>核(請參見第4章)。lib目錄下剩余的其他文件實現一個標準C庫的有用子集。這些實現&nbsp;<BR>的焦點集中在字符串和內存操作的函數(strlen,memcpy和其他類似的函數)及有關&nbsp;<BR>sprintf和atoi的系列函數上。
&nbsp;<BR>這些文件都是使用C語言編寫的,因此在新的內核移植版本中可以立即使用這些文件。正&nbsp;<BR>如本章前面部分說明的那樣,一些移植提供了它們獨有的高速的函數版本,這些函數通常&nbsp;<BR>是經過手工調整過的匯編程序,在移植后的系統使用這些函數來代替原來的通用函數。
&nbsp;<BR>10.&nbsp;mm
&nbsp;<BR>該目錄包含了體系結構無關的內存管理代碼。正如我們前面說明的那樣,為每個平臺實現&nbsp;<BR>最底層的原語的體系結構特有的內存管理程序是存儲在arch/platform/mm中的。大部分平&nbsp;<BR>臺獨立和x86特有的內存管理代碼將在第8章中介紹。
&nbsp;<BR>11.&nbsp;&nbsp;net
&nbsp;<BR>這個目錄包含了Linux應用的網絡協議代碼,例如AppleTalk、TCP/IP、IPX等等。
&nbsp;<BR>12.&nbsp;scripts
&nbsp;<BR>該目錄下沒有內核代碼,它包含了用來配置內核的腳本。當運行make&nbsp;menuconfig或者&nbsp;<BR>make&nbsp;xconfig之類的命令配置內核時,用戶就是和位于這個目錄下的腳本進行交互的。
&nbsp;<BR>3.5.2&nbsp;&nbsp;&nbsp;體系結構相關和體系結構無關的代碼
&nbsp;<BR>現在我們來估計一下體系結構相關和體系結構無關代碼的相對大小。我們首先給出一些數&nbsp;<BR>字。完整的2.2.5的內核總共有1&nbsp;725&nbsp;645行代碼(順便一提,請注意本書只包含了39&nbsp;000&nbsp;<BR>行代碼,但是我們仍然努力涵蓋了相當部分的核心函數)。其中一共有392&nbsp;844行代碼在&nbsp;<BR>體系結構特有的目錄之內,也就是arch/*和include/asm-*下面。我估計還有超過64&nbsp;000&nbsp;<BR>行的代碼是僅供一種體系結構專用的驅動程序。這意味著大約26%的代碼是專用于體系結&nbsp;<BR>構相關代碼的。
&nbsp;<BR>但是,對于單一一種體系結構,體系結構相關代碼比例相對較小。不妨理想一點,如果某&nbsp;<BR>種單一體系結構所需要的特有代碼約有50&nbsp;000行,而體系結構無關代碼則大約有1&nbsp;250&nbsp;&nbsp;<BR>000行,那么體系結構相關代碼大概只占到4%。當然,在特定的一個內核中,并不是所有&nbsp;<BR>這些體系結構無關代碼都會被用到,因此體系結構相關代碼在特定內核中所占的比重與內&nbsp;<BR>核的配置有關。但是不管怎樣,很顯然大部分內核代碼是平臺獨立的。&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;來源:·BBS&nbsp;水木清華站&nbsp;smth.org·[FROM:&nbsp;166.111.196.22]&nbsp;&nbsp;<BR><CENTER><H1>BBS水木清華站∶精華區(qū)</H1></CENTER></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产成人国产三级| 一区二区三区日韩精品视频| 国产精品毛片久久久久久| 日韩毛片精品高清免费| 在线欧美日韩国产| 国产揄拍国内精品对白| 国内成人精品2018免费看| 美女视频黄a大片欧美| 麻豆一区二区三| 麻豆一区二区三| 久久精品国产成人一区二区三区| 免费观看91视频大全| 久久精品国产亚洲一区二区三区| 人人狠狠综合久久亚洲| 麻豆国产精品视频| 久久精品国产免费| 国产麻豆9l精品三级站| 国产原创一区二区| 成人黄色a**站在线观看| 不卡的av在线| 欧美性猛交xxxxxxxx| 欧美精品v国产精品v日韩精品 | 在线观看91视频| 日本丰满少妇一区二区三区| 91国产精品成人| 91精品免费在线观看| 精品蜜桃在线看| 国产精品久久久久影视| 一区二区激情视频| 男男成人高潮片免费网站| 激情综合五月天| proumb性欧美在线观看| 欧美日韩综合在线| 精品蜜桃在线看| 亚洲品质自拍视频网站| 日韩中文字幕一区二区三区| 国产一区二区三区在线观看免费视频 | 欧美bbbbb| 成人自拍视频在线| 在线观看一区二区视频| 日韩精品在线一区二区| 亚洲欧洲无码一区二区三区| 日本人妖一区二区| 成人h动漫精品一区二区| 欧美日韩久久久一区| 久久久久久免费网| 亚洲国产欧美在线| 国产精品小仙女| 欧美日韩午夜影院| 国产亚洲女人久久久久毛片| 午夜视频久久久久久| 成人精品免费看| 日韩视频中午一区| 亚洲国产精品一区二区久久| 国产成人a级片| 国产高清精品网站| 日韩欧美一区中文| 成人午夜免费av| 一区二区三区中文在线观看| 老司机精品视频线观看86| 久久国产精品第一页| 91成人在线免费观看| 中文久久乱码一区二区| 日本女优在线视频一区二区| 91色视频在线| 亚洲国产高清aⅴ视频| 久久国产日韩欧美精品| 欧美精品一区二区三区高清aⅴ| 亚洲精品久久久久久国产精华液| 国产在线视频一区二区| 日韩网站在线看片你懂的| 亚洲成人www| 91福利视频网站| 亚洲欧洲综合另类在线| av电影一区二区| 国产精品理伦片| 成人在线视频一区二区| 欧美极品美女视频| 国产成人无遮挡在线视频| wwwwxxxxx欧美| 精品一区二区精品| 久久尤物电影视频在线观看| 麻豆精品精品国产自在97香蕉| 3751色影院一区二区三区| 亚洲丶国产丶欧美一区二区三区| 在线观看欧美日本| 亚洲精品视频自拍| 色老汉一区二区三区| 一区二区三区四区激情| 欧美性大战久久久久久久蜜臀| 亚洲综合区在线| 欧美日韩一级片在线观看| 亚洲国产成人高清精品| 欧美日韩国产色站一区二区三区| 亚洲超丰满肉感bbw| 日韩一级成人av| 韩国视频一区二区| 中文字幕国产一区| 91性感美女视频| 亚洲成人自拍网| 欧美一级免费观看| 国产精品一级在线| 中文在线资源观看网站视频免费不卡 | 青青草国产成人99久久| 亚洲免费观看在线观看| caoporn国产精品| 精品福利av导航| 国产精品99久久久| 久久成人羞羞网站| 亚洲国产色一区| 中文字幕一区二区三区乱码在线 | 91福利小视频| 成人美女在线观看| 视频一区国产视频| 亚洲午夜三级在线| 一区二区三区国产豹纹内裤在线| 国产精品美女视频| 中文字幕二三区不卡| 国产欧美一区二区三区在线老狼 | 视频在线观看91| 亚洲国产一区二区视频| 亚洲自拍欧美精品| 亚洲一区二区偷拍精品| 一区二区三区成人| 性久久久久久久久久久久| 亚洲线精品一区二区三区| 亚洲国产成人91porn| 亚洲成人久久影院| 日本人妖一区二区| 激情综合色丁香一区二区| 国产伦精品一区二区三区免费| 精品亚洲免费视频| 高清国产午夜精品久久久久久| 成人免费视频app| 91啪在线观看| 欧美中文字幕久久| 67194成人在线观看| 精品国产污污免费网站入口 | 欧美xxxx在线观看| 久久夜色精品一区| 中文字幕一区二区三区不卡| 亚洲乱码中文字幕| 图片区小说区国产精品视频| 青青草原综合久久大伊人精品| 91视频一区二区三区| 色激情天天射综合网| 欧美精品自拍偷拍| 久久综合久久99| 亚洲欧洲制服丝袜| 日日摸夜夜添夜夜添精品视频| 寂寞少妇一区二区三区| 成人激情综合网站| 精品视频在线视频| 欧美变态口味重另类| 日韩伦理电影网| 日韩精品一二区| 成人一区二区三区中文字幕| 色8久久人人97超碰香蕉987| 91精品久久久久久久久99蜜臂| 久久人人超碰精品| 亚洲免费在线观看| 久久黄色级2电影| 色狠狠色噜噜噜综合网| 精品奇米国产一区二区三区| 日韩一区欧美小说| 久久国产免费看| 日本韩国一区二区| 久久久久久久综合色一本| 亚洲综合激情另类小说区| 国产一区二区三区精品欧美日韩一区二区三区 | 极品少妇一区二区三区精品视频 | 国产精品女同一区二区三区| 香蕉成人伊视频在线观看| 国产成人在线免费观看| 欧美精品日韩一区| 中文字幕一区二区三区蜜月 | 国产精品小仙女| 欧美疯狂做受xxxx富婆| 亚洲丝袜精品丝袜在线| 国产伦精品一区二区三区免费迷 | 一区二区理论电影在线观看| 国产资源在线一区| 91精品国产麻豆国产自产在线| 欧美国产日韩一二三区| 久久超碰97中文字幕| 欧美日韩一区在线| 亚洲精品视频免费看| 成人av在线网| 久久久久九九视频| 看电影不卡的网站| 在线成人av影院| 五月天激情综合| 欧美日韩一区二区欧美激情| 亚洲欧美视频在线观看| 成年人网站91| 国产精品乱人伦| 成人av在线资源| 国产精品私人自拍| 成人激情黄色小说| 国产精品免费av|