獲取核心原始碼:
www.kernel.org
核心原始碼樹:
編譯與安裝核心:
make xconfig/make gconfig
make
make modules_install
核心開發注意點:
不能訪問c庫,只能訪問核心標頭檔案定義的函式,比如沒有printf,可以使用printk,使用方法差不多少;
必須使用gnu c,static inline內聯函式、內聯彙編;
沒有使用者空間那樣的記憶體保護機制;
浮點數很難用,盡量別用;
只有乙個很小的定長棧,注意是定長的,通常是2頁,32位機,8kb,64位機,16kb;
由於核心支援非同步中斷、搶占和smp、因此必須時刻注意同步和併發,常用的辦法是自旋鎖和訊號量;
考慮可移植性。
Linux核心搶占 2
早期的linux核心是不可搶占的。它的排程方法是 乙個程序可以通過schedule 函式自願地啟動一次排程。非自願的強制性排程只能發生在每次從系統呼叫返回的前夕以及每次從中斷或異常處理返回到使用者空間的前夕。但是,如果在系統空間發生中斷或異常是不會引起排程的。這種方式使核心實現得以簡化。但常存在下面...
Linux核心編譯2
核心組成部分 核心 模組 編譯核心的步驟 1 配置核心選項 支援 更新 模式進行配置 a make config 基於命令列以遍歷的方式去配置核心中可配置的每個選項 b make menuconfig 基於curses的文字視窗介面 c make gconfig 基於gtk開發環境的視窗介面 d m...
linux核心研究筆記3(move to user
核心版本 linux 0.11 函式呼叫 main.c第137行 函式定義 system.h第1到14行 define move to user mode asm movl esp,eax n t pushl 0x17 n t pushl eax n t pushfl n t pushl 0x0f ...