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

下載本文檔

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

文檔簡介

嵌入式操作系統(tǒng)

陳天洲、陳文智

實(shí)時(shí)性簡介

對于什么是實(shí)前系盛POSIX1003.b作了

,這樣的定義:指系統(tǒng)能夠在限定的響應(yīng)時(shí)

間內(nèi)提供所需水平的服務(wù)

;實(shí)時(shí)系統(tǒng)根據(jù)其對于實(shí)時(shí)性要求的不同,

-可以分為軟實(shí)時(shí)和硬實(shí)時(shí)兩種類型

?一個(gè)計(jì)算機(jī)系統(tǒng)為了提供對于實(shí)時(shí)性的支

持,它的操作系統(tǒng)必須對于CPU和其他資源

進(jìn)行有效的調(diào)度和管理,即實(shí)時(shí)調(diào)度

實(shí)時(shí)調(diào)度分類

各種實(shí)時(shí)操作系統(tǒng)的實(shí)時(shí)調(diào)度算法從調(diào)度策略上

可以分為如下三種類別:基于優(yōu)先級的調(diào)度算法

.(Priority-drivenscheduling-PD)、基于CPU使用

二比例的共享式的調(diào)度算法(Share-driven

scheduling-SD)>以及基于時(shí)間的進(jìn)程調(diào)度算法

"(Time-drivenscheduling-TD)

?從調(diào)度方式上來講可以分為:可搶占、不可搶占;

從時(shí)間片來分:固定時(shí)間片、可變時(shí)間片

實(shí)時(shí)性改造

對操作系統(tǒng)實(shí)時(shí)性的擴(kuò)展可以從兩方面進(jìn)

:行:向外擴(kuò)展和向上擴(kuò)展

:向外擴(kuò)展是從范圍上擴(kuò)展,讓實(shí)時(shí)系統(tǒng)支

,持的范圍更廣,支持的設(shè)備更多

:向上擴(kuò)展是擴(kuò)充操作系統(tǒng)內(nèi)核,從功能上

擴(kuò)充系統(tǒng)的實(shí)時(shí)處理

Linux的實(shí)時(shí)性

一般的通用linux已經(jīng)具備一定的實(shí)時(shí)性一

但無法滿足硬實(shí)時(shí)的要求

1-運(yùn)行于linux內(nèi)核空間的進(jìn)程(核心態(tài))不能被

;搶先

--在linux中,中斷有時(shí)候會出于保護(hù)臨界區(qū)操作

的目的而被屏蔽

-通用linux的時(shí)間滴答長度為10ms(硬件時(shí)鐘頻

率100HZ),但是這對于時(shí)間精度要求很高

(微秒級)的實(shí)時(shí)進(jìn)程來說是不夠的

嵌入式Linux的實(shí)時(shí)性改造

:可以引入一個(gè)雙內(nèi)核結(jié)構(gòu)

r對Linux內(nèi)核代碼作一些修改Linux本身的任務(wù)以

,及Linux內(nèi)核本身作為一個(gè)優(yōu)先級最低的任務(wù),而

?實(shí)時(shí)任務(wù)作為優(yōu)先級最高的任務(wù)以Linux的內(nèi)核模

^(LoadableKernelModule,LKM)的形式存在的

?資源核方法:這種方法是為解決傳統(tǒng)實(shí)時(shí)操作系

統(tǒng)中固定優(yōu)先級搶占式調(diào)度策略的局限性而產(chǎn)生

Linux2.6內(nèi)核實(shí)時(shí)性分析

2.6中內(nèi)核自身是可搶占的,它允許自身在執(zhí)

行任務(wù)時(shí)被打斷

2.6版本的Linux內(nèi)核使用了由IngoMolnar

開發(fā)的新的調(diào)度器算法,稱為0(1)算法

RTLinux硬實(shí)時(shí)操作系統(tǒng)簡介

IRTLinux是一硬實(shí)時(shí)操作系統(tǒng)

實(shí)現(xiàn)了一個(gè)微內(nèi)核的小的實(shí)時(shí)操作系統(tǒng),而將普

通Linux系統(tǒng)作為一個(gè)該操作系統(tǒng)中的一個(gè)低優(yōu)先

二級的任務(wù)來運(yùn)行

普通Linux系統(tǒng)中的任務(wù)可以通過FIFO和實(shí)時(shí)任務(wù)

進(jìn)行通信

?通過軟件來模擬硬件的中斷控制器

?RT-Linux通過將系統(tǒng)的實(shí)時(shí)時(shí)鐘設(shè)置為單次觸發(fā)

狀態(tài),可以提供十幾個(gè)微秒級的調(diào)度粒度

RTLiiwx內(nèi)核結(jié)構(gòu)

啟動(dòng)優(yōu)化基本技術(shù)

一、固化各種不可擴(kuò)展硬件的設(shè)置,盡量標(biāo)準(zhǔn)化

可擴(kuò)展設(shè)備的接口,節(jié)約設(shè)備檢測時(shí)間。

二、LazyLoading,也即不加載當(dāng)前非必需的模

,塊,這些模塊可以在啟動(dòng)后待機(jī)時(shí)間內(nèi)加載,或

二者在具體用到之后再加載,把啟動(dòng)時(shí)間打散,從

-而縮短對用戶來說至關(guān)重要的反應(yīng)時(shí)間

(RespondingTime)。

?三、任務(wù)并行化,很多系統(tǒng)在啟動(dòng)任務(wù)時(shí),是順

序執(zhí)行,按部就班。為了減少啟動(dòng)時(shí)間,我們可

以考慮任務(wù)的并行化,以減少啟動(dòng)時(shí)間的消耗。

嵌入式Linux啟動(dòng)過程分析

在內(nèi)核運(yùn)行之前需要系統(tǒng)引導(dǎo)程序(Bootloader)完

成加載內(nèi)核和一些輔助性的工作,然后跳轉(zhuǎn)到內(nèi)

核代碼的起始地址并執(zhí)行。

整個(gè)armlinux內(nèi)核的啟動(dòng)可分為三個(gè)階段:第一

階段主要是進(jìn)行cpu和體系結(jié)構(gòu)的檢查、cpu本身

的初始化以及頁表的建立等;第二階段主要是對

系統(tǒng)中的一些基礎(chǔ)設(shè)施進(jìn)行初始化;最后則是更

高層次的初始化

嵌入式Linux的啟動(dòng)優(yōu)化

;系統(tǒng)任務(wù)裁減

:-裁減不適合本系統(tǒng)的部分任務(wù)

