国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

嵌入式Linux系統(tǒng)的設(shè)計(jì)與應(yīng)用

2024-08-27 23:57:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、引言

嵌入式系統(tǒng)(Embedded Systems)是根據(jù)應(yīng)用的要求,將操作系統(tǒng)和功能軟件集成于計(jì)算機(jī)硬件系統(tǒng)之中,從而實(shí)現(xiàn)軟件與硬件一體化的計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)出現(xiàn)于60年代晚期,它最初被用于控制機(jī)電電話(huà)交換機(jī),如今已被廣泛的應(yīng)用于工業(yè)制造、過(guò)程控制、通訊、儀器、儀表、汽車(chē)、船舶、航空、航天、軍事裝備、消費(fèi)類(lèi)產(chǎn)品等眾多領(lǐng)域。嵌入式系統(tǒng)在數(shù)量上遠(yuǎn)遠(yuǎn)超過(guò)了各種通用計(jì)算機(jī)系統(tǒng):計(jì)算機(jī)系統(tǒng)核心CPU,每年在全球范圍內(nèi)的產(chǎn)量大概在二十億顆左右,其中超過(guò)80%應(yīng)用于各類(lèi)專(zhuān)用性很強(qiáng)的嵌入式系統(tǒng)。

一般的說(shuō),凡是帶有微處理器的專(zhuān)用軟硬件系統(tǒng)都可以稱(chēng)為嵌入式系統(tǒng)。和通用的計(jì)算平臺(tái)相比,嵌入式系統(tǒng)往往具有功能單一、體積小、功耗低、可靠性高、剪裁性好、軟硬件集成度高、計(jì)算能力相對(duì)較低等特點(diǎn)。多年來(lái),嵌入式設(shè)備中沒(méi)有操作系統(tǒng),其主要原因有二:首先,諸如洗衣機(jī)、微波爐、電冰箱這樣的設(shè)備僅僅需要一道簡(jiǎn)單的控制程序,以管理數(shù)量有限的按鈕和指示燈,沒(méi)有使用操作系統(tǒng)的必要;其次,它往往只具有有限的硬件資源,不足以支持一個(gè)操作系統(tǒng)。

然而,隨著硬件的發(fā)展,嵌入式系統(tǒng)變得越來(lái)越復(fù)雜,最初的控制程序中逐步的加入了許多功能,而這些功能中有很多可以由操作系統(tǒng)提供。于是,在70年代末期出現(xiàn)了嵌入式操作系統(tǒng)(Embedded Operating Systems),它的出現(xiàn)大大簡(jiǎn)化了應(yīng)用程序設(shè)計(jì),并可以有效的保障軟件質(zhì)量和縮短開(kāi)發(fā)周期。簡(jiǎn)單的ES一般并不使用操作系統(tǒng),只包含一些控制流程,但是隨著嵌入式操作系統(tǒng)在復(fù)雜性上的增長(zhǎng),簡(jiǎn)單的流程控制就不能滿(mǎn)足系統(tǒng)的要求,這是就必須考慮使用操作系統(tǒng)做系統(tǒng)軟件。因此,嵌入式操作系統(tǒng)就應(yīng)運(yùn)而生。

隨著EOS的廣泛應(yīng)用,業(yè)界已推出一些應(yīng)用比較成功的EOS產(chǎn)品。歸納起來(lái)EOS應(yīng)該具有以下幾個(gè)特點(diǎn):小巧、實(shí)時(shí)性、可裝卸、固化代碼、弱交互性、強(qiáng)穩(wěn)定性和統(tǒng)一的接口。目前使用最多的EOS產(chǎn)品包括有:Vxwork、QNX、PalmOS、WindowsCE、pSOS、Hopen OS(國(guó)內(nèi)凱思集團(tuán)公司自主研制開(kāi)發(fā))等。其中,Vxwork使用最為廣泛、市場(chǎng)占有率最高,其突出特點(diǎn)是實(shí)時(shí)性強(qiáng)(采用優(yōu)先級(jí)搶占和輪轉(zhuǎn)調(diào)度等機(jī)制),除此之外,其可靠性和可剪裁性也相當(dāng)不錯(cuò)。QNX是一種伸縮性極佳的系統(tǒng),其核心加上實(shí)時(shí)POSIX環(huán)境和一個(gè)完整的窗口系統(tǒng)還不到一兆。相比之下,Microsoft WinCE的核心體積龐大,實(shí)時(shí)性能也差強(qiáng)人意,但由于Windows系列友好的用戶(hù)界面和為程序員所熟悉的API,并捆綁IE、Office等應(yīng)用程序,正逐漸獲得更大的市場(chǎng)份額。而與這些商業(yè)化的操作系統(tǒng)相比,Linux已經(jīng)越來(lái)越受到人們的注意。

