
并非所有的操作系統都是平等構建的。事實上,在多任務處理、開銷、內存使用等方面有很多不同。當涉及到為設備選擇合適的系統時,這一系列的選擇可能會使嵌入式開發人員感到困難。一種特別適合連接設備(至少是基本設備)的類型是裸機。正如裸機服務器一次只能承載一個租戶一樣,裸機環境完全專用于運行單個應用程序。這與同時運行多個程序的常規操作系統形成了鮮明對比。
RTOS:處理復雜的調度
與同類產品相比,裸機的簡單性尤為明顯。裸機系統的下一步是RTOS(實時操作系統)。RTOS的設計相對簡單,但與裸機不同,它可以同時啟動和停止不同的進程。另一方面,RTOS不如OS強大。最大的區別通常是內存保護和虛擬化。在高端操作系統中,應用程序內存是分開的,操作系統確保一個進程(正在運行的應用程序)不會損壞另一個進程的內存,這是通過虛擬化內存來實現的,這使得操作系統可以在不使用時將未使用的內存交換到磁盤上。RTOS中通常不存在高級內存處理。
這種級別的高級資源管理(內存、磁盤、網絡、CPU)在應用于一般系統(如PC)時非常有用。但是,在小型嵌入式設備上,這是不同的,因為你通常對以下方面有很好的了解:需要運行多少個應用程序/進程,這些應用程序/進程需要什么內存,確保這些過程不會相互干擾。在某些領域,RTOS被物聯網應用所青睞,因為它可以處理大多數互聯網連接嵌入式系統所需的復雜調度。此外,將USB、TCP/IP和GUI組件集成到裸機系統中對于嵌入式開發人員來說非常耗時和復雜。
OS:在較重的方面
在RTOS之上的另一個步驟,或者更像是一個巨大的飛躍,是一個成熟的操作系統。此操作系統選項與裸機處于光譜的另一端。雖然裸機和RTSO有一些相似之處,例如減少了開銷和有效的內存使用,但裸機和操作系統實際上沒有相似之處。你可能會認為傳統的操作系統受到開發者的反對,對于簡單的物聯網設備來說太重了,但是,你錯了。還有一個著名且廣泛使用的操作系統是Linux,它通常是嵌入式系統的固定設備。
決定什么適合你的物聯網設備將取決于使用情況。簡單的傳感器和基本設備根本不需要高端操作系統的處理能力,而且可能會從精簡的裸機方法中獲益。另一個重要的注意事項是,盡管裸機開發非常耗時,但許多嵌入式開發人員確實更愿意投入額外的工作。這是因為管理得越多,你控制事情的能力就越強。當然,并非所有的閃光都是金子,值得一提的是裸機環境的局限性。裸機的成本之一是性能損失,因為你必須通過操作系統與硬件進行通信,但跨平臺的所有硬件也需要統一,并且外觀相同。因此,某些功能可能會在操作系統驅動程序中丟失。
同時,對于物聯網設備來說,這一點尤為重要,互聯網通信的需求有時會促使開發人員轉向RTOS而不是裸機。這是因為internet通信要求單個應用程序現在與TCP/IP通信堆棧進行多路復用,TCP/IP通信堆棧有時需要自己的線程,在RTOS上處理起來可能更簡單。但總的來說,裸機確實為那些有基本需求的設備提供了理想的功能。由于缺乏開銷、高效使用內存以及對應用程序硬件的完全控制,它成為當今任何直接連接設備的競爭者。
本文由培訓無憂網達內教育專屬課程顧問老師整理發布,更多嵌入式開發課程信息可關注培訓無憂網嵌入式開發培訓頻道或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-9992.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注嵌入式開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050