常见的嵌入式操作系统与系统开发工具

國內有愈來愈多廠商採用嵌入式作業系統(Embedded Operating System)作為開發消費性電子產品的核心技術,但自行開發的廠商並不多。在本文中我們將介紹數個在業界及學界受到相當重視和使用的嵌入式作業系統。嵌入式系統(Embedded Systems)近年來在國內產官學界受到相當多的重視,同時也有許多相關的研究及產品開發計畫正在進行。

嵌入式系統大致可分為4個主要的部分,啟動載入程式(Boot Loader)、核心(Kernel)、根檔案系統(Root File System)以及應用程式(Applications)。一般是藉由燒錄器將核心、檔案系統或是程式燒入ROM中來運作。由於嵌入式系統所擁有的系統資源有限,如何能在有限的資源條件限制下,達到最終目標並發揮良好的效能,是嵌入式系統在開發過程中最大的挑戰;而嵌入式作業系統是嵌入式系統能否有效發揮效能的重要角色。

 μC/OS-II

1992年由Jean J. Labrosse所發表的μC/OS即時暨嵌入式作業系統是一個具有高度可移植性、可製成唯讀記憶體(ROM)、可擴充、可中斷、即時以及多工的核心程式。μC/OS-II不但通過了美國FAA(Federal Aviation Administration)的認證,且被商用飛機使用於RTCA DO178B的航空裝置。直至目前為止,μC/OS-II(含其前身μC/OS)已經被數以百計的商用產品所採用。

μC/OS-II擁有著高度的可移植性(portability),可基於不同的硬體架構而使用不同的port,而作業系統本身完全不需要作任何程式碼的更動,網路上有眾多的port可供免費下載。μC/OS-II作業系統可以控制63個應用程式執行緒,而且提供了號誌(semaphore)、事件旗號(event flag)、訊息序列(message queue)、新增/刪除工作及更改工作優先權等服務函式。可信賴度(Reliability)是μC/OS-II架構所注重的焦點,簡潔而仔細撰寫的原始碼直接提升了系統的可得性(Availability)及可信賴度。其原始碼幾乎99%符合MISRA(Motor Industry Software Reliability Association)的程式撰寫格式,可輕易地更改以及維護μC/OS-II。

eCos

eCos是Embedded Configurable Operating System的簡稱,eCos目的在提供消費性電子產品(consumer electronics)、電信通訊、車用電腦以及其他嵌入式應用的即時作業系統。是一個開放原始碼的嵌入式作業系統,完全支援GNU的開放原始碼發展工具(GNU open source development tools)。彈性幅度高的設計可讓使用者自行訂製合適的作業系統,依據硬體需求,規畫出最好的即時執行效率以及最佳化的資源使用。

組態系統(Configuration System)是eCos的一項重要技術革新,這個組態系統允許程式開發員將專案的需求加進即時元件中,無論是功能或是應用實作部份。在傳統的嵌入式作業系統中並沒有如此的彈性,往往專案會被限制在僅能使用系統提供的功能而已。組態系統讓專案開發員可以創造出專為該專案所使用的即時系統,也讓eCos可以更為廣泛地應用在各個領域。好的組態也讓eCos可以使用最少的資源,節省不必要的模組。也因為如此,eCos可以說是一個元件架構(Component Architecture),它提供了一個標準機制使得eCos可以更為延展、選擇所需要的即時元件,不論是eCos的標準元件或是其他開發者發展的元件。eCos可以架構在各種硬體架構上,包含了16、32、64位元硬體、主要處理器單元(Main Processor Unit, MPU)、微控制器單元(Micro Controller Unit, MCU)和數位訊號處理器(Digital Signal Processor,DSP)等。其可攜性來自於將eCos核心、函式庫及即時元件等放置在硬體抽象層(HAL,Hardware Abstraction Layer)之上,如果要移植到其他硬體架構,只要把HAL和相關的裝置驅動程式修改替換即可。

Embedded Linux

通常我們稱使用於嵌入式系統內的Linux為Embedded Linux,雖然以往大多數Linux系統運行在PC平台上,但因其原始碼開放免費、可擴充性、可設定性、模組與結構化設計並且可長期執行的能力,故近來也漸漸成為嵌入式系統的可靠主力嵌入式作業系統。一個功能完備的Linux核心約需1MB,然而一個有網路功能及Web伺服器功能的Linux核心大約只需500KB。另外,Linux已被移植到大多數的微處理器上執行,產品開發者只需專注於專屬硬體的驅動程式撰寫及應用程式開發。

