linux核心採用的是模組化技術,這樣保證了核心的可維護性和可擴充套件性。模組化設計允許我們在需要時才將某個模組載入到核心,實現動態核心的調整。
linux核心模組的命名方式通常為「模組名稱.ko」,在centos 7中核心模組被集中儲存在/lib/modules目錄下。
對核心模組的基本操作:
1 檢視核心模組:
[root@test modules]# lsmod | head
module size used by
tcp_diag 693 0
inet_diag 7882 1 tcp_diag
ip_vs_wrr 1639 0
ip_vs 103551 2 ip_vs_wrr
libcrc32c 841 1 ip_vs
ip6t_reject 3731 2
nf_conntrack_ipv6 6588 3
nf_defrag_ipv6 16175 1 nf_conntrack_ipv6
xt_state 1064 3
輸出的三列資訊,分別是核心模組的名稱、占用記憶體大小、是否被使用,如果第三列為0,則該模組可以隨時解除安裝,否則無法被解除安裝。
2 動態載入和解除安裝核心模組;
[root@test modules]# modprobe ip_vs
[root@test modules]# lsmod | grep ip_vs #檢視模組是否載入成功
ip_vs_wrr 1639 0
ip_vs 103551 2 ip_vs_wrr
3 動態解除安裝模組:
[root@test modules]# modprobe -r ip_vs
4 檢視核心模組資訊:、
[root@test modules]# modinfo ip_vs
filename: /lib/modules/2.6.32-696.el6.i686/kernel/net/netfilter/ipvs/ip_vs.ko
license: gpl
srcversion: 0fb85919d62c4255e412e5c
5 如果要永久性載入模組,可以這樣做:
[root@test modules]# echo "modinfo ip_vs" >> /etc/rc.d/rc.local
Linux 核心模組之hello world
linux系統核心執行於乙個單獨的保護區中,但是執行核心在執行時動態的新增或者刪除 這些 包括了相關的資料 函式入口 出口並被組合在乙個單一的二進位制映象中,即可裝載核心模組,簡稱為模組。乙個最簡單的模組組建過程如下 hello world 模組原始碼 include include include...
Linux核心模組
核心模組 在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的 modules模組化 所謂模組化。核心與核心模組放在 核心 bo...
Linux核心模組
1 核心模組註冊登出 塊載入函式有返回值,模組解除安裝函式無返回值。兩者都是無參函式,載入函式用 init修飾,解除安裝函式用 exit修飾。define init attribute section init.text define exit atrribute section exit,text...