一種改進(jìn)嵌入Linux實(shí)時(shí)性的新型方案
現(xiàn) 有的嵌入式操作系統(tǒng)大致可分為商用型和免費(fèi)型兩類:商用型操作系統(tǒng)由于功能穩(wěn)定、可靠,有完善的技術(shù)支持和售后服務(wù),在嵌入式市場占有一定的份額。但它同 時(shí)也存在價(jià)格昂貴、需要版權(quán)、源代碼不公開等一系列問題;免費(fèi)型操作系統(tǒng)(如Linux)源碼公開,有價(jià)格方面的優(yōu)勢,但在嚴(yán)格滿足嵌入式實(shí)時(shí)應(yīng)用需求方 面還有欠缺。
圖2 實(shí)時(shí)內(nèi)核實(shí)現(xiàn)機(jī)理
RTAI對Linux的實(shí)時(shí)性改進(jìn)
現(xiàn)有幾種針對Linux的實(shí)時(shí)系統(tǒng)解決方案,實(shí)現(xiàn)方法主要包括兩種:
1)直接修改Linux內(nèi)核、增加實(shí)時(shí)性,如:Montavista;
2)在普通Linux內(nèi)核之上增加實(shí)時(shí)模塊、雙內(nèi)核結(jié)構(gòu),如:RTLinux或RTAI。
Montavista 可以滿足用戶的軟實(shí)時(shí)要求,RTLinux或RTAI著重增強(qiáng)Linux的硬實(shí)時(shí)特性。軟實(shí)時(shí)系統(tǒng)的時(shí)限是柔性靈活的,它可以容忍偶然的超時(shí)錯(cuò)誤。失敗造 成的后果并不嚴(yán)重,僅僅是輕微地降低了系統(tǒng)的吞吐量。硬實(shí)時(shí)系統(tǒng)有一個(gè)剛性的、不可改變的時(shí)間限制,它不允許任何超出時(shí)限的錯(cuò)誤。超時(shí)錯(cuò)誤會(huì)帶來損害甚至 導(dǎo)致系統(tǒng)失敗、或者導(dǎo)致系統(tǒng)不能實(shí)現(xiàn)它的預(yù)期目標(biāo)。
RTAI采用雙內(nèi)核方法,不直接使用Linux的任何功能,而是把需要高度時(shí)間精度的 工作寫成一個(gè)驅(qū)動(dòng)程序的形式,然后直接用PC時(shí)序芯片所產(chǎn)生的中斷調(diào)用這個(gè)驅(qū)動(dòng)程序。RTAI與NMT RT-Linux的最大不同之處在于,它在Linux上定義了一組實(shí)時(shí)硬件抽象層(RTHAL)。RTHAL將RTAI需要在Linux中修改的部分定義 成一組程序界面,RTAI只使用這組界面和Linux溝通。這樣做的好處在于,用戶可以將直接修改的Linux核心程序代碼減至最小,這有可能使得將 RTHAL移植到新版Linux的工作量減至最低。
但是,RTAI雖然滿足了硬實(shí)時(shí)性要求,卻沒有被裁減為足夠小且適用于嵌入式系統(tǒng)。
RTAI+uClinux的實(shí)時(shí)方案
uClinux 是為嵌入式應(yīng)用設(shè)計(jì)的,它本身并沒有更多地關(guān)注實(shí)時(shí)問題。uClinux經(jīng)過小型化改造,形成了一個(gè)高度優(yōu)化、代碼緊湊的嵌入式Linux,并保留了 Linux大多數(shù)的優(yōu)點(diǎn)。它專門針對無MMU的CPU,去除了普通Linux內(nèi)核中的虛擬內(nèi)存管理部分。更重要的是,uClinux提供了完整的 TCP/IP協(xié)議棧,并支持大量其他的網(wǎng)絡(luò)協(xié)議,為嵌入式系統(tǒng)提供了強(qiáng)大的網(wǎng)絡(luò)支持。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論