資源描述:
《linux、內(nèi)核源碼、內(nèi)核編譯與配置、內(nèi)核模塊開發(fā)、內(nèi)核》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、linux、內(nèi)核源碼、內(nèi)核編譯與配置、內(nèi)核模塊開發(fā)、內(nèi)核啟動流程(轉(zhuǎn))linux是如何組成的?答:linux是由用戶空間和內(nèi)核空間組成的為什么要劃分用戶空間和內(nèi)核空間?答:有關(guān)CPU體系結(jié)構(gòu),各處理器可以有多種模式,而LInux這樣的劃分是考慮到系統(tǒng)的安全性,比如X86可以有4種模式RING0~RING3?RING0特權(quán)模式給LINUX內(nèi)核空間RING3給用戶空間linux內(nèi)核是如何組成的?答:linux內(nèi)核由SCI(SystemCallInterface)系統(tǒng)調(diào)用接口、PM(ProcessMana
2、gement)進程管理、MM(MemoryManagement)內(nèi)存管理、Arch、VFS(VirtualFileSysterm)虛擬文件系統(tǒng)、NS(NetworkStack)網(wǎng)絡(luò)協(xié)議棧、DD(DeviceDrivers)設(shè)備驅(qū)動linux內(nèi)核源代碼linux內(nèi)核源代碼是如何組成或目錄結(jié)構(gòu)?答:??arc目錄???存放一些與CPU體系結(jié)構(gòu)相關(guān)的代碼?其中第個CPU子目錄以分解boot,mm,kerner等子目錄block目錄???部分塊設(shè)備驅(qū)動代碼crypto目錄???加密、壓縮、CRC校驗算法do
3、cumentation???內(nèi)核文檔drivers??????設(shè)備驅(qū)動fs??????存放各種文件系統(tǒng)的實現(xiàn)代碼include??????內(nèi)核所需要的頭文件。與平臺無關(guān)的頭文件入在include/linux子目錄下,與平臺相關(guān)的頭文件則放在相應的子目錄中init??????內(nèi)核初始化代碼ipc??????進程間通信的實現(xiàn)代碼kernel??????Linux大多數(shù)關(guān)鍵的核心功能者是在這個目錄實現(xiàn)(程序調(diào)度,進程控制,模塊化)lib??????庫文件代碼mm??????與平臺無關(guān)的內(nèi)存管理,與平臺相關(guān)
4、的放在相應的arch/CPU目錄???net??????各種網(wǎng)絡(luò)協(xié)議的實現(xiàn)代碼,注意而不是驅(qū)動samples???內(nèi)核編程的范例scripts??????配置內(nèi)核的腳本security???SElinux的模塊sound??????音頻設(shè)備的驅(qū)動程序usr??????cpip命令實現(xiàn)程序virt??????內(nèi)核虛擬機內(nèi)核配置與編譯一、清除makeclean???刪除編譯文件但保留配置文件makemrproper???刪除所有編譯文件和配置文件makedistclean???刪除編譯文件、配置文件包括
5、backup備份和patch補丁?二、內(nèi)核配置方式makeconfig???基于文本模式的交互式配置makemenuconfig???基于文本模式的菜單配置makeoldconfig???使用已有的配置文件(.config),但配置時會詢問新增的配置選項makexconfig???圖形化配置三、makemenuconfig一些說明或技巧在括號中按“y”表示編譯進內(nèi)核,按“m”編譯為模塊,按“n”不選擇,也可以按空格鍵進行選擇注意:內(nèi)核編譯時,編譯進內(nèi)核的“y”,和編譯成模塊的“m”是分步編譯的四、快
6、速配置相應體系結(jié)構(gòu)的內(nèi)核配置我們可以???到arch/$cpu/configs目錄下copy相應的處理器型號的配置文件到內(nèi)核源目錄下替換.config文件五、編譯內(nèi)核1.————————————————————————————makezImage??注:zImage只能編譯小于512k的內(nèi)核makebzImage同樣我們也可以編譯時獲取編譯信息,可使用makezImageV=1makebzImageV=1編譯好的內(nèi)核位于???arch/$cpu/boot/目錄下———————————————————
7、—————————以上是編譯內(nèi)核makemenuconfig時先“m”選項的編譯?接下來到編譯“y”模塊,也就是編譯模塊2.makemodules???編譯內(nèi)核模塊makemodules_install???安裝內(nèi)核模塊------>這個選項作用是將編譯好的內(nèi)核模塊從內(nèi)核源代碼目錄copy至/lib/modules下六、制作initramdiskmkinitrdinitrd-$version$version/****?mkinitrdinitrd-$(可改)version$version(不可改,因
8、為這version是尋找/lib/modules/下相應的目錄來制作)?****/七、內(nèi)核安裝復制內(nèi)核到相關(guān)目錄下再作grub引導也就可以了1.cparch/$cpu/boot/bzImage/boot/vmlinux-$version2.cp$initrd/boot/3.修改引導器/etc/grub.conf(lio.conf)正確引導即可#incldue#includestaticinthello_ini