亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1479 | 回復(fù): 0
打印 上一主題 下一主題

linux內(nèi)核配置系統(tǒng)分析 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-02-24 19:07 |只看該作者 |倒序?yàn)g覽

隨著 Linux 操作系統(tǒng)的廣泛應(yīng)用,特別是 Linux 在嵌入式領(lǐng)域的發(fā)展,越來越多的人開始投身到 Linux 內(nèi)核級的開發(fā)中。面對日益龐大的 Linux 內(nèi)核源代碼,開發(fā)者在完成自己的內(nèi)核代碼后,都將面臨著同樣的問題,即如何將源代碼融入到 Linux 內(nèi)核中,增加相應(yīng)的 Linux 配置選項(xiàng),并最終被編譯進(jìn) Linux 內(nèi)核。這就需要了解 Linux 的內(nèi)核配置系統(tǒng)。
  
  眾所周知,Linux 內(nèi)核是由分布在全球的 Linux 愛好者共同開發(fā)的,Linux 內(nèi)核每天都面臨著許多新的變化。但是,Linux 內(nèi)核的組織并沒有出現(xiàn)混亂的現(xiàn)象,反而顯得非常的簡潔,而且具有很好的擴(kuò)展性,開發(fā)人員可以很方便的向 Linux 內(nèi)核中增加新的內(nèi)容。原因之一就是 Linux 采用了模塊化的內(nèi)核配置系統(tǒng),從而保證了內(nèi)核的擴(kuò)展性。
  
  本文首先分析了 Linux 內(nèi)核中的配置系統(tǒng)結(jié)構(gòu),然后,解釋了 Makefile 和配置文件的格式以及配置語句的含義,最后,通過一個(gè)簡單的例子--TEST Driver,具體說明如何將自行開發(fā)的代碼加入到 Linux 內(nèi)核中。在下面的文章中,不可能解釋所有的功能和命令,只對那些常用的進(jìn)行解釋,至于那些沒有討論到的,請讀者參考后面的參考文獻(xiàn)。
  
  1. 配置系統(tǒng)的基本結(jié)構(gòu)
  Linux內(nèi)核的配置系統(tǒng)由三個(gè)部分組成,分別是:
  
  Makefile:分布在 Linux 內(nèi)核源代碼中的 Makefile,定義 Linux 內(nèi)核的編譯規(guī)則;
  配置文件(config.in):給用戶提供配置選擇的功能;
  配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進(jìn)行解釋)和配置用戶界面(提供基于字符界面、基于 Ncurses 圖形界面以及基于 Xwindows 圖形界面的用戶配置界面,各自對應(yīng)于 Make config、Make menuconfig 和 make xconfig)。
  這些配置工具都是使用腳本語言,如 Tcl/TK、Perl 編寫的(也包含一些用 C 編寫的代碼)。本文并不是對配置系統(tǒng)本身進(jìn)行分析,而是介紹如何使用配置系統(tǒng)。所以,除非是配置系統(tǒng)的維護(hù)者,一般的內(nèi)核開發(fā)者無須了解它們的原理,只需要知道如何編寫 Makefile 和配置文件就可以。所以,在本文中,我們只對 Makefile 和配置文件進(jìn)行討論。另外,凡是涉及到與具體 CPU 體系結(jié)構(gòu)相關(guān)的內(nèi)容,我們都以 ARM 為例,這樣不僅可以將討論的問題明確化,而且對內(nèi)容本身不產(chǎn)生影響。
  
  2. Makefile
  2.1 Makefile 概述
  
  Makefile 的作用是根據(jù)配置的情況,構(gòu)造出需要編譯的源文件列表,然后分別編譯,并把目標(biāo)代碼鏈接到一起,最終形成 Linux 內(nèi)核二進(jìn)制文件。
  
  由于 Linux 內(nèi)核源代碼是按照樹形結(jié)構(gòu)組織的,所以 Makefile 也被分布在目錄樹中。Linux 內(nèi)核中的 Makefile 以及與 Makefile 直接相關(guān)的文件有:
  
  Makefile:頂層 Makefile,是整個(gè)內(nèi)核配置、編譯的總體控制文件。
  .config:內(nèi)核配置文件,包含由用戶選擇的配置選項(xiàng),用來存放內(nèi)核配置后的結(jié)果(如 make config)。
  arch/*/Makefile:位于各種 CPU 體系目錄下的 Makefile,如 arch/arm/Makefile,是針對特定平臺的 Makefile。
  各個(gè)子目錄下的 Makefile:比如 drivers/Makefile,負(fù)責(zé)所在子目錄下源代碼的管理。
  Rules.make:規(guī)則文件,被所有的 Makefile 使用。
  用戶通過 make config 配置后,產(chǎn)生了 .config。頂層 Makefile 讀入 .config 中的配置選擇。頂層 Makefile 有兩個(gè)主要的任務(wù):產(chǎn)生 vmlinux 文件和內(nèi)核模塊(module)。為了達(dá)到此目的,頂層 Makefile 遞歸的進(jìn)入到內(nèi)核的各個(gè)子目錄中,分別調(diào)用位于這些子目錄中的 Makefile。至于到底進(jìn)入哪些子目錄,取決于內(nèi)核的配置。在頂層 Makefile 中,有一句:include arch/$(ARCH)/Makefile,包含了特定 CPU 體系結(jié)構(gòu)下的 Makefile,這個(gè) Makefile 中包含了平臺相關(guān)的信息。
  
  位于各個(gè)子目錄下的 Makefile 同樣也根據(jù) .config 給出的配置信息,構(gòu)造出當(dāng)前配置下需要的源文件列表,并在文件的最后有 include $(TOPDIR)/Rules.make。
  
  Rules.make 文件起著非常重要的作用,它定義了所有 Makefile 共用的編譯規(guī)則。比如,如果需要將本目錄下所有的 c 程序編譯成匯編代碼,需要在 Makefile 中有以下的編譯規(guī)則:
  
    %.s: %.c
    $(CC) $(CFLAGS) -S $

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/111961/showart_2186113.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP