Linux源码手机,Linux操作系统源代码详细分析
對(duì)于內(nèi)核的進(jìn)一步討論將超出本章的既定范圍,因此在這個(gè)問題上我們到此為止。然而本書中也包括了其他必需的內(nèi)核代碼。在讀完第4章和第5章之后,也許你會(huì)希望再次仔細(xì)研讀一下這部分內(nèi)容。有關(guān)這個(gè)問題的兩個(gè)文件是include/linux/module.h(從15529行開始)和/kernel/module.c(從24476行開始)。和sys_create_module(24586行)、sys_init_module(24637行)、sys_delete_module(24860行)和sys_query_module(25148行)四個(gè)函數(shù)需要特別注意一樣,struct module(15581行)也要特別引起注意。這些函數(shù)實(shí)現(xiàn)了modprobe及insmod、lsmod和rmmod所使用的系統(tǒng)調(diào)用,以完成模塊的裝載、定位和卸載。
內(nèi)核觸發(fā)直接回調(diào)內(nèi)核程序的現(xiàn)象看起來很令人奇怪。但是,實(shí)際上進(jìn)行的工作不止于此。例如,modprobe必須實(shí)際訪問磁盤以搜尋要裝載的模塊。而且更為重要的一點(diǎn)是,這種方法賦予root對(duì)內(nèi)核模塊系統(tǒng)更多的控制能力。這主要是因?yàn)閞oot也可以運(yùn)行modprobe及相關(guān)程序。因此,root既可以手工裝載、查詢、卸載模塊,也可以由內(nèi)核自動(dòng)完成。
2.3 配置與編譯內(nèi)核
你可能僅僅研讀、欣賞而并不修改Linux內(nèi)核源代碼。但是,更普遍的情況是,用戶有強(qiáng)烈的愿望去改進(jìn)內(nèi)核代碼并完成相應(yīng)的測(cè)試,這樣我們就需要知道如何重建內(nèi)核。本節(jié)就是要告訴你如何實(shí)現(xiàn)這一點(diǎn),而最終則歸結(jié)于如何把你所做的修改發(fā)行給別人,以使得每個(gè)人都能從你的工作中受益。
2.3.1 配置內(nèi)核
編譯內(nèi)核的第一步就是配置內(nèi)核,這是增加或者減少對(duì)內(nèi)核特性的支持及修改內(nèi)核的一些特性的必要步驟。例如,你可以要求內(nèi)核為自己的聲卡指定一個(gè)不同的DMA通道。如果內(nèi)核配置和你的需要相同,那么你可以直接跳過本節(jié),否則請(qǐng)繼續(xù)閱讀以下內(nèi)容。
為了完成內(nèi)核的配置,請(qǐng)先切換到root用戶,然后轉(zhuǎn)入如下內(nèi)核源程序目錄:
cd /usr/src/linux
接著敲入如下命令組:
make config
make menuconfig
make xconfig
這三條命令都可以用來配置內(nèi)核,但它們發(fā)揮作用的方式各不相同:
* make config—三種方法中最簡(jiǎn)單也是最枯燥的一種。但是最基本的一點(diǎn)是,它可以適應(yīng)任何情況。通過為每一個(gè)內(nèi)核支持的特性向用戶提問的方式來決定在內(nèi)核中需要包含哪些特性。對(duì)于大多數(shù)問題,你只要回答y(yes,把該特性編譯進(jìn)內(nèi)核中)、m(作為模塊編譯)或者n(no,根本不對(duì)該特性提供支持)。在決定之前用戶應(yīng)該考慮清楚,因?yàn)檫@個(gè)過程是不可逆的。如果你在該過程中犯了錯(cuò)誤,就只能按Ctrl+C退出。你也可以敲入?以獲取幫助。圖2-1顯示了這種方法在X終端上運(yùn)行的情況。
總結(jié)
以上是生活随笔為你收集整理的Linux源码手机,Linux操作系统源代码详细分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微粒贷欠款5万多 无力偿还怎么解决
- 下一篇: 美团月付怎么开通 不喜欢也可以选关闭