一、核心空間與使用者空間
核心空間與使用者空間是程式執行的兩種不同狀態,通過
系統呼叫和硬體
中斷能夠完成從使用者空間到核心空間的轉移。
二、linux核心架構
三、目錄結構
/
arch 架構相關的目錄
block 部分塊裝置驅動程式
crypto 加密、壓縮、crc校驗演算法
documentation 核心文件
driver 裝置驅動程式
fs 檔案系統實現**,每個子目錄對應一種檔案系統的實現,公用的源程式用
於實現虛擬檔案系統vfs
include 核心所需的標頭檔案,與平台無關的標頭檔案在include/linux 子目錄下,與平台相
關的標頭檔案則放在相應的子目錄中
init 核心初始化**
ipc 程序間通訊的實現**
kernel linux大多數關鍵的核心功能在此目錄中實現的(排程程式、程序控制、模組 化)
lib 庫檔案**
mm 用於實現核心管理中與體系結構無關的部分
net 網路協議棧的實現**
samples 一些核心程式設計的範例
scripts 配置核心的指令碼
security selinux的模組
sound 音訊裝置的驅動程式
usr cpio 命令的實現
virt 核心虛擬機器
四、核心的配置與編譯
1. 清除臨時檔案、中間檔案和配置檔案.
• make clean
remove most generated files but keep the config
• make mrproper
remove all generated files + config files
• make distclean
mrproper + remove editor backup and patch files
2、確定目標系統的軟硬體配置情況,比如cpu的型別、網絡卡的型號,所需支援的網路協議等。
3、使用如下命令之一配置核心:
make config:基於文字模式的互動式配置。
make menuconfig:基於文字模式的選單型配置。(推薦使用)
make oldconfig:使用已有的配置檔案(.config),但是會詢問新增的配置選項。
make xconfig:圖形化的配置(需安裝圖形化系統)。
核心配置通常在乙個已有的配置檔案基礎上,通過修改得到新的配置檔案,linux核心提
供了一系列可供參考的核心配置檔案,位於arch/$cpu/configs
4、編譯核心(編譯選為『*』的選項):
make zimage (arch=arm)
make bzimage (arch=arm)
區別:在x86平台,zimage只能用於小於512k的核心
如需獲取詳細編譯資訊,可使用:
make zimage v=1
make bzimage v=1
** 編譯好的核心位於arch//boot/目錄下**
5、編譯核心模組(編譯選為『m』的選項):
make modules (arch=arm)
6、安裝核心模組
make modules_install:將編譯好的核心模組從核心源**目錄copy至/lib/modules下
7、製作init ramdisk
mkinitrd initrd-$version $version
例:mkinitrd initrd-2.6.29 2.6.29
$version 可以通過查詢/lib/modules下的目錄得到
核心安裝(x86平台)
1、cp arch/x86/boot/bzimage /boot/vmlinuz-$version
2、cp $initrd /boot/
3、修改/etc/grub.conf 或者/etc/lilo.conf
linux核心體系結構
linux核心第一記 1.linux體系結構 從上圖可知,linux分為 使用者空間和核心空間。核心空間和使用者空間是程式執行的兩種不同的狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。www.2cto.com 2.linux核心架構 2.1系統呼叫介面 sci sci層為使用者空...
Linux核心體系結構 一
linux核心的體系結構主要分為5個模組 程序排程模組,記憶體管理模組,檔案系統模組,程序間通訊模組和網路介面模組。程序排程模組主要負責控制程序對cpu資源的使用,策略是各程序能夠公平合理訪問cpu,同時保證核心能夠及時執行硬體操作。記憶體管理模組主要確保程序能夠安全共享機器記憶體區,並且支援虛擬檔...
(一)Linux核心體系結構
作業系統核心程式,他主要用於對硬體資源的抽象和訪問排程。在單核心模式系統中,作業系統提供服務的流程為 應用主程式使用指定的引數執行系統呼叫指令 int x80 使cpu從使用者態 user mode 切換到和心態 kernel mode 然後系統根據引數值呼叫特定的系統呼叫服務程式,而這些服務程式則...