Rtems簡介

Rtems簡介

RTEMS,a rivail of VxWorks

作者 Ray

RTEMS版權所有,轉載請註明:來源http://www.rtems.net,作者Ray

RTEMS可謂嵌入式系統鼻祖,經過專家的評測,其性能毫不遜色於VxWorks, 遠遠把RtLinux甩在後面。

正文

RTEMS是前美國軍方研製的嵌入式系統, 最早用於美國國防系統,早期的名稱爲實時導彈系統(Real Time Executive for Missile Systems),後來改名爲實時軍用系統(Real Time Executive for Military Systems), 目前的全稱是實時(Real Time Executive for Multiprocessor Systems)用,他的特點是非常的穩定,而且速度快。現在是一個開源項目的RTOS, 在全球還是有不少的用戶,其中包括Motorola,朗訊等,他有下面的特點:

  1. 非常好的實時性能(以前是控制導彈的,再差也差不到那裏去)
  2. 極其穩定
  3. 使用面向對象技術構件,剪裁性和移植性好。
  4. 包含POSIX 1003.1b API,並且支持POSIX Thread
  5. 提供pSOS+的API
  6. 提供遵循ITRON的API
  7. 體系可伸縮(也就是常說的Scalable)
  8. 多任務,支持事件驅動,優先級調度,搶佔調度(preemptive scheduling)
  9. 任務間的同步與通信
  10. 優化的基於統計的單調頻率RMS調度(Rate Monotonic Scheduling)
  11. 優先級高度協議PCP(Priority Ceiling Protocols)
  12. 支持優先級繼承用於解決優先級反轉的問題
  13. 支持多處理器體系結構(不但支持同構的處理器,也支持異構處理器比如ARM+DSP)
  14. 負責任的中斷管理
  15. 高度的可配置性
  16. 提供可重入的ANSI C庫
  17. 提供TCP/IP協議棧以及WebServer等服務。

注:TRON全稱是 (The Real-time Operating system Nucleus),ITRON(Industrial TRON)是一個由多家著名IT企業牽頭的協議制定組織,同時IRTON也代表實時嵌入式系統的一個標準。ITRON提出了實時操作系統的一系列規範(包括系統調用接口規範,任務調度接口規範,TCP/IP網路鏈接API規範,本地與遠程調試接口規範等等),遵循這個規範的操作系統上層軟件可以相互移植,有點類似於UNIX世界裏面的POSIX。日本所有的大型IT公司都開發了自己的基於ITRON的嵌入式系統

此外他還提供了很多有些的附加屬性:

  1. 優秀的網路支持,支持BSD套結字, TCP/IP, UDP/IP, TFTP, FTPd, HTTPd, SNMP, NTP, ICMP, ARP, DNS client, PPP, Remote Console, SNMP
  2. 支持圖形界面:microwindows GUI
  3. 支持Webserver(GoAhead)
  4. 支持CORBA(omniORB)
  5. 支持大量的OpenSource庫,比如:TCL, readline, zlib, ncurses, libavl
  6. 對大多數API提供C++支持(可選)
  7. 支持Ada
  8. 支持文件系統

目前RTEMS是GPL的開源項目(準確的說,是GPL的一個變種),廣泛應用於軍事,工業,科研等領域。很多專業的軟件(比較註明的如EPICS)開始移植到RTEMS平臺上。
    RTEMS從設計初始就是爲較少內存與較少CPU主頻的嵌入式系統提供可靠的實時內核。該系統分爲若干模塊,用戶可以根據實際應用需要進行剪裁。     在國際控制年會Straumann的一篇報道做過如下的測試,測試的硬件平臺是PowerPC 604(300MHz),Rtlinux,RTEMS和VxWorks的BSP都是由Motorola提供,測試內容包括初始化、中斷處理、普通程序(包括網路程序、SPI、串口等)。測試中產生了2,000,000次中斷,中斷的平均頻率爲4kHz。可以看出,這個測試程序對內核的實時性以及任務調度都是一個嚴格的考驗。測試的結果如下表所示:(單位10-6s)

 
中斷時延
Context轉換
 
系統負載中等
 
最大
平均
最大
平均
RtLinux
13.5
1.7
33.1
8.7
RTEMS
15.1
1.3
16.4
2.2
RTEMS1
14.9
1.3
16.9
2.3
VxWorks
13.1
2.0
19.0
3.1
 
重負載
RtLinux
196.8
2.1
193.9
11.2
RTEMS
20.5
2.9
51.3
3.7
RTEMS1
19.2
2.4
213
10.4
VxWorks
25.2
2.9
38.8
9.5

注:RTEMS1(使用Pthread庫)

從表上的結果可以看出,RtLinux無論是實時性,還是線程任務遷移,都還遠遠不能滿足要求。尤其是在重負載情況下,處理中斷的時延波動非常厲害。想象一下,RtLinux他的中斷處理平均時間是2.1us但是實際應用的時候可能要在200us才能處理。這在時間有嚴格要求的系統中是不能允許的。

同時也可以看到,RTEMS在測試重表現的性能指標非常理想,基本上達到或者超過老牌商業系統VxWorks。值得一提的是RTEMS在使用了Pthread庫後,RTEMS的性能有所下降。但是最差的情況也不會比RtLinux差。但讓人欣喜的是,目前Pthread庫的性能已經有了不少改善,詳情可以參考RTEMS的郵件列表。

既然我把Rtems叫做嵌入式系統裏面的老大哥,它支持的CPU類型自然是非常多的,可以說只要是GCC支持的,RTEMS就可以支持。其中值得一提的是一下的CPU

  • intel的i386,i960
  • Hitachi的H8/300和SH系列
  • Motorola的MC68xxx
  • MIPS R46x0
  • OPEN CORE的OR32
  • PowerPC系列
  • SPARC系列
  • ARM系列
  • AMD 29K
  • HP PA-RISC

這些系列是比較成熟的工業級CPU,RTEMS在這些產品上面已經有多年的應用,所以對這些CPU支持的特別好。同時隨着ARM和DSP的流行,RTEMS也在幾年前支持了多種DSP和多個系列的ARM(ARM只是一個核心,實際的ARM芯片有上千種,一個操作系統不可能支持全部的ARM芯片)。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章