嵌入式Linux操作系統的廣泛應用分析
硬件平臺選項
挑選最佳硬件的過(guò)程會(huì )相當復雜,問(wèn)題起源于公司內部政策、成見(jiàn)、其它方案的遺留問(wèn)題、缺乏全面的或者精確的信息以及成本 — 需考慮總的產(chǎn)品成本,而不僅僅是 CPU 本身。有時(shí),一旦把 CPU 使用其它外圍設備所必需的總線(xiàn)邏輯和延遲時(shí)間考慮在內,那么快速而廉價(jià)的 CPU 也可能變得昂貴。要計算任意給定的項目所需的 CPU 速度,首先要現實(shí)地看看為了完成一個(gè)給定的任務(wù) CPU 得運行多快然后再乘以三。還要確定總線(xiàn)需要運行多快。如果還有二級總線(xiàn),比如 PCI 總線(xiàn),那么將它們也考慮在內。一條慢的總線(xiàn)(即一條被 DMA 通信阻塞的總線(xiàn))將會(huì )顯著(zhù)降低高速 CPU 的速度。下面是一些嵌入式 Linux 應用的最佳硬件解決方案。
Bright Star Engineering:Bright Star Engineering 的 ipEngine-1 是支持嵌入式 Linux 的信用卡大小的單片機。它利用了基于 PowerPC 的 CPU,并提供了一組板上外設,有 Ethernet、LCD/視頻控制器、USB、串口 I/O 以及一個(gè) 16K 門(mén)的可由用戶(hù)配置的 FPGA。BSE 的嵌入式 Linux 配置允許 Linux 從 ipEngine 的板上 4MB 閃存中引導。
Calibri:CalibriTM-133 是將嵌入式 Linux 作為其操作系統來(lái)使用的網(wǎng)絡(luò )設備,它方便使用、緊湊,并且可以用于多種用途。它為防火墻、VPN 和路由要求提供了一種高效、低成本的解決方案。
EmbeddedPlanet: EmbeddedPlanet 創(chuàng )造了后 PC 時(shí)代的計算機,它出現時(shí)就裝有 MontaVista 的 HardHat Linux。由基于 PowerPC 的計算引擎和匹配的 I/O 卡驅動(dòng),Linux Planet 裝在一個(gè)彩色的透明盒子里并且帶有觸摸屏,還可以訪(fǎng)問(wèn)數字及模擬 I/O。
Eurotech:Eurotech 提供了嵌入式 PC SBC 并資助了 ET-Linux,一個(gè)為在小型工業(yè)計算機上運行而專(zhuān)門(mén)設計的基于 glibc 2.1.2 的完全的 Linux 系統。
Microprocess Ingenierie:Microprocess 為產(chǎn)業(yè)和嵌入式市場(chǎng)開(kāi)發(fā)、生產(chǎn)以及銷(xiāo)售標準的和定制的產(chǎn)品。Microprocess 在實(shí)時(shí)軟件方面活動(dòng)范圍遍及全球,并具有系統集成的專(zhuān)業(yè)知識。它的產(chǎn)品,比如 740 PowerPC compactPCI 板可以與標準的 Linux 分發(fā)版或者嵌入式 Linux 版本一起訂購。
Moreton Bay:Moreton Bay 發(fā)布基于 Linux 的 Internet 路由器,其范圍在 NETtel 2520 和 NETtel 2500 之間。這些小型的、易于連接的智能路由器解決方案設計旨在為平面網(wǎng)絡(luò )提供簡(jiǎn)便、安全和價(jià)格適中的外部網(wǎng)友好的虛擬私有網(wǎng)絡(luò )(VPN)。NETtel 路由器系列運行的是嵌入式 Linux 內核?,F有一套開(kāi)發(fā)工具能夠把定制代碼存在閃存中并在 NETtel 內部執行。代碼可能含有特定的加密或者身份驗證協(xié)議,或者在 NETtel 被用作遠程控制設備代碼時(shí),會(huì )含有一些本地監視腳本。
Matrix Orbital:這是個(gè)可選的、但不是推薦的附加項。Matrix Orbital 生產(chǎn)的一系列串行 LCD 和 VFD 被許多 Linux 用戶(hù)添加到了他們的嵌入式系統中。這條生產(chǎn)線(xiàn)的范圍包括了 8x2 到 40x4 的字符 LCDs、20x2 和 20x4 的 VFD 加上 240x64 圖形 LC(128x128 還在生產(chǎn)之中)。運用顯示器的通信不是通過(guò) RS232 就是通過(guò) I2C 實(shí)現的,兩者都是其所有模塊上的標準。模塊的 BIOS 中包含一個(gè)全面的命令集。
實(shí)時(shí)嵌入式 Linux 應用
有關(guān)嵌入式系統最重要的事務(wù)之一就是要求有一個(gè)實(shí)時(shí)操作系統。這里實(shí)時(shí)有好幾種定義。對有些人來(lái)說(shuō),實(shí)時(shí)意味著(zhù)在 1 微秒的時(shí)間內對事件作出反應,但對另外一些人來(lái)說(shuō),那就可能是 50 毫秒了。實(shí)時(shí)的硬度也各不相同。一些系統需要硬實(shí)時(shí)響應,在很短的時(shí)間內對事件作出確定性響應。但是,當我們對許多系統進(jìn)行仔細分析時(shí),我們發(fā)現事實(shí)上對響應時(shí)間的要求只是接近實(shí)時(shí)。實(shí)時(shí)的要求常常是時(shí)間和緩沖空間的折衷。隨著(zhù)內存越來(lái)越便宜,CPU 速度越來(lái)越快,現在接近實(shí)時(shí)比硬實(shí)時(shí)更加常見(jiàn),許多商用的所謂實(shí)時(shí)操作系統遠非硬實(shí)時(shí)。通常情況下,當您進(jìn)入這些系統的詳細設計部分時(shí),就需提高警惕必須非常仔細地設計驅動(dòng)器的中斷和應用以滿(mǎn)足實(shí)時(shí)要求。
RT-Linux(實(shí)時(shí)擴展的 Linux 系統)里含有時(shí)間緊要的函數可以用中斷管理器來(lái)精確控制中斷處理,從而很好地確保了關(guān)鍵性中斷可以在需要時(shí)得到執行。這種方法的硬度主要取決于 CPU 中斷結構和環(huán)境轉換的硬件支持。這種方法可以滿(mǎn)足廣泛范圍內的實(shí)時(shí)要求。即使沒(méi)有實(shí)時(shí)擴展,Linux 也能很好地處理多個(gè)事件流。例如,運行于低端 Pentium 上的 Linux PC 系統能讓多個(gè) 10BaseT 接口有效地執行,同時(shí)又以全速的 56KBPS 運行字符級串口,而不會(huì )丟失任何數據。
值得考慮的實(shí)時(shí)硬件和軟件 Linux API 有 RTLinux、RTAI、EL 和 Linux-SRT。RTLinux 是一個(gè)最初在新墨西哥理工學(xué)院開(kāi)發(fā)的硬實(shí)時(shí) Linux API。RTAI(DIAPM)是由 Polytechnic Politecnico di Milano(DIAPM)航天工程部的程序員們開(kāi)發(fā)的 RTLinux 實(shí)時(shí) API 的副產(chǎn)品。EL/IX 是一個(gè)計劃中的基于 POSIX 硬實(shí)時(shí) Linux API,由 Red Hat 發(fā)起。Linux-SRT 是個(gè)實(shí)時(shí) API 的軟實(shí)時(shí)替代品,它可以使所有的 Linux 程序無(wú)需修改或者重新編譯即可增強性能。
請參閱本文后面的參考資料部分,查找有關(guān)前面內容的資料和一些 Web 站點(diǎn),那里提供了用于不同類(lèi)型的標準 Linux 操作系統的軟件擴展、開(kāi)發(fā)工具、支持以及培訓課程。
短暫的確定性響應時(shí)間
某些實(shí)時(shí)嵌入式系統需要迅速對外部事件作出響應,以完成一項特定任務(wù)。比如,嵌入一枚導彈的一個(gè)定制的微控制器在指引導彈瞄準它周?chē)h(huán)境的一個(gè)特定目標之前,需要迅速對諸如移動(dòng)目標、天氣和人等的外部事件作出迅速響應。短暫的確定性響應時(shí)間是指嵌入式系統可以確定它對外部事件作出響應的時(shí)間。
配置步驟
現在讓我們來(lái)看一下如何 make LEM,它是一個(gè)小型的可嵌入 Linux 分發(fā)版,既提供網(wǎng)絡(luò )又提供 X 服務(wù)器。您可以下載該分發(fā)版,盡管它并非必需。您需要一個(gè)完全的 Linux 分發(fā)版來(lái)建立自己的嵌入式 Linux 操作系統,其中將包括您所需要的一切(實(shí)用程序、源代碼、編譯器、調試器和文檔)。下面是能用來(lái) make LEM 的軟件列表:
TinyLogin: TinyLogin 是一套 tiny UNIX 實(shí)用程序,它用于登錄嵌入式系統、接受其驗證身份、為其修改密碼,并能維護其用戶(hù)和用戶(hù)組。為了增強系統安全性它還支持影子口令。正如它的名字所暗示的, TinyLogin 非常小,對嵌入式系統上的 BusyBox 是極好的補充。
BusyBox:BusyBox 是一個(gè)多調用的二進(jìn)制文件,它提供了 POSIX 式的命令和專(zhuān)用函數的最小子集。它適合于非常小的嵌入式系統,比如引導磁盤(pán)等等。特別用于 Debian 拯救/安裝系統(它激發(fā)了對最初的 BusyBox 的開(kāi)發(fā))、Linux Routeur 方案、LEM、lineo 及其它地方。Busybox 是由 Erik Andersen 維護的。
Ash:Ash 是個(gè)非常小的 Bourne shell。
Sysvinit:Sysvinit 是 Linux 最常用的 init 包。我們將會(huì )用到 init 和 C 語(yǔ)言版 start-stop-daemon。
總結
在嵌入式應用的領(lǐng)域里,從因特網(wǎng)設備到專(zhuān)用的控制系統,Linux 操作系統的前景都很光明。所有新造的微型計算機芯片中大約有 95% 都是用于嵌入式應用的。由于 Linux 功能強大、可靠、靈活而且具有伸縮性,再加上它支持大量的微處理器體系結構、硬件設備、圖形支持和通信協(xié)議,這些都使它作為許多方案和產(chǎn)品的軟件平臺越來(lái)越流行。
由于可以公開(kāi)免費得到 Linux 源代碼,因此對 Linux 和它支持的軟件組件的許多修改和配置也得到了不斷改進(jìn),以滿(mǎn)足采用 Linux 的市場(chǎng)和應用的多種需求。另外還有小型版本和實(shí)時(shí)增強版本。盡管 Linux 開(kāi)始是作為 PC 體系結構的操作系統,但是現在已經(jīng)有了非 X86 CPU 的版本(帶或不帶內存控制單元),包括 PowerPC、ARM、MIPS、68K 甚至是微控制器。但是,請注意,在不久的將來(lái),在許多其它的信息技術(shù)(IT)領(lǐng)域會(huì )出現更多!
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)linux相關(guān)文章:linux教程
評論