:系統(tǒng)任務(wù)并行

[-明確任務(wù)依賴關(guān)系

-—任務(wù)并行啟動(dòng)(make-j工具的使用)

電源管理綜述

f現(xiàn)在Linux中,最主要的電源管理方案主要

I有三種:APM、ACPI、DPM

■傳統(tǒng)的APM(AdvancedPowerManagement)

?是一種基于bios的電源管理標(biāo)準(zhǔn)

ACPI(AdvancedConfigurationandPower

Interface),它主要是將電源管理的主要執(zhí)

行者由bios轉(zhuǎn)換成為操作系統(tǒng),這樣可以提

供更大的靈活性以及可擴(kuò)展性

DPM簡介

DPM—DynamicPowerManagement

在面向Linux的DPM架構(gòu)中,內(nèi)核中的DPM

子系統(tǒng)負(fù)責(zé)維持整個(gè)系統(tǒng)的電源狀態(tài)

并把DPM系統(tǒng)的不同電源管理模塊聯(lián)系在

一起。.

?可以把DPM看成是為驅(qū)動(dòng)程序、中間件和

應(yīng)用程序提供服務(wù)的元素

DPM框架

存儲管理

多程序模型

-這是沒有硬件地址轉(zhuǎn)換的內(nèi)存管理模型。即使

沒有硬件地址轉(zhuǎn)換功能支持,多個(gè)程序也可以

共享相同的物理地址

具有地址轉(zhuǎn)換硬件的內(nèi)存管理模型

-應(yīng)用程序使用的是虛擬地址,CPU實(shí)際執(zhí)行程

序所示用的是物理地址,從虛擬地址到物理地

址的轉(zhuǎn)換需要操作系統(tǒng)和MMU硬件的參與

高速緩沖(Cache)簡介

BufferCache

PageCache

擘SwapCache

HardwareCache

虛擬存儲功能

7巨大的尋址空間一

內(nèi)存映射

公平的物理內(nèi)存分配

富P共享虛擬內(nèi)存

主存與輔存層次信息傳送

頁式虛擬存儲器

段式虛擬存儲器

段頁式虛擬存儲器

Linux存儲管理

Linux使用了上述第二種存儲管理模型。

應(yīng)用程序在標(biāo)準(zhǔn)Linux中的加載使用了“按

需”分頁的策略

Linux的內(nèi)存管理采取的是分頁機(jī)制

Linux虛擬內(nèi)存的實(shí)現(xiàn),需要幾種不同的機(jī)

制實(shí)現(xiàn):地址映射機(jī)制、內(nèi)存的分配與

機(jī)、請求頁機(jī)制、交換機(jī)制、內(nèi)存共享

O

地址映射機(jī)制

地址映射機(jī)制,主要完成主存、輔存和虛存

之間的關(guān)聯(lián)

Linux采用一系列的數(shù)據(jù)結(jié)構(gòu)和一個(gè)硬件緩

寸存(TLB)來實(shí)現(xiàn)地址映射機(jī)制

尊Linux內(nèi)核的映射機(jī)制被設(shè)計(jì)成三層,在頁

面目錄和頁表之間增設(shè)了一層“中間目錄”

內(nèi)存的分配與回收

最近被執(zhí)行過的地址轉(zhuǎn)換結(jié)果會被保留在

MMU的轉(zhuǎn)換后備緩存(TLB)中

頁分配使用2的幕數(shù)大小的塊

Linux使用Buddy算法有效地分配和回收頁

Buddy算法

這個(gè)算法首先找它請求大小的內(nèi)存頁塊,它跟蹤

free_area數(shù)據(jù)結(jié)構(gòu)中的list單元隊(duì)列中的空閑頁的

鏈表

如果找到的頁塊大于請求的頁塊,則該塊將被分

開成為合適大小的塊

?因?yàn)樗械膲K都是2的幕次的頁數(shù)組成,所以這個(gè)

分割的過程比較簡單,你只需要將它平分就可以

了??臻e的塊則放到適當(dāng)?shù)年?duì)列,而分配的頁塊

則返回給調(diào)用者。

pCLinux存儲管理

其設(shè)計(jì)針對沒有MMU的處理器,不能使用處理器

的虛擬內(nèi)存管理技術(shù)

KLinux仍采用存儲器的分頁管理,系統(tǒng)在啟動(dòng)時(shí)

把實(shí)際存儲器進(jìn)行分頁

沒有MMU管理,所以實(shí)際上pCLinux采用實(shí)存儲

罌管理策略(realmemeorymanagement)

?IJCLinux系統(tǒng)對于內(nèi)存的訪問是直接

二個(gè)進(jìn)程在執(zhí)行前,系統(tǒng)必須為進(jìn)程分配足夠的

連續(xù)地址空間,然后全部載入主存儲器的連續(xù)空

間中

嵌入式系統(tǒng)的文件系統(tǒng)管理

:嵌入式系統(tǒng)的物理存儲

|-Flash存儲器由于其安全性高,存儲密度大,體

S積小,價(jià)格相對便宜,是嵌入式領(lǐng)域中最受歡

r迎的一類存儲器

三嵌入式系統(tǒng)中使用Rash存儲器,通常有兩

一種使用方式

一只進(jìn)行只讀訪問

-在系統(tǒng)運(yùn)行的時(shí)候既需要進(jìn)行讀操作,也需要

進(jìn)行寫操作。

存儲設(shè)備的管理方式

直接訪問Rash

一自己編寫F2sh的驅(qū)動(dòng)程序(即基本操作函數(shù))

IFlashDisk

三-有些Flash存儲設(shè)備上附帶了控制電路,并且提

二供了IDE的接口。這些設(shè)備通常都是模擬了PC

中的IDE之類設(shè)備的接口

?專用于Flash的文件系統(tǒng)

-JFFS等文件系統(tǒng),目前已經(jīng)非常成熟,并有了

成功的應(yīng)用

嵌入式文件系統(tǒng)的類型

RAMDISK

-在RAMDISK文件系統(tǒng)中,當(dāng)系統(tǒng)啟動(dòng)的時(shí)候,會把外存中的映像

£文件加壓縮到內(nèi)存中,形成RAMDISK環(huán)境,便可以開始運(yùn)行程序

ETo這種文件系統(tǒng)最大的問題就是,運(yùn)行的程序的代碼在內(nèi)存和

|外存都占據(jù)了空間

cramfs

-cramfs也是一種壓縮式的文件系統(tǒng)。但是它不是一次性地把所有

