Linux系統啟動流程及內核編譯(2)1.內核設計:有單內核和微內核之分 linux屬於單內核的模塊化設計 系統內核核心路徑:/boot/vmlinuz-版本號
內核模塊路徑: /lib/modules/版本號/
linux分為內核空間和用戶空間
而用戶空間通過訪問和監控內核:路徑在/proc/和/sys/兩個偽文件系統
2.偽文件系統/proc/sys和/sys/有些目錄中文件是可讀或可寫的
設定內核參數值的方法:
2.1.能立即生效,但重啟系統設定無效
2.1.1.echo 值 > /proc/sys/TO/SOMEFILE
2.1.2.sysctl -w kernel.hostname=willow.com.tw
3.通過修改/etc/sysctl.conf配置文件可永久有效
但執行如下命令可立即生效:
sysctl -p 讓內核重新加載/etc/sysctl.conf配置文件
sysctl -a: 顯示所有內核參數及其值
4.內核模塊管理:
lsmod: 查看
modprobe 模塊名稱:裝載某模塊
modprobe -r 模塊名稱: 卸載某模塊
modinfo 模塊名稱: 查看模塊的具體信息
insmod 模塊路徑名稱.ko: 裝載模塊
rmmod 模塊名稱:卸載某模塊
depmod 模塊目錄:分析可載入模塊的相依性
5.手動編譯內核:
提前安裝"Development Tools"和"Development Libraries"和"Server Platform Development"
5.1:選擇或取消指定的模塊
make gconfig: Gnome桌面環境使用,需要安裝圖形開發庫組:GNOME Software Development
主要包確認安裝:gtk+ gtk-devel libglade2-devel
make kconfig: KDE桌面環境使用, 需要安裝圖形開發庫組; KDE Software Development
make xconfig:Gnome桌面環境使用
主要包確認安裝:qt qt-devel
make menuconfig:文本環境下使用
主要包確認安裝:ncusres ncurse-devel
5.2:編譯
make
make modules(可選)
5.3:將編譯的模塊復制到指定的目錄和文件中或修改文件
make modules_install 復制模塊至/lib/modules/目錄下
make install 復制啟動系統內核和鏡像文件等(含編輯grub.conf 文件)
5.4.如果編譯出現報錯或想二次編譯
需清理時但清理前,如有需要,請備份配置文件.config:
make clean 刪除大多數編譯的文件,但不刪除.config文件
make mrproper 刪除所有編譯的文件,包括.config文件
5.5:制作initrd-XXX-XXX.img系統鏡像文件
5.5.1.mkinitrd initrd文件路徑 內核版本號
mkinitrd /boot/initrd-`uname -r`.img `uname -r`
dracut /boot/initrd-`uname -r`.img `uname -r` (redhat6新工具)
5.5.2.在現有系統中解壓initrd文件,小部分修改成自己的initrd文件
mkdir initrd
cd initrd
zcat /boot/initrd-XXX-XXX.img | cpio -id 解壓歸檔
vim init
mkrootdev -t ext3 -o defaults,ro /dev/sda2 指向自己的訂制硬盤
find . | cpio -H newc --quiet -o | gzip > /sysboot/initrd.gz 重新歸檔
6.screen命令:
screen: 直接打開一個新的屏幕 Ctrl+a, d: 拆除屏幕 screen -ls: 顯示已經建立的屏幕及ID號 screen -r ID號: 還原指定的屏幕 exit: 退出本文出自 “夏維柳” 博客,請務必保留此出處http://willow.blog.51cto.com/6574604/1768872