vxWorks | ? ? ? ? ? ? ? ? ?????????????????????????? Linux | |
內核 結構 |
?微內核, 內核只提供 了基本的服 務,如:任 務管理,內 存管理,中 斷處理等 | ?? 宏內核,?? 除了基本的 服務,內核 還包括文件 系統,網絡 協議等 |
運行 模式 | 應用程序運 行在“實模 式”下,無 用戶模式和 內核模式之 分 | 采用“保護 模式”,用 戶進程、線 程運行在用 戶模式下, 內核線程運 行于內核模 式 |
內存 訪問 和內 存保 護 | 內核采用實 存儲管理方 式,所有任 務運行于同 一物理地址 空間,用戶 程序直接操 作物理地 址,不能直 接地提供內 存保護,不 能防止錯誤 蔓延 | 內核采用虛 擬存儲管理 方式,用戶 具有獨立的 地址空間 ,用戶進程 只能訪問本 進程的虛擬 空間,提供 了內存保 護,可以防 止錯誤蔓延 |
執行 單元 |
任務
| 進程、線程 |
請求 內核 服務 方式
| 函數調用, 更快 | 系統調用 ,更安全 |
實 時 性 ?
| 硬實時 | 軟實時 |
http://baike.baidu.com/view/1027685.htm?fr=ala0_1
宏內核與為內核的區別
宏內核的內部可被分為若干模塊(或者是層次或其他)。但是在運行時,它是一個獨立的二進制大映像。模塊間的通信不是通過消息傳遞,而是通過直接調用其他模塊中的函數來實現的。
關于微內核的概念見:http://www.dzsc.com/data/html/2009-1-16/75785.html
在微內核中,用以完成系統調用功能的程序模塊通常只進行簡短的處理,而把其余工作通過消息傳遞交給內核之外的進程來處理。在典型情況下,每個系統調用程序模塊都有一個與之對應的進程,微內核部分經常只不過是一個消息轉發站,這種方式有助于實現模塊間的隔離。這種內核設計的最根本思想就是要保持操作系統的內核盡可能小,因為內核是直接與計算機硬件相關的,內核越小,就越便于在不同的硬件系統間進行移植。微內核結構的另外一個優點是,可以使不需要的模塊不加載到內存中,因此,微內核就可以更有效地利用內存。
http://www.itqun.net/content-detail/155701.html
設備驅動部分的比較和分析
???? 由于Linux操作系統和Linux引導裝載器在結構上的分離,使得它倆之間的設備驅動程序不能夠通用,當然在芯片的硬件初始化一些硬件相關的代碼上可以互相借鑒。而 VxWorks的BOOTROM和運行版本的設備驅動是相同的,因為,它的運行版本和BOOTROM的結構是一致的,使用同一操作系統內核。 Linux操作系統的設備驅動運行在內核空間,用戶進程運行在用戶空間。在Linux操作系統中,內核空間和用戶空間的內存管理和映射方式是不同的,應用和設備驅動在數據交換時會涉及到不同的內存空間,會影響到一定效率,但這個問題可以通過修改系統內存空間配置等方法來解決。 VxWorks操作系統沒有分開內核空間和用戶空間,設備驅動和應用都運行于同一空間,相互之間的內存都可以訪問,數據交換非常方便,但是,這種結構的穩定性就不如 Linux系統好了。兩種操作系統都提供了很多設備驅動的資源和模板。但是由于Linux的開源特性,它提供的設備驅動的種類和數量遠遠超過了VxWorks.
4 結論
???? 本文簡單介紹了Linux和VxWorks操作系統的BSP開發的內容。通過比較發現,VxWorks作為專業的商用實時操作系統,提供BSP開發方式,開發資源都非常適宜于嵌入式應用。而Linux作為從通用操作系統發展而來的,在嵌入式應用的BSP開發方面,需要多做一些工作,但是它卻有更豐富的資源。