色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開發(fā)>關于Linux 2.6內(nèi)核Makefile的分析

關于Linux 2.6內(nèi)核Makefile的分析

2017-11-02 | rar | 0.5 MB | 次下載 | 1積分

資料介紹

[摘要] 由于Linux的獨特優(yōu)勢,使越來越多的企業(yè)和科研機構把目光轉(zhuǎn)向Linux的開發(fā)和研究上。目前Linux最新的穩(wěn)定內(nèi)核版本為2.6.17,但是當今絕大部分對于Linux Makefile的介紹文章都是基于2.4內(nèi)核的,可以說關于2.6內(nèi)核Makefile相關的文章鳳毛麟角,筆者抽時間完成了這篇分析文章,讓讀者迅速熟悉Linux最新Makefile體系,從而加深對內(nèi)核的理解,同時也希望能對Linux在公司的推廣起到一定的推動作用,算是拋磚引玉吧!
  1 Makefile組織層次
  Linux的Make體系由如下幾部分組成:
  ? 頂層Makefile
  頂層Makefile通過讀取配置文件,遞歸編譯內(nèi)核代碼樹的相關目錄,從而產(chǎn)生兩個重要的目標文件:vmlinux和模塊。
  ? 內(nèi)核相關Makefile
  位于arch/$(ARCH) 目錄下,為頂層Makefile提供與具體硬件體協(xié)結構相關的信息
  ? 公共編譯規(guī)則定義文件。
  包括Makefile.build 、Makefile.clean、Makefile.lib、Makefile.host等文件組成。這些文件位于scripts目錄中,定義了編譯需要的公共的規(guī)則和定義。
  ? 內(nèi)核配置文件 .config
  通過調(diào)用make menuconfig或者make xconfig命令,用戶可以選擇需要的配置來生成期望的目標文件。
  ? 其他Makefile
  主要為整個Makefile體系提供各自模塊的目標文件定義,上層Makefile根據(jù)它所定義的目標來完成各自模塊的編譯。
  2 Makefile的使用
  在編譯內(nèi)核之前,用戶必須首先完成必要的配置。Linux內(nèi)核提供了數(shù)不勝數(shù)的功能,支持眾多的硬件體系結構,這就需要用戶對將要生成的內(nèi)核進行裁減。內(nèi)核提供了多種不同的工具來簡化內(nèi)核的配置,最簡單的一種是字符界面下命令行工具:
  make config
  這個工具會依次遍歷內(nèi)核所有的配置項,要求用戶進行逐項的選擇配置。這個工具會耗費用戶太多時間,除非萬不得以(你的編譯主機不支持其他配置工具)一般不建議使用。
  用戶還可以使用利用ncurse庫編制的圖形界面工具,這就是大名鼎鼎的:
  make menuconfig
  相信以前對2.4內(nèi)核比較熟悉的用戶一定不會陌生。當然在2.6內(nèi)核中提供了更漂亮和方便的基于X11的圖形配置工具:
  make xconfig
  當用戶使用這個工具對Linux內(nèi)核進行配置時,界面下方會出現(xiàn)這個配置項相關的幫助信息和簡單描述,當你對內(nèi)核配置選項不太熟悉時,建議你使用這個工具來進行內(nèi)核配置。
  當用戶完成配置后,配置工具會自動生成.config文件,它被保存在內(nèi)核代碼樹的根目錄下。用戶可以很容易找到它,當然用戶也可以直接對這個文件進行簡單的修改。但是當你修改過配置文件之后,你必須通過下面的命令來驗證和更新配置:
  make oldconfig
  跟2.4版本的不同之處在于,用戶不需要顯示的調(diào)用make dep命令來生成依賴文件,內(nèi)核會自動維護代碼間的依賴關系。
  當一切工作完成以后,用戶只需要簡單鍵入make,剩下所有的工作makefile就會自動替你完成了。
  3 Makefile編譯流程
  當用戶使用Linux的Makefile編譯內(nèi)核版本時,Makefile的編譯流程如下:
  ? 使用命令行或者圖形界面配置工具,對內(nèi)核進行裁減,生成.config配置文件
  ? 保存內(nèi)核版本信息到 include/linux/version.h
  ? 產(chǎn)生符號鏈接 include/asm,指向?qū)嶋H目錄 include/asm-$(ARCH)
  ? 為最終目標文件的生成進行必要的準備工作
  ? 遞歸進入 /init 、/core、 /drivers、 /net、 /lib等目錄和其中的子目錄來編譯生成所有的目標文件
  ? 鏈接上述過程產(chǎn)生的目標文件生成vmlinux,vmlinux存放在內(nèi)核代碼樹的根目錄下
  ? 最后根據(jù) arch/$(ARCH)/Makefile文件定義的后期編譯的處理規(guī)則建立最終的映象bootimage,包括創(chuàng)建引導記錄、準備initrd映象和相關處理
  4 Makefile關鍵規(guī)則和定義描述
  1) 目標定義
  目標定義是Makefile文件的核心部分,目標定義通知Makefile需要生成哪些目標文件、如何根據(jù)特殊的編譯選項鏈接目標文件,同時控制哪些子目錄要遞歸進入進行編譯。
  這個例子Makefile文件位于/fs/ext2目錄 :
  #
  # Makefile for the linux ext2-filesystem routines.
  #
  obj-$(CONFIG_EXT2_FS) += ext2.o
  ext2-y := balloc.o bitmap.o dir.o file.o fsync.o ialloc.o inode.o \
  ioctl.o namei.o super.o symlink.o
  ext2-$(CONFIG_EXT2_FS_XATTR) += xattr.o xattr_user.o xattr_trusted.o
  ext2-$(CONFIG_EXT2_FS_POSIX_ACL) += acl.o
  ext2-$(CONFIG_EXT2_FS_SECURITY) += xattr_security.o
  ext2-$(CONFIG_EXT2_FS_XIP) += xip.o
  這表示與ext2相關的目標文件由 ext2-y定義的文件列表組成,其中ext2-$(*)是由內(nèi)核配置文件.config中的配置項決定,最終Makefile會在這個目錄下統(tǒng)一生成一個目標文件ext2.o(由obj-$(CONFIG_EXT2_FS)決定)。其中obj-y表示為生成vmlinux文件所需要的目標文件集合,具體的文件依賴于內(nèi)核配置。
  Makefile會編譯所有的$(obj-y)中定義的文件,然后調(diào)用鏈接器將這些文件鏈接到built-in.o文件中。最終built-in.o文件通過頂層Makefile鏈接到vmlinux中。值得注意的是$(obj-y)的文件順序很重要。列表文件可以重復,文件第一次出現(xiàn)時將會鏈接到built-in.o中,后來出現(xiàn)的同名文件將會被忽略。文件順序直接決定了他們被調(diào)用的順序,這一點讀者需要特別注意。
  讀者可能會在某些Makefile中發(fā)現(xiàn)lib-y定義,所有包含在lib-y定義中的目標文件都將會被編譯到該目錄下一個統(tǒng)一的庫文件中。值得注意的是lib-y定義一般被限制在 lib 和arch/$(ARCH)/lib 目錄中。
  體系makefile文件和頂層makefile文件共同定義了如何建立vmlinux文件的規(guī)則。
  $(head-y) 列舉首先鏈接到vmlinux的對象文件。
  $(libs-y) 列舉了能夠找到lib.a文件的目錄。
  其余的變量列舉了能夠找到內(nèi)嵌對象文件的目錄。
  $(init-y) 列舉的對象位于$(head-y)對象之后。
  然后是如下位置順序:
  $(core-y), $(libs-y), $(drivers-y) 和 $(net-y)。
  頂層makefile定義了所有通用目錄,arch/$(ARCH)/Makefile文件只需增加體系相關的目錄。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關電源基礎知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 6基于FPGA的C8051F單片機開發(fā)板設計
  12. 0.70 MB  |  2次下載  |  免費
  13. 751單片機窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 午夜免费福利片| 久久亚洲网站| 久久99免费视频| 午夜影院美女| 成人在线视频免费看| 两个人的视频免费| 伊人久久大香线蕉综合99| 含羞草传媒在线观看| 亚洲AV國產国产久青草| 国产精品网红女主播久久久| 日韩亚洲欧美中文高清| 成人在线高清不卡免费视频| 欧美一区二区在线观看| av天堂网站avtt2017| 女人18毛片| 边摸边吃奶边做下面视频| 日韩精品真人荷官无码| 国产AV亚洲一区精午夜麻豆| 双性大乳浪受噗呲噗呲h总| 国产二区自拍| 亚洲精品动漫免费二区| 九九精品视频在线播放| 在线亚洲专区中文字幕| 毛片免费观看| 成人免费小视频| 婷婷五月久久丁香国产综合| 国产麻豆剧看黄在线观看| 亚洲精品久久久992KVTV| 久久国产精品麻豆AV影视| 67194成在线观看免费| 青青草干免费线观看| 囯产精品久久久久久久久蜜桃| 亚洲2017久无码| 久久一er精这里有精品| 99久久国产露脸精品国产吴梦梦| 人人草人人草| 国拍在线精品视频免费观看| 一级淫片bbbxxx| 热久久2018亚洲欧美| 国产亚洲精品AV片在线观看播放| 一本久道视频无线视频|