linux體系結構及編譯核心

2021-06-12 01:39:49 字數 2357 閱讀 1975

一、核心空間與使用者空間

核心空間與使用者空間是程式執行的兩種不同狀態,通過

系統呼叫和硬體

中斷能夠完成從使用者空間到核心空間的轉移。

二、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 然後系統根據引數值呼叫特定的系統呼叫服務程式,而這些服務程式則...