Linux核心完全注釋(0 11版)DAY2

2021-08-20 11:25:39 字數 885 閱讀 9735

fs目錄是檔案系統實現程式的目錄,包含17個c語言程式。這些程式可分為四個部分:高速緩衝區管理、底層檔案操作、檔案資料訪問和檔案高層函式。核心檔案buffer.c是高速緩衝區程式,因為檔案系統資料訪問都需要首先讀取到高速緩衝區。

圖為fs目錄中各程式函式之間引用關係

標頭檔案主目錄include

頭檔案目錄總共有32個.號檔案。其中include/主目錄下有13個頭檔案,其他標頭檔案則存放在asm(4個)、linux(10個)和sys(5個)三個子目錄

include/主目錄下標頭檔案主要提供核心和使用者程式的使用;sam/子目錄用於主要存放計算機硬體體系結構相關的標頭檔案;linux/子目錄用於存放linux核心專用標頭檔案;sys/子目錄用於存放一些檔案狀態、程序、系統資料型別等標頭檔案

linux核心源**情景分析(上)

inline:內聯函式,因為gcc從c++中吸收了很多語法,因此gcc既是c編譯又是c++編譯,其中inline就是c++語法。inline函式與#define類似,e.g.

#include //函式定義為inline即:內聯函式

inline char* dbtest(int a) int main() }

這裡用inline就將a%2可以寫為i%2,減少了棧空間的消耗(臨時變數),但inline不能用在結構複雜的函式裡面,因為這會大量消耗記憶體空間,並且inline是非強制的只是建議,編譯器會自動判別採用不。詳見這篇部落格。

#define與inline的區別,當用#define進行巨集定義時預編譯時只是進行的簡單符號替換,並不具有檢查引數有效性。而inline預編譯時會檢查引數有效性。

讀核日記 《Linux核心完全注釋》

linux核心完全注釋 v1.9.5版說明 linux 核心 6.程序間通訊機制 linux 核心 4.記憶體管理 linux 核心 5.linux程序 linux 核心 3.軟體基礎 linux 核心 2.硬體基礎 linux 核心 1.前言 讀核日記 八 linux的記憶體管理機制 2 讀核日記...

Linux 0 11 核心筆記

1 任務0的堆疊問題 一直不明白schedule.c裡的task union的stack和user stack是什麼關係,head.s裡就設定了esp指向user stack,卻一直沒有用到task union,直到看到init task才明白,從進入保護模式到跳轉進使用者態都是用的user sta...

Linux0 11核心筆記( )

c語言 彙編知識 嵌入式彙編 x86處理器和程式設計的相關知識和 unix作業系統設計 linus在最初開發linux作業系統時參考了minix作業系統 作業系統 設計與實現 一種基於訊息傳遞在核心各模組之間進行通訊 資訊交換 重要的五個支柱 unix作業系統 分時作業系統 minix作業系統 gn...