用于 RTOS 的單片內(nèi)核或微內(nèi)核曾幾何時,關于微內(nèi)核軟件設計是否優(yōu)于 Linux 操作系統(tǒng)中的單片內(nèi)核,存在著激烈的爭論。當今的許多通用操作系統(tǒng),包括 Linux,都使用單片內(nèi)核設計。 在選擇實時操作系統(tǒng) (RTOS) 時,確實有多種選擇。一些商業(yè) RTOS 產(chǎn)品建立在微內(nèi)核設計上,而另一些則采用單片內(nèi)核方法。 二者有什么不同? 在微內(nèi)核設計中,盡可能多的功能從內(nèi)核中移除,并委托給單獨的操作空間,這些操作空間通過基本內(nèi)核相互傳遞消息來進行通信。 另一方面,在單體設計中,內(nèi)核和操作進程共享相同的空間,消息直接在進程之間傳遞,無需內(nèi)核中介。 理論上,每種方法的優(yōu)點可以相當簡潔地總結: ? 由于其模塊化特性,微內(nèi)核可以在更新時節(jié)省時間和成本——并非每個模塊都需要立即更改。 ? 另一方面,單片內(nèi)核由于其集成特性而提供性能優(yōu)勢,內(nèi)核在模塊之間調解調用不需要開銷。 然而對于許多嵌入式項目而言,這些差異還不足以成為選擇 RTOS 的真正因素。在某些情況下,微內(nèi)核的模塊化特性在無需重建所有內(nèi)容的情況下能夠修改一個部分方面確實具有一些優(yōu)勢。這種優(yōu)勢在現(xiàn)實世界中受到許多系統(tǒng)的集成特性的限制——在某些情況下,它進一步受到性能要求的限制。雖然開發(fā)人員可能不需要重建整個系統(tǒng),但系統(tǒng)可能仍需要作為一個整體進行測試。 同樣,單片內(nèi)核的性能優(yōu)勢是非常真實的,但更好的性能帶來的好處可能并不總是那么重要。如果兩個系統(tǒng)都在定義的要求內(nèi)執(zhí)行,那么選擇更快的一個可能有好處,也可能沒有好處。此外,性能取決于硬件,因此較慢的 RTOS 可能通過在高級硬件上運行來實現(xiàn)奇偶校驗。 |