核心 核心編譯 proc sys

2021-08-21 22:23:49 字數 2978 閱讀 6443

單核心體系設計、但充分借鑑了微核心設計體系的優點,為核心引入模組化機制。

核心組成部分:

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 核心配置 ...