Linux核心分析(九) 總結篇

2021-07-31 01:15:55 字數 2014 閱讀 8542

1.linux核心分析(一):計算機工作原理

本節簡述了計算機的工作原理,馮諾依曼架構。

cpu將記憶體中的**和資料讀取到自己的暫存器中,再根據一條條命令呼叫暫存器進行進一步的操作;同時,老師對基礎的組合語言語法進行了講解。通過程式的彙編級執行分析來表現計算機執行的大致過程。

2.linux核心分析(二):作業系統如何工作

第二週則是第一周的延伸,通過mykernel小核心的演示和**的分析,從巨集觀排程演算法等角度表現作業系統的執行過程及其對各個程序的切換過程,實現了時間片輪轉多通道程式的功能。

3.linux核心分析(三):構造乙個簡單的linux系統menuos

通過gdb分析menuos的啟動過程,演示linux啟動前需要載入的各個模組,以及linux的啟動過程和0號程序,1號程序及之後所有程序間的關係。

4.linux核心分析(四):系統呼叫,使用者態及核心態

從巨集觀上介紹了如何通過兩種方式實現乙個系統呼叫的。一種是通過系統api函式的方式實現,另外一種通過軟中斷int0x80來實現,通過軟中斷實現的時候,我們需要在之前先傳入中斷入口引數,然後中斷時候系統就可以知道要執行哪個服務程式。入口引數就是一些必要的標識和系統執行這個功能必要的輸入資料。

5.linux核心分析(五):系統呼叫深入分析

從微觀上,即彙編層面上分析系統呼叫的具體實現形式,以fork系統呼叫為例分析其實現過程。 system_call是所有系統呼叫的入口,也是程式由使用者態轉入核心態執行時無法越過的乙個函式,其重要性不言而喻,

6.linux核心分析(六):程序的描述和程序的建立

介紹程序的知識及分析其建立過程。通過fork、vfork和clone等api來建立乙個子程序,它們在linux核心中對應的系統呼叫分別為sys_fork、sys_vfork和sys_clone函式,而這些函式最終都會呼叫do_fork完成子程序的建立。

7.linux核心分析(七):可執行程式的裝載

介紹c程式編譯鏈結過程,elf檔案格式,靜態編譯和動態編譯的區別,以及可執行程式的裝載過程。通過execve api啟動乙個新程序,該api又呼叫sys_execve系統呼叫,負責將新的程式**和資料替換到新的程序中,開啟可執行檔案,載入依賴的庫檔案,申請新的記憶體空間,最後執行 start_thread(regs, elf_entry, bprm->p) ,設定 new_ip, new_sp ,完成新程序的**和資料替換,然後返回,接下來就是執行新的程序**了。

8.linux核心分析(八):linux程序排程的時機和程序切換

從linux核心原始碼層面介紹linux中程序的切換過程,以及程序上下文的切換和中斷上下文切換的關係。其中關鍵性的**switch_to的與第二週my_kernel中的my_schedule函式有異曲同工之妙

經過了兩個月的學習,我對linux系統整體上有了一定的了解。《linux核心分析》是我第一次在網易雲課堂上學習課程,授課形式很新穎。孟寧老師精心詳細的講解讓我對linux核心有了乙個全新的認識。

在每一次的線上課程以及課後的實驗學習過程中,孟寧老師可以說是逐漸幫我撥開了蒙在linux核心上的一層面紗,從一開始的計算機的工作原理,程式順序執行到函式呼叫堆疊的細緻分析讓我印象深刻,同時也理解了linux的系統的組成,啟動過程及各個程序間的關係。明白了程序的建立原理及可執行程式的編譯,鏈結和裝載原理。理解了系統呼叫的概念,原理及實現方法。深入理解了中斷和程序切換實現的具體過程及兩者之間的關係。

另外,我覺得老師這門課沒有涉及到檔案系統linux核心的實在是有點遺憾,如果以後開課的話,希望能將這個模組納入課程的講解中。而且在課程中也沒有太多闡述儲存管理內容和排程演算法的內容。如果孟寧老師能夠再為我們講授這些內容,我相信一定是收穫匪淺。

最後,感謝孟寧老師的辛苦付出和網易雲課堂提供的平台,為我們呈現了如此精彩的課程。孟寧老師講課條理清晰,能夠高屋建瓴地為我們揭開linux核心的奧秘,例如老師自己寫的mykernel小型核心就讓我對程序排程有了乙個極為精準的初步認識;同時孟寧老師又十分幽默風趣,遇到比較抽象比較難解釋的地方,經常會通過一些生動形象的例子與具體的事物聯絡起來,就比如說那個舞女的比喻,讓大家印象深刻。孟寧老師為我們開啟了乙個新世界的大門,我們將帶著您的教誨在linux這片天地中探索前行!

Linux核心分析 Linux核心學習總結

這學期選了孟老師的 linux核心分析 這門課,在學習之前聽說這門課很難,通過也不是很容易,但我還是選了這門課。課程不容易學,含金量才會大,才會有收穫。現在,學習這門課已經兩個月了,我的收穫很大,特別是以前接觸 計算機組成原理 作業系統 這兩門課時遇到的很難理解的地方,通過孟老師的linux核心講解...

linux核心分析學習總結

實驗目錄 實驗1 反彙編 c 語言程式 小結 序的堆疊呼叫大體過程是堆疊先向下增加,然後再向上還原的乙個過程,整個程式通過指令線性流過 cpu。不足 流程圖還可以再畫好一些。實驗2 乙個簡單的時間片輪轉多道程式分析 小結 可以看出計算機所謂的多工處理也只是週期性的產生中斷來輪流招待不同的程式,cpu...

Linux0,11 核心分析 硬碟篇

因為在保護模式下無法呼叫bios中斷,所以只好自己編寫 控制硬碟讀寫。對於硬體的控制,其實就是往對應的埠讀寫資料,硬碟也是如此。當硬碟控制器完成某項操作時,則會用中斷的方法提示cpu。我們所要做的,就是先根據需要往埠讀寫資料,然後設定相應的中斷呼叫函式。這樣就可以完成硬碟的讀寫工作。中斷呼叫函式的內...