《嵌入式linux操作系統(tǒng)的組成與版本課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《嵌入式linux操作系統(tǒng)的組成與版本課件(40頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),#,1,概要,Linux,定義,Linux,種類,Linux,優(yōu)勢,如何選擇,linux,版本,Linux,內(nèi)核簡介,1概要Linux定義,2,Linux,的定義,Linux,一般是指,Linux,內(nèi)核、,Linux,系統(tǒng)、,Li nux,發(fā)行版。嚴(yán)格意義上說,Linux,是指由,Linus Torvalds,維護(hù)的并發(fā)布的內(nèi)核。它的代碼基只包括內(nèi)核而不包括其它方面的應(yīng)用。內(nèi)核提供系統(tǒng)核心服務(wù),如進(jìn)程管理,進(jìn)程的調(diào)度,虛擬文件系統(tǒng),內(nèi)存的管理等等。,嵌入式,Linux,,一般是指把,Linux,內(nèi)核移植到一個(gè)
2、專用嵌入式設(shè)備的,CPU,和主板上?,F(xiàn)在有很多公司提供嵌入式,Linux,解決方案。通常包括一個(gè)移植的內(nèi)核、嵌入式,Linux,的開發(fā)工具以及根據(jù)應(yīng)用需要裁減的應(yīng)用程序等,有時(shí)還提供實(shí)時(shí)擴(kuò)展的內(nèi)核。就大部分而言,嵌入式,Linux,和桌面,Linux,提供的,API,函數(shù)和內(nèi)核源代碼都是相同的。,開發(fā)工具主要包括源碼瀏覽器、交叉編譯器、調(diào)試器、,CVS,等項(xiàng)目管理軟件等等。這些工具一般都是裝在主機(jī)上。,2Linux的定義Linux一般是指Linux內(nèi)核、Linu,3,Linus Torvalds,(萊納斯,.,托瓦茨),托瓦茲,1969,年,12,月,28,日出生于芬蘭赫爾辛基市,芬蘭瑞典。人
3、現(xiàn)受聘于開放源代碼開發(fā)實(shí)驗(yàn),(OSDL:Open Source Development Labs,Inc),。,Linux,的誕生顯得充滿了偶然。萊納斯經(jīng)常要用他的終端仿真器(,Terminal Emulator,)去訪問大學(xué)主機(jī)上的新聞組和郵件,為了方便讀寫和下載文件,他自己編寫了磁盤驅(qū)動(dòng)程序和文件系統(tǒng),這些在后來成為了,Linux,第一個(gè)內(nèi)核的雛形。當(dāng)時(shí),他年僅,21,歲。,在自由軟件之父理查德,斯托曼(,Richard Stallman,)某些精神的感召下,萊納斯很快以,Linux,的名字把這款類,Unix,的操作系統(tǒng)加入到了自由軟件基金(,FSF,)的,GNU,計(jì)劃中,并通過,GPL,
4、的通用性授權(quán),允許用戶銷售、拷貝并且改動(dòng)程序,但你必須將同樣的自由傳遞下去,而且必須免費(fèi)公開你修改后的代碼。這說明,,Linux,并不是被刻意創(chuàng)造的,它完全是日積月累的結(jié)果,是經(jīng)驗(yàn)、創(chuàng)意和一小段一小段代碼的集合體。,3Linus Torvalds(萊納斯.托瓦茨),4,嵌入式,Linux,種類,嵌入式系統(tǒng)的劃分一般是根據(jù)使用,對(duì)象,進(jìn)行劃分,消費(fèi)類電子、工控設(shè)備等。為了更好的理解所設(shè)計(jì)的系統(tǒng),可以按照,尺寸,,,時(shí)間約束,,,網(wǎng)絡(luò),,,用戶交互,程度等因素劃分。,尺寸:小系統(tǒng),中等系統(tǒng),大系統(tǒng),小系統(tǒng),CPU,的性能比較低,,ROM2MB RAM4MB,中系統(tǒng),CPU,的性能中等,,ROM32
5、MB RAM64MB,左右,大系統(tǒng),CPU,性能高,存儲(chǔ)量大,時(shí)間約束:實(shí)時(shí),非實(shí)時(shí),網(wǎng)絡(luò)連接性,用戶交互,4嵌入式Linux種類嵌入式系統(tǒng)的劃分一般是根據(jù)使用對(duì)象進(jìn)行,5,嵌入式,Linux,種類,是否支持,MMU,不支持,MMU,:,ucLinux,,主要應(yīng)用在,ARM7,系列微處理系統(tǒng)中,如三星公司的,S3C44B0,,,S3C4510,等,無,MMU,,不支持虛地址,直接訪問內(nèi)存,所有程序中訪問的地址都是物理地址。,支持,MMU,:嵌入式,Linux,,主要應(yīng)用在,ARM9,系列微處理器系統(tǒng)中,如三星公司的,S3C2410,,,Intel,公司的,PXA255,等。,5嵌入式Linux
6、種類是否支持MMU,6,MMU,實(shí)現(xiàn)虛擬存儲(chǔ)空間,即,將虛擬存儲(chǔ)空間影射到實(shí)際物理存儲(chǔ)空間。,使編程人員不用考慮具體程序所放在物理存儲(chǔ)空間的具體位置和程序的大小。,存儲(chǔ)器訪問權(quán)限的控制,任務(wù)間通訊,對(duì)自己的內(nèi)存、堆棧等進(jìn)行保護(hù),只能通過管道、信號(hào)量、共享內(nèi)存等方式進(jìn)行通訊。,控制,Cache,。,6MMU實(shí)現(xiàn)虛擬存儲(chǔ)空間,7,Linux,的主要特點(diǎn),開放性,開放性是指系統(tǒng)遵循世界標(biāo)準(zhǔn)規(guī)范,特別是遵循開放系統(tǒng)互連(,OSI,)國際標(biāo)準(zhǔn)。,多用戶,多用戶是指系統(tǒng)資源可以被不同用戶各自擁有使用,即每個(gè)用戶對(duì)自己的資源(例如:文件、設(shè)備)有特定的權(quán)限,互不影響。,多任務(wù),多任務(wù)是現(xiàn)代計(jì)算機(jī)的最主要的一
7、個(gè)特點(diǎn)。它是指計(jì)算機(jī)同時(shí)執(zhí)行多個(gè)程序,而且各個(gè)程序的運(yùn)行互相獨(dú)立。,Linux,系統(tǒng)調(diào)度每一個(gè)進(jìn)程平等地訪問微處理器。,良好的用戶界面,Linux,向用戶提供了兩種界面:用戶界面和系統(tǒng)調(diào)用。,用戶界面可分為基于文本的命令行界面和圖形界面,作為人機(jī)交互界面。,系統(tǒng)調(diào)用給用戶提供編程時(shí)使用的界面。用戶可以在編程時(shí)直接使用系統(tǒng)提供的系統(tǒng)調(diào)用命令。,7Linux的主要特點(diǎn)開放性,8,Linux,的主要特點(diǎn),設(shè)備獨(dú)立性,指操作系統(tǒng)把所有外部設(shè)備統(tǒng)一當(dāng)作成文件來看待,只要安裝它們的驅(qū)動(dòng)程序,任何用戶都可以象使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。,豐富的網(wǎng)絡(luò)功能,完善的內(nèi)置網(wǎng)絡(luò)是,
8、Linux,的一大特點(diǎn)。,可靠的系統(tǒng)安全,Linux,采取了許多安全技術(shù)措施,包括對(duì)讀、寫進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計(jì)跟蹤、核心授權(quán)等。,良好的可移植性,可移植性是指將操作系統(tǒng)從一個(gè)平臺(tái)轉(zhuǎn)移到另一個(gè)平臺(tái)使它仍然能按其自身的方式運(yùn)行的能力。,8Linux的主要特點(diǎn)設(shè)備獨(dú)立性,9,嵌入式,Linux,優(yōu)勢,Linux,的費(fèi)用低;,Linux,的所有部分可以充分地定制;,Linux,可以運(yùn)行在低檔,便宜的硬件平臺(tái);,Linux,的功能是強(qiáng)大的;,Linux,對(duì)源代碼質(zhì)量有一個(gè)高標(biāo)準(zhǔn);,Linux,內(nèi)核非常小,而且緊湊;,Linux,有很好的支持;,Linux,有很多合適的工具;,9嵌入式Lin
9、ux優(yōu)勢Linux的費(fèi)用低;,10,Linux,的版本,內(nèi)核版本與發(fā)型版本,操作系統(tǒng)的,內(nèi)核版本,指的是在,Linus,本人領(lǐng)導(dǎo)下的開發(fā)小組開發(fā)出的系統(tǒng),內(nèi)核的版本,號(hào),如,2.4.x,2.6.x,。,有一些組織或商業(yè)廠家,將,Linux,系統(tǒng)的內(nèi)核與外圍應(yīng)用軟件和文檔包裝起來,并提供一些系統(tǒng)安裝界面和系統(tǒng)設(shè)定與管理工具,這樣就構(gòu)成了一個(gè),發(fā)行版本,,如,RedHat,紅帽子(,FeDora,斐徳拉)、,Debian,蝶變,(,UBuntu,烏本圖)。,10Linux的版本內(nèi)核版本與發(fā)型版本,11,如何選擇,Linux,的版本,DIY,自己動(dòng)手做一個(gè)滿足需要的,Linux,版本,選擇商用,Li
10、nux,版本、自由的、免費(fèi)的,授權(quán)和涉及到的授權(quán),是否滿足你的需要,是否有合適的開發(fā)工具,是否能夠提供足夠的支持,信譽(yù),文檔,11如何選擇Linux的版本DIY自己動(dòng)手做一個(gè)滿足需要的,12,嵌入式,Linux,發(fā)展現(xiàn)狀,RT-Linux,RT-Linux,是利用,Linux,進(jìn)行實(shí)時(shí)系統(tǒng)開發(fā)比較早的嘗試,是一種,硬實(shí)時(shí)操作系統(tǒng),。目前,RT-Linux,已成功應(yīng)用于航天飛機(jī)的空間數(shù)據(jù)采集、科學(xué)儀器測控,以及電影特技圖像處理等眾多領(lǐng)域。,RT-Linux,的原理是采用雙內(nèi)核機(jī)構(gòu),即將,Linux,的內(nèi)核代碼進(jìn)行少量修改,,將,Linux,任務(wù)以及,Linux,內(nèi)核本身作為實(shí)時(shí)內(nèi)核的一個(gè)優(yōu)先級(jí)最
11、低的任務(wù),即實(shí)時(shí)任務(wù)優(yōu)先級(jí)高于普通,Linux,任務(wù),,即在實(shí)時(shí)任務(wù)存在的情況下運(yùn)行實(shí)時(shí)任務(wù),否則才運(yùn)行,Linux,本身的任務(wù)。實(shí)時(shí)任務(wù)不同于,Linux,普通進(jìn)程,它是以,Linux,的內(nèi)核模塊,(Linux Loadable KernelModule,,,LKM),的形式存在的。需要運(yùn)行實(shí)時(shí)任務(wù)的時(shí)候,將這個(gè)實(shí)時(shí)任務(wù)的內(nèi)核模塊插入到內(nèi)核中去。,實(shí)時(shí)任務(wù)和,Linux,一般進(jìn)程之間的通信通過共享內(nèi)存或者,FIFO,通道來實(shí)現(xiàn)。,12嵌入式Linux發(fā)展現(xiàn)狀RT-Linux,13,RT-Linux,的工作原理圖,13RT-Linux的工作原理圖,14,uClinux,控制領(lǐng)域中的,linux
12、,系統(tǒng)。,它包含,linux,常用的,API,,內(nèi)核小于,512K,,保留了,linux,原有的高穩(wěn)定性、強(qiáng)大的網(wǎng)絡(luò)功能和卓越的文件系統(tǒng)支持功能等優(yōu)點(diǎn)。目前已支持的,CPU,芯片有,,Motorola,公司的,68K,系列、,PowerPC,系列以及,ARM,公司的系列芯片。官方網(wǎng)站,,www.uclinux.org,。,uClinux,最大特點(diǎn)就是不支持,MMU,。,uClinux,系統(tǒng)對(duì)內(nèi)存的訪問是直接的,即不需要經(jīng)過,MMU,,直接將地址發(fā)送到地址線上,所有程序訪問的都是實(shí)際的物理地址,這樣一方面減小了內(nèi)核的體積,另一方面又增強(qiáng)了系統(tǒng)的實(shí)時(shí)性能。但內(nèi)存空間得不到保護(hù),對(duì)于應(yīng)用開發(fā)者來說,
13、必須明白自己程序運(yùn)行的位置,以及保證不會(huì)破壞其它程序運(yùn)行空間以及系統(tǒng)的穩(wěn)定。,uClinux,也可以使用,RT-Linux,的實(shí)時(shí)補(bǔ)丁,以增強(qiáng)其實(shí)時(shí)性。,14uClinux控制領(lǐng)域中的linux系統(tǒng)。,15,Mizi linux,MIZI,韓國,MIZI,公司所公布的開放源代碼的免費(fèi)嵌入式操作系統(tǒng),arm-Linux,。大部分的,2410,系統(tǒng)板上都是采用的,mizi linux,。,15Mizi linuxMIZI,16,Linux,內(nèi)核簡介,Linux,文件系統(tǒng),Linux,內(nèi)核,Linux,的啟動(dòng),16Linux內(nèi)核簡介Linux文件系統(tǒng),17,Linux,主要目錄介紹,與,Window
14、s,一樣,在,Linux,中也是通過目錄來組織文件的。但不同的是,在,Linux,下,只有一個(gè)根目錄,,而不象,Windows,那樣一個(gè)分區(qū)一個(gè)根目錄。,17Linux主要目錄介紹與Windows一樣,在Linux,18,Linux,下常用的命令、工具,系統(tǒng)啟動(dòng)時(shí)要用到的程序、,系統(tǒng)內(nèi)核,引導(dǎo)配置文件等。,Linux,就是從這里啟動(dòng)的。,所有的設(shè)備文件。但不是具體的驅(qū)動(dòng)程序,而是一個(gè)訪問這些外部設(shè)備的端口。,系統(tǒng)管理時(shí)要用到的各種配置文件和子目錄,。,用戶主目錄,用戶獨(dú)立的空間,非標(biāo)準(zhǔn)目錄,內(nèi)空,,但決不能刪,系統(tǒng)管理員的系統(tǒng)管理程序,一個(gè)虛擬的文件系統(tǒng),可用來訪問到內(nèi)存里的內(nèi)容。,包含許多被
15、,/bin/,和,/sbin/,中的程序使用的庫文件,大多數(shù)情況下是空的,用來保存異常時(shí)候的丟失文件,超級(jí)用戶,(,管理員,),的專用目錄,外部設(shè)備的掛接點(diǎn),通常用,cdrom,與,floppy,兩個(gè)子目錄,通常用來安裝各種軟件的地方。,/usr/src,、,/usr/bin,系統(tǒng)運(yùn)行時(shí)的各種臨時(shí)文件,18Linux下常用的命令、工具系統(tǒng)啟動(dòng)時(shí)要用到的程序、系,19,Linux,的內(nèi)核結(jié)構(gòu),Linux,內(nèi)核主要由,5,個(gè)子系統(tǒng)組成:,進(jìn)程調(diào)度,進(jìn)程間通訊,內(nèi)存管理,虛擬文件系統(tǒng),網(wǎng)絡(luò)接口,19Linux的內(nèi)核結(jié)構(gòu)Linux內(nèi)核主要由5個(gè)子系統(tǒng)組成:,20,進(jìn)程調(diào)度,(Process Sched
16、uling),進(jìn)程:程序執(zhí)行的一個(gè)范例。,進(jìn)程的,4,要素:,一段供進(jìn)程執(zhí)行的程序,該程序可以被多個(gè)進(jìn)程執(zhí)行;,獨(dú)立的內(nèi)核堆棧;,進(jìn)程控制快,;,獨(dú)立的存儲(chǔ)空間,;,pid_t fork(void),函數(shù):生成進(jìn)程。,void main()for(;)fork();,Exit(),:退出進(jìn)程。,20進(jìn)程調(diào)度(Process Scheduling)進(jìn)程,21,進(jìn)程與線程,進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上的一次運(yùn)行活動(dòng),進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個(gè)獨(dú)立單位,.,線程是進(jìn)程的一個(gè)實(shí)體,是,CPU,調(diào)度和分派的基本單位,它是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位,.,線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在運(yùn)行中必不可少的資源,(,如程序計(jì)數(shù)器,一組寄存器和棧,),但是它可與同屬一個(gè)進(jìn)程的其他的線程共享進(jìn)程所擁有的全部資源,.,一個(gè)線程可以創(chuàng)建和撤銷另一個(gè)線程,;,同一個(gè)進(jìn)程中的多個(gè)線程之間可以并發(fā)執(zhí)行,需要注意的是:在應(yīng)用程序中使用多線程不會(huì)增加,CPU,的數(shù)據(jù)處理能力。,21進(jìn)程與線程進(jìn)程是具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合上,22,進(jìn)程調(diào)度,進(jìn)程的狀態(tài),運(yùn)行態(tài),r,、