Linux核心模組

2021-09-07 06:30:32 字數 2221 閱讀 3924

linux核心採用的是模組化技術,這樣的設計可以使得系統核心保持最小化,同時確保了核心的可擴充套件性和可維護性,模組化設計允許我們在需要時才將模組載入至核心,實現動態核心的調整。下面我給大家介紹一下有關核心的操作方法。

核心模組存放位置

linux核心模組檔案的命名方式通常為《模組名稱.ko>,centos 6.3 系統的核心模組被集中存放在/lib/modules/`uname -r`/目錄下。

檢視已載入系統模組

lsmod命令用來顯示當前linux核心模組狀態,不使用任何引數會顯示當前已經載入的所有核心模組。輸出的三列資訊分別為模組名稱、占用記憶體大小、是否在被使用,如果第三列為0,則該模組可以隨時解除安裝,非0則無法執行modprobe刪除模組。

[root@centos6 ~]# lsmod

module size used by

bridge 79950 0

stp 2173 1 bridge

llc 5642 2 bridge,stp

fuse 66891 2

autofs4 27212 3

sunrpc 263516 1

ipt_reject 2351 2

nf_conntrack_ipv4 9606 1

nf_defrag_ipv4 1483 1 nf_conntrack_ipv4

iptable_filter 2793 1

ip_tables 17831 1 iptable_filter

載入和解除安裝系統核心modprobe命令可以動態載入和解除安裝核心模組,具體命令如下:

[root@centos6 ~]# modprobe ip_vs           #動態載入ip_vs模組

[root@centos6 ~]# lsmod | grep ip_vs #檢視模組是否載入成功

[root@centos6 ~]# modprobe -r ip_vs #動態解除安裝ip_vs模組

modinfo命令也可以檢視核心模組資訊:

[root@centos6 ~]# modinfo ip_vs
修改核心引數臨時調整核心引數linux系統引數隨著系統的啟動會被寫入系統記憶體中,我們可以直接修改/proc目錄下的大量檔案來調整核心引數,並且這種調整是立即生效的,下面舉幾個例子: 開啟核心路由**功能(通過0或1設定開關):

[root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
開啟禁止其它主機ping本機功能:

[root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
調整所有的程序可以開啟的檔案總數量:

[root@centos6 ~]# echo "108248" >/proc/sys/fs/file-max
永久調整核心引數

[root@centos6 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv4.icmp_echo_ignore_all = 1

fs.file-max = 108248

注意:通過sysctl.conf檔案修改的引數不會立即生效,需要使用sysctl -p 命令設定立即生效。

Linux核心模組

核心模組 在整個啟動的過程中,是否能成功的驅動我們主句的硬體裝置,是核心完成的工作,而核心一般都是壓縮文件,在使用之前核心之前必須要將核心減壓到的記憶體中。為了應對日新月異的硬體,目前核心都具有可讀取模組化驅動程式的功能,也就是所謂的 modules模組化 所謂模組化。核心與核心模組放在 核心 bo...

Linux核心模組

1 核心模組註冊登出 塊載入函式有返回值,模組解除安裝函式無返回值。兩者都是無參函式,載入函式用 init修飾,解除安裝函式用 exit修飾。define init attribute section init.text define exit atrribute section exit,text...

Linux 核心模組

linux 核心模組程式結構 1 模組載入函式 2 模組解除安裝函式 3 模組許可證宣告 4 模組引數 5 模組匯出符號 6 模組作者等資訊宣告 模組載入函式 一般以 init 標識 在 linux 中,所有標識為 init 的函式如果直接編譯進核心,成為核心映象的一部分,在連線的時候都會放在 in...