一種改進嵌入Linux實時性的新型方案
現 有的嵌入式操作系統大致可分為商用型和免費型兩類:商用型操作系統由于功能穩定、可靠,有完善的技術支持和售后服務,在嵌入式市場占有一定的份額。但它同 時也存在價格昂貴、需要版權、源代碼不公開等一系列問題;免費型操作系統(如Linux)源碼公開,有價格方面的優勢,但在嚴格滿足嵌入式實時應用需求方 面還有欠缺。

圖2 實時內核實現機理
RTAI對Linux的實時性改進
現有幾種針對Linux的實時系統解決方案,實現方法主要包括兩種:
1)直接修改Linux內核、增加實時性,如:Montavista;
2)在普通Linux內核之上增加實時模塊、雙內核結構,如:RTLinux或RTAI。
Montavista 可以滿足用戶的軟實時要求,RTLinux或RTAI著重增強Linux的硬實時特性。軟實時系統的時限是柔性靈活的,它可以容忍偶然的超時錯誤。失敗造 成的后果并不嚴重,僅僅是輕微地降低了系統的吞吐量。硬實時系統有一個剛性的、不可改變的時間限制,它不允許任何超出時限的錯誤。超時錯誤會帶來損害甚至 導致系統失敗、或者導致系統不能實現它的預期目標。
RTAI采用雙內核方法,不直接使用Linux的任何功能,而是把需要高度時間精度的 工作寫成一個驅動程序的形式,然后直接用PC時序芯片所產生的中斷調用這個驅動程序。RTAI與NMT RT-Linux的最大不同之處在于,它在Linux上定義了一組實時硬件抽象層(RTHAL)。RTHAL將RTAI需要在Linux中修改的部分定義 成一組程序界面,RTAI只使用這組界面和Linux溝通。這樣做的好處在于,用戶可以將直接修改的Linux核心程序代碼減至最小,這有可能使得將 RTHAL移植到新版Linux的工作量減至最低。
但是,RTAI雖然滿足了硬實時性要求,卻沒有被裁減為足夠小且適用于嵌入式系統。
RTAI+uClinux的實時方案
uClinux 是為嵌入式應用設計的,它本身并沒有更多地關注實時問題。uClinux經過小型化改造,形成了一個高度優化、代碼緊湊的嵌入式Linux,并保留了 Linux大多數的優點。它專門針對無MMU的CPU,去除了普通Linux內核中的虛擬內存管理部分。更重要的是,uClinux提供了完整的 TCP/IP協議棧,并支持大量其他的網絡協議,為嵌入式系統提供了強大的網絡支持。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論