1.程序管理。
本章主要是介紹程序的乙個靜態的狀態,包括系統如何組織程序。建立,啟動,到最後死亡的乙個概念性認識,沒有更加深刻的知識。
2.程序排程。
本章比較重要。
1. 搶占式排程策略。
2. 倆程序間上下文切換 有倆函式 switch_mm 和 switch_to倆函式完成此功能。(具體細節需要閱讀其他書籍)
3.系統呼叫。
1.系統呼叫處於程序上下文(此概念很模糊,大概的意思是說,核心代表程序在執行)
2.陷入核心 是乙個重要的概念(如何重要,沒有講,知識說linux陷入核心特別快。)
4.中斷和中斷處理,以及下半部。(驅動程式一般分為上半部和下半部,講得很淺薄)
1 .中斷 不會被當前中斷 搶占(原因不詳)
2. 軟中斷不會被所有軟中斷搶占(原因不詳)
5.核心同步(講得很淺薄)
1.需要保護什麼很重要也很難。一條規則是幾乎所有的核心資料結構都需要加鎖。【:只要別的**能訪問到】
2.死鎖。(悲催 十字路口車輛問題,都在等其他車,結果兩輛車都走不動)
6.核心同步方法(想到特殊的volatile修飾符)
1.原子操作
2.順序性
3.自旋鎖
4.訊號量
5.完成變數
6.禁止搶占 來保持高效,(有時候不需要自旋鎖(註解:本身會禁止搶占),只需要禁止搶占就夠了)
7.順序和屏障
7.記憶體管理
1.mmu以page為單位進行管理
2.三種區 dma區(記憶體位址固定的硬體使用),普通區,高階記憶體(無法訪問)
8.塊i/o層,就是說 塊裝置
1.塊和扇區。塊必須是扇區的大小(512byte)的整數倍,但是小於頁面大小。
2.用bio來管理。
3.電梯排程程式
9.程序位址空間
1.**段,資料段(已經初始化),未初始化的全域性變數(0頁)。
2.程序的使用者空間棧
3.各種庫的記憶體對映
4.記憶體對映檔案
5.共享記憶體段
6.malloc分配的匿名記憶體對映。
10.頁快取記憶體和頁回寫
1.主要是快取磁碟的。臨時區域性原理。
2.同時也可以快取 磁碟本身的io緩衝區。
11.模組(未閱讀)
linux 核心設計與實現相關
有待繼續補充。第一章 linux核心簡介 需要注意 核心開發其實並不難。第二章 從核心出發 核心開發需要注意 1 沒有c庫,c庫太大了 2 沒有記憶體保護機制 3 不要輕易使用浮點數 4 可移植的重要性 5 同步和併發 疑問 編譯和安裝核心?必須在linux下麼?其他機器安裝了gcc編譯器呢?能否編...
linux核心設計與實現 前言
認真閱讀原始碼很重要,應該鑽研並嘗試著手改一些 尋找乙個bug然後去修改它,改進你的硬體裝置的驅動程式 unix特點 作業系統 指系統中負責完成最基本功能和系統管理的部分。包括 核心 裝置驅動程式 啟動引導程式 命令列shell或其他種類的使用者介面 基本的檔案管理和系統工具。核心組成 中斷服務程式...
linux核心設計與實現 核心同步介紹
小結 核心同步方法 順序和屏障 第10章 核心同步方法 臨界區 訪問和操作共享資料的 競爭條件 兩個執行執行緒有可能在同乙個臨界區中同時執行。同步 避免併發和防止競爭條件。鎖的形式和鎖的粒度各不相同,各個鎖機制之前的主要區別在於 當鎖被其他執行緒持有時,其他的行為表現。造成併發執行的原因 使用者空間...