模块的动态加载和系统配置课件.pptVIP

模块的动态加载和系统配置课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

9.2.1配置系統的基本結構9.2.1配置系統的基本結構Linux內核的配置系統由三個部分組成:(1)Makefile:分佈在Linux內核源代碼中的Makefile定義Linux內核的編譯規則;(2)配置檔(config.in):給用戶提供配置選擇的功能;(3)配置工具:包括配置命令解釋器(對配置腳本中使用的配置命令進行解釋)和配置用戶介面(提供基於字元介面、基於Ncurses圖形介面以及基於Xwindows圖形介面的用戶配置介面,各自對應於Makeconfig、Makemenuconfig和Makexconfig)。這些配置工具都是使用腳本語言,如Tcl/TK、Perl編寫的(也包含一些用C編寫的代碼)。除非是配置系統的維護者,一般的內核開發者無須瞭解配置系統的原理,只需要知道如何使用配置系統,如何編寫Makefile和配置檔就可以。所以,本節只對Makefile和配置檔進行討論。凡是涉及到與具體CPU體系結構相關的內容,都以ARM為例,這樣不僅可以將討論的問題明確化,而且對內容本身不產生影響。9.2.2Makefile

Makefile的作用是根據配置的情況,構造出需要編譯的原始檔案列表,然後分別編譯,並把目標代碼鏈接到一起,最終形成Linux內核二進位檔。由於Linux內核源代碼是按照樹形結構組織的,所以Makefile也被分佈在目錄樹中。Linux內核中的Makefile以及與Makefile直接相關的檔有:Makefile:頂層Makefile,是整個內核配置、編譯的總體控制檔。.config:內核配置檔,包含由用戶選擇的配置選項,用來存放內核配置後的結果(如makeconfig)。arch/*/Makefile:位於各種CPU體系目錄下的Makefile,如arch/arm/Makefile,是針對特定平臺的Makefile。各個子目錄下的Makefile:比如drivers/Makefile,負責所在子目錄下源代碼的管理。Rules.make:規則檔,被所有的Makefile使用。用戶通過makeconfig配置後,產生了.config。頂層Makefile讀入.config中的配置選擇。頂層Makefile有兩個主要的任務:產生vmlinux檔和內核模組(module)。為了達到此目的,頂層Makefile遞歸的進入到內核的各個子目錄中,分別調用位於這些子目錄中的Makefile。至於到底進入哪些子目錄,取決於內核的配置。在頂層Makefile中,有一句:includearch/$(ARCH)/Makefile,包含了特定CPU體系結構下的Makefile,這個Makefile中包含了平臺相關的資訊。位於各個子目錄下的Makefile同樣也根據.config給出的配置資訊,構造出當前配置下需要的原始檔案列表,並在檔的最後有include$(TOPDIR)/Rules.make。Rules.make檔起著非常重要的作用,它定義了所有Makefile共用的編譯規則。比如,如果需要將本目錄下所有的c程式編譯成彙編代碼,需要在Makefile中有以下的編譯規則:%.s:%.c$(CC)$(CFLAGS)-S$-o$@有很多子目錄下都有同樣的要求,就需要在各自的Makefile中包含此編譯規則,這會比較麻煩。而Linux內核中則把此類的編譯規則統一放置到Rules.make中,並在各自的Makefile中包含進了Rules.make(includeRules.make),這樣就避免了在多個Makefile中重複同樣的規則。對於上面的例子,在Rules.make中對應的規則為:%.s:%.c$(CC)$(CFLAGS)$(EXTRA_CFLAGS)$(CFLAGS_$(*F))$(CFLAGS_$@)-S$-o$@Makefile中的變數頂層Makefile定義並向環境中輸出了許多變數,為各個子目錄下的Makefile傳遞一些資訊。有些變數,比如SUBDIRS,不僅在頂層Makefil

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体 菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档