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