,內(nèi)容都解壓縮到內(nèi)存中,而所需數(shù)據(jù)的位置,計(jì)算數(shù)據(jù)在cramfs

一的位置,然后把所需的部分解壓縮到內(nèi)存中,再通過訪問內(nèi)存來

得到所需的數(shù)據(jù)。由于這個(gè)整個(gè)過程,包括內(nèi)存中數(shù)據(jù)的位置都

是由cramfs文件系統(tǒng)自己來維護(hù)。所以對開發(fā)人員是透明的,也

節(jié)省了空間。

?romfs

-romfs是一種只讀文件系統(tǒng),占用的系統(tǒng)資源也比較小。在romfs

中,文件系統(tǒng)的管理代碼占用的空間也比較小,但是romfs的文件

訪問權(quán)限和屬主這些信息尚沒有完全實(shí)現(xiàn)。此外,由于romfs文件

系統(tǒng)是只讀的,所以可以做得很小。

日志文件系統(tǒng)

在嵌入式設(shè)備斷電可能性比一般的計(jì)算機(jī)

的可能性要大

日志文件系統(tǒng)相對于普通文件系統(tǒng),主要

的變化就是增加了日志記錄

JFFS與JFFS2文件系統(tǒng)

2000年Axis公司發(fā)布了他們開發(fā)的日志式

Flash文件系統(tǒng)

JFFS文件系統(tǒng)是開放源代碼的文件系統(tǒng),

可以說是專門用于嵌入式Linux等系統(tǒng)的

JFFS是直接在Flash設(shè)備上實(shí)現(xiàn)的文件系統(tǒng)

?JFFS2沒有為Rash設(shè)備專門設(shè)計(jì)一個(gè)轉(zhuǎn)換層

來模擬普通的文件系統(tǒng),而是直接對日ash

進(jìn)行操作

輸入輸出與設(shè)備管理概述

1/0設(shè)備抽象

I/O調(diào)度

緩沖技術(shù)

高速緩存

?錯(cuò)誤處理

?性能與優(yōu)化

■/0設(shè)備抽象

不同的I/O設(shè)備,它們的讀寫方式不盡相同

對于應(yīng)用程序來說最好是所有的設(shè)備都可

以通過一個(gè)相同的界面來進(jìn)行讀寫操作

需要通過一套機(jī)制對某一類相似的I/。設(shè)備

一的具體操作細(xì)節(jié)進(jìn)行封裝

?在操作系統(tǒng)中是通過設(shè)備驅(qū)動(dòng)來實(shí)現(xiàn)的

I/O設(shè)備抽象層次結(jié)構(gòu)

操作系統(tǒng)內(nèi)核

r一

操作系統(tǒng)內(nèi)核I/O子系統(tǒng)

-E軟

■LCD馬區(qū)動(dòng)觸摸屏驅(qū)..PCIbus驅(qū)

動(dòng)動(dòng)

LCD控制觸摸屏控PCIbus控

器制器制器

LCD觸摸屏PCIbus

1/0調(diào)度

i/o調(diào)度指的是對一組i/o請求進(jìn)行安排,決

定它們的執(zhí)行順序

操作系統(tǒng)一般會把對某個(gè)設(shè)備的I/O請求放

,入那個(gè)設(shè)備的請求隊(duì)列中去

彳「然后由I/O調(diào)度器對這些請求進(jìn)行重新安排

以改進(jìn)系統(tǒng)的整體性能

緩沖技術(shù)

引入緩沖技術(shù),主要有以下三個(gè)原因:

-一、是協(xié)調(diào)數(shù)據(jù)產(chǎn)生設(shè)備(producer)和數(shù)據(jù)接收設(shè)備

|(consumer)的速度

:-二、是協(xié)調(diào)數(shù)據(jù)產(chǎn)生設(shè)備和數(shù)據(jù)接收設(shè)備的數(shù)據(jù)大小

:-三、是因?yàn)闉榱吮WC寫入外設(shè)的數(shù)據(jù)的一致性,要先

把數(shù)據(jù)轉(zhuǎn)移到內(nèi)核空間

?在緩沖技術(shù)(Bu仟ering)中,兩個(gè)設(shè)備之間或者

二個(gè)設(shè)備與一個(gè)應(yīng)用程序之間需要傳輸數(shù)據(jù)時(shí),

這些數(shù)據(jù)會先保存在內(nèi)存中,這個(gè)內(nèi)存區(qū)域稱為

緩沖區(qū)

局速緩存

高速緩存(Caching)是指把低速存儲器的

部分?jǐn)?shù)據(jù)保存在高速存儲器中以提高系統(tǒng)

性能的技術(shù)

緩沖技術(shù)跟緩存技術(shù)的區(qū)別:緩沖塊中的

數(shù)據(jù)是獨(dú)一無二僅此一份的,而緩存中的

數(shù)據(jù)是低速存儲器中的數(shù)據(jù)的拷貝。

錯(cuò)誤處理

使用保護(hù)內(nèi)存

;I/O設(shè)備和傳輸操作在很多情況下都會發(fā)生

?錯(cuò)誤,有的是暫時(shí)性的,有的是永久性的

「操作系統(tǒng)的錯(cuò)誤提示能力相對硬件設(shè)備來

說一般都比較低

?一個(gè)硬件設(shè)備可以提供非常豐富和詳細(xì)的

出錯(cuò)信息,但是操作系統(tǒng)往往會忽略其中

的很多信息

/0性能對系統(tǒng)性能的影響

首先它需要CPU執(zhí)行設(shè)備驅(qū)動(dòng)程序,并對I/O請求

進(jìn)行調(diào)度

,其次,I/O操作造成的程序執(zhí)行上下文切換

’(contextswitch)也加重了CPU和緩存的負(fù)擔(dān)

;并且I/O是中斷操作的主要組成部分,內(nèi)核的中斷

處理性能稍有不足就會在I/O操作中暴露無遺

?最后,I/O操作需要頻繁的在設(shè)備控制器與內(nèi)存、

內(nèi)存中用戶空間與內(nèi)核空間緩沖區(qū)之間拷貝數(shù)據(jù)

性能與優(yōu)化

減少上下文切換次數(shù)。

減少數(shù)據(jù)在內(nèi)存與設(shè)備之間復(fù)制的次數(shù)。

通過使用更大的數(shù)據(jù)傳輸單元、智能化的設(shè)備控

制器和輪循(如果空等可以有效減少)等手段來

減少中斷次數(shù)。

把一部分I/O處理工作轉(zhuǎn)移到硬件設(shè)備中去,使得

