linux和vxworks的區(qū)別:1、內核結構不同,vxworks是微內核,只提供基本的服務,而linux是宏內核,除了基本的服務、內核還包括文件系統(tǒng)、網(wǎng)絡協(xié)議等;2、運行模式不同,vxworks應用程序在“實模式”下,無用戶模式和內核模式之分,而linux采用“保護模式”,用戶進程、線程運行在用戶模式下,內核線程運行與內核模式。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux和vxworks的區(qū)別是什么
自己目前開發(fā)的嵌入式開發(fā)所用的操作系統(tǒng)是VxWorks,以前讀大學的時候用的最多的是linux操作系統(tǒng),但是,對于這兩種操作系統(tǒng)之間到底有什么區(qū)別,還真沒有真正去細心的總結過,被別人問起時,難免有些尷尬的感覺,畢竟自己是學嵌入式開發(fā)的,竟然對嵌入式開發(fā)系統(tǒng)了解的不深入,今天專門抽時間好好的總結下,二者到底有什么區(qū)別?
VxWorks |
linux |
|
內核結構 |
微內核,內核只提供了基本 的服務,如:任務管理,內 存管理,中斷處理等 |
宏內核,除了基本的服務,內 核還包括文件系統(tǒng),網(wǎng)絡協(xié)議 等 |
運行模式 |
應用程序運行在“實模式” 下,無用戶模式和內核模式 之分 |
采用“保護 模式”,用 戶進 程、線程運行在用戶模式下, 內核線程運行于內核模式 |
內存訪問和內存保護 |
內核采用實 存儲管理方式, 所有任務運行于同一物理地 間,用戶程序直接操作物理地 址,不能直接地提供內存護, 不能防錯誤蔓延 |
內核采用虛擬存儲管理方式,用 戶具有獨立的地址空間,用戶進 程只能訪問本進程的虛擬空間提供 了內存保護,可以防止錯誤蔓延 |
執(zhí)行單元 |
任務 |
進程、線程 |
請求內核服務方式 |
函數(shù)調用,更快 |
系統(tǒng)調用,更安全 |
實時性 |
硬實時 |
軟實時 |
VxWorks主要應用于電信級別的數(shù)通等產(chǎn)品,而linux主要應用于消費類、工控產(chǎn)品等
微內核、宏內核
內核中提供各種服務的成分與使用這種服務的進程之間形成一種client/server關系,這種服務并不一定非得留在內核中,它本身也可以被設計實現(xiàn)成“服務進程”,其中必須留在內核中的部分只有進程間的通信,如果把這些服務從內核轉移到進程的層次上,那么內核本身的結構就可以大大減小和減化,而各個服務進程也可以單獨設計、實現(xiàn)及調試。
微內核便是將服務轉移到進程上的一種內核模式,主要應用在實時系統(tǒng)和嵌入式系統(tǒng)上,主要是因為通常這些系統(tǒng)都不帶磁盤,整個系統(tǒng)必須都放在EPROM中,常常受到存儲空間的限制,而且所需的服務也比較單一,如PSOS,VxWorks等。
宏內核是一種傳統(tǒng)的內核結構,它將進程管理,內存管理等各項服務功能都放到內核中去,通常用在通用式內核上,如UNIX,linux等.
設備驅動部分的比較和分析
由于linux操作系統(tǒng)和linux引導裝載器在結構上的分離,使得它倆之間的設備驅動程序不能夠通用,當然在芯片的硬件初始化一些硬件相關的代碼上可以互相借鑒。而VxWorks的BOOTROM和運行版本的設備驅動是相同的,因為它的運行版本和BOOTROM的結構是一致的,使用同一操作系統(tǒng)內核。linux操作系統(tǒng)的設備驅動運行在內核空間,用戶進程運行在用戶空間。在linux操作系統(tǒng)中,內核空間和用戶空間的內存管理和映射方式是不同德,應用和設備驅動在數(shù)據(jù)交換時會涉及到不同的內存空間,會影響到一定效率,但這個問題可以通過修改系統(tǒng)內存空間配置等方法來解決。VxWorks操作系統(tǒng)沒有分開內核空間和用戶空間,設備驅動和應用都運行于同一空間,相互之間的內存都可以訪問,數(shù)據(jù)交換非常方便,但是這種結構的穩(wěn)定性就不如linux系統(tǒng)好,兩種操作系統(tǒng)都提供了很多設備驅動的資源和模板。但是由于linux的開源特性,它提供的設備驅動的種類和數(shù)量遠遠超過了VxWorks.
推薦學習:Linux視頻教程