核心編譯與管理學習筆記

2021-09-21 09:53:46 字數 1955 閱讀 5300

讀入bios

讀取mbr中的引導程式(lilo或者grub)

讀取核心進主存,核心解壓,試圖驅動所有硬體

啟動init程式,啟動級別

讀取login或者xwindow等使用者登入

核心模組放置在/lib/modules/`uname -r`/中

編譯核心是為了使得系統更穩定,對對優化提公升整體效能而言影響很小

cd /usr/src

tar zxvf linux-2.6.34.1.tar.bz2

cd linux-2.6.34.1

make mrproper 刪除一些以前留下來的.o檔案

make menuconfig 使用類似選單方式來選擇核心引數,純文字模式,不需要x window支援。

<*>表示編譯進核心 表示編譯成模組,不知道該專案是什麼且有模組可選時,就可以直接選擇為模組

make clean 將以前曾經生成的*.o檔案,這樣就不會產生新舊版本的誤差

make bzimage:製作出核心檔案,這個過程很長。

編譯好的核心放在:/usr/src/linux-2.6.34/arch/i386/boot/bzimage裡面

make modules:製作出模組相關的檔案

我們在重新編譯模組之前,我們應該對前一次的編譯的模組進行備份。

cd /lib/modules

mv 2.6.34 2.6.34.old

模組安裝:

make modules_install

1.移動新核心到/boot中

cp /usr/src/linux-2.6.34/arch/i386/boot/bzimage /boot/vmlinuz-2.6.34

cp /usr/src/linux-2.6.34/system.map /boot/system.map-2.6.34

修改grub設定檔案

[root@www ~]# vim /boot/grub/menu.lst

default=0

timeout=10

splashimage=(hd0,0)/boot/grub/splash.xpm.gz

#hiddenmenu

title centos (2.6.18-128.2.1.el5xen)

root (hd0,0)

kernel /boot/xen.gz-2.6.18-128.2.1.el5

module /boot/vmlinuz-2.6.18-128.2.1.el5xen ro root=label=/ rhgb quiet

module /boot/initrd-2.6.18-128.2.1.el5xen.img

title centos testing kernel from vbird

root (hd0,0)

kernel /boot/vmlinuz-2.6.30.3vbird ro root=label=/ rhgb

initrd /boot/initrd-2.6.30.3vbird.img

額外(單一)模組編譯

這些核心模組根據不同的版本,分別放到/lib/modules/`uname -r`中,各個硬體的驅動程式則放到/lib/modules/`uname -r`/kernel/drivers中,這些模組與裝置代號的對應,就必須寫入/etc/modprobe.conf中,一般linux核心會自動載入,也可以用modprobe或者insmod命令去載入

在kernel2.6版的核心中,所有的核心模組都改名為*.ko了。

2.讀他裡面的readme或者install,並依次執行

3.把生成的核心模組拷貝到相應位置

4.更新模組依賴屬性:在/lib/modules/`uname -r` (這裡是你槓編譯完的核心目錄)depmod -a

自行編譯的模組,在核心更新之後,需要重新編譯針對新核心的模組

核心模組管理:lsmod modinfo modprobe insmod rmmod......

Linux核心之程序管理(學習筆記)

1 支援執行緒的計算機系統裡面,程序作為資源分配的基本單位而存在,執行緒作為排程的基本單位而存在。執行緒僅擁有必不可少的一些資源,如 一組暫存器 堆疊資訊等等和其他執行緒共享同乙個程序的所有資源。所以,在同乙個程序的執行緒切換時不需要大量的儲存和恢復工作,同時由於共享同乙個儲存空間,不需要更新快表t...

linux核心記憶體管理學習筆記

記憶體管理 實體地址出現在cpu外部位址匯流排上的定址物理記憶體的位址訊號 執行緒位址虛擬位址在32位cpu架構下4g位址空間中的位址 邏輯位址彙編中使用的位址 20位的虛擬位址如何存入16位的暫存器中呢 分段方式來實現 邏輯段的起始位址段位址必須是16的倍數,邏輯段的最大容量是64k 實體地址 段...

記憶體管理學習筆記

1.棧 堆和靜態區 靜態區 儲存自動全域性變數和static變數 包括全域性靜態變數和區域性靜態變數 靜態區的內容在整個程式的生命週期內都存在。棧 儲存區域性變數。棧上的內容只在函式的範圍內存在,當函式執行結束,這些內容也會自動被銷毀。其特點是效率高,但是空間大小有限。堆 由malloc系列函式或n...