外設(shè)能夠跟CPU形成一定的并行處理,分擔(dān)CPU的

任務(wù)。

?在CPU、存儲器、總線和I/O之間平衡工作量。因

為任何一部分的過載都會導(dǎo)致其余部分的等待,

從而造成整體性能下降。

構(gòu)件化操作系統(tǒng)

傳統(tǒng)操作系統(tǒng)及視窗操作系統(tǒng)

I因特網(wǎng)時(shí)代應(yīng)用模型的演變

硬件設(shè)備即插即用

,體系結(jié)構(gòu)由固定變?yōu)殪`活

r聲,瀏覽器成為統(tǒng)一的用戶界面

-行.操作系統(tǒng)對XML的支持

一?服務(wù)器■中間件■用戶”編程模型

?操作系統(tǒng)與虛擬機(jī)

?基于中間件技術(shù)的嵌入式操作系統(tǒng)

?基于中間件技術(shù)的操作系統(tǒng)的技術(shù)優(yōu)勢

傳統(tǒng)操作系統(tǒng)及視窗操作系統(tǒng)

:因特網(wǎng)時(shí)代以前的傳統(tǒng)應(yīng)用軟件,大多是

I靜態(tài)鏈接而成

I由某一家公司提供,所有功能都集成在同

-一個(gè)軟件中,一旦鏈接之后就不可能替換

.其中的軟件模塊

?那時(shí)的操作系統(tǒng)有兩大功能:首先它向用

戶提供一個(gè)分時(shí)系統(tǒng);其次是向用戶提供

一組函數(shù)庫

因特網(wǎng)時(shí)代應(yīng)用模型的演變

程序作為動(dòng)態(tài)構(gòu)件自動(dòng)加載運(yùn)行,而不需

要由用戶去逐個(gè)啟動(dòng)。

構(gòu)件支持腳本語言控制,多個(gè)構(gòu)件可以相

互操作,交換信息。

■以瀏覽器為交互式操作界面,既便于有戶

掌握,又為程序開發(fā)提供了統(tǒng)一標(biāo)準(zhǔn)。

?網(wǎng)絡(luò)化資源管理,程序自動(dòng)下載運(yùn)行,不

需要用戶介入。

因特網(wǎng)時(shí)代應(yīng)用模型的演變

?OMF

圖表連續(xù)圖像解壓)音頻

來自不同軟件開發(fā)商的軟件模塊動(dòng)態(tài)組織起來運(yùn)行

硬件設(shè)備即插即用

因特網(wǎng)時(shí)代要求硬件設(shè)備能即插即用

解決方案只能是在驅(qū)動(dòng)程序?qū)ο笾屑尤敕菆?zhí)行的描述信息,

這種描述信息就是通常所說的元數(shù)據(jù)(metadata),它可

以“告訴”訪問者它有哪些特性和功能。

:元數(shù)據(jù)可以是XML形式、二進(jìn)制或兩者兼有。我們知道對

象加上元數(shù)據(jù)就是構(gòu)件。

?操作系統(tǒng)可以根據(jù)構(gòu)件中的元數(shù)據(jù)生成中間件。這種在內(nèi)

核里動(dòng)態(tài)生成的中間件是連接驅(qū)動(dòng)構(gòu)件與用戶程序的“橋

梁”,

?而這“橋梁”是內(nèi)核根據(jù)硬件設(shè)備的元數(shù)據(jù)動(dòng)態(tài)生成的,此

時(shí)的新型操作系統(tǒng)仍然是“以不變應(yīng)萬變”

體系結(jié)構(gòu)由固定變?yōu)殪`活

操作系統(tǒng)體系結(jié)構(gòu)大致分為兩種:大內(nèi)核

*(MonolithicKernel)和微內(nèi)核(MicroKernel)

I大內(nèi)核操作系統(tǒng)將圖形、設(shè)備驅(qū)動(dòng)、文件系統(tǒng)等

£全部功能在操作系統(tǒng)內(nèi)核中實(shí)現(xiàn),運(yùn)行在內(nèi)核狀

E態(tài)、同一地址空間。優(yōu)點(diǎn)是減少進(jìn)程間通信和狀

p態(tài)切換的系統(tǒng)開銷,獲得較好的運(yùn)行效率。缺點(diǎn)

二是內(nèi)核龐大,占用資源多,剪裁不易,并且一旦

一個(gè)別驅(qū)動(dòng)程序運(yùn)行出錯(cuò),就會導(dǎo)致整個(gè)系統(tǒng)崩潰,

穩(wěn)定性、安全性不好。

?微內(nèi)核在內(nèi)核中只實(shí)現(xiàn)那些必須由內(nèi)核實(shí)現(xiàn)的基

本功能,而將圖形、文件系統(tǒng)、設(shè)備驅(qū)動(dòng)、通訊

等功能放在內(nèi)核之外,作為系統(tǒng)服務(wù)來提供相應(yīng)

的功能,這些程序在用戶狀態(tài)下運(yùn)行。這樣做的

優(yōu)點(diǎn)是有一個(gè)精煉的內(nèi)核,便于剪裁、移植。

靈活內(nèi)核技術(shù)

應(yīng)用軟件應(yīng)用軟件用戶狀態(tài)

_____.、

e用戶狀態(tài)

具旭II,;三宴

,U1J

內(nèi)根狀態(tài)

.ezOOM物件支情》m£S!I

內(nèi)存管理一j心.蘇方核優(yōu)態(tài)

硬麗由索層

硬件

瀏覽器成為統(tǒng)一的用戶界面

HTML

網(wǎng)頁可足置幻

