linux内核文件存放在哪个目录中(linux内核 文件)
linux操作系統(tǒng)中,加載和刪除內(nèi)核模塊的命令是什么?
modprobe命令 Linux命令:modprobe 。 功能說明:自動(dòng)處理可載入模塊。 語 法:modprobe 。 補(bǔ)充說明:modprobe可載入指定的個(gè)別模塊,或是載入一組相依的模塊。modprobe會(huì)根據(jù)depmod所產(chǎn)生的相依關(guān)系,決定要載入哪些模塊。若在載入過程中發(fā)生錯(cuò)誤,在modprobe會(huì)卸載整組的模塊。 內(nèi)容
1、modprobe 命令是根據(jù)depmod -a的輸出/lib/modules/version/modules.dep來加載全部的所需要模塊。
2、刪除模塊的命令是:modprobe -r filename。
3、系統(tǒng)啟動(dòng)后,正常工作的模塊都在/proc/modules文件中列出。使用lsmod命令也可顯示相同內(nèi)容。
4、在內(nèi)核中有一個(gè)“Automatic kernel module loading"功能被編譯到了內(nèi)核中。當(dāng)用戶嘗試打開某類型的文件時(shí),內(nèi)核會(huì)根據(jù)需要嘗試加載相應(yīng)的模塊。/etc/modules.conf或 /etc/modprobe.conf文件是一個(gè)自動(dòng)處理內(nèi)核模塊的控制文件。 modprobe命令主要用于在Linux 2.6內(nèi)核中加載和刪除Linux內(nèi)核模塊。通過此命令用戶可以輕松地加載和刪除Linux內(nèi)核模塊,同時(shí)使用此命令加載Linux內(nèi)核模塊時(shí),Linux內(nèi)核會(huì)自動(dòng)解決內(nèi)核模塊之間的依賴關(guān)系,將相互依賴的模塊自動(dòng)加載,如下所示: 1) 加載RAID1陣列級(jí)別模塊: # modprobe raid1 2) 顯示已加載的RAID1陣列級(jí)別模塊: # lsmod |grep raid1 raid1 25153 0 3) 刪除RAID1陣列級(jí)別模塊: # modprobe -r raid1 4) 顯示RAID1陣列級(jí)別模塊: # lsmod |grep raid1 modprobe命令在加載模塊時(shí)會(huì)自動(dòng)解決依賴的模塊。當(dāng)加載的模塊需依賴另一個(gè)模塊時(shí),系統(tǒng)會(huì)自動(dòng)將此模塊加載。而當(dāng)用戶使用insmod命令加載模塊時(shí),則不會(huì)自動(dòng)解決相對(duì)應(yīng)的依賴模塊。 modprobe命令中的"-r"參數(shù)表示刪除指定模塊,"-c"參數(shù)表示顯示/etc/modprobe.conf配置文件的參數(shù),"-C"參數(shù)表示指定內(nèi)核配置文件,"-f"表示覆蓋,"-l"表示顯示模塊的絕對(duì)路徑。 # modprobe -l|grep raid /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko 以上命令表示顯示系統(tǒng)中所有的編譯模塊,并過濾包含有raid字符串的模塊。
linux中header是什么?
完全沒看懂樓主要什么。
Linux-headers 是 Linux 的開發(fā)頭文件,應(yīng)該位于 /usr/include/linux 里面。不過有的系統(tǒng)習(xí)慣放 /usr/src 里面一分(這種情況很少,因?yàn)檎?guī)的地方是 /lib/modules/<內(nèi)核版本>/ 的某個(gè)目錄,印象里是他的 build 里),因?yàn)橛械能浖ミ@里尋找當(dāng)前內(nèi)核的源代碼來調(diào)用當(dāng)前源代碼的 header 進(jìn)行編譯。
/usr/include 里面的 Linux 內(nèi)核頭文件,是專門編譯 libc 用的。不能保證內(nèi)核模塊的編譯要求。 真正的 Linux 不可能給這個(gè)名字。
/usr/src 里面習(xí)慣是放完整的 Linux 源代碼。但具體名字,要看系統(tǒng)的定義了,有的叫 linux-sources、kernel-source 什么的。有的可能是改進(jìn)版的名字。
LINUX怎么修改內(nèi)核文件?
我理解的修改順序如下
1,下載內(nèi)核源碼
2,修改源碼文件
3,重新編譯源碼生成新的內(nèi)核
如何查看linux內(nèi)核源代碼?
一般在Linux系統(tǒng)中的/usr/src/linux*.*.*(*.*.*代表的是內(nèi)核版本,如2.4.23)目錄下就是內(nèi)核源代碼(如果沒有類似目錄,是因?yàn)檫€沒安裝內(nèi)核代碼)。另外還可從互連網(wǎng)上免費(fèi)下載。注意,不要總到http://www.kernel.org/去下載,最好使用它的鏡像站點(diǎn)下載。請(qǐng)?jiān)趆ttp://www.kernel.org/mirrors/里找一個(gè)合適的下載點(diǎn),再到pub/linux/kernel/v2.6/目錄下去下載2.4.23內(nèi)核。
代碼目錄結(jié)構(gòu)
在閱讀源碼之前,還應(yīng)知道Linux內(nèi)核源碼的整體分布情況?,F(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和網(wǎng)絡(luò)等組成。Linux內(nèi)核源碼的各個(gè)目錄大致與此相對(duì)應(yīng),其組成如下(假設(shè)相對(duì)于Linux-2.4.23目錄):
1.arch目錄包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu),例如i386就是Intel CPU及與之相兼容體系結(jié)構(gòu)的子目錄。PC機(jī)一般都基于此目錄。
2.include目錄包括編譯核心所需要的大部分頭文件,例如與平臺(tái)無關(guān)的頭文件在include/linux子目錄下。
3.init目錄包含核心的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼),有main.c和Version.c兩個(gè)文件。這是研究核心如何工作的好起點(diǎn)。
4.mm目錄包含了所有的內(nèi)存管理代碼。與具體硬件體系結(jié)構(gòu)相關(guān)的內(nèi)存管理代碼位于arch/*/mm目錄下。
5.drivers目錄中是系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。它又進(jìn)一步劃分成幾類設(shè)備驅(qū)動(dòng),每一種有對(duì)應(yīng)的子目錄,如聲卡的驅(qū)動(dòng)對(duì)應(yīng)于drivers/sound。
6.ipc目錄包含了核心進(jìn)程間的通信代碼。
7.modules目錄存放了已建好的、可動(dòng)態(tài)加載的模塊。
8.fs目錄存放Linux支持的文件系統(tǒng)代碼。不同的文件系統(tǒng)有不同的子目錄對(duì)應(yīng),如ext3文件系統(tǒng)對(duì)應(yīng)的就是ext3子目錄。
Kernel內(nèi)核管理的核心代碼放在這里。同時(shí)與處理器結(jié)構(gòu)相關(guān)代碼都放在arch/*/kernel目錄下。
9.net目錄里是核心的網(wǎng)絡(luò)部分代碼,其每個(gè)子目錄對(duì)應(yīng)于網(wǎng)絡(luò)的一個(gè)方面。
10.lib目錄包含了核心的庫代碼,不過與處理器結(jié)構(gòu)相關(guān)的庫代碼被放在arch/*/lib/目錄下。
11.scripts目錄包含用于配置核心的腳本文件。
12.documentation目錄下是一些文檔,是對(duì)每個(gè)目錄作用的具體說明。
一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件。這兩個(gè)文件都是編譯時(shí)使用的輔助文件。仔細(xì)閱讀這兩個(gè)文件對(duì)弄清各個(gè)文件之間的聯(lián)系和依托關(guān)系很有幫助。另外有的目錄下還有Readme文件,它是對(duì)該目錄下文件的一些說明,同樣有利于對(duì)內(nèi)核源碼的理解。
在閱讀方法或順序上,有縱向與橫向之分。所謂縱向就是順著程序的執(zhí)行順序逐步進(jìn)行;所謂橫向,就是按模塊進(jìn)行。它們經(jīng)常結(jié)合在一起進(jìn)行。對(duì)于Linux啟動(dòng)的代碼可順著Linux的啟動(dòng)順序一步步來閱讀;對(duì)于像內(nèi)存管理部分,可以單獨(dú)拿出來進(jìn)行閱讀分析。實(shí)際上這是一個(gè)反復(fù)的過程,不可能讀一遍就理解。
總結(jié)
以上是生活随笔為你收集整理的linux内核文件存放在哪个目录中(linux内核 文件)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java FutureTask示例程序
- 下一篇: ddos攻击价格(抗ddos产品硬件咨询