Costs and the business aspects of building products are key criteria, but attributes like available libraries, security, and maintainability also play an essential role.
嵌入式系統開發人員如今可以使用范圍廣泛的操作系統。當然,最直接的操作系統就是沒有操作系統!然而,當今的許多系統都是復雜的連接系統,可能需要操作系統。需要時,開發人員通常會尋求使用實時操作系統 (RTOS) 或 Linux 來幫助他們管理復雜性。不幸的是,如何在裸機、RTOS 或 Linux 之間進行選擇并不總是很明確。每個選項都有其優點和缺點。
這篇文章將探討您在選擇操作系統時應考慮的系統特性。然后在下一篇文章中,我們將介紹何時最適合使用每個操作系統。
產品的生命周期成本
為您的嵌入式系統選擇操作系統首先要了解您的產品的生命周期成本和要求。需要在產品的物料清單 (BOM) 成本和軟件維護成本之間進行權衡。例如,使用 Linux 的嵌入式系統更容易利用開源軟件并找到可以編寫系統軟件的開發人員。但是,基于 Linux 的系統比基于微控制器的系統具有更復雜的硬件要求,并且可能具有更高的 BOM 成本。基于微控制器的系統成本可能較低,但能夠成功設計和維護這些系統的開發人員也較少。
設計人員需要權衡硬件和軟件成本,以確定他們的產品使用可以運行 Linux 的硬件是否有意義,或者是否更適合使用更便宜且 CPU 密集度更低的解決方案。
要考慮的物理特性
說到硬件功能和要求,在選擇嵌入式操作系統時,檢查硬件選擇的物理特性也是必不可少的。應考慮的微處理器或微控制器的物理因素包括:
外圍功能集
CPU時鐘速度
可用的閃存
可用內存
硬件對您的系統施加的物理限制可能會立即限制您可以使用哪些選項。例如,運行嵌入式 Linux 通常需要處理器包含內存管理單元 (MMU)。不幸的是,微控制器沒有 MMU。因此,要運行 Linux,設計人員至少需要 Cortex-A 范圍內的應用處理器,而不是 Cortex-M 系列中的微控制器(盡管情況變化很快,有人可能擁有具有 MMU 和合理時鐘速率的微控制器)。
要運行嵌入式 Linux,硬件還必須具有至少 8 GB 的存儲空間、16 GB 的 RAM 和 8 – 16 MB 的內部閃存存儲空間。像 Linux 這樣的內核也可能需要至少 500 MHz 的處理器。這些比運行 RTOS 所需的要高得多,后者至少需要 4 kB 的 RAM、64 kB 的閃存和運行在 24 MHz 的 CPU。
實時性能
我從經驗中知道,探索裸機、RTOS 和基于 Linux 的系統之間的實時性能特征是一個燙手山芋。專注于基于微控制器的實時系統的工程師經常會告訴您,您無法從 Linux 系統中獲得實際的實時性能。Linux 工程師會告訴你這不是真的。有實時補丁,它提供了實際的實時行為。從那里開始,爭論通常會變得激烈。
無論您站在哪一邊,都必須查看實時要求并在選擇操作系統時使用它們。評估系統需要的確定性,并根據這些需求評估您的操作系統。我已經看到了運行良好的 Linux 實時版本。其他沒有。沒有普遍正確的答案,只有適合您的應用的答案。
軟件庫集成
使用裸機、RTOS 或 Linux 之間的顯著差異之一是開發人員可用的軟件庫的可用性和集成程度。在裸機空間中,您只能靠自己。您要么從頭開始編寫軟件,要么自己集成第三方庫。另一方面,RTOS 將附帶一套已經與 RTOS 集成的庫。例如,可能會發現循環緩沖區、內存管理工具、文件系統等。更多的庫可用和集成,但可能仍然需要自己做一些工作。
當您查看 Linux 時,感覺就像開發人員擁有幾乎無限的可用庫,并且已經與系統集成。嵌入式 Linux 最具吸引力和增值的特性是軟件庫的可用性和集成。開發人員可以使用一個整體的操作系統。這很強大,但也有潛在的危險。
不要忘記安全性
如今,許多設計人員正在構建必須具有安全解決方案的連接系統。操作系統在安全解決方案中發揮著重要作用。例如,如果在 Linux 內核使用的標準庫中發現漏洞,則在修補之前的每個 Linux 設備都有該漏洞。裸機或基于 RTOS 的系統很可能不會有同樣的漏洞。特定的操作系統比其他操作系統更容易成為黑客的目標,因為他們可以使用工具集來破解這些設備。例如,我已經將使用 RTOS 的嵌入式系統直接放到互聯網上而沒有受到保護,并且它們使用了數周而沒有受到損害。我曾經把一個基于 Linux 的系統放到互聯網上,它在 48 小時內就被黑客入侵并成為中國僵尸網絡的一部分。在 Linux 系統防御中,
結論
開發人員在選擇操作系統時應考慮許多特性。第一個特征更多地與成本和構建產品的業務方面有關。然而,更重要的屬性,如可用庫、安全性、可維護性等,也起著至關重要的作用。那么您應該使用哪種操作系統以及在什么情況下使用呢?在下一篇文章中,我們將探討這個問題并提供有關在何處使用裸機、RTOS 和 Linux 的指南。
審核編輯 黃昊宇
-
嵌入式
+關注
關注
5068文章
19019瀏覽量
303301 -
操作系統
+關注
關注
37文章
6738瀏覽量
123190
發布評論請先 登錄
相關推薦
評論