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