Linux核心管理

2021-09-05 11:58:00 字數 2546 閱讀 3571

linux kernel 

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

核心組成部分:

kernel:核心核心,一般為bzimage,通常在/boot目錄下,名稱為vmlinuz

kernel object 核心物件,一般放置於/lib/modules/version-release/

[ ]:n

[m]:m

[*]:y

輔助檔案ramdisk

initrd

initramfs

執行中的核心 

uname -r 顯示version-releasae

-n顯示結點名稱

模組lsmod :顯示由核心已經裝載的核心模組

顯示的內容來自於:/proc/modules 檔案

modinfo命令

顯示模組的詳細描述資訊

modinfo [ -k kernel] [modulename|filename...]

-n  只顯示模組檔案路徑

-p  顯示模組引數

-a  author

-d  描述

-l  license

modprobe裝載或者解除安裝核心模組

-r ipv6 解除安裝ipv6

depmod

核心模組依賴關係及系統資訊對映檔案的生成工具

裝載或解除安裝核心模組

insmod  ..

rmmod ..

/proc目錄

核心把自己內部狀態資訊及統計資訊,以及可配置引數通過proc偽檔案系統加以輸出

引數唯讀:輸出資訊

可寫:(一般/proc/sys) 可接受使用者指定「新值」來實現對核心某功能或特性的配置

sysctl用於檢視或設定此目錄中的諸多引數

-w path.to.parameter=value

eg: # sysctl -w kernel.hostname=mail.meu.com

echo通過重定向的方式也可以修改大多數引數的值

echo "value" > /proc/sys/path/to/parameter

eg: echo "www.mdu.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

/sys目錄

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)獲取核心源**包

準備好開發環境

包組(centos6)

server platform development

development tools

目標主機硬體裝置相關資訊

cpu:    

cat /proc/cpuinfo 檢視核心cpu資訊

lscpu [-v]

x86info -a

pci裝置:

lscpi [-v]  [-vv]

lsusb

lsblk

了解全部硬體裝置資訊

hal-device

簡單依據模板檔案的製作過程

tar xf linux-3.10.67.tar.xz  -c /usr/src

cd /usr/src

in -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核心 程序管理

注 對linux系統來說,執行緒只是一種特殊的程序,linux不區分執行緒和程序 程序 處於執行期的程式 包含的資源 一 程序描述符及任務結構 程序存放在任務佇列 task list 的雙向迴圈鍊錶中 鍊錶中每一項型別均為task struct 程序描述符,也可表示為task t 該結構定義在inc...

Linux核心 程序管理

1 程序生命週期 某個程序通過系統呼叫fork,建立乙個用於執行程式的程序。生成此程序的程序稱為父程序,被生成的程序稱為子程序。子程序通過複製父程序的資料得以建立 父程序執行系統呼叫wait,等待子程序結束 子程序通過系統呼叫exec將程式讀取到記憶體並開始執行 當程式執行完畢後,子程序通過系統呼叫...

Linux核心模組管理

linux 核心模組管理 目錄 核心模組路徑 檢視已載入的核心 載入與解除安裝核心模組 修改核心引數 linux核心採用的是模組化技術,這樣的設計使得系統核心可以保持最小化,同時確保了核心的可擴充套件性與可維護性,模組化設計允許我們在需要時才將模組載入至核心,實現動態核心調整。本文重點關注方法與思路...