LINUX內(nèi)核源文件介紹以及頭文件介紹_第1頁
LINUX內(nèi)核源文件介紹以及頭文件介紹_第2頁
LINUX內(nèi)核源文件介紹以及頭文件介紹_第3頁
LINUX內(nèi)核源文件介紹以及頭文件介紹_第4頁
LINUX內(nèi)核源文件介紹以及頭文件介紹_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、LINUX 內(nèi)核源文件介紹以及頭文件介紹LINUX 內(nèi)核源文件介紹以及頭文件介紹 .txt 兩人之間的感情就像織毛衣,建立的時候一針一線,小心而漫長,拆除的時候只要輕輕一拉。*LINUX(0.11)源文件介紹*1、內(nèi)核源文件放置目錄:| boot系統(tǒng)引導(dǎo)匯編程序目錄| fs文件系統(tǒng)目錄| include頭文件目錄| init內(nèi)核初始化程序目錄| kernel內(nèi)存進程調(diào)度、信號處理、系統(tǒng)調(diào)用等程序的目錄| lib內(nèi)核庫函數(shù)目錄| mm內(nèi)存管理程序目錄| tools生成內(nèi)核Image文件的工具程序目錄Makefile 文件2、引導(dǎo)啟動程序目錄boot包含 3 個匯編語言文件,是內(nèi)核源文件中最先被編

2、譯的程序。功能: 當計算機家電時引導(dǎo)內(nèi)核啟動, 將內(nèi)核代碼加載到內(nèi)存中, 并完成系統(tǒng)初始化工作。boot| bootsect.s磁盤引導(dǎo)塊程序,編譯后會駐留在磁盤的第一個扇區(qū)中|setup.s 讀取機器的硬件配置參數(shù),并把內(nèi)核模式system移動到適當?shù)膬?nèi)存位置處|head.s會被編譯連接在system模塊的最前部分,主要進行硬件設(shè)備的探測配置和內(nèi)存管理頁面的配置工作 |3、文件系統(tǒng)目錄fs包含17個C語言程序fs | buffer.c 管理高速緩沖區(qū) | file_table.c 在 0.11 僅定義了一個文件句柄(描述符)結(jié)構(gòu)數(shù)組| ioctl.c將引用 kernel/chr_dev/tt

3、y.c 中的函數(shù),實現(xiàn)字符設(shè)備的 IO控制功能| exec.c 主要包含一個執(zhí)行程序函數(shù)do_execve()| fcntl.c 實現(xiàn)文件 I/O 控制的系統(tǒng)調(diào)用函數(shù)| read_write.c 實現(xiàn)文件讀/ 寫和定位的三個系統(tǒng)調(diào)用函數(shù)| stat.c 實現(xiàn)了兩個獲取文件狀態(tài)的系統(tǒng)調(diào)用函數(shù) | open.c主要包含實現(xiàn)修改文件屬性和創(chuàng)建與關(guān)閉文件的系統(tǒng)調(diào)用函數(shù)| char_dev.c 主要包含字符設(shè)備讀寫函數(shù)rw_char()| pipe.c包含管道讀寫函數(shù)和創(chuàng)建管道的系統(tǒng)調(diào)用函數(shù)| file_dev.c 包含基于 i 節(jié)點和描述符結(jié)構(gòu)的文件讀寫函數(shù)。| namei.c主要包括文件系統(tǒng)中目錄名

4、和文件名的操作函數(shù)和系統(tǒng)調(diào)用函數(shù)| block_dev.c包含塊數(shù)據(jù)讀和寫函數(shù)| inode.c包含針對文件系統(tǒng)i 節(jié)點操作的函數(shù)| truncate.c 用于在刪除文件時釋放文件所占用的設(shè)備數(shù)據(jù)空間| bitmap.c 用于處理文件系統(tǒng)中 i 節(jié)點和邏輯數(shù)據(jù)塊的位圖包含對文件系統(tǒng)超級塊的處理函數(shù)super.c4、頭文件主目錄include有32個.h文件,其中主目錄下有13個,sam 子目錄中有4 個, sys 子目錄中有5 個, linux 子目錄中有 10 個include| a.out.h a.out 頭文件,定義了 a.out 執(zhí)行文件格式和一些宏| const.h 常數(shù)符號頭文件,

5、 目前僅定義了 i 節(jié)點中 i_mode 字段的各標志位| ctype.h 字符類型頭文件。定義了一些有關(guān)字符類型判斷和轉(zhuǎn)換的宏| errno.h錯誤號頭文件。包含系統(tǒng)中各種出錯號| fcntl.h文件控制頭文件。用于文件及其描述符的操作控制常數(shù)符號的定義| signal.h 信號頭文件。定義信號符號常量,信號結(jié)構(gòu)以及信號操作函數(shù)原型| stdarg.h 標準參數(shù)頭文件。以宏的形式定義變量參數(shù)列表。定義了一個類型(va_list)和三個宏(va_start,va_arg和 va_end),用于 vsprintf、vprintf、 vfprintf 函數(shù)| stddef.h 標準定義頭文件。定義

