單核心體系設計、但充分借鑑了微核心設計體系的優點,為核心引入模組化機制。
核心組成部分:
kernel: 核心核心,一般為bzimage,通常在/boot目錄下,名稱為vmlinuz-version-release;
kernel object: 核心物件,一般放置於/lib/modules/version-release/
[ ]: n
[m]: m
[*]: y
輔助檔案:ramdisk
initrd
initramfs
執行中的核心:
uname命令:
uname - print system information
uname [option]...
-n: 顯示節點名稱;
-r: 顯示version-release;
模組:lsmod命令:
顯示由核心已經裝載的核心模組
顯示的內容來自於: /proc/modules檔案
modinfo命令:
顯示模組的詳細描述資訊
modinfo [ -k kernel ] [ modulename|filename... ]
-n: 只顯示模組檔案路徑
-p: 顯示模組引數
-a: author
-d: description
-l: license
modprobe命令:
裝載或解除安裝核心模組
modprobe [ -c config-file ] [ modulename ] [ module parame-ters... ]
配置檔案:/etc/modprobe.conf, /etc/modprobe.d/*.conf
modprobe [ -r ] modulename...
depmod命令:
核心模組依賴關係檔案及系統資訊對映檔案的生成工具;
裝載或解除安裝核心模組:
insmod命令:
insmod [ filename ] [ module options... ]
rmmod
rmmod [ modulename ]
核心把自己內部狀態資訊及統計資訊,以及可配置引數通過proc偽檔案系統加以輸出;
引數:唯讀:輸出資訊
可寫:可接受使用者指定「新值」來實現對核心某功能或特性的配置
/proc/sys
(1) sysctl命令用於檢視或設定此目錄中諸多引數;
sysctl -w path.to.parameter=value
~]# sysctl -w kernel.hostname=mail.magedu.com
(2) echo命令通過重定向的方式也可以修改大多數引數的值;
echo "value" > /proc/sys/path/to/parameter
~]# echo "www.magedu.com" > /proc/sys/kernel/hostname
sysctl命令:
預設配置檔案:/etc/sysctl.conf
(1) 設定某引數
sysctl -w parameter=value
(2) 通過讀取配置檔案設定引數
sysctl -p [/path/to/conf_file]
核心中的路由**:
/proc/sys/net/ipv4/ip_forward
常用的幾個引數:
net.ipv4.ip_forward
vm.drop_caches
kernel.hostname
udev通過此路徑下輸出的資訊動態為各裝置建立所需要裝置檔案;udev是執行使用者空間程式;專用工具:udevadmin, hotplug;
udev為裝置建立裝置檔案時,會讀取其事先定義好的規則檔案,一般在/etc/udev/rules.d及/usr/lib/udev/rules.d目錄下;
ramdisk檔案的製作:
(1) mkinitrd命令
為當前正在使用的核心重新製作ramdisk檔案
~] # mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)
(2) dracut命令
為當前正在使用的核心重新製作ramdisk檔案
~] # dracut /boot/initramfs-$(uname -r).img $(uname -r)
前提:(1) 準備好開發環境;
(2) 獲取目標主機上硬體裝置的相關資訊;
(3) 獲取到目標主機系統功能的相關資訊,例如要啟用的檔案系統;
(4) 獲取核心源**包;
www.kernel.org
準備好開發環境:
包組(centos 6):
server platform development
development tools
pci裝置:
~]# lspci
-v-vv
~]# lsusb
-v-vv
~]# lsblk
了解全部硬體裝置資訊
~]# hal-device
簡單依據模板檔案的製作過程:
~]# tar xf linux-3.10.67.tar.xz -c /usr/src
~]# cd /usr/src
~]# ln -sv linux-3.10.67 linux
~]# cd linux
~]# cp /boot/config-$(uname -r) ./.config
~]# make menuconfig
~]# screen
~]# make -j #
~]# make modules_install
~]# make install
重啟系統,並測試使用新核心;
練習:編譯好,並啟用之;
Linux核心操作 核心編譯
本文基於ubuntu14.04系統進行操作的。本文會後續更新,這裡給出乙個簡單的流程。本人屬於初學者,等進一步深入的時候會進行細節描寫。方法一 sudo apt get install linux source使用該辦法可以一鍵獲取核心。在我的系統環境下,獲取的是 linux source 3.13...
編譯核心並替換核心
以5.3.8 最新 linux 核心為例 wget安裝核心編譯所需的環境 sudo apt get install git fakeroot build essential ncurses dev xz utils libssl dev bc flex libelf dev bison解壓核心原始碼...
suse 核心編譯安裝 Linux核心編譯與安裝
操作環境 rhel 5.1 一 準備工作 2 解壓縮核心檔案,進入解壓後核心源 目錄,切換至root使用者 tar xzvf linux 2.6.39.4.tar.bz2 cd mnt hgfs linux 2.6.39.4 su root 二 核心編譯 make distclean 4 核心配置 ...