(1

0@

S

?幺

基于

SKIN腳本語

技術(shù)的言控制

畫面

操作系統(tǒng)對XML的支持

XML文本描述語言的廣泛使用將是因特網(wǎng)時(shí)

代操作系統(tǒng)的另一明顯標(biāo)志

:XML的每個(gè)標(biāo)簽(tag)都可以由用戶定義

XML兼顧了對于人的可讀性和計(jì)算機(jī)的處理

效率

?XML已經(jīng)成了因特網(wǎng)信息交換的標(biāo)準(zhǔn),未來

的操作系統(tǒng)內(nèi)核會對XML進(jìn)行最有效的支持

因特網(wǎng)時(shí)代操作系統(tǒng)技術(shù)的發(fā)展

因特網(wǎng)時(shí)代摒作系統(tǒng)發(fā)展的技術(shù)背景

口網(wǎng)絡(luò)時(shí)代應(yīng)用

重點(diǎn)的轉(zhuǎn)移:基于桌面應(yīng)用基于網(wǎng)絡(luò)應(yīng)用

□用戶界面:圖形窗口瀏覽基

□應(yīng)用程序:I用尸安裝俎件、自動(dòng)颼

口操作系統(tǒng)的面向桌面系統(tǒng)面向網(wǎng)絡(luò)系統(tǒng)

發(fā)展趨勢:定型,固定應(yīng)EE

(MSWindows)(MicrosoftNet)

□面向網(wǎng)絡(luò)的關(guān)穰技術(shù):縈件的組件技術(shù)(OOM)

服務(wù)器■中間件■用戶”編程模型

操作系統(tǒng)與虛擬機(jī)

操作系統(tǒng)可以作為虛擬機(jī),直接提供中間

件的運(yùn)行環(huán)境

操作系統(tǒng)可以對應(yīng)用程序構(gòu)件進(jìn)行各種各

樣的控制,使得封裝好的構(gòu)件能夠適應(yīng)不

一同的運(yùn)行環(huán)境和用戶要求

二?操作系統(tǒng)利用中間件技術(shù)支持和控制應(yīng)用

程序的運(yùn)行環(huán)境,就形成了因特網(wǎng)時(shí)代操

作系統(tǒng)的關(guān)鍵技術(shù)

基于中間件技術(shù)的嵌入式操作系統(tǒng)

,■鶴翻翻*件技術(shù)’提供構(gòu)件運(yùn)行的虛擬機(jī)環(huán)

構(gòu)件的互操作性定義了編程語言無關(guān)、可擴(kuò)展、跨平臺的

二蕭二進(jìn)漱制標(biāo)薪準(zhǔn)a。nr相互作用通過一組稱作接口

等提供接口描述語言CDL,為服務(wù)器中新功能的實(shí)現(xiàn)提供了

?_方便,如腳本語言調(diào)用構(gòu)件對象函數(shù)等

運(yùn)行環(huán)境(虛擬機(jī))可以在操作系統(tǒng)上自動(dòng)生成中間件

(代理杓件),提供構(gòu)件定位、調(diào)管理、中間件自動(dòng)

生成、構(gòu)柞通信(進(jìn)程內(nèi)、跨進(jìn)程、網(wǎng)絡(luò)等不同運(yùn)行環(huán)

境)等機(jī)制

?件技術(shù)保證了軟件互操作性、版本升級獨(dú)立性和運(yùn)行環(huán)境

透心明工,吐,提供了提高系統(tǒng)安全、軟件協(xié)同開發(fā)、軟件容錯(cuò)、

可靠性、軟柞復(fù)用、軟件升級的有效手段

基于中間件技術(shù)的操作系統(tǒng)的技術(shù)

優(yōu)勢

提供系統(tǒng)的安全保護(hù)機(jī)制

硬件設(shè)備的即插即用

穩(wěn)定、健壯的系統(tǒng)特性

靈活內(nèi)核操作系統(tǒng)體系結(jié)構(gòu)

嵌入式Linux的特點(diǎn)

專用嵌入式實(shí)時(shí)操作系統(tǒng)嵌入式Linux操作系統(tǒng)

版權(quán)費(fèi)每生產(chǎn)一件產(chǎn)品需交納一份免費(fèi)

版權(quán)費(fèi)

購買費(fèi)用數(shù)十萬元(RMB)免費(fèi)

技術(shù)支持由開發(fā)商獨(dú)家提供有限的技全世界的自由軟件開發(fā)者提供支

術(shù)支持持

網(wǎng)絡(luò)特性_另加數(shù)十萬元(RMB)購買免費(fèi)且性能優(yōu)異

軟件移值難(因?yàn)槭欠忾]系統(tǒng))易,代碼開放(有許多應(yīng)用軟件支

持)

應(yīng)用產(chǎn)品開發(fā)周期長,因?yàn)榭蓞⒖嫉拇a有限短,新產(chǎn)品上市迅速,因?yàn)橛性S多I

公開的代碼可以參考和移植

實(shí)時(shí)性能好須改進(jìn),可用PT_Linux等模塊彌

補(bǔ)

穩(wěn)定性_______________W___________較好,但在高性能系統(tǒng)中須改進(jìn)

主流嵌入式Linux系統(tǒng)

fpCIinux

BEmbedix

.RTLinux

tRTAI

?MontaVistaLinux

?、嵌入式Linux的定義

嵌入式Linux(EmbededLinux)是指對Linux

經(jīng)過小型化裁剪后,能夠固化在容量只有

幾十萬字節(jié)或幾十億字節(jié)的存儲器芯片或

單片機(jī)中,應(yīng)用于特定嵌入式場合的專用

Linux操作系統(tǒng)

嵌入式Linux的優(yōu)勢

Linux系統(tǒng)是層次結(jié)構(gòu)且內(nèi)核完全開放

:強(qiáng)大的網(wǎng)絡(luò)支持功能

Linux具備一整套工具鏈,容易自行建立嵌

入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并

一且可以跨越嵌入式系統(tǒng)開發(fā)中仿真工具的

障礙

?Linux具有廣泛的硬件支持特性

嵌入式Linux面臨的挑戰(zhàn)

-內(nèi)核不支持事件優(yōu)先級和搶占實(shí)時(shí)特性

-對Linux實(shí)時(shí)性的擴(kuò)展可以從兩方面進(jìn)行:

‘一?向外擴(kuò)展(讓實(shí)時(shí)系統(tǒng)支持的范圍更廣,支持的設(shè)

備更多)

?向上擴(kuò)展(擴(kuò)充Linux內(nèi)核,從功能上擴(kuò)充Linux的

實(shí)時(shí)處理和控制系統(tǒng))

RT-Linux的做法

-Linux本身的任務(wù)以及Linux內(nèi)核本身作為一個(gè)

優(yōu)先級最低的任務(wù)

-實(shí)時(shí)任務(wù)作為優(yōu)先級最高的任務(wù)

—實(shí)時(shí)任務(wù)以Linux的內(nèi)核模塊(LoadableKernel

Module,LKM)的形式存在

2、改變Linux內(nèi)核的體系結(jié)構(gòu)

Monolithic內(nèi)核體系

MicroKernel體系

量執(zhí)行效率

°內(nèi)核的體積

?升級、維護(hù)和移植

微內(nèi)核技術(shù)

缺點(diǎn):操作系統(tǒng)的服務(wù)模塊在獨(dú)立的地址

空間運(yùn)行,使得進(jìn)程間通信和上下文切換