二、嵌入式Linux概述

Linux是一個(gè)成熟而穩(wěn)定的網(wǎng)絡(luò)操作系統(tǒng)。將Linux植入嵌入式設(shè)備具有眾多的優(yōu)點(diǎn)。首先,Linux的源代碼是開(kāi)放的,任何人都可以獲取并修改,用之開(kāi)發(fā)自己的產(chǎn)品。其次,Lirmx是可以定制的,其系統(tǒng)內(nèi)核最小只有約134kB。一個(gè)帶有中文系統(tǒng)和圖形用戶(hù)界面的核心程序也可以做到不足1MB,并且同樣穩(wěn)定。另外,它和多數(shù)Unix系統(tǒng)兼容,應(yīng)用程序的開(kāi)發(fā)和移植相當(dāng)容易。同時(shí),由于具有良好的可移植性,人們已成功使Linux運(yùn)行于數(shù)百種硬件平臺(tái)之上。

然而,Linux并非專(zhuān)門(mén)為實(shí)時(shí)性應(yīng)用而設(shè)計(jì),因此如果想在對(duì)實(shí)時(shí)性要求較高的嵌入式系統(tǒng)中運(yùn)行Linux,就必須為之添加實(shí)時(shí)軟件模塊。這些模塊運(yùn)行的內(nèi)核空間正是操作系統(tǒng)實(shí)現(xiàn)進(jìn)程調(diào)度、中斷處理和程序執(zhí)行的部分,因此錯(cuò)誤的代碼可能會(huì)破壞操作系統(tǒng),進(jìn)而影響整個(gè)系統(tǒng)的可靠性和穩(wěn)定性。Linux的眾多優(yōu)點(diǎn)還是使它在嵌入式領(lǐng)域獲得了廣泛的應(yīng)用,并出現(xiàn)了數(shù)量可觀的嵌入式Linux系統(tǒng)。其中有代表性的包括:uClinux、ETLinux、ThinLinux、LOAF等。ETLinux通常用于在小型工業(yè)計(jì)算機(jī),尤其是PC/104模塊。ThinLinux面向?qū)S玫恼障鄼C(jī)服務(wù)器、X-10控制器、MP3播放器和其它類(lèi)似的嵌入式應(yīng)用。LOAF是Linux On A Floppy的縮略語(yǔ),它運(yùn)行在386平臺(tái)上。

三、Linux作為嵌入式操作系統(tǒng)的優(yōu)勢(shì)

Linux作為嵌入式操作系統(tǒng)的優(yōu)勢(shì)主要有以下幾點(diǎn):

1、可應(yīng)用于多種硬件平臺(tái)。Linux已經(jīng)被移植到多種硬件平臺(tái),這對(duì)于經(jīng)費(fèi),時(shí)間受限制的研究與開(kāi)發(fā)項(xiàng)目是很有吸引力的。原型可以在標(biāo)準(zhǔn)平臺(tái)上開(kāi)發(fā)后移植到具體的硬件上,加快了軟件與硬件的開(kāi)發(fā)過(guò)程。Linux采用一個(gè)統(tǒng)一的框架對(duì)硬件進(jìn)行管理,從一個(gè)硬件平臺(tái)到另一個(gè)硬件平臺(tái)的改動(dòng)與上層應(yīng)用無(wú)關(guān)。Linux可以隨意地配置,不需要任何的許可證或商家的合作關(guān)系,源代碼可以免費(fèi)得到。這使得采用Linux作為操作系統(tǒng)不會(huì)遇到任何關(guān)于版權(quán)的糾紛。毫無(wú)疑問(wèn),這會(huì)節(jié)省大量的開(kāi)發(fā)費(fèi)用。本身內(nèi)置網(wǎng)絡(luò)支持,而目前嵌入式系統(tǒng)對(duì)網(wǎng)絡(luò)支持要求越來(lái)越高。Linux的高度模塊化使添加部件非常容易。

