第4章構(gòu)建嵌入式Linux操作系統(tǒng)_第1頁
第4章構(gòu)建嵌入式Linux操作系統(tǒng)_第2頁
第4章構(gòu)建嵌入式Linux操作系統(tǒng)_第3頁
第4章構(gòu)建嵌入式Linux操作系統(tǒng)_第4頁
第4章構(gòu)建嵌入式Linux操作系統(tǒng)_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第4章構(gòu)建嵌入式Linux操作系統(tǒng)第一頁,共35頁。4.1Linux操作系統(tǒng)的介紹Linux操作系統(tǒng)是嵌入式系統(tǒng)的主流操作系統(tǒng),本節(jié)將對Linux操作系統(tǒng)進(jìn)行簡要的介紹。同時(shí)對Linux操作系統(tǒng)適用與嵌入式系統(tǒng)的原因進(jìn)行簡要分析。第二頁,共35頁。4.1.1Linux操作系統(tǒng)Linux操作系統(tǒng)是一個(gè)類Unix計(jì)算機(jī)操作系統(tǒng)。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux這個(gè)詞本身只表示Linux內(nèi)核,但在實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核的操作系統(tǒng)。Linux的最初版本由LinusTorvalds開發(fā),此后得到互聯(lián)網(wǎng)上很多計(jì)算機(jī)高手的支持,目前的版本已經(jīng)到了2.6,已經(jīng)是一個(gè)非常成熟穩(wěn)定的操作系統(tǒng)。下面從不同方面對Linux操作系統(tǒng)進(jìn)行簡要的介紹。第三頁,共35頁。4.1.2Linux操作系統(tǒng)的優(yōu)點(diǎn)Linux操作系統(tǒng)有很多優(yōu)點(diǎn),具有十分豐富的應(yīng)用功能。這些功能特別適用于嵌入式系統(tǒng),這些優(yōu)點(diǎn)如下所示:1.價(jià)格低廉2.高效性和靈活性3.廣泛性 第四頁,共35頁。4.2.2內(nèi)存管理內(nèi)存是計(jì)算機(jī)的主要資源之一,可以將內(nèi)存理解為一個(gè)線性的存儲(chǔ)結(jié)構(gòu)。用來管理內(nèi)存的策略是決定系統(tǒng)性能的主要因素。內(nèi)核在有限的資源上為每一個(gè)進(jìn)程創(chuàng)建一個(gè)虛擬地址空間,并對虛擬地址空間進(jìn)行管理。為了方便內(nèi)存的管理,內(nèi)核提供了一些重要的函數(shù)。這些函數(shù)包括kmalloc、kfree等。另外設(shè)備驅(qū)動(dòng)程序需要使用內(nèi)存分配,不同的分配方式對驅(qū)動(dòng)程序的影響不同,所以需要對內(nèi)存分配有比較清晰的了解。第五頁,共35頁。4.2.3文件系統(tǒng)在Linux操作系統(tǒng)中,文件系統(tǒng)是用來組織、管理、存放文件的一套管理機(jī)制。Linux文件系統(tǒng)的一大優(yōu)點(diǎn)是,它幾乎可以支持所有的文件格式。任何一種新的文件格式,都可以容易的寫出相應(yīng)的支持代碼,并無縫的添加入內(nèi)核中。雖然不同文件格式的文件以不同的存儲(chǔ)方式存放在磁盤設(shè)備中,但是在用戶看來,文件總以樹形結(jié)構(gòu)顯示給用戶。第六頁,共35頁。4.2.4設(shè)備管理無論是桌面系統(tǒng)還是嵌入式系統(tǒng),都存在各種類型的設(shè)備。操作系統(tǒng)的一個(gè)重要功能就是對這些進(jìn)行統(tǒng)一的管理。由于設(shè)備的種類繁多,不同設(shè)備的操作方法都不一樣,使管理設(shè)備成為操作系統(tǒng)中非常復(fù)雜的部分。Linux系統(tǒng)通過某種方式較好的解決了這個(gè)問題,使設(shè)備的管理得到了統(tǒng)一。設(shè)備管理的一個(gè)主要任務(wù)是完成數(shù)據(jù)從設(shè)備到內(nèi)存的傳輸。一個(gè)完全的數(shù)據(jù)傳輸過程是:數(shù)據(jù)首先從設(shè)備傳入內(nèi)存,然后CPU對其進(jìn)行處理,處理完后將數(shù)據(jù)傳入內(nèi)存或設(shè)備中。第七頁,共35頁。4.2.5網(wǎng)絡(luò)功能網(wǎng)絡(luò)功能也由操作系統(tǒng)來完成。大部分的網(wǎng)絡(luò)操作與用戶進(jìn)程都是分離的,數(shù)據(jù)包的接收和發(fā)送操作都是由相應(yīng)的驅(qū)動(dòng)程序來完成的,而與用戶進(jìn)程無關(guān)。進(jìn)程處理數(shù)據(jù)之前,驅(qū)動(dòng)程序必須先收集,標(biāo)識(shí)和發(fā)送或重組數(shù)據(jù)。當(dāng)數(shù)據(jù)準(zhǔn)備好后,系統(tǒng)負(fù)責(zé)用戶進(jìn)程和網(wǎng)絡(luò)接口之間的數(shù)據(jù)傳送。另外內(nèi)核也負(fù)責(zé)實(shí)現(xiàn)網(wǎng)絡(luò)通信協(xié)議。第八頁,共35頁。4.3Linux源代碼結(jié)構(gòu)分析了解Linux源代碼結(jié)構(gòu)對理解Linux如何實(shí)現(xiàn)各項(xiàng)功能是非常重要的。對驅(qū)動(dòng)程序的編寫也非常重要,這樣,驅(qū)動(dòng)開發(fā)人員知道應(yīng)該在何處找到相關(guān)的驅(qū)動(dòng)程序,一方面可以對其進(jìn)行改寫移植,另一個(gè)方面可以模仿以往的驅(qū)動(dòng)程序,寫出新的驅(qū)動(dòng)程序。Linux源代碼以目錄的方式組織,每一個(gè)目錄中有相關(guān)的內(nèi)核代碼。下面對各個(gè)主要的目錄進(jìn)行介紹。第九頁,共35頁。4.3.1arch目錄隨著Linux操作系統(tǒng)的廣泛應(yīng)用,特別是Linux在嵌入式領(lǐng)域的發(fā)展,越來越多的人開始投身到Linux驅(qū)動(dòng)的開發(fā)中。面對日益龐大的Linux內(nèi)核源代碼,驅(qū)動(dòng)開發(fā)者在完成自己的內(nèi)核代碼后,都將面臨著同樣的問題,即如何將源代碼融入到Linux內(nèi)核中,增加相應(yīng)的Linux配置選項(xiàng),并最終被編譯進(jìn)Linux內(nèi)核。這就需要對Linux源代碼結(jié)構(gòu)進(jìn)行詳細(xì)的介紹,首先介紹arch目錄。第十頁,共35頁。4.3.2drivers目錄drivers目錄中包含了Linux內(nèi)核支持的大部分驅(qū)動(dòng)程序。每種驅(qū)動(dòng)程序都占用一個(gè)子目錄。第十一頁,共35頁。4.3.3fs目錄fs目錄中包含了Linux所支持的所有文件系統(tǒng)相關(guān)的代碼。每一個(gè)子目錄中包含一種文件系統(tǒng),例如msdos和ext3。Linux幾乎支持目前所有的文件系統(tǒng),如果發(fā)現(xiàn)一種沒有支持的新文件系統(tǒng),那么可以很方便的在fs目錄中添加一個(gè)新的文件系統(tǒng)目錄,并實(shí)現(xiàn)一種文件系統(tǒng)。第十二頁,共35頁。4.3.4其他目錄除了上面介紹的目錄外,內(nèi)核中還有其他一些重要的目錄和文件。每一個(gè)目錄和文件都有自己特殊的功能。第十三頁,共35頁。4.4內(nèi)核配置選項(xiàng)自己構(gòu)建嵌入式Linux操作系統(tǒng),首先需要對內(nèi)核源代碼進(jìn)行相應(yīng)的配置。這些配置決定了嵌入式Linux操作系統(tǒng)所支持的功能,為了理解編譯程序是怎樣通過配置文件配置系統(tǒng)的,下面對配置編譯過程進(jìn)行詳細(xì)的講解。第十四頁,共35頁。4.4.1配置編譯過程面對日益龐大的Linux內(nèi)核源代碼,要手動(dòng)的編譯內(nèi)核是十分困難的。幸好Linux提供了一套優(yōu)秀的機(jī)制,簡化了內(nèi)核源代碼的編譯。這套機(jī)制由以下幾個(gè)方面組成:Makefile文件Kconfig文件配置文件配置工具第十五頁,共35頁。4.4.2常規(guī)配置常規(guī)配置包含關(guān)于內(nèi)核的大量配置,這寫配置包含代碼成熟度、版本信息、模塊配置等。第十六頁,共35頁。4.4.3模塊配置模塊作為Linux的一種非常重要的組件,其有很多參數(shù)和功能可以配置。第十七頁,共35頁。4.4.4塊設(shè)備層配置塊設(shè)備層包含對系統(tǒng)使用的塊設(shè)備的配置,其主要包含調(diào)度器的配置,硬盤設(shè)備的配置。第十八頁,共35頁。4.4.5CPU類型和特性配置Linux內(nèi)核幾乎支持所有體系結(jié)構(gòu)上的CPU。內(nèi)核不能自動(dòng)識(shí)別相應(yīng)的CPU類型和一些相關(guān)的特性,需要在配置內(nèi)核時(shí)根據(jù)實(shí)際的情況進(jìn)行相應(yīng)的配置。第十九頁,共35頁。4.4.6電源管理配置電源管理是操作系統(tǒng)中一個(gè)非常重要的模塊,隨著硬件設(shè)備省電節(jié)能能力的增強(qiáng),該模塊越來越重要。在嵌入式系統(tǒng)中,由于一般以電池供電,有低功耗的要求,所以在為嵌入式系統(tǒng)配置內(nèi)核時(shí),需要對相應(yīng)的硬件配置電源管理模塊。第二十頁,共35頁。4.4.7總線配置第二十一頁,共35頁。