一般開發主機上以PC為主,可在其上直接安裝Linux為開發系統或是在Windows作業系統上安裝Cygwin,接著下載Linux核心的原始碼及GNU的Tool-chain,並把Tool-chain編譯成cross-compiler(通常網路上都能下載已經編譯好給各種不同目標CPU的二元檔)能將Linux核心原始碼編譯成目標板上CPU能執行的機器碼。在啟動載入程式的選擇上就非常多,如UBOOT、LILO、PMON都是強大且免費的套件,而根檔案系統方面,一般都會實作RAM磁碟以儲存系統程式及系統檔案,並且啟動Flash磁碟以儲存系統運作過程中需要記錄的資料,不會因系統重開機而消失,然而要支援Flash磁碟,目前主流的解決方案是以MTD及JFFS2套件來建立Flash記憶體的虛擬磁碟分割,以支援Linux的虛擬磁碟系統(Virtual File System),使一般Linux上的應用程式能夠直接命令Flash磁碟作存取資料的動作,達到透明化(Transparency)的目的。至於系統程式的製作上,目前大多使用BusyBox套件。

特別值得一提的是,Linux受到GPL(General Public License)授權的保護,只要程式中引用部份的GPL程式,就必須受到GPL的制約,也就是必須公開程式的原始碼,因此若此原始碼關乎公司的重要機密,則必須特別留意GPL的版權問題。

uClinux

uClinux由Linux核心2.0衍生而來,是一個專為沒有記憶體管理單元(Memory Management Unit,MMU)的微處理器(microcontroller)所開發的作業系統。由於沒有記憶體管理單元,多工處理(multitasking)變得不容易達成;大部份使用uClinux的應用程式不需要多工處理。除此之外,在其系統上執行的應用程式及原始碼都重新撰寫成為較輕便的版本,故可把uClinux視為一個非常小的Linux核心2.0。它保有了Linux作業系統的特性如穩定、良好的網路功能,因為包含了完整的TCP/IP堆疊、以及強大的檔案系統支援。uClinux使用一般的Linux API,其核心小於512KB,加上工具僅約900KB。

MiniDoochun

MiniDoochun 1.0版(迷你豆漿嵌入式Linux作業系統)是從Doochun Linux(豆漿Linux)延伸出來的子計畫,是一個用來快速開發嵌入式系統原型的框架(framework)。Minidoochun實際上只有提供一個預設的根檔案系統(Root File System),以及一些自動化的流程。使用者只要把編譯好的核心(Kernel)和嵌入式應用程式(Applications)放進這個預設框架內,執行「make」指令,就可以在10分鐘以內得到一個可以試驗的嵌入式系統軟體元件。目前MiniDoochun採用BusyBox為基本架構,使用Syslinux為載入程式,利用簡易的Makefile及Shell script即可順利安裝於4MB以下的DOM(Disk On Module)中,對嵌入式系統的初學者來說,是一套極易上手的系統。

ArtOS

ArtOS為Another real-time Operating System的簡稱,是一套由台灣大學資訊工程所嵌入式系統暨無線網路實驗室所開發出來的即時核心(Real-Time Kernel)。ArtOS即時核心的體積小,兼具有可縮放(scalable)的特性,故能以最小的核心滿足所需的功能,精簡的版本僅需24Kb;並具有多工執行(multi-tasking)、可佔先排程(preemptive)、可製成唯讀記憶體(ROMable)等特性。ArtOS核心對硬體有著高度的移植性(portability),核心的絕大部份由ANSI C撰寫,其他與微處理器相關的程式碼(microprocessor-specific code)由組合語言撰寫。這個部分被獨立出來成為port,對於不同的硬體(target hardware)需要使用專為其撰寫的port。ArtOS只要搭配不同的port,即可移植至不同的微處理器上運作;可移植到大部份微處理器,只要該處理器提供堆疊指標(stack pointer)以及能夠把暫存器的內容推進/取出(push/pop)堆疊,還有所使用的C語言編譯器必須提供in-line assembly或language extensions使得在C程式中可以決定容許插斷與否(enable/disable interrupt)。Port部份的介面設計與μCOS-II的port相容,可以直接使用μCOS-II的port。因此,雖然是新開發的作業系統,已經有為數眾多經測試為可靠的port可以使用。ArtOS可以產生、刪除、排程15個應用程式(總共可支援16個,保留一個給系統閒置時使用),每個應用程式有獨一無二的優先權(priority);提供8個號誌(semaphore)以達到應用程式的同步(synchronization);8個訊息序列(message queue)與總數達64個訊息來完成應用程式間的溝通。目前ArtOS已在x86、8051與ARM 920T的平台上執行過,已進入穩定測試階段。

在嵌入式系統的開發過程中,因不同的硬體平台有不同的特性,因此如果要將一套嵌入式作業系統運用在某個硬體平台上,常需花費大量的人力和時間來做作業系統移植的動作。如果能夠以國家的力量來推動開放原始碼的即時暨嵌入式作業系統移植工作,對於嵌入式系統相關產業將有莫大的幫助。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值