簡介
eCos是一種嵌入式可配置實時作業系統,適合於深度嵌入式套用,主要套用對象包括消費電子、電信、車載設備、手持設備以及其他一些低成本和攜帶型套用。 eCos是一種開放原始碼軟體,無任何著作權費用。eCos具有很強的可配置能力,而且它的代碼量很小,通常為幾十到幾百KB。它的最小配置形式是它的硬體抽象層HAL所提供的引導程式Redboot,可以支持很大範圍內許多不同的處理器和平台。它的最大配置形式是一個完整的實時作業系統,所提供的服務和支持能與其他大多數商用實時作業系統相媲美。eCos為開發人員提供了一個能涵蓋大範圍內各種嵌入式產品的公共軟體基礎結構,使得嵌入式軟體開發人員可以集中精力去開發更好的嵌入式產品,而不是停留在對實時作業系統的開發、維護和配置上。
eCos在嵌入式系統軟體方面最具創新意義的貢獻是可配置組件框架。eCos可配置組件框架使得開發人員可選擇那些能滿足需求的組件,同時對其中一些組件進行配置,從而滿足實現特定套用的需求,這意味著對於eCos中的一個組件來說,可以使用或者禁止它的某個特性,或者為它選擇一種特定實現。一個例子是關於eCos調度器組件的配置,它為開發人員提供了一些配置選項,如執行緒優先權的數目、是否使用時間片等。通過對這些選項進行配置,與開發人員需求無關的任何代碼都可從最後的映像檔案中被去掉。
eCos的這種可配置性使得公司能夠在內部建立起一個可重用的組件庫,庫中的每個組件都包含其實現的原始碼。由於這些組件具有較好的可移植性和廣泛的可適用性,因此通過使用它們,公司就能大大地縮短產品的開發時間和上市時間。eCos的組件框架還鼓勵通過第三方的開發來擴展核心組件的功能和特性。隨著越來越多的開發人員在開發的產品中不斷地擴展組件的功能,並且把這樣的組件貢獻給eCos項目,eCos的功能就會不斷地完善和提高。另外,如果是eCos中還沒有提供的功能,有了eCos的原始碼,我們自己也可以實現它。
起源與歷史
eCos最初起源於Cygnus公司。Cygnus創建於1989年,創始人為Michael Tiemanm、David Henkel-Wallace和John Gilmore,其目的是為開源軟體提供高質量的開發和支持。經過幾年的艱苦努力,最後推出了今天被人們廣泛使用的GNUPro開發工具包,包括GCC(ANSI-C編譯器)、G++(C++編譯器)、GDB(源碼級和彙編級調試工具)、GAS(GNU彙編器)、LD(GNU連結器)、Cygwin(Windows下的UNIX環境)、Insight(GDB圖形界面GUI)等。
Cygnus對eCos的設計始於1997年春季,其主要目的是為市場提供一種低成本、高效率、高質量的嵌入式軟體解決方案,同時要求該軟體所占系統資源極少。eCos和GNUPro相輔相成,擴大了Cygnus的產品線。eCos從設計之初就考慮到了嵌入式系統中的記憶體資源的限制以及嵌入式硬體平台的多樣性。通過與其他許多半導體公司的協作,Cygnus成功構造了一個可以對硬體層進行抽象的實時作業系統(RTOS),並且具有高度可配置性。這些特性使得RTOS可以適合於各種各樣的嵌入式系統,這種RTOS就是eCos。eCos的高度可配置性可以顯著縮短嵌入式產品的開發周期。
Cygnus對eCos的另一個設計目標是降低嵌入式產品的成本。低成本是嵌入式系統開發中必須考慮的一個重要因素。通過使用開放原始碼的形式,eCos基本上不需要任何費用。它是一種完全免費的軟體,任何公司和個人都可以直接從Internet上下載其原始碼和相應的開發工具,並且可以自由地進行修改和擴展,eCos產品的發布也無需交納任何著作權費用。用戶可以自由使用eCos,但是要求公布對eCos的改動,這是為了提供或促進eCos發展的一種措施。當然,用戶的應用程式不必公開。
1998年11月,Cygnus發布第一個eCos版本(eCos 1.1)。
1999年5月,發布eCos 1.2.1。
1999年11月,Red Hat收購Cygnus。
2000年3月,Red Hat發布eCos 1.3.1。
2000年8月,增加Redboot支持。
2002年,Red Hat裁剪eCos開發團隊,原eCos團隊組建eCosCentric公司。
2003年5月,eCosCentric發布eCos 2.0。
2004年1月,Red Hat宣布將eCos著作權轉移給自由軟體基金會(Free Software Foundation)。
2008年11月,增加Cortex-M架構支持。
2009年3月,eCosCentric發布eCos 3.0。
2013年8月,增加單精度浮點數學庫以支持Cortex-M4F的硬體浮點處理器。
特點
核心可配置
eCos最大的特點是核心可配置。它出生於1997年,相對其他的系統來說是非常年輕的,但是也正是因為出身的晚,所以在設計理念上面是比較新穎的。其全部代碼使用C++編寫。 eCos可以說是嵌入式領域的一顆新星,全稱是Embedded Configurable Operating System。絕大多數代碼使用C++寫作完成。最早是 Cygnus公司開發,不久被RedHat收購,RedHat由於財務上的原因放棄了eCos項目,解僱了eCos的開發人員,將eCos原始碼捐給了自由軟體基金會(Free Software Foundation),隨後eCos開發人員組建了eCosCentric公司為eCos提供商業支持。 eCos最大的特點是模組化,核心可配置。如果說嵌入式Linux太龐大了,那么eCos可能就能夠滿足要求。它是一個針對16位、32位和64位處理器的可移植開放原始碼的嵌入式RTOS。和嵌入式Linux不同,它是由專門設計嵌入式系統的工作組設計的。eCos具有相當豐富的特性和一個配置工具,後者能夠讓你選取你所需要的特性。Linux兼容的嵌入式系統在核心裁減後編譯出來的二進制代碼大小在500k位元組以上,這還只包含最簡單的核心模組,幾乎沒有載入任何其他的驅動與協定棧。但是eCos最小版本只有幾百K位元組,一般,一個完整的網路套用,其二進制的代碼也就100K位元組左右。而且更為重要的是,eCos提供的Linux兼容的API能讓開發人員輕鬆的將Linux套用移植到eCos(這點和RTEMS很相似),與此同時,應用程式不用跑在Linux複雜的核心機制上(這套機制,對於大型伺服器也許還湊合,但是對於短小精悍的嵌入式套用,太浪費了),大大節省了你的時鐘和RAM。
組態配置
eCos具有可組態配置的特性,可針對精確性套用的需求而進行客制化,加上數百種的選項功效,使其能用最少的硬體資源獲得最大可能的執行效能。
針對小記憶體
eCos是針對RAM存儲資源只有「數十KB至數百KB」間的裝置而設計,同時也是針對實時運作而設計,它可以用在存儲器不足以支援嵌入式Linux執行的套用場合,因為就一般而言嵌入式Linux至少要2MB左右的RAM記憶體空間才能執行,且還不包含應用程式及服務程式等的記憶體需求。
執行平台
eCos可以在各種硬體平台上執行,包括ARM、 CalmRISC16/32、 Coldfire、 Cortex-M、 Fujitsu fr30/fr50/fr60 、 Fujitsu FR-V、 Hitachi H8、 IA-32、 Motorola 68000、 Matsushita AM3x、 MIPS、 NEC V8xx、 OpenRISC、 PowerPC、 SPARC、 Sunplus SPCE、 SuperH、 Nios II等。
嵌入系統
嵌入式作業系統的種類較多,其中比較流行的有VxWorks、Windows CE、pSOS、Palm OS、uC/OS、嵌入式Linux等。這些嵌入式作業系統在開放性、實用性以及性能等方面各有千秋,但大多數為商用產品。除了商用產品外,還有一些免費的嵌入式作業系統,uClinux是其中比較流行的,而eCos則是另一個選擇。嵌入式可配置作業系統eCos(Embedded Configureable Operating System)的特點是可配置性、可裁減性、可移植性和實時性。它的一個主要技術特色就是功能強大的配置系統,可以在源碼級實現對系統的配置和裁減。與Linux的配置和裁減相比,eCos的配置方法更清晰、更方便;且系統層次也比Linux清晰明了,移植和增加驅動模組更加容易。正是由於這些特性,eCos引起了越來越多的關注,同時也吸引越來越多的廠家使用eCos開發其新一代嵌入式產品。如凌陽SPCE3200處理器。
國內社區
eCos技術網是一個專注於eCos技術的社區網站,致力於開源免費的專為嵌入式系統設計的嵌入式可配置作業系統eCos在中國的套用、推廣、社區服務和相應的產品技術方案。