的系統(tǒng)開銷大大增加,降低了系統(tǒng)效率。

3、完善Linux的集成開發(fā)環(huán)境

Linux在基于圖形界面的特定系統(tǒng)定制平臺

的研究上,與Windows操作系統(tǒng)相比還存

在差距

POSIX實(shí)時(shí)擴(kuò)展

POSIX(PortableOperatingSystem

Interface)是為標(biāo)準(zhǔn)化類UNIX操作系統(tǒng)所

必須具有的特征和接口而制定,其思想就

是為了增強(qiáng)為類UNIX操作系統(tǒng)編寫的軟件

的可移植性

■嵌入式linux開發(fā)

最小的嵌入式Linux系統(tǒng)僅需要三個(gè)基本元素:

-引導(dǎo)實(shí)用程序

-Linux微內(nèi)核,由內(nèi)存管理、進(jìn)程管理和定時(shí)服務(wù)構(gòu)成

-初始化過程

-硬件驅(qū)動(dòng)程序

-一個(gè)或多個(gè)應(yīng)用進(jìn)程,以提供所需功能

面向嵌入式Linux系統(tǒng)的圖形用

戶界面

MicoroWindows/NanoX

-開放源碼

一無任何硬件加速能力

,-圖形引擎中存在許多低效算法

-代碼質(zhì)量較差

?OpenGUI

-可移植性稍差

?Qt/Embedded

-低的程序效率、大的資源消耗

?MiniGUI

嵌入式Linux開發(fā)

;了解硬件

f針對所用CPU的編譯器/匯編器/連接器,相應(yīng)的庫

F工具,目標(biāo)文件分析/管理工具,符號查看器

■編程器,下載工具和查錯(cuò)器

j安排內(nèi)存地址

?編寫啟動(dòng)代碼和機(jī)器相關(guān)代碼:硬件初始化,裝

載內(nèi)核及安裝根文件系統(tǒng)以及開始內(nèi)核執(zhí)行

?驅(qū)動(dòng)程序

嵌入式Linux的一般開發(fā)步驟:

?精簡內(nèi)核

?系統(tǒng)啟動(dòng)7

?驅(qū)動(dòng)程序開發(fā)

?界面開發(fā):將X-Window換成MicroWindows

精簡內(nèi)核

F構(gòu)造內(nèi)核的常用命令包括:makeconfig>

dep>clean>mrproper>zlmage>bzlmage>

Imodules>modulesinstallo

精簡內(nèi)核的實(shí)例

■使用makeconfig去掉多余功能。

./Makefile

./arch/i386/kemel/

Makefile

系統(tǒng)啟動(dòng)

系統(tǒng)啟動(dòng)的相關(guān)文件如下:

./arch/$ARCH/boot/

:bootsect.s

./arch/$ARCH/boot/setup.s

./init/main.c

bootsect.S及setup.S

IBM系列PC的啟動(dòng)

?IBM系列PC在電源打開后,由內(nèi)存中地址FFFF:OOOO開始執(zhí)

行(這個(gè)地址一定在ROMBIOS中,ROMBIOS一般是在

FEOOOh到FFFFFh中),而此處的內(nèi)容則是一個(gè)jump指令,

.jump到另一個(gè)位于ROMBIOS中的位置,開始執(zhí)行一系列的

緊接著系統(tǒng)測試碼之后,控制權(quán)會轉(zhuǎn)移給ROM中的啟動(dòng)

程序(ROMbootstraproutine)這個(gè)程序會將磁盤上的第零軌

第零扇區(qū)讀入內(nèi)存物理地址0o70):0000(即07C00h處。而位于

Linux并機(jī)磁盤的bootsectorJb的是Linux的bootsect程序。

Linux的啟動(dòng)

Linux是由位于bootsector的bootsect程序負(fù)責(zé)

把setup及Linux的kernel載入內(nèi)存中,再將控

制權(quán)交給setup。

驅(qū)動(dòng)程序

,在Linux系統(tǒng)里,設(shè)備驅(qū)動(dòng)程序提供一組入口

,點(diǎn),它們由一個(gè)結(jié)構(gòu)在設(shè)備驅(qū)動(dòng)程序初始化

'的時(shí)候向系統(tǒng)進(jìn)行登記,以便系統(tǒng)在適當(dāng)?shù)?/p>

?時(shí)候調(diào)用。Linux系統(tǒng)里,通過調(diào)用

registerchrdev向系統(tǒng)注冊字符型設(shè)備驅(qū)動(dòng)程

序。

添加驅(qū)動(dòng)程序

1.直接修改系統(tǒng)核心的源代碼,把設(shè)備驅(qū)動(dòng)

程序加進(jìn)核心里J

2.把設(shè)備驅(qū)動(dòng)程序作為可加載的模塊,由系

統(tǒng)管理員動(dòng)態(tài)地加載它,使之成為核心的一

部分。

驅(qū)動(dòng)程序模塊

Linux中,模塊可以用C語言編寫,用gcc編譯

成目標(biāo)文件(不進(jìn)行鏈接,作為*.。文件存

在)。為此需要在gcc命令行里加上-c的參數(shù)。

在成功地向系統(tǒng)注冊[、設(shè)備驅(qū)動(dòng)程序后(調(diào)

用registerchrdev),就可以用mknod命令來

把設(shè)備映射為一個(gè)特別文件。其它程序需要

使用這個(gè)設(shè)備的時(shí)候,對此特別文件進(jìn)行操

作。

,linux啟動(dòng)流程

:初始化流程

1加電或復(fù)位

'2BIOS的啟動(dòng)

3BootLoader

?4操作系統(tǒng)初始化

1加電或復(fù)位

冷啟動(dòng)過程開始,中央處理器進(jìn)入復(fù)位狀

態(tài),將內(nèi)存中的所有數(shù)據(jù)清零,對內(nèi)存進(jìn)

行校驗(yàn),如果沒錯(cuò),CS寄存器將置入

FFFFJP寄存器置入0000,這個(gè)CS:IP組合指

向的是BIOS的入口。系統(tǒng)就是這樣進(jìn)入

BIOS啟動(dòng)過程的。

2BIOS啟動(dòng)

上電自檢POST(PowerOnSelfTest)

對系統(tǒng)內(nèi)的硬件設(shè)備進(jìn)行監(jiān)測和連接

最后,BIOS將從軟盤或硬盤上讀入Boot

Loader■如果從硬盤啟動(dòng),BIOS將讀入該盤

的零柱面零磁道1扇區(qū)(MBR),這個(gè)扇區(qū)上

就放著BootLoader.

2BIOS啟動(dòng)

:除了啟動(dòng)程序,BIOS還提供了一組中斷以

I便于對硬件設(shè)備的訪問。我們知道,當(dāng)鍵

f盤上的某一鍵被按下,CPU就會產(chǎn)生一個(gè)中

■斷并把這個(gè)鍵的信息讀入。

言在操作系統(tǒng)沒有被裝入以前(Bootsect.S還

沒有被讀入),中斷的響應(yīng)程序由BIOS提

供。

3BootLoader

BootLoader是一段匯編代碼,存放在MBR

中,它的主要作用就是將系統(tǒng)啟動(dòng)代碼讀

入內(nèi)存。

3BootLoader

因?yàn)樵趩?dòng)過程中,BIOS會把BootLoader

