Rtems

Rtems

Rtems,是一個開源的無版稅實時嵌入操作系統RTOS。

目錄

正文


RTEMS, 即: 實時多處理器系統(Real Time Executive for Multiprocessor Systems),是一個開源的無版稅實時嵌入操作系統RTOS。它最早用於美國國防系統,早期的名稱為實時導彈系統(Real Time Executive for Missile Systems),後來改名為實時軍用系統(Real Time Executive for Military Systems),現在由oar公司負責版本的升級與維護。目前無論是航空航天、軍工,還是民用領域RTEMS都有著極為廣泛的應用。
從體系結構上來看,RTEMS是微內核搶佔式的實時系統,他具有下面的優點:
優秀的實時性能
支持硬實時和軟實時(可搶佔內核)
支持優先順序繼承,防止優先順序反轉
支持單調周期調度
支持優先順序高度協議
非常的穩定
運行速度快
支持多種CPU,無論是ARMMIPSPowerPCi386還是DSP,AVR,Zilog,都可以找到對應的BSP。
高度可剪裁內核(目標系統小隻有30KB;大可上百兆)1,2,3
佔用系統資源小,在32位系統中最小的內核只有30Kb左右1,2
支持多處理器(不同於SMP,RTEMS中多個處理器是協作關係)
提供POSIX API,Linux/UNIX下的程序可以方便移植
提供完整的BSD的TCP/IP協議棧以及FTPWebServer、NFS等服務
使用面向對象思想設計,可以大大縮短開發周期
核心代碼使用C/C++寫作,可移植性好
支持ISO/ANSI C庫
支持ISO/ANSI C++庫以及STL庫
支持精簡的可重入glibc
支持圖形用戶界面(Microwindows/Nano-X)
支持文件系統(FAT,IMFS等)
支持多種調試模式(包括GDB,DDD,串口調試,乙太網調試)
支持32位處理器,Tiny RTEMS項目將對8位和16位處理器進行支持2
(注1:最小內核指的是只包含BSP、任務調度、內存模塊這些功能的內核。它的大小和CPU指令集、外設多少、二進位代碼格式等相關。CPU是ARM7時,產生的ELF格式標準ARM目標可以減少到46kb。通常來說如果只需要最主要的功能,未壓縮目標目標可以控制在60kb(內核+BSP+簡單應用),這比起Linux2.4 壓縮后還有700K的龐大體積來說,更適合成本體積敏感的應用)
(注2:現在也有hacker主持Tiny RTEMS項目,該項目中,未壓縮的最小的RTEMS bin鏡像(內核+BSP)只有20kb。該項目將RTEMS id變成了16bit了,此外該項目將BSD TCP/IP換成了lwip。這樣RTEMS變成了能給8bit和16bit用戶使用的小型RTOS,COOL!!。)
(注3:如果只是RTEMS可管理的存儲空間,rtems.com公布的應用中,基於RTEMS的飛行記錄儀提供多達8G的存儲空間。)
RTEMS在性能上絲毫不輸於VxWorks,他和VxWorks以及RtLinux的性能比較可以參考《RTEMS簡介》。他在全球有不少的用戶,尤其是在通信、航空航天、工業控制、軍事等領域有著非常廣泛的應用,在系統實現上,RTEMS和VxWorks以及NucleusPlus的實現基本相同。
RTEMS的官方網站是www.rtems.com,當前最新的穩定版本是4.10,開發版是4.11。在國內,RTEMS主要用在航空航天和軍工領域。我們希望這個網站能普及RTEMS知識,幫助RTEMS在民用領域發揮更大的作用。