真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【linuxkernel】linux內(nèi)核裁剪隨想-創(chuàng)新互聯(lián)

為什么需要裁剪?

創(chuàng)新互聯(lián)長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為原陽(yáng)企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司原陽(yáng)網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

首先,裁剪并不一定是縮小內(nèi)核鏡像的大小,而是移植和適配。內(nèi)核支持的特性很多,站在項(xiàng)目的角度,不一定全部需要這些特性和功能。這時(shí)候就需要將不需要的特性和功能剔除,隨著這個(gè)過(guò)程的進(jìn)行,內(nèi)核的鏡像會(huì)逐漸縮小。

在實(shí)際裁剪過(guò)程中,可以按照如下思路進(jìn)行:

(1)第一步:使用make menuconfig編譯構(gòu)建出的linux圖形化配置界面配置參數(shù)。

(2)第二步:從源碼構(gòu)建目錄正向分析linux內(nèi)核行為。

(3)第三步:從輸出日志反推linux內(nèi)核行為。

整個(gè)流程如下圖所示:

對(duì)于第一步,是編譯構(gòu)建linux內(nèi)核的常規(guī)操作,首先會(huì)編譯構(gòu)建出圖形化的配置界面,如下圖所示:

這是內(nèi)核構(gòu)建系統(tǒng)的行為。我們需要根據(jù)項(xiàng)目和環(huán)境特征,逐項(xiàng)展開選擇對(duì)應(yīng)的配置項(xiàng),如果不清楚對(duì)應(yīng)選項(xiàng)的含義,可以按下鍵盤上的H鍵去閱讀使用幫助。當(dāng)配置完成或者想去驗(yàn)證配置項(xiàng)的選擇是否達(dá)到目標(biāo)需求,這時(shí)候選擇Save保存退出。

接下來(lái)就編譯構(gòu)建linux內(nèi)核源碼,進(jìn)而轉(zhuǎn)到裁剪的第二步。對(duì)于linux內(nèi)核源碼下的各個(gè)目錄中的文件,幾乎都是由Makefile文件管控,在編譯構(gòu)建過(guò)程中,如果對(duì)應(yīng)的配置選型打開,則會(huì)編譯對(duì)應(yīng)的文件。例如/drivers/usb目錄下的usb框架,其Makefile如下所示:


根據(jù)上圖所示可知,如果CONFIG_USB=y,那么則會(huì)編譯core/目錄下的內(nèi)容;反之則不會(huì),其他的編譯構(gòu)建也是一樣的。

總而言之,可以根據(jù)是否定義了對(duì)應(yīng)的配置選項(xiàng)(可在.config文件中查看)以及Makefile文件知道哪些模塊以及哪些模塊下的文件被編譯了。

注:.config文件是一個(gè)隱藏文件,需要配置宿主機(jī)上的系統(tǒng)顯示隱藏文件才能看見它。.config文件是用于構(gòu)建linux內(nèi)核鏡像的配置藍(lán)圖,在實(shí)際開發(fā)中,一定要備份它(因?yàn)樵趫?zhí)行清除命令,例如make distclean時(shí)會(huì)刪除原先的.config文件,讓內(nèi)核源碼樹回到原始的、未配置的狀態(tài)),如果在未備份.config文件的情況下就執(zhí)行了清除命令,花費(fèi)許多時(shí)間來(lái)完善的內(nèi)核配置一下就付諸東流,極其慘烈!

上述是一種方法來(lái)查看編譯構(gòu)建后哪些源碼文件會(huì)被編譯構(gòu)建進(jìn)內(nèi)核,還有一種最簡(jiǎn)單的方法:就是查看是否生成了對(duì)應(yīng)的xxx.o文件,例如在/init目錄下的main.c文件,如果被編譯構(gòu)建了,就一定會(huì)生成一個(gè)main.o文件:

好了,通過(guò)上述步驟,linux內(nèi)核鏡像就編譯完成了,這時(shí)候可以實(shí)際運(yùn)行l(wèi)inux內(nèi)核,并進(jìn)行相關(guān)的功能測(cè)試。在linux內(nèi)核啟動(dòng)過(guò)程中,會(huì)打印出很多日志信息,可以根據(jù)打印出的日志信息,確定哪些模塊功能是否真正的構(gòu)建進(jìn)內(nèi)核鏡像。例如:如果內(nèi)核的USB模塊被編譯構(gòu)建進(jìn)內(nèi)核,則在內(nèi)核啟動(dòng)過(guò)程中打開內(nèi)核的調(diào)試日志功能,則一定會(huì)打印出如下三條信息(不同linux版本可能信息不一樣):

[    0.475284] usbcore: registered new interface driver usbfs
[    0.475348] usbcore: registered new interface driver hub
[    0.475400] usbcore: registered new device driver usb

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


本文題目:【linuxkernel】linux內(nèi)核裁剪隨想-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/dcdccd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部