- ARM嵌入式系統開發完全入門與主流實踐
- 封景剛 吳寶江編著
- 2589字
- 2019-01-01 05:02:22
2.10 主流嵌入式操作系統介紹
其實,嵌入式系統并不是一個新生的事物,從20世紀80年代起,國際上就有一些IT組織和公司,開始進行商用嵌入式系統和專用操作系統的研發,這其中涌現出了一些著名的嵌入式操作系統。
2.10.1 Windows CE
Windows CE是微軟公司推出的面向移動智能連接設備的模塊化實時嵌入式操作系統。憑借其廣泛的適應性、豐富的功能、強大的多媒體能力、友好的開發環境,Windows CE已經被廣泛地應用于掌上電腦、智能手機、汽車電子、信息終端等領域。
簡單地說,Windows CE就是基于掌上型電腦類的電子設備操作系統。其中CE的C代表袖珍(Compact)、消費(Consumer)、通信能力(Connectivity)和伴侶(Companion),E代表電子產品(Electronics)。它是一個搶先式多任務并具有強大通信能力的Win 32嵌入式操作系統,是微軟專門為信息設備、移動應用、消費類電子產品、嵌入式應用等非PC領域設計的戰略性操作系統產品。
Windows CE的設計目標是:模塊化及可伸縮性、實時性能好、通信能力強大、支持多種CPU。
從操作系統內核的角度看,Windows CE具有靈活的電源管理功能,包括睡眠/喚醒模式。在Windows CE中,還使用了對象存儲(Object Store)技術,包括文件系統、注冊表及數據庫。它還具有很多高性能、高效率的操作系統特性,包括按需換頁、共享存儲、交叉處理同步、支持大容量堆(Heap)等。
Windows CE擁有良好的通信能力,它支持各種通信硬件,亦支持直接的局域網連接及撥號連接,并提供與PC、內部網及Internet的連接,包括用于應用級數據傳輸的設備及設備間的連接。在提供各種基本的通信基礎結構的同時,Windows CE還提供與Windows 9x/NT的最佳集成和通信。
Windows CE的圖形用戶界面相當出色,它擁有基于Microsoft Internet Explorer的Internet瀏覽器,此外,還支持TrueType字體。開發人員可以利用豐富靈活的控件庫在Windows CE環境下為嵌入式應用建立各種專門的圖形用戶界面。Windows CE甚至還能支持諸如手寫體、聲音識別、動態影像、3D圖形等特殊應用。
2.10.2 VxWorks
VxWorks操作系統是美國風河(WindRiver)公司于1983年設計開發的一種嵌入式實時操作系統(RTOS),是嵌入式開發環境的關鍵組成部分。其良好的持續發展能力、高性能的內核及友好的用戶開發環境,使之在嵌入式實時操作系統領域占據了一席之地。它以其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛星通信、軍事演習、彈道制導、飛機導航等。
VxWorks的實時性體現在它能在限定時間內執行完規定的任務并對外部的異步事件作出響應。實時操作系統主要應用于過程控制、數據采集、通信、多媒體信息處理等對時間敏感的場合,而分時操作系統由于按照相等的時間片調度進程輪流運行,無法實時響應外部異步事件,因而主要應用于科學計算和實時性要求不高的場合。
VxWorks由一個體積很小的內核及一些可以根據需要進行定制的系統模塊組成。VxWorks的內核最小為8KB,即便加上其他必要模塊,所占用的空間也很小,且不失其實時、多任務的系統特征。VxWorks的內核主要包括以下幾個特點。
(1)多任務
為滿足真實世界事件的異步性,現代操作系統需提供多任務支持,即由系統內核分配CPU給多個任務并發執行。如果是單CPU,則執行方式的實質是宏觀并行、微觀串行。
(2)任務調度
真實世界的事件具有繼承的優先級,當一個高優先級的任務變為可執行態,它會立即搶占當前正在運行的較低優先級的任務。VxWorks對這種優先級搶占調度(Preemptive Priority Scheduling)提供了支持,同時,VxWorks也支持同優先級任務間的時間片輪轉調度(Round-Robin Scheduling)。
(3)任務間的通信與同步
在一個實時系統中,系統必須提供多個任務間快速且功能強大的通信機制,并要提供為有效地共享不可搶占的資源或臨界區所需的同步機制。
(4)任務與中斷之間的通信
許多外設以中斷方式與CPU通信,不宜在中斷服務程序(ISR)中進行過多的處理,通常將相應處理交給特定任務去完成。
VxWorks支持廣泛的工業標準如POSIX 1002.1b實時擴展、ANSI C(浮點支持)和TCP/IP網絡協議。這些標準促進多種不同產品間的互用性,提升了可移植性,保護了用戶在開發和培訓方面的投資。
2.10.3 Os-9
Microware OS-9 Kernel基礎控制程序,是一個安全、可靠、具有容錯能力和高可用性的實時操作系統,用戶可以在系統運行的同時動態地添加和更換模塊。OS-9的進程模型架構和線程支持,使其成為關鍵任務應用的理想之選。統一的Unix-style I/O、網絡和圖形解決方案、MPEG文檔管理器等特點,使眾多I/O功能更加簡便易用。附加的文檔管理器由第三方提供,也可將其設置為特定應用程序。
2.10.4 QNX
QNX是一個實時、可擴充的操作系統,它遵循POSIX.1(程序接口)和POSIX.2(Shell和工具),部分遵循POXIX.1b(實時擴展)。它提供了一個很小的微內核和一些可選的配合進程,其內核提供4種服務:進程調度、進程間通信、底層網絡通信和中斷處理,其進程在獨立的地址空間運行。所有其他的OS服務,都由協作的用戶進程實現,因此QNX內核非常小巧(QNX4.x大約為12K),而且運行速度極快。這個靈活的結構使用戶可以根據實際需要將系統配置成微小的嵌入式操作系統或是包括幾百個處理器的超級虛擬機操作系統。
2.10.5 μC/OS-II
μC/OS-II是美國人Jean J. Labrosse開發的實時嵌入式操作系統。這個嵌入式操作系統的源碼最初發表在雜志上,1993年,作者將雜志上的文章整理擴展,寫成了《μC/OS,The Real-Time Kernel》一書,這本書的熱銷及源代碼的公開推動了μC/OS-II本身的發展。μ C/OS-II目前已經被移植到了Intel、Motorola等公司的81種不同的處理器上。
之所以有如此多的系統采用μC/OS-II作為操作系統,是與μC/OS-II本身的特性分不開的。μC/OS-II其實只是一個實時操作系統的內核,其全部核心代碼只有8.3K字節。它只包括了進程調度、時鐘管理、內存管理和進程間的通信與同步等基本功能,而沒有包括I/O管理、文件系統、網絡等額外模塊。μC/OS-II進程調度是按搶占式多任務系統設計的,即它總是執行就緒隊列中優先級最高的任務。而且,μC/OS-II的移植性很強,它涉及到系統移植的源代碼只有3個,代碼長度不過兩三百行,移植起來并不困難。
2.10.6 Linux
Linux是一套以UNIX為基礎發展而成的操作系統。自1991年誕生至今,Linux在很多方面已經趕上甚至超過了很多商用的UNIX系統,它實現了真正的多任務、多用戶環境。Linux對硬件配置的要求非常低,能夠在4MB內存的386機器上很好地運行,而且可以支持很多種處理器芯片。此外更為重要的是,Linux是公開源代碼的,有眾多高手愿意在Linux上開發程序,隨時對Linux的開放內核進行升級和修補。
在嵌入式系統的應用方面,Linux小得可以放在一張軟盤上運行。為實時系統而開發的變種RT Linux(Real-Time Linux),可以讓Linux支持硬件實時任務。Linux的開放式原則使得Linux下的驅動和升級變得越來越多、越來越快。
每個嵌入式操作系統都有其各自的特點,必須根據項目實際需要選擇相應的操作系統,μC/OS-II以其開源性和簡單實用性在教學中獲得了廣泛應用。
- 工業機器人虛擬仿真實例教程:KUKA.Sim Pro(全彩版)
- PyTorch深度學習實戰
- Photoshop CS3圖像處理融會貫通
- STM32嵌入式微控制器快速上手
- AutoCAD 2012中文版繪圖設計高手速成
- 工業機器人操作與編程
- Mastering ServiceNow Scripting
- 計算機組網技術
- 會聲會影X4中文版從入門到精通
- 手機游戲策劃設計
- 基于RPA技術財務機器人的應用與研究
- 納米集成電路制造工藝(第2版)
- 軟件質量管理實踐
- Keras Reinforcement Learning Projects
- Microsoft Office 365:Exchange Online Implementation and Migration(Second Edition)