如今,嵌入式系統(tǒng)開發(fā)人員可以使用各種各樣的操作系統(tǒng)。當(dāng)然最直白的操作系統(tǒng)就是沒有操作系統(tǒng)!然而,今天的許多系統(tǒng)是復(fù)雜的、相互連接的系統(tǒng),其中可能需要操作系統(tǒng)。當(dāng)需要時(shí),嵌入式開發(fā)人員通常會(huì)使用實(shí)時(shí)操作系統(tǒng)(RTOS)或Linux來幫助他們管理復(fù)雜性。但是,如何在裸機(jī)、RTOS和Linux之間做出選擇并不總是一目了然的。每種選擇都有其優(yōu)點(diǎn)和缺點(diǎn)。
這篇文章將探討你在選擇操作系統(tǒng)時(shí)應(yīng)該考慮的系統(tǒng)特性
產(chǎn)品的生命周期成本
為嵌入式系統(tǒng)選擇操作系統(tǒng)首先要了解產(chǎn)品的生命周期成本和需求。需要在產(chǎn)品的材料清單(BOM)成本和軟件維護(hù)成本之間進(jìn)行權(quán)衡。例如,使用Linux的嵌入式系統(tǒng)發(fā)現(xiàn)更容易利用開源軟件,并找到可以編寫系統(tǒng)軟件的開發(fā)人員。然而,基于Linux的系統(tǒng)比基于微控制器的系統(tǒng)具有更復(fù)雜的硬件要求,并且可能具有更高的BOM成本。基于微控制器的系統(tǒng)可能成本更低,但能夠成功設(shè)計(jì)和維護(hù)這些系統(tǒng)的開發(fā)人員也更少。
設(shè)計(jì)師需要權(quán)衡硬件和軟件成本,以確定他們的產(chǎn)品使用可以運(yùn)行Linux的硬件是否有意義,或者是否有一個(gè)更便宜、CPU占用更少的解決方案更適合。
要考慮的物理特征
說到硬件能力和要求,嵌入式開發(fā)人員在選擇嵌入式操作系統(tǒng)時(shí),檢查硬件選擇的物理特性也很重要。應(yīng)當(dāng)考慮的微處理器或微控制器的物理因素包括:
外圍特征集
CPU時(shí)鐘速度
可用的閃存
可用RAM
硬件對系統(tǒng)的物理限制可能會(huì)立即限制你可以使用的選項(xiàng)。例如,運(yùn)行嵌入式Linux通常需要處理器包含一個(gè)內(nèi)存管理單元(MMU)。但是,微控制器沒有MMU。因此,要運(yùn)行Linux,設(shè)計(jì)人員至少需要一個(gè)Cortex-A系列的應(yīng)用處理器,而不是Cortex-M系列的微控制器(盡管情況變化很快,有些人可能擁有帶MMU和合理時(shí)鐘速率的微控制器)。
要運(yùn)行嵌入式Linux,硬件還必須至少有8 GB的存儲(chǔ)空間、16 GB的RAM和8–16mb的內(nèi)部閃存。像Linux這樣的內(nèi)核可能也需要至少500 MHz的處理器。這遠(yuǎn)遠(yuǎn)高于運(yùn)行RTOS所需的容量,后者至少需要4 kB的RAM、64 kB的閃存和24 MHz的CPU。
實(shí)時(shí)性能
根據(jù)經(jīng)驗(yàn),探索裸機(jī)、RTOS和基于Linux的系統(tǒng)之間的實(shí)時(shí)性能特征是一個(gè)棘手的問題。專注于基于微控制器的實(shí)時(shí)系統(tǒng)的嵌入式開發(fā)工程師經(jīng)常會(huì)告訴你,你無法從Linux系統(tǒng)獲得真正的實(shí)時(shí)性能。Linux工程師會(huì)告訴你這不是真的;有實(shí)時(shí)補(bǔ)丁,它提供實(shí)際的實(shí)時(shí)行為。從那時(shí)起,爭論通常會(huì)變得激烈。
無論你站在哪一邊,看看實(shí)時(shí)需求并利用它們來選擇你的操作系統(tǒng)是很重要的。評估系統(tǒng)需要有多確定,并根據(jù)這些需求評估你的操作系統(tǒng)。
軟件庫集成
使用裸機(jī)、RTOS或Linux之間的一個(gè)重要區(qū)別是開發(fā)人員可用的軟件庫的可用性和集成程度。在裸機(jī)領(lǐng)域,你只能靠自己。你要么從頭開始編寫軟件,要么自己集成第三方庫。另一方面,RTOS將附帶一套已經(jīng)與RTOS集成的庫。例如,人們可能會(huì)發(fā)現(xiàn)循環(huán)緩沖區(qū)、內(nèi)存管理工具、文件系統(tǒng)等。更多的庫是可用的和集成的,但是可能仍然需要自己做一些工作。
當(dāng)你看Linux時(shí),感覺開發(fā)者有幾乎無限的可用庫,并且已經(jīng)與系統(tǒng)集成。嵌入式Linux最吸引人和增值的特點(diǎn)是軟件庫的可用性和集成性。嵌入式開發(fā)者有一個(gè)完整的操作系統(tǒng)供他們使用。這很強(qiáng)大,但也有潛在的危險(xiǎn)。
不要忘記安全性
如今,許多設(shè)計(jì)師都在構(gòu)建互聯(lián)系統(tǒng),這些系統(tǒng)必須具備安全的解決方案。操作系統(tǒng)在安全解決方案中扮演著重要的角色。例如,如果在Linux內(nèi)核使用的標(biāo)準(zhǔn)庫中發(fā)現(xiàn)了一個(gè)漏洞,那么每個(gè)Linux設(shè)備在打補(bǔ)丁之前都有這個(gè)漏洞。裸機(jī)或基于RTOS的系統(tǒng)不存在同樣漏洞的可能性很高。特定的操作系統(tǒng)比其他操作系統(tǒng)更容易成為黑客攻擊的目標(biāo),因?yàn)楹诳涂梢岳眠@些工具來攻擊這些設(shè)備。在Linux系統(tǒng)防御中,我們相信仍然設(shè)置了默認(rèn)密碼,但它表明,如果你不花時(shí)間正確配置你的操作系統(tǒng),那么破解它也不需要太多時(shí)間。
結(jié)論
嵌入式開發(fā)人員在選擇操作系統(tǒng)時(shí)應(yīng)該考慮很多特性。第一個(gè)特征更多地與成本和建筑產(chǎn)品的商業(yè)方面有關(guān)。然而,更重要的屬性,如可用的庫、安全性、可維護(hù)性等,也起著至關(guān)重要的作用。