讀入內(nèi)存,并把控制權(quán)交給它。MBR(硬

盤啟動(dòng))內(nèi)的代碼就是BootLoade「或者它

的一部分,為了說明Bootloader的實(shí)現(xiàn),

先解釋磁盤結(jié)構(gòu)。

3BootLoader

一個(gè)硬盤在DOS文件系統(tǒng)下可被分為四個(gè)基本分區(qū),可以

把一個(gè)基本分區(qū)定義為一個(gè)擴(kuò)展分區(qū),然后再把這個(gè)基本

分區(qū)分為一個(gè)或多個(gè)邏輯分區(qū)。

「整個(gè)硬盤的分區(qū)表存放在硬盤的第一個(gè)扇區(qū)(MBR),每

個(gè)擴(kuò)展分區(qū)也對應(yīng)一個(gè)分區(qū)表,它存放在該擴(kuò)展分區(qū)對應(yīng)

_的第一個(gè)扇區(qū)里。

?除主引導(dǎo)扇區(qū)外,每個(gè)基本分區(qū)和擴(kuò)展分區(qū)也有自己的引

導(dǎo)扇區(qū),結(jié)構(gòu)與MBR相同,但邏輯分區(qū)的引導(dǎo)扇區(qū)不能用

于啟動(dòng)。

3BootLoader

如果是硬盤啟動(dòng),BootLoader將查找主分

區(qū)表中標(biāo)記為活動(dòng)分區(qū)的表項(xiàng),把該表項(xiàng)

對應(yīng)的分區(qū)的引導(dǎo)扇區(qū)讀入,然后將控制

權(quán)交給該扇區(qū)內(nèi)的引導(dǎo)程序。

3BootLoader

如果計(jì)算機(jī)上裝有不只一個(gè)操作系統(tǒng),僅

僅MS?DOS的BootLoader無法完成這種工

作,需要一個(gè)可以多重起動(dòng)的工具,下面

介紹Linux下最常用的LILO.

3BootLoader

LILO實(shí)際上是一個(gè)在Linux環(huán)境下編寫的BootLoader程序,

主要功能是引導(dǎo)Linux操作系統(tǒng)的啟動(dòng)。

LILO的功能實(shí)際上是有幾個(gè)程序共同實(shí)現(xiàn)的,它們是:

(1)MapInstaller這是LILO用于管理啟動(dòng)文件的程序。

它將bootloader寫入引導(dǎo)分區(qū),創(chuàng)建紀(jì)錄文件以映射內(nèi)核

的啟動(dòng)。

(2)Thebootloader它負(fù)責(zé)把Linux內(nèi)核或其他操作系統(tǒng)

的引導(dǎo)分區(qū)讀入內(nèi)存。還提供命令行接口,讓用戶選擇從

哪個(gè)操作系統(tǒng)啟動(dòng)和加入啟動(dòng)參數(shù)。

(3)其他文件:主要包括用于存放M叩Installer記錄的

map文件和存放LILO配置信息的配置文件。

3BootLoader

從代碼分析層次認(rèn)識LILO運(yùn)行過程。

4進(jìn)入操作系統(tǒng)

BootLoader做了這么多工作,一言以蔽之,

只是把操作系統(tǒng)的代碼調(diào)入內(nèi)存,所以當(dāng)

它執(zhí)行完后,自然該把控制權(quán)交給操作系

統(tǒng),由操作系統(tǒng)的啟動(dòng)程序來完成剩下的

工作。

4進(jìn)入操作系統(tǒng)

把控制權(quán)交給Setups這段程序

進(jìn)入保護(hù)模式,同時(shí)把控制權(quán)交給Head5

Heads調(diào)用/init/mainC中的start_kernel函

數(shù),啟動(dòng)程庠從start_kernel()函數(shù)垂續(xù)執(zhí)行

4進(jìn)入操作系統(tǒng)

(1)Setup.S

首先,Setup.S對已經(jīng)調(diào)入內(nèi)磊麻作系統(tǒng)代碼進(jìn)行檢查,如果沒錯(cuò),

它會通過BIOS中斷獲取內(nèi)存容量,硬盤等信息(實(shí)模式)

準(zhǔn)備讓CUP進(jìn)入保護(hù)模式

a,先屏蔽中斷信號

b.調(diào)用指令lidt和Igdt

c.對8259中斷控制器進(jìn)行編程3

協(xié)處理器重新定位

完成這幾件事后,Setup.S設(shè)置保護(hù)模式的標(biāo)志,重取指令,再用一

條跳轉(zhuǎn)指令jmpi0xl00000zKERNEL_CSo進(jìn)入保護(hù)模式下的啟動(dòng)階段,

控制權(quán)交給Heads

4進(jìn)入操作系統(tǒng)

(2)Head.S

也要先做屏蔽中斷一類的工作

然后對中斷向量表做一定的處理

BootLoader讀入內(nèi)存的啟動(dòng)參數(shù)和命令行參數(shù),Head.S

■把它們保存在empty_zero_page頁中

■檢查CUP類型

;對協(xié)處理器進(jìn)行檢查

?頁初始化,調(diào)用setup_paging這個(gè)子函數(shù)

?因?yàn)橐堰M(jìn)入保護(hù)模式,段機(jī)制的多任務(wù)屬性體現(xiàn)

4進(jìn)入操作系統(tǒng)

(3)main.c中的初始化

■Head.S調(diào)用/init/main.c中的start_kernel函

數(shù),把控制權(quán)交給它,這個(gè)函數(shù)是整個(gè)操

作系統(tǒng)初始化的最重要的函數(shù),一旦它執(zhí)

J行完,整個(gè)操作系統(tǒng)的初始化也就完成了。

4進(jìn)入操作系統(tǒng)

