詳解vxworks和linux有什么區(qū)別
自己目前開發(fā)的嵌入式開發(fā)所用的操作系統(tǒng)是VxWorks,以前讀大學(xué)的時(shí)候用的最多的是linux操作系統(tǒng),但是,對(duì)于這兩種操作系統(tǒng)之間到底有什么區(qū)別,還真沒有真正去細(xì)心的總結(jié)過,被別人問起時(shí),難免有些尷尬的感覺
Linux是一類Unix計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中最著名的例子。嚴(yán)格來講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但在實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個(gè)基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)。Linux得名于計(jì)算機(jī)業(yè)余愛好者Linus Torvalds。
Linux的應(yīng)用
過去,Linux主要被用作服務(wù)器的操作系統(tǒng),因?yàn)樗牧畠r(jià)、靈活性及Unix背景。傳統(tǒng)上,以Linux為基礎(chǔ)的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的組合)”技術(shù),除了已在開發(fā)者群體中廣泛流行,它亦是現(xiàn)時(shí)提供網(wǎng)站服務(wù)供應(yīng)商最常使用的平臺(tái)。 基于其低廉成本與高度可設(shè)置性,Linux常常被應(yīng)用于嵌入式系統(tǒng),例如機(jī)頂盒、移動(dòng)電話及移動(dòng)裝置等。在移動(dòng)電話上,Linux已經(jīng)成為Symbian OS的主要競(jìng)爭(zhēng)者;而在移動(dòng)裝置上,則成為Windows CE與Palm OS外之另一個(gè)選擇。目前流行的TIVo數(shù)碼攝影機(jī)使用了經(jīng)過客制化后的Linux。此外,有不少硬件式的網(wǎng)絡(luò)防火墻及路由器,例如部份LinkSys的產(chǎn)品,其內(nèi)部都是使用Linux來驅(qū)動(dòng)、并采用了操作系統(tǒng)提供的防火墻及路由功能。 采用Linux的超級(jí)電腦亦愈來愈多,根據(jù)2008年11月的TOP500超級(jí)電腦列表,現(xiàn)時(shí)世上最快速的超級(jí)電腦使用Linux作為其操作系統(tǒng)。而在表列的500套系統(tǒng)里,采用Linux為操作系統(tǒng)的,占了439組(即87.8%)。
2006年開始發(fā)售的SONY PlayStaTIon 3亦可使用Linux的操作系統(tǒng),它有一個(gè)能使其成為一個(gè)桌面系統(tǒng)的Yellow Dog Linux。之前,Sony亦曾為他們的PlayStaTIon 2推出過一套名為PS2 Linux的DIY組件。Ubuntu自9.04版本,恢復(fù)了PPC支持(包括PlayStaTIon 3)。 而隨著OLPC的XO-1,華碩的Eee PC等低價(jià)電腦的推行,許多人樂觀的認(rèn)為在低端PC市場(chǎng),linux的市場(chǎng)占有率正在快速的增長(zhǎng)。但在Windows進(jìn)入此一市場(chǎng)后,Linux的市占率快速下滑?,F(xiàn)在Windows系統(tǒng)在所有的PC市場(chǎng)中,都占有絕對(duì)優(yōu)勢(shì)。
VxWorks 是美國(guó) Wind River System 公司( 以下簡(jiǎn)稱風(fēng)河 公司 ,即 WRS 公司)推出的一個(gè)實(shí)時(shí)操作系統(tǒng)。Tornado 是WRS 公司推出的一套實(shí)時(shí)操作系統(tǒng)開發(fā)環(huán)境,類似Microsoft Visual C,但是提供了更豐富的調(diào)試、仿真環(huán)境和工具。
嵌入式Vxworks系統(tǒng)的主要應(yīng)用領(lǐng)域主要有以下幾方面:
1.數(shù)據(jù)網(wǎng)絡(luò):如:以太網(wǎng)交換機(jī)、路由器、遠(yuǎn)程接入服務(wù)器等
2.遠(yuǎn)程通訊:如:電信用的專用分組交換機(jī)和自動(dòng)呼叫分配器,蜂窩電話系統(tǒng)等
3.醫(yī)療設(shè)備:如:放射理療設(shè)備
4.消費(fèi)電子:如:個(gè)人數(shù)字助理等
5.交通運(yùn)輸:如:導(dǎo)航系統(tǒng)、高速火車控制系統(tǒng)等
6.工業(yè):如:機(jī)器人
7.航空航天:如:衛(wèi)星跟蹤系統(tǒng)
8.多媒體:如:電視會(huì)議設(shè)備
9.計(jì)算機(jī)外圍設(shè)備:如:X終端、I/O 系統(tǒng)等
總之,VxWorks的系統(tǒng)結(jié)構(gòu)是一個(gè)相當(dāng)小的微內(nèi)核的層次結(jié)構(gòu)。內(nèi)核僅提供多任務(wù)環(huán)境、進(jìn)程間通信和同步功能。這些功能模塊足夠支持VxWorks在較高層次所提供的豐富的性能的要求。
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.
Linux優(yōu)勢(shì)更大,Linux的優(yōu)點(diǎn)是你如果要入行相對(duì)可選擇的余地更大。VxWorks用的公司相對(duì)不是太多,并且如果學(xué)會(huì)Linux,再學(xué)VxWorks并不困難,反過來則有一定困難。
VxWorks比Linux的優(yōu)點(diǎn)是實(shí)時(shí)性好,在開發(fā)方面調(diào)試工具之類的比Linux好,但是國(guó)內(nèi)你要找到一個(gè)很懂VxWorks的人不多,但懂Linux的就很多。
入門的話,學(xué)好C語言,試著移植一些驅(qū)動(dòng)到VxWorks里即可,VxWorks兼容POSIX規(guī)范,我想你開發(fā)的難度應(yīng)該不是特別大。