戴燕玲
(廈門軟件職業技術學院,浙江蘭溪,361024)
嵌入式操作系統實踐教學方法的探索
戴燕玲
(廈門軟件職業技術學院,浙江蘭溪,361024)
針對傳統嵌入式系統實踐教學與現實企業需求相脫節的問題,介紹一些嵌入式操作系統實踐教學的內容和改進方法,提出一些基于μC/OS-II和智能手機linux內核的實踐教學內容和項目。
μC/OS-II;linux內核;實踐教學
操作系統是嵌入式系統中最重要的系統軟件,但又比較抽象難懂,實踐性又很強,而目前關于嵌入式操作系統的實踐教學又無法適應時代的需求,學生也無法真正理解和掌握嵌入式操作系統內核的工作原理,也就無法真正學好嵌入式系統。因此必須不斷更新現有的操作系統實踐教學內容和方法才能與時俱進,緊跟時代潮流。
目前在嵌入式領域廣泛使用的操作系統有:嵌入式實時操作系統μC/OS-II、嵌入式Linux、Windows Embedded、VxWorks等,以及應用在智能手機和平板電腦的Android、iOS等。
μC/OS-II占用空間少,執行效率高,實時性能優良,且針對新處理器的移植相對簡單。linux則占用空間相對較大,實時性能一般,針對新處理器的移植相對復雜。但是,linux具有對多種文件系統的支持能力、內嵌了tcp/ip協議,對一些復雜的應用,linux具有相當優勢。
操作系統的選擇是由嵌入式系統的需求決定的。簡單的說就是,小型控制系統可充分利用μC/OS-II小巧且實時性強的優勢,如果開發pda和互聯網連接終端等較為復雜的系統則linux是不錯的選擇。
目前大多數高校,特別是高職院校開設的嵌入式實踐教學基本都是ARM試驗箱之類的硬件平臺,實踐平臺單一,且只能開展一些低端實驗,如:鍵盤、SD卡等驅動程序的編寫;基本繪圖、鍵盤、跑馬燈等應用程序的編寫;以及串口通信等,這些實驗學生缺乏興趣,且與實際嵌入式操作系統的應用差距較大,跟不上時代潮流與發展,同時學生也缺乏對操作系統如μC/OS或linux內核功能的理解,實踐教學效果不理想。
為了改變這一現狀,同時考慮到學生現有的知識水平和能力,可以讓學生從簡單的操作系統μC/OS-II入手。μC/OS-II作為一個多任務搶占式的實時操作系統內核,它只包含了任務調度、任務管理、時間管理、內存管理、任務間的通信和同步等基本功能,而輸入輸出管理、文件系統、網絡等額外的服務是需要額外獲取再整合的。μC/OS-II本身具有的良好的可擴展性以及其結構小巧和源碼開放的優點,使μC/OS-II成為嵌入式學習中非常好的入門工具。在此基礎上再選擇Android手機的Linux內核部分進行學習。
實踐教學內容可以從三個層次考慮。
(1)基礎性實驗(驗證性實驗)
在ARM試驗箱上完成鍵盤、USB、SD卡等簡單驅動程序的編寫并燒寫運行,以及鍵盤、跑馬燈、基本繪圖等簡單應用程序的編寫并燒寫運行。
(2)綜合性實驗
可以通過修改μC/OS-II操作系統內核代碼或者增加一些新的算法來實現新的功能的方法來實現。
也可以選取一般操作系統中常見的而μC/OS-II并 未采用的幾個典型算法,如進程調度算法中除OS-II采用的優先級算法外,還有時間片輪轉算法、 短作業優先算法、先到先服務算法等,讓學生在OS-II的框架下編程實現其中的某個算法并替換原 先μC/ OS-II中所采用的算法,通過實際運行結果來 檢驗設計的正確性,最終實現一個在某一方面有別 于μC/OS-II的小操作系統。
(3)設計性實驗(創造性實驗)
① Linux內核的定制、移植與編譯。該專題 主要介紹Linux內核開發的一般流程,包括如何 定制內核、編譯內核和移植內核的一般思路等。,通過使用編譯 腳本大大簡化編譯步驟,實現“零基礎”新手快 速人門;使用菜單化的內核配置工具,讓學生了解內核配置的方法和過程,不再畏懼“龐大”的 操作系統。
②面向性能優化的增強性設計。該專題主 要圍繞如何提高CPU性能和I/O性能、如何評 測系統性能等方面展開,還涉及超頻、I/O調度 算法的選擇等內容來提高手機的運行速度。
③面向功耗優化的增強性設計。該專題主 要圍繞如何降低系統的功耗展開,首先介紹系統 中與電源管理相關的內容,然后重點就DVFS、 各個硬件模塊的低功耗設計進行實踐,增加手機待機時間。
④面向安全性的增強性設計。該專題主要 介紹Android、Linux、Bootloader等各個層次的 安全性措施,智能手機Root的原理,針對智能 手機的破解、解鎖、Root等技術。如增加智能手機語音解鎖功能;通過增加手機的硬件驅動程序實現手機丟失或被盜的報警功能等等。
⑤面向增強用戶體驗的設計優化。該專題 主要介紹各種增強用戶體驗的技術,這些技術 往往涉及特定的硬件驅動和內核技術,具有一定 難度。如,開發一個小型的聊天或交友APP,有別于現有的聊天工具QQ或微信,可以增加一些額外的功能,如更人性化的圖形界面,更方便快捷的視頻語音聊天等等。
⑥基于GitHub的操作系統內核協同開發 實踐。GitHub已經成為開源軟件的集散地,其方 便的協同開發功能吸引了全球的程序員共同完成 應用開發。很多手機Linux內核開發也在GitHub上進行。
通過嵌入式操作系統實踐教學平臺和方法的改進,通過具體的項目實踐,學生可以更好的理解操作系統的抽象理論,掌握μC/OS-II的內核結構和功能,理解智能手機linux內核的源代碼以及內核功能的實現原理,并通過對OS某些功能和算法的改進和設計,培養學生的創新能力,這樣學生才能深入理解和學習嵌入式操作系統。
[1]康鴻雁.Linux在操作系統理論教學中的應用研究[J].信息系統工程,2010,1(7): 107-108.
[2]岳鍵,季賽.pC/OS-n在操作系統課程教學中的應用方法[J].中國科技信息,2008,7(22) :294-295.
[3]王蘇峰,竇勇,陸洪毅,等.針對嵌入式實時編程的系統性教學方法探討[J].計算機教育,2009(14): 54-56.
[4]姜余祥.嵌入式手機編程實驗教學系統設計與實現[D].北京:北京工業大學,2008: 1-10.
Research on practice teaching method of Embedded Operating System
Dai Yanling
(Xiamen institute of software technology,Lanxi Zhejing,361024)
In view of the traditional practice teaching of embedded system and practical needs of enterprises in line with the problems, introduces some embedded operating system the content of practice teaching and puts forward some improvement methods, based on C/OS-II and intelligent mobile phone Linux kernel practice teaching content and project.
μC/OS-II ; linux kernel; practice teaching