版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章
嵌入式Linux內(nèi)核文件
系統(tǒng)與存儲(chǔ)
1第3章
嵌入式Linux內(nèi)核文件
系統(tǒng)與存儲(chǔ)
1第三章嵌入式Linux內(nèi)核文件系統(tǒng)與存儲(chǔ)主要內(nèi)容
第一節(jié)Linux內(nèi)核定制、裁剪和添加第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)第三節(jié)文件系統(tǒng)的構(gòu)建學(xué)習(xí)方法與建議本章主要介紹了三個(gè)部分,分別是嵌入式linux內(nèi)核、引導(dǎo)系統(tǒng)介紹和文件系統(tǒng)等相關(guān)內(nèi)容。該章節(jié)詳細(xì)介紹了關(guān)于嵌入式系統(tǒng)如何構(gòu)建以及內(nèi)核部分的應(yīng)用操作等內(nèi)容,可以更好的幫助理解嵌入式系統(tǒng)的相關(guān)內(nèi)容,具有一定的應(yīng)用價(jià)值。12第三章嵌入式Linux內(nèi)核文件主要內(nèi)容學(xué)習(xí)方法與建議內(nèi)容:一、概述二、內(nèi)核目錄介紹三、配置文件和配置工具四、內(nèi)核的編譯命令第一節(jié)Linux內(nèi)核定制、裁剪和添加23內(nèi)容:第一節(jié)Linux內(nèi)核定制、裁剪和第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)(OperatingSystem,OS)是一組能夠管理電腦軟硬件資源的程序,它能夠管理內(nèi)存、決定系統(tǒng)資源分配、控制輸入輸出設(shè)備以及管理網(wǎng)絡(luò)文件等。作為計(jì)算機(jī)軟硬件之間的紐帶,操作系統(tǒng)能夠使計(jì)算機(jī)系統(tǒng)資源得到最大限度的利用。利用運(yùn)行在某臺(tái)計(jì)算機(jī)(宿主機(jī))上的編譯器編譯某個(gè)源程序,生成在另一臺(tái)機(jī)器(目標(biāo)機(jī))上運(yùn)行的目標(biāo)代碼的過程。操作系統(tǒng)是一套復(fù)雜的管理控制程序,包括五個(gè)方面的管理功能:進(jìn)程與處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理、文件管理與用戶管理。一般來說,操作系統(tǒng)具有四個(gè)共同特征:并發(fā)性(concurrence)、共享性(sharing)、虛擬性(virtual)和不確定性(asynchronism)。其中,并發(fā)是指兩個(gè)或者多個(gè)事件在同一時(shí)間間隔之內(nèi)發(fā)生;共享指系統(tǒng)中的資源能夠供多個(gè)用戶(用戶程序)共同使用;虛擬指通過某種技術(shù)把一個(gè)物理上的實(shí)體映射為若干個(gè)邏輯上的對(duì)應(yīng);而不確定性則指內(nèi)存中的多個(gè)進(jìn)程均按照各自獨(dú)立的方式執(zhí)行,其執(zhí)行速度由于受到操作系統(tǒng)的自動(dòng)控制,因此是無法預(yù)知的。34第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概一個(gè)操作系統(tǒng)至少具有如下圖所示的結(jié)構(gòu)。引導(dǎo)系統(tǒng)就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序,其作用是初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,并且為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境;內(nèi)核是一個(gè)操作系統(tǒng)的核心,負(fù)責(zé)管理系統(tǒng)的進(jìn)程、存儲(chǔ)、設(shè)備和文件等,它決定著系統(tǒng)的性能和穩(wěn)定性;根文件系統(tǒng)并不是一個(gè)具體的文件類型,而是一個(gè)理論性的概念,它作為VFS(VirtualFilesystemSwitcher)的根節(jié)點(diǎn),可以幫助后者管理文件系統(tǒng)。VFS是內(nèi)核中提供的一種軟件機(jī)制,能夠提供實(shí)際各個(gè)文件系統(tǒng)的掛載點(diǎn)。
4引導(dǎo)系統(tǒng)BootLoader內(nèi)核Kernel根文件系統(tǒng)Rootfs第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
5一個(gè)操作系統(tǒng)至少具有如下圖所示的結(jié)構(gòu)。4引導(dǎo)系統(tǒng)內(nèi)核根文件系內(nèi)核源碼安裝
將ARMLinux系統(tǒng)內(nèi)核源碼安裝到操作系統(tǒng)之中不僅可以方便學(xué)習(xí)內(nèi)核的相應(yīng)內(nèi)容,而且具有幫助編譯驅(qū)動(dòng)程序等功能。完整的內(nèi)核一般規(guī)模較大,可以從官方網(wǎng)站下載。下載的內(nèi)核一般是tar.gz或者是.bz2壓縮文件,使用時(shí)需要解壓。在編譯內(nèi)核注意需要root權(quán)限。以下為內(nèi)核源碼的安裝步驟:1)將需要升級(jí)的內(nèi)核拷貝到/usr/src/下:#cplinux-2.4.18.tar.gz/usr/src2)解壓下載的源程序文件,命令如下所示:#tar-zxvflinux-2.4.18.tar.gz3)文件將解壓到/usr/src/linux目錄中,建立鏈接:#ln-slinux-2.4.18linux5第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
6內(nèi)核源碼安裝
5第一節(jié)Linux內(nèi)核定制、裁剪和添加第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
內(nèi)核版本號(hào)說明
可以使用uname–a命令或者cat/proc/version命令來查看系統(tǒng)的內(nèi)核版本號(hào),如下圖所示。該系統(tǒng)內(nèi)核版本號(hào)為2.4.20-8。其中第一個(gè)數(shù)字為主版本號(hào),第二個(gè)數(shù)字為次版本號(hào),第三個(gè)數(shù)字為修訂號(hào)。如果次版本號(hào)為偶數(shù),則表明是該版本是穩(wěn)定發(fā)行版本;如果次版本號(hào)是奇數(shù),則說明該系統(tǒng)內(nèi)核仍在開發(fā)中。67第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概現(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和網(wǎng)絡(luò)等幾個(gè)功能模塊組成
。Linux內(nèi)核源碼的各個(gè)目錄大致與此相對(duì)應(yīng),如下圖所示。第一節(jié)Linux內(nèi)核定制、裁剪和添加——二、內(nèi)核目錄介紹78現(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和內(nèi)核源碼目錄說明
8目錄名稱目錄功能arch包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu)。include包括編譯內(nèi)核所需要的大部分頭文件。init包含內(nèi)核的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼mm包含所有的內(nèi)存管理代碼。drivers包含系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。ipc包含核心進(jìn)程間的通信代碼。fs存放Linux支持的文件系統(tǒng)代碼。kernel包含內(nèi)核管理的核心代碼。net內(nèi)核的網(wǎng)絡(luò)部分代碼
。lib包含核心的庫代碼。scripts包含用于配置核心的腳本文件。Documentation一些文檔
,是對(duì)每個(gè)目錄作用的具體說明。第一節(jié)Linux內(nèi)核定制、裁剪和添加——二、內(nèi)核目錄介紹9內(nèi)核源碼目錄說明8目錄名稱目錄功能arch包括了所有和體系1.配置文件給用戶提供配置選擇的功能,主要包括如下配置文件9第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具配置文件名功能各級(jí)Makefile和.depend文件各級(jí)目錄的make文件和依賴工具.config內(nèi)核配置文件,保存配置結(jié)果Rules.make規(guī)則文件101.配置文件9第一節(jié)Linux內(nèi)核定制、裁剪和添加2.配置工具用來進(jìn)行相關(guān)配置的工具,包括配置命令解釋器,其中配置用戶界面如下:
(1)基于字符的界面使用命令:Makeconfig
該方法簡(jiǎn)單且不需要調(diào)用Xwindows,不過操作麻煩,用戶界面不友好。
10第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具112.配置工具10第一節(jié)Linux內(nèi)核定制、裁剪和添加(2)基于Ncurses的文本模式圖形用戶界面使用命令:make
menuconfig
該方法簡(jiǎn)單且不需要調(diào)用Xwindows,而且操作簡(jiǎn)單,用戶界面友好后面的實(shí)驗(yàn)就使用該方法進(jìn)行內(nèi)核的相關(guān)配置。11第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具12(2)基于Ncurses的文本模式圖形用戶界面11第一節(jié)(3)基于Xwindows圖形界面的用戶配置界面使用命令:Makexconfig12第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具13(3)基于Xwindows圖形界面的用戶配置界面12第一節(jié)1.在該級(jí)目錄下的Config.in中添加對(duì)該模塊的編譯條件,該變量可以設(shè)置為三種狀態(tài)
Y ---將該功能模塊編譯進(jìn)內(nèi)核N ---不將該功能模塊編譯進(jìn)內(nèi)核M ---將該功能編譯成模塊方式,可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊13第一節(jié)Linux內(nèi)核定制、裁剪和添加——四、內(nèi)核的編譯命令141.在該級(jí)目錄下的Config.in中添加對(duì)該模塊的編譯條件2.內(nèi)核的編譯操作下面給出了用于內(nèi)核編譯的主要命令:#makemenuconfig -----配置編譯選項(xiàng)#makedep -----提供變量依賴關(guān)系信息.#makeclean -----刪除生成的模塊和目標(biāo)文件.#makezImage -----編譯內(nèi)核生成壓縮的映象.#makemodules -----編譯模塊.#makemodules_install -----安裝編譯完成的模塊.編譯完成之后最終生成的壓縮內(nèi)核映象的路徑為arch/arm/boot/zImage,之后拷貝新內(nèi)核文件zImage到啟動(dòng)目錄,并改為合適的名字,即可啟動(dòng)新完成的內(nèi)核鏡像。14第一節(jié)Linux內(nèi)核定制、裁剪和添加——四、內(nèi)核的編譯命令152.內(nèi)核的編譯操作14第一節(jié)Linux內(nèi)核定制、裁剪和內(nèi)容:一、引導(dǎo)系統(tǒng)概述
簡(jiǎn)單介紹引導(dǎo)系統(tǒng)的概念和模式二、Linux的Bootloader——vivi與uboot
vivi和uboot作為ARM平臺(tái)常用的引導(dǎo)程序,具有結(jié)構(gòu)簡(jiǎn)單但是功能強(qiáng)大的特點(diǎn)第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)1516內(nèi)容:第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootL1.引導(dǎo)系統(tǒng)介紹所謂的引導(dǎo)程序(BootLoader),即系統(tǒng)加電后運(yùn)行的第一段軟件代碼。一般來說嵌入式系統(tǒng)的Bootloader負(fù)責(zé)加載整個(gè)啟動(dòng)任務(wù)。整個(gè)過程包括初始化硬件設(shè)備、建立內(nèi)存空間的映射圖、配置合適的軟硬件環(huán)境以便能夠調(diào)用操作系統(tǒng)的內(nèi)核。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述16171.引導(dǎo)系統(tǒng)介紹第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoad2.引導(dǎo)系統(tǒng)的操作模式大多數(shù)引導(dǎo)系統(tǒng)都包含兩種不同的操作模式:?jiǎn)?dòng)加載模式下載模式1)啟動(dòng)加載模式啟動(dòng)加載模式也稱為“自主”(autonomous)模式。引導(dǎo)系統(tǒng)從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備中將操作系統(tǒng)加載到RAM中運(yùn)行。這種模式是引導(dǎo)系統(tǒng)的正常工作模式。2)下載模式在下載模式下,目標(biāo)機(jī)上的引導(dǎo)系統(tǒng)將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件。從主機(jī)下載的文件通常首先被引導(dǎo)系統(tǒng)保存到目標(biāo)機(jī)的RAM中,然后再被引導(dǎo)系統(tǒng)寫到目標(biāo)機(jī)上的FLASH類固態(tài)存儲(chǔ)設(shè)備中。這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)使用;此外,以后的系統(tǒng)更新也會(huì)使用引導(dǎo)系統(tǒng)的這種工作模式。
第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述17182.引導(dǎo)系統(tǒng)的操作模式第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootL3.引導(dǎo)系統(tǒng)的主要任務(wù)與典型結(jié)構(gòu)框架大多數(shù)引導(dǎo)系統(tǒng)都分為stage1和stage2兩大部分。依賴于處理器體系結(jié)構(gòu)和板級(jí)初始化的代碼通常都放在stage1中,用匯編實(shí)現(xiàn);而stage2則通常用C語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)更復(fù)雜的功能,同時(shí)代碼具有更好的可讀性和可移植性。
第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述18引導(dǎo)系統(tǒng)的stage1:1)硬件設(shè)備初始化。2)為加載引導(dǎo)系統(tǒng)的stage2準(zhǔn)備RAM空間。3)拷貝引導(dǎo)系統(tǒng)的stage2到RAM空間中。4)設(shè)置好堆棧。5)跳轉(zhuǎn)到stage2的C入口點(diǎn)引導(dǎo)系統(tǒng)的stage2:1)初始化本階段要用到的硬件設(shè)備。2)檢測(cè)系統(tǒng)內(nèi)存映射(memorymap)。3)將內(nèi)核映像和根文件系統(tǒng)映像從flash上讀到RAM空間中。4)為內(nèi)核設(shè)置啟動(dòng)參數(shù)。5)調(diào)用內(nèi)核。193.引導(dǎo)系統(tǒng)的主要任務(wù)與典型結(jié)構(gòu)框架第二節(jié)嵌入式引1.vivi的常用命令幫助命令vivi>help顯示啟動(dòng)參數(shù)vivi>paramshow啟動(dòng)參數(shù)幫助vivi>paramhelp設(shè)置參數(shù)vivi>paramsetboot_delay10000000Change'boot_delay'value.0x00989680(10000000)to0x00989680(10000000)vivi>paramsave第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot19201.vivi的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boot1.vivi的常用命令顯示分區(qū)幫助vivi>parthelp顯示分區(qū)vivi>partshow存儲(chǔ)器分區(qū)vivi>bonhelp引導(dǎo)幫助vivi>boothelp啟動(dòng)操作系統(tǒng)vivi>boot第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot20211.vivi的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boot2.Uboot的常用命令1)protect:protect命令用于對(duì)Flash進(jìn)行寫保護(hù),可以使能和解除寫保護(hù)。2)erase:erase命令可以擦除Flash。3)setenv:setenv命令可以設(shè)置環(huán)境變量。4)printenv:printenv命令可以打印全部環(huán)境變量,也可以只打印參數(shù)中列出的環(huán)境變量。5)tftpboot:tftpboot命令能夠使用TFTP協(xié)議通過網(wǎng)絡(luò)下載二進(jìn)制格式的文檔。另外,使用這個(gè)命令,必須配置好相關(guān)的環(huán)境變量。例如serverip和ipaddr。其命令格式為:tftpboot[loadAddress][bootfilename]6)bootm:
bootm命令可以引導(dǎo)啟動(dòng)存儲(chǔ)在內(nèi)存中的程序映像。這些內(nèi)存包括RAM和可以永久保存的Flash。其命令格式為:bootm[addr[arg...]]第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot21222.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo2.Uboot的常用命令6)bootm:
bootm命令可以引導(dǎo)啟動(dòng)存儲(chǔ)在內(nèi)存中的程序映像。這些內(nèi)存包括RAM和可以永久保存的Flash。其命令格式為:bootm[addr[arg...]]7)go:go命令能夠執(zhí)行應(yīng)用程序。其命令格式為:goaddr[arg...]8)loadb:loadb命令能夠通過串口線下載二進(jìn)制格式的文檔。其命令格式為:loadb[off][baud]9)loads:loads命令可以通過串口線下載S-Record格式的文件。10)flinfo:flinfo命令打印全部Flash組的信息,也可以只打印其中某個(gè)組的信息。一般嵌入式系統(tǒng)的Flash只有一個(gè)組。11)cp:cp命令可以在內(nèi)存中復(fù)制數(shù)據(jù)塊,包括對(duì)Flash的讀寫操作。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot22232.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo2.Uboot的常用命令12)cmp:cmp命令可以比較兩塊內(nèi)存中的內(nèi)容。.b表示以字節(jié)為單位;.w表示以字為單位;.l表示以長(zhǎng)字為單位。13)mw:mw命令可以按照字節(jié)、字、長(zhǎng)字寫內(nèi)存,.b,w,l的用法與cp命令相同。14)nfs:nfs命令可以使用NFS網(wǎng)絡(luò)協(xié)議通過網(wǎng)絡(luò)啟動(dòng)映像。15)nm:nm命令用于修改內(nèi)存,可以按照字節(jié)、字、長(zhǎng)字操作。16)run:run命令可以執(zhí)行環(huán)境變量中的命令,后面參數(shù)可以是幾個(gè)環(huán)境變量名。17)sleep:sleep命令可以延遲N秒鐘執(zhí)行,N為十進(jìn)制數(shù)。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot23242.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo內(nèi)容:一、文件系統(tǒng)概述 包括根文件系統(tǒng)的概述以及根文件系統(tǒng)的目錄結(jié)構(gòu)二、BusyBox
BusyBox的介紹以及相關(guān)命令第三節(jié)文件系統(tǒng)的構(gòu)建2425內(nèi)容:第三節(jié)文件系統(tǒng)的構(gòu)建24251.根文件系統(tǒng)描述 Linux引導(dǎo)啟動(dòng)時(shí),默認(rèn)使用的文件系統(tǒng)是根文件系統(tǒng)。裝載根文件系統(tǒng)也是引導(dǎo)系統(tǒng)啟動(dòng)過程的最后一個(gè)步驟。 文件系統(tǒng)包含兩大類:根文件系統(tǒng)和附加文件系統(tǒng)。 根文件系統(tǒng)是操作系統(tǒng)至少應(yīng)該引導(dǎo)的一個(gè)文件系統(tǒng),它包含了構(gòu)建整個(gè)操作系統(tǒng)的基本程序和相關(guān)目錄 附加文件系統(tǒng)則是除了根文件系統(tǒng)之外的所有文件系統(tǒng),本身無法直接使用,需要掛載到根文件系統(tǒng)的某個(gè)目錄下方可使用。第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述25261.根文件系統(tǒng)描述第三節(jié)文件系統(tǒng)的構(gòu)建——一、第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述262.根文件系統(tǒng)目錄結(jié)構(gòu)根文件系統(tǒng)呈倒掛樹狀層次結(jié)構(gòu),一般包括如下幾個(gè)目錄:/etc、/dev、/usr、/bin、/var等。如下圖所示:27第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述262第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述27各目錄功能如下:/bin包含每個(gè)用戶使用的系統(tǒng)下最常用的命令/sbin主要在超級(jí)用戶管理系統(tǒng)時(shí)使用/lib存放系統(tǒng)的鏈接庫文件/boot系統(tǒng)啟動(dòng)時(shí)的內(nèi)核文件和其他一些信息文件/dev包含著代表硬件設(shè)備的設(shè)備文件/etc包含著整個(gè)系統(tǒng)的各種配置文件/home包含各用戶的主目錄/root超級(jí)用戶root的默認(rèn)主目錄/mnt裝載其他非標(biāo)準(zhǔn)文件系統(tǒng)的裝載點(diǎn)/proc一個(gè)虛擬目錄,其中保存內(nèi)核和進(jìn)程的信息,文件存放在系統(tǒng)內(nèi)存中/tmp該目錄為程序和用戶提供臨時(shí)空間/usr包含UNIX系統(tǒng)的眾多資源,占用空間較大/var系統(tǒng)記錄文件的存放地,同時(shí)也存放著一些系統(tǒng)的配置文件/lost+found存在于所有的文件系統(tǒng)中,保存文件碎片/opt由一些外部應(yīng)用程序使用的目錄28第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述27各1.BusyBox介紹 BusyBoxcombinestinyversionsofmanycommonUNIXutilitiesintoasinglesmallexecutable.ItprovidesreplacementsformostoftheutilitiesyouusuallyfindinGNUfileutils,shellutils,etc.TheutilitiesinBusyBoxgenerallyhavefeweroptionsthantheirfull-featuredGNUcousins;however,theoptionsthatareincludedprovidetheexpectedfunctionalityandbehaveverymuchliketheirGNUcounterparts.BusyBoxprovidesafairlycompleteenvironmentforanysmallorembeddedsystem. 事實(shí)上,BusyBox提供了相當(dāng)多的工具。從最簡(jiǎn)單的顯示工具到最強(qiáng)大的搜索工具,BusyBox把這些工具存放在/bin和/sbin目錄之下,并且建立一個(gè)能夠使用這些工具的鏈接。第三節(jié)文件系統(tǒng)的構(gòu)建——二、BusyBox28291.BusyBox介紹第三節(jié)文件系統(tǒng)的構(gòu)建——2.BusyBox的相關(guān)命令BusyBox的相關(guān)配置和編譯內(nèi)核類似,需要首先使用makemenuconfig命令進(jìn)行手工配置。敲下makemenuconfig命令之后,進(jìn)入如下界面:第三節(jié)文件系統(tǒng)的構(gòu)建——二、BusyBox29302.BusyBox的相關(guān)命令第三節(jié)文件系統(tǒng)的構(gòu)建2.BusyBox的相關(guān)命令BusyBox其他命令包括:help 顯示make選項(xiàng)的完整列表defconfig 啟用默認(rèn)的(通用)配置allnoconfig 禁用所有的應(yīng)用程序(空配置)allyesconfig 啟用所有的應(yīng)用程序(完整配置)allbareconfig 啟用所有的應(yīng)用程序,但是不包括子特性config 基于文本的配置工具menuconfig N-curses(基于菜單的)配置工具all 編譯BusyBox二進(jìn)制文件和文檔(./docs)busybox 編譯BusyBox二進(jìn)制文件clean 清除源代碼樹distclean 徹底清除源代碼樹sizes 顯示所啟用的應(yīng)用程序的文本/數(shù)據(jù)大小第三節(jié)文件系統(tǒng)的構(gòu)建——二、BusyBox30312.BusyBox的相關(guān)命令第三節(jié)文件系統(tǒng)的構(gòu)建本章主要介紹了三個(gè)部分,分別是嵌入式linux內(nèi)核、引導(dǎo)系統(tǒng)介紹和文件系統(tǒng)等相關(guān)內(nèi)容。在內(nèi)核部分詳細(xì)介紹了Linux操作系統(tǒng)內(nèi)核定制、裁剪和添加;引導(dǎo)部分則介紹了嵌入式BootLoader技術(shù);最后的文件系統(tǒng)部分詳細(xì)介紹了文件系統(tǒng)的構(gòu)建。章節(jié)的最后部分將構(gòu)建Floppylinux作為一個(gè)綜合應(yīng)用實(shí)驗(yàn),試圖讓讀者更加深入理解上述3塊內(nèi)容。小結(jié)3132本章主要介紹了三個(gè)部分,分別是嵌入式linux內(nèi)核、引導(dǎo)系統(tǒng)1.請(qǐng)簡(jiǎn)述操作系統(tǒng)的結(jié)構(gòu)。2.請(qǐng)簡(jiǎn)述操作系統(tǒng)的特點(diǎn)并舉例說明。3.請(qǐng)列舉出Linux內(nèi)核源碼的所有文件夾,并且說明每個(gè)文件夾的意義。4.請(qǐng)列舉出Linux有關(guān)內(nèi)核鏡像的三種編譯方法,并陳述每個(gè)方法的特點(diǎn)。5.請(qǐng)簡(jiǎn)述Linux引導(dǎo)系統(tǒng)過的兩種操作模式并分別說明。6.請(qǐng)列舉出根文件系統(tǒng)的所有目錄,并且分別說明每個(gè)文件夾的含義。7.請(qǐng)闡述Linux內(nèi)核編譯的選項(xiàng)和BusyBox編譯選項(xiàng)之間的區(qū)別。8.請(qǐng)完成本章的綜合實(shí)驗(yàn)FloppyLinux。9.請(qǐng)嘗試完成基于U盤的Linux系統(tǒng)。習(xí)題32331.請(qǐng)簡(jiǎn)述操作系統(tǒng)的結(jié)構(gòu)。習(xí)題3233第3章
嵌入式Linux內(nèi)核文件
系統(tǒng)與存儲(chǔ)
34第3章
嵌入式Linux內(nèi)核文件
系統(tǒng)與存儲(chǔ)
1第三章嵌入式Linux內(nèi)核文件系統(tǒng)與存儲(chǔ)主要內(nèi)容
第一節(jié)Linux內(nèi)核定制、裁剪和添加第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)第三節(jié)文件系統(tǒng)的構(gòu)建學(xué)習(xí)方法與建議本章主要介紹了三個(gè)部分,分別是嵌入式linux內(nèi)核、引導(dǎo)系統(tǒng)介紹和文件系統(tǒng)等相關(guān)內(nèi)容。該章節(jié)詳細(xì)介紹了關(guān)于嵌入式系統(tǒng)如何構(gòu)建以及內(nèi)核部分的應(yīng)用操作等內(nèi)容,可以更好的幫助理解嵌入式系統(tǒng)的相關(guān)內(nèi)容,具有一定的應(yīng)用價(jià)值。135第三章嵌入式Linux內(nèi)核文件主要內(nèi)容學(xué)習(xí)方法與建議內(nèi)容:一、概述二、內(nèi)核目錄介紹三、配置文件和配置工具四、內(nèi)核的編譯命令第一節(jié)Linux內(nèi)核定制、裁剪和添加236內(nèi)容:第一節(jié)Linux內(nèi)核定制、裁剪和第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)(OperatingSystem,OS)是一組能夠管理電腦軟硬件資源的程序,它能夠管理內(nèi)存、決定系統(tǒng)資源分配、控制輸入輸出設(shè)備以及管理網(wǎng)絡(luò)文件等。作為計(jì)算機(jī)軟硬件之間的紐帶,操作系統(tǒng)能夠使計(jì)算機(jī)系統(tǒng)資源得到最大限度的利用。利用運(yùn)行在某臺(tái)計(jì)算機(jī)(宿主機(jī))上的編譯器編譯某個(gè)源程序,生成在另一臺(tái)機(jī)器(目標(biāo)機(jī))上運(yùn)行的目標(biāo)代碼的過程。操作系統(tǒng)是一套復(fù)雜的管理控制程序,包括五個(gè)方面的管理功能:進(jìn)程與處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理、文件管理與用戶管理。一般來說,操作系統(tǒng)具有四個(gè)共同特征:并發(fā)性(concurrence)、共享性(sharing)、虛擬性(virtual)和不確定性(asynchronism)。其中,并發(fā)是指兩個(gè)或者多個(gè)事件在同一時(shí)間間隔之內(nèi)發(fā)生;共享指系統(tǒng)中的資源能夠供多個(gè)用戶(用戶程序)共同使用;虛擬指通過某種技術(shù)把一個(gè)物理上的實(shí)體映射為若干個(gè)邏輯上的對(duì)應(yīng);而不確定性則指內(nèi)存中的多個(gè)進(jìn)程均按照各自獨(dú)立的方式執(zhí)行,其執(zhí)行速度由于受到操作系統(tǒng)的自動(dòng)控制,因此是無法預(yù)知的。337第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概一個(gè)操作系統(tǒng)至少具有如下圖所示的結(jié)構(gòu)。引導(dǎo)系統(tǒng)就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序,其作用是初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,并且為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境;內(nèi)核是一個(gè)操作系統(tǒng)的核心,負(fù)責(zé)管理系統(tǒng)的進(jìn)程、存儲(chǔ)、設(shè)備和文件等,它決定著系統(tǒng)的性能和穩(wěn)定性;根文件系統(tǒng)并不是一個(gè)具體的文件類型,而是一個(gè)理論性的概念,它作為VFS(VirtualFilesystemSwitcher)的根節(jié)點(diǎn),可以幫助后者管理文件系統(tǒng)。VFS是內(nèi)核中提供的一種軟件機(jī)制,能夠提供實(shí)際各個(gè)文件系統(tǒng)的掛載點(diǎn)。
4引導(dǎo)系統(tǒng)BootLoader內(nèi)核Kernel根文件系統(tǒng)Rootfs第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
38一個(gè)操作系統(tǒng)至少具有如下圖所示的結(jié)構(gòu)。4引導(dǎo)系統(tǒng)內(nèi)核根文件系內(nèi)核源碼安裝
將ARMLinux系統(tǒng)內(nèi)核源碼安裝到操作系統(tǒng)之中不僅可以方便學(xué)習(xí)內(nèi)核的相應(yīng)內(nèi)容,而且具有幫助編譯驅(qū)動(dòng)程序等功能。完整的內(nèi)核一般規(guī)模較大,可以從官方網(wǎng)站下載。下載的內(nèi)核一般是tar.gz或者是.bz2壓縮文件,使用時(shí)需要解壓。在編譯內(nèi)核注意需要root權(quán)限。以下為內(nèi)核源碼的安裝步驟:1)將需要升級(jí)的內(nèi)核拷貝到/usr/src/下:#cplinux-2.4.18.tar.gz/usr/src2)解壓下載的源程序文件,命令如下所示:#tar-zxvflinux-2.4.18.tar.gz3)文件將解壓到/usr/src/linux目錄中,建立鏈接:#ln-slinux-2.4.18linux5第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
39內(nèi)核源碼安裝
5第一節(jié)Linux內(nèi)核定制、裁剪和添加第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概述
內(nèi)核版本號(hào)說明
可以使用uname–a命令或者cat/proc/version命令來查看系統(tǒng)的內(nèi)核版本號(hào),如下圖所示。該系統(tǒng)內(nèi)核版本號(hào)為2.4.20-8。其中第一個(gè)數(shù)字為主版本號(hào),第二個(gè)數(shù)字為次版本號(hào),第三個(gè)數(shù)字為修訂號(hào)。如果次版本號(hào)為偶數(shù),則表明是該版本是穩(wěn)定發(fā)行版本;如果次版本號(hào)是奇數(shù),則說明該系統(tǒng)內(nèi)核仍在開發(fā)中。640第一節(jié)Linux內(nèi)核定制、裁剪和添加——一、概現(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和網(wǎng)絡(luò)等幾個(gè)功能模塊組成
。Linux內(nèi)核源碼的各個(gè)目錄大致與此相對(duì)應(yīng),如下圖所示。第一節(jié)Linux內(nèi)核定制、裁剪和添加——二、內(nèi)核目錄介紹741現(xiàn)代的操作系統(tǒng)一般由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、驅(qū)動(dòng)程序和內(nèi)核源碼目錄說明
8目錄名稱目錄功能arch包括了所有和體系結(jié)構(gòu)相關(guān)的核心代碼。它下面的每一個(gè)子目錄都代表一種Linux支持的體系結(jié)構(gòu)。include包括編譯內(nèi)核所需要的大部分頭文件。init包含內(nèi)核的初始化代碼(不是系統(tǒng)的引導(dǎo)代碼mm包含所有的內(nèi)存管理代碼。drivers包含系統(tǒng)中所有的設(shè)備驅(qū)動(dòng)程序。ipc包含核心進(jìn)程間的通信代碼。fs存放Linux支持的文件系統(tǒng)代碼。kernel包含內(nèi)核管理的核心代碼。net內(nèi)核的網(wǎng)絡(luò)部分代碼
。lib包含核心的庫代碼。scripts包含用于配置核心的腳本文件。Documentation一些文檔
,是對(duì)每個(gè)目錄作用的具體說明。第一節(jié)Linux內(nèi)核定制、裁剪和添加——二、內(nèi)核目錄介紹42內(nèi)核源碼目錄說明8目錄名稱目錄功能arch包括了所有和體系1.配置文件給用戶提供配置選擇的功能,主要包括如下配置文件9第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具配置文件名功能各級(jí)Makefile和.depend文件各級(jí)目錄的make文件和依賴工具.config內(nèi)核配置文件,保存配置結(jié)果Rules.make規(guī)則文件431.配置文件9第一節(jié)Linux內(nèi)核定制、裁剪和添加2.配置工具用來進(jìn)行相關(guān)配置的工具,包括配置命令解釋器,其中配置用戶界面如下:
(1)基于字符的界面使用命令:Makeconfig
該方法簡(jiǎn)單且不需要調(diào)用Xwindows,不過操作麻煩,用戶界面不友好。
10第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具442.配置工具10第一節(jié)Linux內(nèi)核定制、裁剪和添加(2)基于Ncurses的文本模式圖形用戶界面使用命令:make
menuconfig
該方法簡(jiǎn)單且不需要調(diào)用Xwindows,而且操作簡(jiǎn)單,用戶界面友好后面的實(shí)驗(yàn)就使用該方法進(jìn)行內(nèi)核的相關(guān)配置。11第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具45(2)基于Ncurses的文本模式圖形用戶界面11第一節(jié)(3)基于Xwindows圖形界面的用戶配置界面使用命令:Makexconfig12第一節(jié)Linux內(nèi)核定制、裁剪和添加—— 三、配置文件和配置工具46(3)基于Xwindows圖形界面的用戶配置界面12第一節(jié)1.在該級(jí)目錄下的Config.in中添加對(duì)該模塊的編譯條件,該變量可以設(shè)置為三種狀態(tài)
Y ---將該功能模塊編譯進(jìn)內(nèi)核N ---不將該功能模塊編譯進(jìn)內(nèi)核M ---將該功能編譯成模塊方式,可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊13第一節(jié)Linux內(nèi)核定制、裁剪和添加——四、內(nèi)核的編譯命令471.在該級(jí)目錄下的Config.in中添加對(duì)該模塊的編譯條件2.內(nèi)核的編譯操作下面給出了用于內(nèi)核編譯的主要命令:#makemenuconfig -----配置編譯選項(xiàng)#makedep -----提供變量依賴關(guān)系信息.#makeclean -----刪除生成的模塊和目標(biāo)文件.#makezImage -----編譯內(nèi)核生成壓縮的映象.#makemodules -----編譯模塊.#makemodules_install -----安裝編譯完成的模塊.編譯完成之后最終生成的壓縮內(nèi)核映象的路徑為arch/arm/boot/zImage,之后拷貝新內(nèi)核文件zImage到啟動(dòng)目錄,并改為合適的名字,即可啟動(dòng)新完成的內(nèi)核鏡像。14第一節(jié)Linux內(nèi)核定制、裁剪和添加——四、內(nèi)核的編譯命令482.內(nèi)核的編譯操作14第一節(jié)Linux內(nèi)核定制、裁剪和內(nèi)容:一、引導(dǎo)系統(tǒng)概述
簡(jiǎn)單介紹引導(dǎo)系統(tǒng)的概念和模式二、Linux的Bootloader——vivi與uboot
vivi和uboot作為ARM平臺(tái)常用的引導(dǎo)程序,具有結(jié)構(gòu)簡(jiǎn)單但是功能強(qiáng)大的特點(diǎn)第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)1549內(nèi)容:第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootL1.引導(dǎo)系統(tǒng)介紹所謂的引導(dǎo)程序(BootLoader),即系統(tǒng)加電后運(yùn)行的第一段軟件代碼。一般來說嵌入式系統(tǒng)的Bootloader負(fù)責(zé)加載整個(gè)啟動(dòng)任務(wù)。整個(gè)過程包括初始化硬件設(shè)備、建立內(nèi)存空間的映射圖、配置合適的軟硬件環(huán)境以便能夠調(diào)用操作系統(tǒng)的內(nèi)核。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述16501.引導(dǎo)系統(tǒng)介紹第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoad2.引導(dǎo)系統(tǒng)的操作模式大多數(shù)引導(dǎo)系統(tǒng)都包含兩種不同的操作模式:?jiǎn)?dòng)加載模式下載模式1)啟動(dòng)加載模式啟動(dòng)加載模式也稱為“自主”(autonomous)模式。引導(dǎo)系統(tǒng)從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備中將操作系統(tǒng)加載到RAM中運(yùn)行。這種模式是引導(dǎo)系統(tǒng)的正常工作模式。2)下載模式在下載模式下,目標(biāo)機(jī)上的引導(dǎo)系統(tǒng)將通過串口連接或網(wǎng)絡(luò)連接等通信手段從主機(jī)下載文件。從主機(jī)下載的文件通常首先被引導(dǎo)系統(tǒng)保存到目標(biāo)機(jī)的RAM中,然后再被引導(dǎo)系統(tǒng)寫到目標(biāo)機(jī)上的FLASH類固態(tài)存儲(chǔ)設(shè)備中。這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)使用;此外,以后的系統(tǒng)更新也會(huì)使用引導(dǎo)系統(tǒng)的這種工作模式。
第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述17512.引導(dǎo)系統(tǒng)的操作模式第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootL3.引導(dǎo)系統(tǒng)的主要任務(wù)與典型結(jié)構(gòu)框架大多數(shù)引導(dǎo)系統(tǒng)都分為stage1和stage2兩大部分。依賴于處理器體系結(jié)構(gòu)和板級(jí)初始化的代碼通常都放在stage1中,用匯編實(shí)現(xiàn);而stage2則通常用C語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)更復(fù)雜的功能,同時(shí)代碼具有更好的可讀性和可移植性。
第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 一、引導(dǎo)系統(tǒng)概述18引導(dǎo)系統(tǒng)的stage1:1)硬件設(shè)備初始化。2)為加載引導(dǎo)系統(tǒng)的stage2準(zhǔn)備RAM空間。3)拷貝引導(dǎo)系統(tǒng)的stage2到RAM空間中。4)設(shè)置好堆棧。5)跳轉(zhuǎn)到stage2的C入口點(diǎn)引導(dǎo)系統(tǒng)的stage2:1)初始化本階段要用到的硬件設(shè)備。2)檢測(cè)系統(tǒng)內(nèi)存映射(memorymap)。3)將內(nèi)核映像和根文件系統(tǒng)映像從flash上讀到RAM空間中。4)為內(nèi)核設(shè)置啟動(dòng)參數(shù)。5)調(diào)用內(nèi)核。523.引導(dǎo)系統(tǒng)的主要任務(wù)與典型結(jié)構(gòu)框架第二節(jié)嵌入式引1.vivi的常用命令幫助命令vivi>help顯示啟動(dòng)參數(shù)vivi>paramshow啟動(dòng)參數(shù)幫助vivi>paramhelp設(shè)置參數(shù)vivi>paramsetboot_delay10000000Change'boot_delay'value.0x00989680(10000000)to0x00989680(10000000)vivi>paramsave第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot19531.vivi的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boot1.vivi的常用命令顯示分區(qū)幫助vivi>parthelp顯示分區(qū)vivi>partshow存儲(chǔ)器分區(qū)vivi>bonhelp引導(dǎo)幫助vivi>boothelp啟動(dòng)操作系統(tǒng)vivi>boot第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot20541.vivi的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boot2.Uboot的常用命令1)protect:protect命令用于對(duì)Flash進(jìn)行寫保護(hù),可以使能和解除寫保護(hù)。2)erase:erase命令可以擦除Flash。3)setenv:setenv命令可以設(shè)置環(huán)境變量。4)printenv:printenv命令可以打印全部環(huán)境變量,也可以只打印參數(shù)中列出的環(huán)境變量。5)tftpboot:tftpboot命令能夠使用TFTP協(xié)議通過網(wǎng)絡(luò)下載二進(jìn)制格式的文檔。另外,使用這個(gè)命令,必須配置好相關(guān)的環(huán)境變量。例如serverip和ipaddr。其命令格式為:tftpboot[loadAddress][bootfilename]6)bootm:
bootm命令可以引導(dǎo)啟動(dòng)存儲(chǔ)在內(nèi)存中的程序映像。這些內(nèi)存包括RAM和可以永久保存的Flash。其命令格式為:bootm[addr[arg...]]第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot21552.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo2.Uboot的常用命令6)bootm:
bootm命令可以引導(dǎo)啟動(dòng)存儲(chǔ)在內(nèi)存中的程序映像。這些內(nèi)存包括RAM和可以永久保存的Flash。其命令格式為:bootm[addr[arg...]]7)go:go命令能夠執(zhí)行應(yīng)用程序。其命令格式為:goaddr[arg...]8)loadb:loadb命令能夠通過串口線下載二進(jìn)制格式的文檔。其命令格式為:loadb[off][baud]9)loads:loads命令可以通過串口線下載S-Record格式的文件。10)flinfo:flinfo命令打印全部Flash組的信息,也可以只打印其中某個(gè)組的信息。一般嵌入式系統(tǒng)的Flash只有一個(gè)組。11)cp:cp命令可以在內(nèi)存中復(fù)制數(shù)據(jù)塊,包括對(duì)Flash的讀寫操作。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot22562.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo2.Uboot的常用命令12)cmp:cmp命令可以比較兩塊內(nèi)存中的內(nèi)容。.b表示以字節(jié)為單位;.w表示以字為單位;.l表示以長(zhǎng)字為單位。13)mw:mw命令可以按照字節(jié)、字、長(zhǎng)字寫內(nèi)存,.b,w,l的用法與cp命令相同。14)nfs:nfs命令可以使用NFS網(wǎng)絡(luò)協(xié)議通過網(wǎng)絡(luò)啟動(dòng)映像。15)nm:nm命令用于修改內(nèi)存,可以按照字節(jié)、字、長(zhǎng)字操作。16)run:run命令可以執(zhí)行環(huán)境變量中的命令,后面參數(shù)可以是幾個(gè)環(huán)境變量名。17)sleep:sleep命令可以延遲N秒鐘執(zhí)行,N為十進(jìn)制數(shù)。第二節(jié)嵌入式引導(dǎo)系統(tǒng)(BootLoader)技術(shù)—— 二、Linux的Bootloader——vivi與uboot23572.Uboot的常用命令第二節(jié)嵌入式引導(dǎo)系統(tǒng)(Boo內(nèi)容:一、文件系統(tǒng)概述 包括根文件系統(tǒng)的概述以及根文件系統(tǒng)的目錄結(jié)構(gòu)二、BusyBox
BusyBox的介紹以及相關(guān)命令第三節(jié)文件系統(tǒng)的構(gòu)建2458內(nèi)容:第三節(jié)文件系統(tǒng)的構(gòu)建24251.根文件系統(tǒng)描述 Linux引導(dǎo)啟動(dòng)時(shí),默認(rèn)使用的文件系統(tǒng)是根文件系統(tǒng)。裝載根文件系統(tǒng)也是引導(dǎo)系統(tǒng)啟動(dòng)過程的最后一個(gè)步驟。 文件系統(tǒng)包含兩大類:根文件系統(tǒng)和附加文件系統(tǒng)。 根文件系統(tǒng)是操作系統(tǒng)至少應(yīng)該引導(dǎo)的一個(gè)文件系統(tǒng),它包含了構(gòu)建整個(gè)操作系統(tǒng)的基本程序和相關(guān)目錄 附加文件系統(tǒng)則是除了根文件系統(tǒng)之外的所有文件系統(tǒng),本身無法直接使用,需要掛載到根文件系統(tǒng)的某個(gè)目錄下方可使用。第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述25591.根文件系統(tǒng)描述第三節(jié)文件系統(tǒng)的構(gòu)建——一、第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述262.根文件系統(tǒng)目錄結(jié)構(gòu)根文件系統(tǒng)呈倒掛樹狀層次結(jié)構(gòu),一般包括如下幾個(gè)目錄:/etc、/dev、/usr、/bin、/var等。如下圖所示:60第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述262第三節(jié)文件系統(tǒng)的構(gòu)建——一、文件系統(tǒng)概述27各目錄功能如下:/bin包含每個(gè)用戶使用的系統(tǒng)下最常用的命令/sbin主要在超級(jí)用戶管理系統(tǒng)時(shí)使用/lib存放系統(tǒng)的鏈接庫文件/boot系統(tǒng)啟動(dòng)時(shí)的內(nèi)核文件和其他一些信息文件/dev包含著代表硬件設(shè)備的設(shè)備文件/etc包含著整個(gè)系統(tǒng)的各種配置文件/home包含各用戶的主目錄/root超級(jí)用戶root的默認(rèn)主目錄/mnt裝載其他非標(biāo)準(zhǔn)文件系統(tǒng)的裝載點(diǎn)/proc一個(gè)虛擬目錄,其中保存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年金屬礦探礦權(quán)轉(zhuǎn)讓框架合同范本3篇
- 2024沈陽二手房買賣合同附帶房屋過戶稅費(fèi)承擔(dān)協(xié)議3篇
- 2024年某大型水電站勞務(wù)分包合同版
- 2024車牌租賃詳細(xì)協(xié)議
- 2024裝卸承包協(xié)議書范本
- 2025年四川省瀘州市九年級(jí)英語寒假作業(yè)四
- 2024甲午雙方關(guān)于區(qū)塊鏈技術(shù)在供應(yīng)鏈管理的應(yīng)用合同
- 2024餐飲業(yè)原料采購長(zhǎng)期合作協(xié)議
- 湖南鐵路科技職業(yè)技術(shù)學(xué)院《癌癥的生物學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年餐廳與服務(wù)員雇傭協(xié)議3篇
- 普通高中地理課程標(biāo)準(zhǔn)簡(jiǎn)介(湘教版)
- 超分子化學(xué)簡(jiǎn)介課件
- 文言文閱讀訓(xùn)練:《三國志-武帝紀(jì)》(附答案解析與譯文)
- (完整版)招聘面試方案設(shè)計(jì)與研究畢業(yè)論文設(shè)計(jì)
- 易制爆化學(xué)品合法用途說明
- 調(diào)休單、加班申請(qǐng)單
- 肉制品生產(chǎn)企業(yè)名錄296家
- 規(guī)劃設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)
- 大氣喜慶迎新元旦晚會(huì)PPT背景
- 山區(qū)道路安全駕駛教案
- 常見浮游植物圖譜(1)
評(píng)論
0/150
提交評(píng)論