比選擇操作系統更重要的是用好選定的操作系統!

發(fā)布時(shí)間:2017-8-31 09:40    發(fā)布者:技術(shù)小白
關(guān)鍵詞: 嵌入式 , 操作系統
本文作者為清華大學(xué)教授邵貝貝,他本人與嵌入式操作系統有著(zhù)特殊的感情,對μC/OS在中國的推廣起到了巨大的推動(dòng)作用。應《單片機與嵌入式系統應用》之邀,邵老師精心梳理了多年來(lái)對嵌入式操作系統的理解和看法,希望能對所有嵌入式愛(ài)好者和從業(yè)者有所啟發(fā)。


回想過(guò)去,用過(guò)或多少了解一點(diǎn)兒的操作系統確有一些。20世紀80年代,一個(gè)叫做VMS的操作系統風(fēng)靡全球,是DEC公司小型機上用的,我國也引進(jìn)了不少DEC計算機。VMS功能齊全、用戶(hù)界面友好,比Unix好用很多,微機的DOS根本無(wú)法與之相比,1986年最先讓我們接入因特網(wǎng)的便是VMS。然而曾幾何時(shí),VMS被Unix取代了,接著(zhù)是Linux。VMS消失主要因為其不開(kāi)源。后來(lái)世界公認最牛、想用卻用不起的VxWorks實(shí)時(shí)操作系統(RTOS)也不得不開(kāi)源了。那時(shí)蘋(píng)果公司的Mac視窗操作系統比PC的Windows好用得多,在操作系統技術(shù)方面蘋(píng)果至少領(lǐng)先Intel五年,也是由于不開(kāi)放,Mac輸給了PC。20世紀90年代以后,操作系統不再神秘,開(kāi)源成為趨勢。

在國外工作期間也接觸過(guò)一些RTOS,例如OS-9、QNX等,都是不錯的RTOS,還有Nuclus,多年前開(kāi)發(fā)Motorola的68K時(shí)有所接觸,感覺(jué)還不錯,是最早開(kāi)放源碼的RTOS(如今如何就不了解了)。當年在歐洲,由于是客人,只能用主人選定的RTOS。然而,人家認為很好的未必適合你。曾經(jīng)不得不用到一個(gè)歐洲很流行的RTOS,可文檔和程序注解中,英語(yǔ)夾雜著(zhù)法語(yǔ),讓我這個(gè)對法語(yǔ)一竅不通的人恨死那個(gè)操作系統了,盡管有法國朋友熱情幫忙。Freescale曾經(jīng)力推MQX,很多事情集成開(kāi)發(fā)環(huán)境中都已經(jīng)做好了,也有不少朋友推薦。讀過(guò)其部分文檔和代碼后,就是感覺(jué)喜歡不起來(lái)。選擇操作系統的過(guò)程中也走過(guò)一段彎路,嘗試過(guò)將那個(gè)著(zhù)名的非實(shí)時(shí)操作系統實(shí)時(shí)化成RTOS,結果事倍功半,只得放棄了。

目前可選用的操作系統的確很多,哪個(gè)好哪個(gè)不好,由于知識范圍所限,實(shí)在不敢妄加評論。存在的就是合理的。一些生存多年、有業(yè)績(jì)、口碑好、有團隊支持的操作系統肯定都是可選用的。不同操作系統有各自不同的定位,選擇時(shí)首先應考慮本行業(yè)認可的操作系統,比選擇操作系統更重要的似乎是如何用好選定的操作系統。

嵌入式RTOS通常僅指系統內核(Kernel),內核是操作系統的核心,用于建立多任務(wù)運行環(huán)境,管理任務(wù)及系統的共享資源。操作系統間的差異主要體現在任務(wù)調度策略與算法上,不同操作系統以各自的任務(wù)管理方式提供必要的實(shí)時(shí)性保證,解決多任務(wù)環(huán)境下可能出現的競爭與死鎖等問(wèn)題,是嵌入式系統應用工程師開(kāi)發(fā)嵌入式應用的有力工具。任務(wù)調度算法也有很多種,如時(shí)間片調度法、保證調度算法、最短任務(wù)優(yōu)先、隨機調度法(也稱(chēng)擲骰子)、多重隊列法、二級調度法等。這些算法基本上可分為兩大類(lèi):基于時(shí)間片的分時(shí)系統和基于優(yōu)先級的實(shí)時(shí)系統;跁r(shí)間片的多為非實(shí)時(shí)系統,而嵌入式應用多使用基于優(yōu)先級的RTOS。除內核外,操作系統通常還需提供與之配套的文件系統、圖形界面、互聯(lián)網(wǎng)協(xié)議棧、主從USB協(xié)議棧、CAN總線(xiàn)協(xié)議棧、系統調試工具等,供用戶(hù)選配使用。嵌入式RTOS應滿(mǎn)足可裁剪、可固化、可移植等基本要求。

