linux 0 11 原始碼學習(六)

2021-08-28 10:41:41 字數 329 閱讀 8846

main.c

main函式其實是核心的初始化,如果把核心功能比作業務軟體的話,就相當於是業務的初始化,從該檔案的資料夾歸屬(init資料夾)也可以看出這一點。

main主函式很短,從**中可以基本看出整個核心的功能模組,如下:

void main(void) 

for(;;) pause();

注:在linux中fork乙個程序和unix是一樣的,子程序會拷貝父程序的上下文、**段。因此雖然**檔案的角度看似乎是順序執行的,但在核心中如上述中的if(!fork())和init()是在不同的程序中執行的。

linux 0 11 原始碼學習(五)

head.s head.s 是系統模組的入口,其編譯器已經是gnu彙編,但從功能上將仍然屬於核心啟動階段,主要的功能是對386 cpu的初始化,如使用者堆疊 idt gdt和頁表。因此從資料夾的歸屬看,它仍然放在boot資料夾中,與bootsect和setup一塊。head.s的核心功能 簡單的暫存...

linux 0 11 原始碼學習(十三)

字元裝置驅動 在linux 0.11版本中,字元裝置驅動原始碼分為三塊 向上暴露的字元裝置驅動介面tty io.c與tty ioctl.c,與塊裝置驅動一樣,在字元驅動檔案 read write.c 操作中被呼叫 實現串列埠的驅動rs io.s和serial.c 實現鍵盤驅動的keyboard.s以...

linux 0 11 原始碼學習(十四)

檔案系統綜述 linux 檔案系統是基於minix 1.0檔案系統,這部分的 量是整個核心裡最大的,但 結構對應著minix檔案系統的構成,還是比較清晰易讀的。minix檔案系統 minix的檔案系統由以下幾部分組成 struct super block struct d inode 同時在linu...