2、Linux是一個(gè)和Unix相似、以?xún)?nèi)核為基礎(chǔ)的、具有完全的內(nèi)存訪問(wèn)控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等現(xiàn)有的大部分芯片)等特性的一種通用操作系統(tǒng)。其程序源碼全部公開(kāi),任何人可以修改并在GUN通用公共許可證(GNU General Public License)下發(fā)行。這樣,開(kāi)發(fā)人員可以對(duì)操作系統(tǒng)進(jìn)行定制,適應(yīng)其特殊需要。

3、Linux帶有Unix用戶(hù)熟悉的完善的開(kāi)發(fā)工具,幾乎所有的Unix系統(tǒng)的應(yīng)用軟件都已移植到了Linux上。Linux還提供了強(qiáng)大的網(wǎng)絡(luò)功能,有多種可選擇窗口管理器(X Windows)。其強(qiáng)大的語(yǔ)言編譯器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。

四、嵌入式Linux的建立

完整的嵌入式Linux解決方案應(yīng)包括嵌入式Linux操作系統(tǒng)內(nèi)核、運(yùn)行環(huán)境、圖形化界面和應(yīng)用軟件等。由于嵌入式設(shè)備的特殊要求,嵌入式Linux解決方案中的內(nèi)核、環(huán)境、GUI等都與標(biāo)準(zhǔn)Linux有很大不同,其主要挑戰(zhàn)是如何在狹小的FLASH、ROM和內(nèi)存中實(shí)現(xiàn)高質(zhì)量的任務(wù)實(shí)時(shí)調(diào)度、圖形化顯示、網(wǎng)絡(luò)通信等功能。

1、精簡(jiǎn)內(nèi)核

Linux內(nèi)核有自己的結(jié)構(gòu)體系,其中進(jìn)程管理、內(nèi)存管理和文件系統(tǒng)是其最基本的3個(gè)子系統(tǒng)。圖1簡(jiǎn)單表示了它的框架。用戶(hù)進(jìn)程可直接通過(guò)系統(tǒng)調(diào)用或者函數(shù)庫(kù)來(lái)訪問(wèn)內(nèi)核資源。正因?yàn)長(zhǎng)inux內(nèi)核具有這樣的結(jié)構(gòu),因此修改內(nèi)核時(shí)必須注意各個(gè)子系統(tǒng)之間的協(xié)調(diào)。

嵌入式Linux內(nèi)核一般由標(biāo)準(zhǔn)Linux內(nèi)核裁剪而來(lái)。用戶(hù)可根據(jù)需求配置系統(tǒng),剔除不需的服務(wù)功能、文件系統(tǒng)和設(shè)備驅(qū)動(dòng)。經(jīng)過(guò)裁剪、壓縮后的系統(tǒng)內(nèi)核一般只有300k左右,十分適合嵌入式設(shè)備。同標(biāo)準(zhǔn)Linux不同的是嵌入式Linux必須要實(shí)現(xiàn)從FLASH或ROM的啟動(dòng)。標(biāo)準(zhǔn)Linux啟動(dòng)代碼實(shí)現(xiàn)了系統(tǒng)初始化和從軟盤(pán)、硬盤(pán)O盤(pán)區(qū)引導(dǎo)內(nèi)核。嵌入式Linux一般保存在FLASH或ROM中,標(biāo)準(zhǔn)LILO無(wú)法引導(dǎo)。在支持直接從FLASH設(shè)備引導(dǎo)的系統(tǒng)中,如華恒公司的uClinux,引導(dǎo)程序主要完成對(duì)硬件系統(tǒng)的初始化工作和操作系統(tǒng)的解壓、移位工作。在不支持直接從FLASH引導(dǎo)的系統(tǒng)中,F(xiàn)LASH設(shè)備只能作為非引導(dǎo)磁盤(pán)使用。此時(shí),可采用先從硬盤(pán)或軟盤(pán)加載一個(gè)小操作系統(tǒng),如嵌入式DOS,然后再執(zhí)行"Loadlin"加載程序從FLASH引導(dǎo)嵌入式Linux。