(3)main.c中的初始化

計(jì)算機(jī)在執(zhí)行start_kernel前以進(jìn)入了保護(hù)

模式,使處理器完全進(jìn)入了全面執(zhí)行操作

系統(tǒng)代碼的狀態(tài)。

■,但直到目前為止,這都是針對處理器的。

「而一旦start_kernel開始執(zhí)行,Linux內(nèi)核就

一步步展現(xiàn)。

?Start_kernel執(zhí)行后,就可以以一個(gè)用戶的

身份登陸和使用Linux了

4進(jìn)入操作系統(tǒng)一

(3)main.c中的初始化

,較為重要的函數(shù)女

:Setup_arch()最基本硬件的初始化

tPaging_init()線性地址空間映射

Trap_init()中斷向量表初始化

?Int」RQ與中斷有關(guān)的初始化

?Sched_init()進(jìn)程調(diào)度初始化

?Console_init()對中斷的初始化

4進(jìn)入操作系統(tǒng)

(3)main.c中的初始化

對文件系統(tǒng)的初始化

inode_initl()i節(jié)點(diǎn)管理機(jī)制初始化

Name_cache_init()目錄緩存機(jī)制初始化

Buffer_init()塊緩存機(jī)制初始化

4進(jìn)入操作系統(tǒng)

(3)main.c中的初始化

啟動(dòng)到了目前這種狀態(tài),只剩下運(yùn)行/etc下

的啟動(dòng)配置文件。

這時(shí)初始化程序并沒有完成操作系統(tǒng)各個(gè)

部分的初始化,更關(guān)鍵的文件系統(tǒng)的安裝

還沒有涉及,這是在init進(jìn)程建立后完成的。

就是start_kernel()最后部分內(nèi)容。

4進(jìn)入操作系統(tǒng)

(4)建立init進(jìn)程

Linux要建立的第一個(gè)進(jìn)程是init進(jìn)程

:啟動(dòng)所需的Shell腳本文件

a.Linux系統(tǒng)啟動(dòng)所必須的

b.用戶登陸后自己設(shè)定的

系統(tǒng)啟動(dòng)所必須的腳本存放在系統(tǒng)默認(rèn)的配

置文件目錄/etc下。首先調(diào)用的是

/etc/inittab.

四、Linux系統(tǒng)移植的兩大部分

內(nèi)核部分和系統(tǒng)部分

(1)內(nèi)核部分初始化和控制所有硬件設(shè)備

(嚴(yán)格說不是所有,而是絕大部分),為

內(nèi)存管理、進(jìn)程管理、設(shè)備讀寫等工作做

好一切準(zhǔn)備。

(2)系統(tǒng)部分加載必需的設(shè)備,配置各種環(huán)

境以便用戶可以使用整個(gè)系統(tǒng)。

Linux內(nèi)核可以視為由五個(gè)功能部分組成:

進(jìn)程管理(包括調(diào)度和通信)、內(nèi)存管理、

設(shè)備管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)

需要改動(dòng)的就是進(jìn)程管理、內(nèi)存管理和設(shè)

備管理中被獨(dú)立出來的那部分即硬件相關(guān)

部分的代碼

修改的代碼

(2)系統(tǒng)移植

一個(gè)最小系統(tǒng)的重建過程

類似Linux系統(tǒng)應(yīng)急盤DiskOnChip

包括:init、libc庫、驅(qū)動(dòng)模塊、必需的應(yīng)用

程序和系統(tǒng)配置腳本。

一些Real-TimeLinux簡介

工、NMTRT-Linux

KNMT是新墨西哥科技大學(xué)(NewMexico

Technology)的縮寫

■二Real-timeLinux的鼻祖

一個(gè)實(shí)時(shí)內(nèi)核負(fù)責(zé)處理硬件消息,接管中

斷,實(shí)時(shí)任務(wù)可在該內(nèi)核上直接運(yùn)行

可載入式核心模組(loadablekernelmodule)o

NRTLinuxNRTLinuxNRTLinux

TaskTaskTask

-?.User

syscal1RTFIFO

Kernel

LinuxKerneltask

hardware

Real-TimeApplicationInterface

LKM

在Linux上定義了一組RTHAL(Real-Time

HardwareAbstractionLayer)

?RTAI只使用RTHAL和Linux溝通

RTAI無法直接使用Linux的系統(tǒng)調(diào)用

解決的方法:

使用RT-FIFO將一個(gè)RTAIreal-time

kernelmodule和真正的Linux進(jìn)程連接在

一起

?代理:LXRTproxy

NRTLinux

Task

User

Kernel

hardware

MontaVistaLinux2.1

MontaVista軟件公司

全球三大嵌入式Linux操作系統(tǒng)及解決方案供應(yīng)商

之一

MontaVistaLinux2.1支持6種體系結(jié)構(gòu)的20款處

理器,X86/IA-32、PowerPC、StrongARM、

XScale、ARM、MIPS以及SH。

MontaVistaLinux2.1包括KDevelopIDE、目標(biāo)配

置工具(TargetConfigurationTool)、庫優(yōu)化工

具(LibraryOptimizertool)。另外,它還提供超

過215個(gè)應(yīng)用軟件包。

基于Linux2417穩(wěn)定內(nèi)核,提供支持x86、MIPS、

SH以及PowerPC體系結(jié)構(gòu)的實(shí)時(shí)搶占式內(nèi)核。

跨平臺開發(fā),支持14個(gè)主機(jī)開發(fā)環(huán)境,包括

RedHat、YellowDogLinux、SuSE>Mandrake、

Solaris以及VMWareonWindowsNT/2000

該版本提供了215多個(gè)主機(jī)配套工具和嵌入式目標(biāo)

平臺開發(fā)組件軟件包,包括thttpd嵌入式服務(wù)器

和802」lb無線通信標(biāo)準(zhǔn)附加包。

擴(kuò)展了針對嵌入式跨平臺開發(fā)的各類開放

源代碼工具的支持,提供了首個(gè)基于

KDevelop的MontaVista開發(fā)環(huán)境;

支持x86和PowerPC平臺的Linux跟蹤工具

(包括內(nèi)核性能和執(zhí)行分析器);

ext3日志文件系統(tǒng)。

5、uClinux

專為無(MMU)的微控制器打造的嵌入式Linux操

作系統(tǒng)。

uClinux已移植支持的微控制器和微處理器:

摩托羅拉

DragonBall(M68EZ328),M68328,M68EN322,ColdFire,QUICC(QuadIntegratedCom

municationsController)M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論