行業(yè)認可并推薦的操作系統應該是首選。例如汽車(chē)行業(yè),首選自然是符合OSEK標準的操作系統(OSEK-OS)。OSEK源自德國的汽車(chē)電子類(lèi)開(kāi)放系統和對應接口標準,除實(shí)時(shí)操作系統OSEK-OS外,還有通信子系統(OSEK-COM)和網(wǎng)絡(luò )管理系統(OSEK-NM)。若開(kāi)發(fā)手機應用軟件,在我國自然首選以Java為編程語(yǔ)言的、基于Linux的Android操作系統。

需要自選操作系統的工程師,首先得對各種不同操作系統的內核調度策略有所了解,看看是否適合自己的項目應用。若這方面的知識不夠,建議精讀一兩本關(guān)于操作系統的經(jīng)典教材,以加深對操作系統原理的理解。對于準備使用Linux類(lèi)型的、有復雜文件系統的、需要MMU硬件支持的非RTOS,建議首先認真讀懂Andrew S. Tanenbaum所著(zhù)的《操作系統設計與實(shí)現》一書(shū)。該書(shū)自1987年問(wèn)世以來(lái),至今已出到第3版,講的是一個(gè)專(zhuān)門(mén)用于教學(xué)的、由Unix簡(jiǎn)化而來(lái)的Minix范例操作系統。正是這本書(shū)觸發(fā)了LinusB. Torvalds的靈感,寫(xiě)成了Linux內核,從而被稱(chēng)作Linux之父。故該教材被公認為L(cháng)inux原理的權威教材,非常值得細讀。順便提一句,Linux是當前最好的非實(shí)時(shí)開(kāi)源操作系統,似乎沒(méi)有之一。非要把它改成實(shí)時(shí)的所謂RT-Linux,我不認為是一個(gè)好的做法,不如直接選用那些本來(lái)就是為實(shí)時(shí)系統設計的RTOS。


對于擬選用嵌入式RTOS的工程師,有必要精讀一本Jean J. Labrosse 所著(zhù)的《嵌入式實(shí)時(shí)操作系統 μC/OS-II》或《嵌入式實(shí)時(shí)操作系統 μC/OS-III》,這兩個(gè)操作系統都可以直接拿來(lái)使用。對于ARM Cortex-M單片機,如果使用Cortex-M3及以上,應使用μC/OS-III,而對于精簡(jiǎn)掉CLZ指令的Cortex-M0/M1/M0+等,則仍建議使用μC/OS-II。Cortex-M單片機中的CLZ指令就是專(zhuān)門(mén)為優(yōu)先級算法提供的硬件指令,所用單片機是否帶有專(zhuān)門(mén)為操作系統設計的硬件指令,也是選擇操作系統時(shí)要考慮的。讀書(shū)的同時(shí),特別要注意閱讀并欣賞一下書(shū)中所附源代碼,至少是代碼的核心部分。上述推薦讀物中的源碼寫(xiě)作風(fēng)格經(jīng)典規范,注釋清晰易懂,非常漂亮,值得學(xué)習。操作系統要選好,更要用好。


既然選了開(kāi)源系統,就要讀一讀該操作系統的核心代碼,弄清楚該操作系統的特點(diǎn)、大致結構,以判斷任務(wù)調度算法是否符合自己的任務(wù)要求。讀代碼是對代碼可讀性、代碼質(zhì)量的最好檢驗。你或許會(huì )喜歡上這個(gè)操作系統的代碼風(fēng)格,或許對其感到厭惡而棄之。我的體會(huì ),個(gè)人感覺(jué)也很重要。

所選操作系統必須能和項目的硬件匹配。對于手機類(lèi)應用,系統偶爾死機未必不可接受。但對于嵌入式應用,若系統死機可能造成難以預料的嚴重后果,那么選擇操作系統和寫(xiě)開(kāi)發(fā)及測試程序等就要格外小心了。這類(lèi)系統被稱(chēng)作安全緊要系統(Safety Critical System),要確保系統安全,不死機或者有故障也能安全,是對這類(lèi)系統的最低要求。理論上,計算機總是能被“搞死”的,如果操作系統能有什么措施,使系統被搞死的幾率低于硬件損壞的幾率,那就足夠好了。但實(shí)踐證明,單靠操作系統和應用軟件并不能保證系統不死機。硬件的可靠性是需要硬件工程師來(lái)保證的。那些自稱(chēng)面向多核單片機的操作系統,在解決系統受到強電磁干擾而出錯的問(wèn)題上,顯然不及兩套獨立供電的單核系統更為可靠。

如果采用C語(yǔ)言開(kāi)發(fā)對系統安全性要求特別高的安全緊要系統,還要特別注意所選RTOS與MISRA-C編程規范的符合程度,該規范雖然是由汽車(chē)工業(yè)軟件可靠性聯(lián)合會(huì )制定的,但在國防、航空航天、電信、鐵路、醫療等領(lǐng)域的用戶(hù)遠多于汽車(chē)領(lǐng)域。當然首先是嵌入式應用工程師本人開(kāi)發(fā)的C程序,要經(jīng)得起MISRA檢驗。

以下課程可免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了。
宋工企鵝號:3524-6590-88   Tel/WX:173--1795--1908




本文地址:http://selenalain.com/thread-516411-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页