對(duì)標(biāo)準(zhǔn)Linux的修改主要是虛擬內(nèi)存和調(diào)度程序部分的改動(dòng)。因?yàn)闃?biāo)準(zhǔn)Linux系統(tǒng)使用虛擬內(nèi)存管理的目的是為了能同時(shí)運(yùn)行多個(gè)進(jìn)程,但是這樣每個(gè)待運(yùn)行的進(jìn)程所能分配的CPU時(shí)間片就受限制,資源的使用效率就低。這樣對(duì)于實(shí)時(shí)性要求較高的嵌入式系統(tǒng)來(lái)說(shuō),實(shí)時(shí)任務(wù)往往要求CPU具有很高的突發(fā)處理能力,即在有些時(shí)候需要極高的處理效率,因此需要屏蔽內(nèi)核的虛擬內(nèi)存管理機(jī)制。對(duì)于無(wú)硬盤(pán)設(shè)備的嵌入式系統(tǒng),不必采用虛存管理。強(qiáng)實(shí)時(shí)需求的嵌入式應(yīng)用可以通過(guò)修改任務(wù)調(diào)度模塊實(shí)現(xiàn),主要是在內(nèi)核和設(shè)備驅(qū)動(dòng)程序中加入了許多切換點(diǎn)。在該點(diǎn)處,系統(tǒng)檢測(cè)是否存在未處理的緊急中斷,有則剝奪內(nèi)核的運(yùn)行,及時(shí)處理中斷。實(shí)現(xiàn)實(shí)時(shí)性服務(wù)的一個(gè)較好的方法是在標(biāo)準(zhǔn)的Linux內(nèi)核上增加一個(gè)實(shí)時(shí)內(nèi)核,標(biāo)準(zhǔn)Linux內(nèi)核作為一個(gè)任務(wù)運(yùn)行于實(shí)時(shí)內(nèi)核上,強(qiáng)實(shí)時(shí)性任務(wù)也直接運(yùn)行在實(shí)時(shí)內(nèi)核上,如RT-Linux等。

文件系統(tǒng)是嵌入式Linux操作系統(tǒng)必不可少的。但標(biāo)準(zhǔn)Linux支持大量的文件系統(tǒng),因此除了滿(mǎn)足系統(tǒng)的正常運(yùn)行需要而保留一種外,其它的全部可以刪除,利用原有的設(shè)置選項(xiàng)可以移除。一般嵌入式設(shè)備文件系統(tǒng)主要使用RamDisk技術(shù)和網(wǎng)絡(luò)文件系統(tǒng)技術(shù)。RamDisk可駐留于Flash,運(yùn)行時(shí)加載到內(nèi)存中。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 建昌县| 奉节县| 泽库县| 穆棱市| 贵港市| 枝江市| 南昌市| 陵水| 金阳县| 萨嘎县| 屏南县| 达孜县| 吉林市| 田阳县| 三穗县| 达尔| 民和| 阿拉善左旗| 福海县| 阿合奇县| 金塔县| 巴塘县| 丰都县| 高唐县| 南汇区| 深泽县| 邯郸市| 普宁市| 尚志市| 略阳县| 宣恩县| 石河子市| 廉江市| 行唐县| 光泽县| 阿拉尔市| 安平县| 车致| 渝中区| 邛崃市| 阳朔县|