4.4.8網(wǎng)絡(luò)配置網(wǎng)絡(luò)是嵌入式系統(tǒng)與外部通信的主要方式。目前,許多嵌入式設(shè)備都具有網(wǎng)絡(luò)功能,為了使內(nèi)核支持網(wǎng)絡(luò)功能,需要對其做一些特殊的配置。第二十二頁,共35頁。4.4.9設(shè)備驅(qū)動(dòng)配置Linux內(nèi)核實(shí)現(xiàn)了一些常用的驅(qū)動(dòng)程序,如鼠標(biāo)、鍵盤、常見的U盤驅(qū)動(dòng)等。這些驅(qū)動(dòng)非常繁多,許多驅(qū)動(dòng)對于嵌入式系統(tǒng)來說,并不需要。在實(shí)際的應(yīng)用中,為了使配置的內(nèi)核高效和小巧,值需要配置主要的一些驅(qū)動(dòng)程序。第二十三頁,共35頁。4.4.10文件系統(tǒng)文件系統(tǒng)是操作系統(tǒng)的主要組成部分。Linux支持很多文件系統(tǒng),為了內(nèi)核的高效和小巧性,支持哪些文件系統(tǒng)都是可以配置。第二十四頁,共35頁。4.5嵌入式文件系統(tǒng)基礎(chǔ)知識(shí)對于嵌入式系統(tǒng)來說,除了一個(gè)嵌入式操作系統(tǒng)以外,還需要一個(gè)嵌入式文件系統(tǒng)來管理和存儲(chǔ)數(shù)據(jù)和程序。目前,嵌入式Linux操作系統(tǒng)支持很多種文件系統(tǒng),具體使用哪種文件系統(tǒng)需要根據(jù)存儲(chǔ)介質(zhì)、訪問速度、存儲(chǔ)容量等來選擇。本章將對嵌入式文件系統(tǒng)的基礎(chǔ)知識(shí)進(jìn)行簡單的介紹,首先需啊喲對嵌入式系統(tǒng)的存儲(chǔ)介質(zhì)有一定的了解。第二十五頁,共35頁。4.5.1嵌入式文件系統(tǒng)Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs、cramfs和nfs等,為了對各類文件系統(tǒng)進(jìn)行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(Virtual),為各類文件系統(tǒng)提供一個(gè)統(tǒng)一的操作界面和應(yīng)用編程接口。第二十六頁,共35頁。4.5.1嵌入式系統(tǒng)的存儲(chǔ)介質(zhì)Linux操作系統(tǒng)支持大量的文件系統(tǒng),在嵌入式領(lǐng)域,使用哪種文件系統(tǒng)需要根據(jù)存儲(chǔ)芯片的類型來決定。目前市場上,嵌入式系統(tǒng)主流的兩種存儲(chǔ)介質(zhì)是NOR和NANDFlash。Intel公司于1988年首先開發(fā)了NORFlash存儲(chǔ)器。NORFlash的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP,eXecuteInPlace),這樣應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫入和擦除速度大大影響到它的性能。第二十七頁,共35頁。4.5.2JFFS文件系統(tǒng)瑞典的AxisCommunications公司基于Linux2.0的內(nèi)核為嵌入式操作系統(tǒng)開發(fā)的JFFS文件系統(tǒng)。其升級(jí)版JFFS2是RedHat公司基于JFFS開發(fā)的閃存文件系統(tǒng),最初是針對RedHat公司的嵌入式產(chǎn)品eCos開發(fā)的嵌入式文件系統(tǒng),所以JFFS2也可以用在Linux,uCLinux等操作系統(tǒng)之中。JFFS的全稱是日志閃存文件系統(tǒng)。第二十八頁,共35頁。4.5.3YAFFS文件系統(tǒng)YAFFS是第一個(gè)專門為NANDFlash存儲(chǔ)器設(shè)計(jì)的嵌入式文件系統(tǒng),適用于大容量的存儲(chǔ)設(shè)備;并且是在GPL(GeneralPublicLicense)協(xié)議下發(fā)布的,可在其網(wǎng)站免費(fèi)獲得源代碼。YAFFS文件系統(tǒng)有4個(gè)優(yōu)點(diǎn),分別是速度快、占用內(nèi)存少、不支持壓縮和只支持NANDFlash存儲(chǔ)器。第二十九頁,共35頁。4.6構(gòu)建根文件系統(tǒng)當(dāng)內(nèi)核啟動(dòng)后,第一件要做的事情就是到存儲(chǔ)設(shè)備上找到根文件系統(tǒng)。根文件系統(tǒng)包含了使系統(tǒng)運(yùn)行的主要程序和數(shù)據(jù)。本節(jié)對系統(tǒng)運(yùn)行所必須的根文件系統(tǒng)進(jìn)行詳細(xì)的分析。第三十頁,共35頁。4.6.1根文件系統(tǒng)概述根文件系統(tǒng)是Linux操作系統(tǒng)運(yùn)行需要的一個(gè)文件系統(tǒng)。根文件系統(tǒng)被存儲(chǔ)在Flash存儲(chǔ)器中,存儲(chǔ)器被分為多個(gè)分區(qū),例如分區(qū)1、分區(qū)2、分區(qū)3等,如圖4.6所示。分區(qū)1一般存儲(chǔ)Linux內(nèi)核映象文件,在Linux操作系統(tǒng)中,內(nèi)核映象文件一般存儲(chǔ)在單獨(dú)的分區(qū)中。分區(qū)2存放根文件系統(tǒng),根文件系統(tǒng)中存放著系統(tǒng)啟動(dòng)必須的文件和程序。這些文件和程序包括:提供用戶界面的shell程序、應(yīng)用程序依賴的庫、配置文件等。第三十一頁,共35頁。4.6.2Linux根文件系統(tǒng)目錄結(jié)構(gòu)根文件系統(tǒng)以樹形結(jié)構(gòu)來組織目錄和文件的結(jié)構(gòu)。系統(tǒng)啟動(dòng)后,根文件系統(tǒng)被掛接到根目錄“/”上,這是根目錄下就包含了根文件系統(tǒng)的各個(gè)目錄和文件,例如/bin、/sbin、/mnt等。根文件系統(tǒng)應(yīng)該包含的目錄和文件遵循FHS標(biāo)準(zhǔn)(HierarchyStandard,文件系統(tǒng)層次標(biāo)準(zhǔn))。這個(gè)標(biāo)準(zhǔn)包含了根文件系統(tǒng)中最少應(yīng)該包含哪些目錄和文件,以及這些目錄和文件的組織原則。第三十二頁,共35頁。4.6.3BusyBox構(gòu)建根文件系統(tǒng)要使Linux操作系統(tǒng)能夠正常的運(yùn)行起來,至少需要一個(gè)內(nèi)核和根文件系統(tǒng)。根文件系統(tǒng)除了應(yīng)該以FHS標(biāo)準(zhǔn)的格式組織之外,還應(yīng)該包含一些必要的命令。這些命令提供給用戶使用,以使用戶能輕易的操作系統(tǒng)。第三十三頁,共35頁。4.7小結(jié)本章主要講解了怎樣構(gòu)建一個(gè)嵌入式操作系統(tǒng)的全過程。首先對Linux操作系統(tǒng)的特性做了簡單的介紹,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論