Linux核心設計與實現總結。

2021-09-01 07:51:30 字數 1146 閱讀 1716

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章 核心同步方法 臨界區 訪問和操作共享資料的 競爭條件 兩個執行執行緒有可能在同乙個臨界區中同時執行。同步 避免併發和防止競爭條件。鎖的形式和鎖的粒度各不相同,各個鎖機制之前的主要區別在於 當鎖被其他執行緒持有時,其他的行為表現。造成併發執行的原因 使用者空間...