6、了NULL, offsetof(TYPE,MEMBER)| string.h字符串頭文件。主要定義了一些有關(guān)字符串操作的嵌入函數(shù)| termios.h終端輸入輸出函數(shù)頭文件。主要定義控制異步通信口的終端接口| time.h 時間類型頭文件。最主要定義了 tm 結(jié)構(gòu)和一些有關(guān)時間的函數(shù)原形| unistd.h Linux 標準頭文件。定義了各種符號常數(shù)和類型,并申明了各種函數(shù),如_LIBRARY_則還包括系統(tǒng)調(diào)用號和內(nèi)嵌匯編 _syscall(痔| utime.h 用戶時間頭文件。定義了訪問和修改時間結(jié)構(gòu)以及utime() 原| asm主要定義了一些與CPU體系結(jié)構(gòu)密切相關(guān)的數(shù)據(jù)結(jié)構(gòu)、宏函數(shù)和變

7、量| asm/io.h義對 io 端口操作的函數(shù)| asm/memory.h匯編宏函數(shù)| asm/segment.h嵌入式匯編函數(shù)| asm/system.h構(gòu)以及utime() 原型| linux|linux/config.h(HD_TYPE可選項|linux/fdreg.h義|linux/fs.h|linux/hdreg.h口,狀態(tài)碼,分區(qū)表等信息|linux/head.h和幾個選擇符常量|linux/kernek.h定義|linux/io 頭文件。 以宏的嵌入?yún)R編程序形式定內(nèi)存拷貝頭文件。包含 memcpy ()嵌入式段操作頭文件。 定義了有關(guān)段寄存器操作的用戶時間頭文件。 定義了訪問和

8、修改時間結(jié)內(nèi)核配置頭文件。定義鍵盤語言和硬盤類型軟驅(qū)頭文件。含有軟盤控制器參數(shù)的一些定文件系統(tǒng)頭文件。定義文件表結(jié)構(gòu)硬盤參數(shù)頭文件。定義訪問硬盤寄存器端head 頭文件。 定義了段描述符的簡單結(jié)構(gòu),內(nèi)核頭文件。 含有一些內(nèi)核常用函數(shù)的原形mm.h 內(nèi)存管理頭文件。 含有頁面大小定義和一些頁面釋放函數(shù)原型| linux/sched.h 調(diào)度程序頭文件,定義了任務(wù)結(jié)構(gòu)task_struct、初始任務(wù)0的數(shù)據(jù),還有一些有關(guān)描述參數(shù)設(shè)置和獲取的嵌入式匯編函數(shù)宏語句|linux/sys.h函數(shù)處理程序,以$丫$_?頭|linux/tty.h方面的參數(shù)、常數(shù)| sys| sys/stat.h態(tài)結(jié)構(gòu)stat

9、和常量|sys/times.h函數(shù)原型|sys/types.h|sys/utsname.h| sys/wait.hwaitpid()及相關(guān)常數(shù)符號|系統(tǒng)調(diào)用頭文件。含有72 個系統(tǒng)調(diào)用Ctty 頭文件,定義了有關(guān)tty_io ,串行通信文件狀態(tài)頭文件。含有文件或文件系統(tǒng)狀定義了進程中運行時間結(jié)構(gòu) tms 以及 times()類型頭文件。定義了基本的系統(tǒng)數(shù)據(jù)類型系統(tǒng)名稱結(jié)構(gòu)頭文件等待調(diào)用頭文件。定義系統(tǒng)調(diào)用 wait() 核5、內(nèi)核初始化程序目錄init該目錄下僅包含一個文件main.c。 用于執(zhí)行內(nèi)核所有的初始化工作, 然后移到用戶模式創(chuàng)建新進程,并在控制臺設(shè)備上運行shell程序。6、內(nèi)核程

10、序主目錄kernel包含了 12個代碼文件和一個 Make巾le文件,另外還有3個子目錄blk_dev、chr_dev、 math。kernel | asm.s 用于處理系統(tǒng)硬件異常所引起的中斷,對各硬件異常的實際處理程序則是在traps.c文件中,在各個中斷處理程序中,將分別調(diào)用traps.c中相應(yīng)的C語言處理函數(shù)| exit.c 主要包括用于處理進程終止的系統(tǒng)調(diào)用,包括進程釋放、會話(進程組)終止和程序退出處理函數(shù)以及殺死進程、終止進程、掛起進程等系 統(tǒng)調(diào)用函數(shù)。 |fork.c給出了 sys_fork()系統(tǒng)調(diào)用中使用了兩個C語言函數(shù):find_empty_process(刖 copy_

11、process(> | mktime.c 包含一個內(nèi)核使用的時間函數(shù)mktime() ,用于計算機從1970年 1 月 1 日 0 時起到開機當日的秒數(shù),作為開機描述。僅在inti/main.c 中被調(diào)用一次| pani.c 包含一個顯示內(nèi)核出錯信息并停機的函數(shù)panic()| printk.c 包含一個內(nèi)核專用信息顯示函數(shù)printk()|sched.c包含有關(guān)調(diào)度的基本函數(shù) (sleep_on、wakeup、schedule等)以及一些簡單的系統(tǒng)調(diào)用函數(shù),另外還有幾個與定時相關(guān)的軟盤操作函數(shù)| signal.c 包含了有關(guān)信號處理的 4 個系統(tǒng)調(diào)用以及一個在對應(yīng)的中斷處理程序中處理信

12、號的函數(shù)do_signal()| sys.c包含了很多系統(tǒng)調(diào)用函數(shù),其中有些還沒有實現(xiàn)|system_call.s實現(xiàn)了 Linux系統(tǒng)調(diào)用(int 0x80)的接口處理過程,實際的處理過程則包含在個系統(tǒng)調(diào)用相應(yīng)的 C 語言處理函數(shù)中,這些處理函數(shù)分布在整個Linux 內(nèi)核代碼中。| vsprintf.c 實現(xiàn)了現(xiàn)在已經(jīng)歸入標準庫函數(shù)中的字符串格式化函數(shù)| blk_dev 子目錄塊設(shè)備驅(qū)動程序| hd.c 實現(xiàn)對硬盤數(shù)據(jù)塊進行讀/ 寫的底層驅(qū)動函數(shù),主要是do_hd_request()函數(shù)| floppy.c 主要實現(xiàn)了對軟盤數(shù)據(jù)塊的讀/ 寫驅(qū)動函數(shù),主要是do_fd_request()函數(shù)。

13、| ll_rw_blk.c 實現(xiàn)了低層塊設(shè)備數(shù)據(jù)讀/ 寫函數(shù)ll_rw_block() , 內(nèi)核中所有其他程序都是通過該函數(shù)對塊設(shè)備進行數(shù)據(jù)讀寫操作。| chr_dev子目錄 字符設(shè)備驅(qū)動程序子目錄| tty_io.c 包含 tty 字符設(shè)備讀函數(shù)tty_read() 和寫函數(shù)tty_write() ,為文件系統(tǒng)提供了上層訪問接口。另外還包括在串行中中斷處理過程中調(diào)用的 C 函數(shù) do_tty_interrupt() ,該函數(shù)將會在中斷類型為讀字符的處理中 被調(diào)用。| console.c 主要 包含 控 制臺 初 始化 程 序和 控制臺 寫 函 數(shù)con_write() ,用于被 tty 設(shè)備

14、調(diào)用。還包含對顯示器和鍵盤中斷的初始化設(shè)置程序 con_init() 。| rs_io.s 由于實現(xiàn)兩個串行接口的中斷處理程序。該中斷處理程序會根據(jù)從中斷標識寄存器中取得的 4 種中斷類型分別進行處理, 并在處理中斷類型為讀字符的代碼中調(diào)用 do_tty_interrupt().| serial.c 用于對異步串行通信芯片 UART進行初始化操作,并設(shè)置兩個通信端口的中斷向量。另外還包括tty 用于往串口輸出的 rs_write ()函數(shù)。| tty_ioctl.c 實現(xiàn)了 tty 的 io 控制接口函數(shù)tty_ioctl() 以及對termio(s)終端Io結(jié)構(gòu)的讀寫函數(shù),并會在實現(xiàn)系統(tǒng)調(diào)用

15、sys_ioctl()的fs/ioctl.c程序中被調(diào)用| keyboard.s 主要實現(xiàn)了鍵盤中斷處理過程keyboard_interrupt.| | math 子目錄協(xié)處理器仿真和操作程序子目錄| math_emulate.c 是中斷 int7 的中斷處理程序調(diào)用的 C 函數(shù)。| lib 子目錄 內(nèi)核庫函數(shù)目錄 lib 主要用于用戶編程調(diào)用,是編譯系統(tǒng)標準庫 的接口函數(shù)之一。|Makefile 文件exit.c包含內(nèi)核使用的程序終止函數(shù)void _exit(intexit_code)close.cctype.cdup.cerrno.cexecve.c malloc.copen.csetsid.c string.cwait.cwrite.c7、內(nèi)存管理程序目錄mmI|page.s包括內(nèi)存頁面異常中斷(int 14)處理程序,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論