一、insmod 和 modprobe的區(qū)別
insmod和modprobe都是在Linux系統(tǒng)中加載內(nèi)核模塊的命令,它們之間的區(qū)別如下:
1、命令格式不同
insmod命令的語法格式為:insmod [模塊文件名]
modprobe命令的語法格式為:modprobe [選項(xiàng)] [模塊名]
2、加載方式不同
insmod命令是通過直接向內(nèi)核插入模塊的方式來加載模塊,需要手動(dòng)指定模塊文件的路徑和名稱,可以在系統(tǒng)啟動(dòng)時(shí)通過init腳本自動(dòng)加載。
modprobe命令則是通過依賴關(guān)系自動(dòng)加載模塊。當(dāng)要加載一個(gè)模塊時(shí),modprobe會(huì)自動(dòng)查找這個(gè)模塊所依賴的其他模塊,并按照依賴關(guān)系依次加載。這樣可以保證依賴的模塊先于被依賴的模塊加載。
3、參數(shù)支持不同
insmod命令只能加載指定的模塊,不支持參數(shù)傳遞。
modprobe命令支持在加載模塊時(shí)傳遞參數(shù),并且支持自動(dòng)加載所需的其他模塊。modprobe會(huì)自動(dòng)加載與所需模塊相關(guān)的其他模塊,并自動(dòng)傳遞參數(shù)。
4、錯(cuò)誤處理不同
insmod命令在加載模塊時(shí),如果出現(xiàn)錯(cuò)誤,則會(huì)直接報(bào)錯(cuò)退出。
modprobe命令則會(huì)根據(jù)模塊之間的依賴關(guān)系自動(dòng)進(jìn)行錯(cuò)誤處理,如果加載某個(gè)模塊時(shí)出現(xiàn)錯(cuò)誤,modprobe會(huì)嘗試卸載該模塊,并卸載依賴于該模塊的其他模塊,從而保證系統(tǒng)的穩(wěn)定性。
5、安全性不同
由于insmod命令是直接向內(nèi)核插入模塊,所以如果加載了惡意模塊,可能會(huì)導(dǎo)致系統(tǒng)崩潰或安全漏洞。而modprobe命令可以通過內(nèi)核模塊簽名機(jī)制和黑白名單機(jī)制來確保加載的模塊的安全性。