自己目前開發的嵌入式開發所用的操作系統是VxWorks,以前讀大學的時候用的最多的是linux操作系統,但是,對于這兩種操作系統之間到底有什么區別,還真沒有真正去細心的總結過,被別人問起時,難免有些尷尬的感覺
Linux是一類Unix計算機操作系統的統稱。Linux操作系統的內核的名字也是“Linux”。Linux操作系統也是自由軟件和開放源代碼發展中最著名的例子。嚴格來講,Linux這個詞本身只表示Linux內核,但在實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統。Linux得名于計算機業余愛好者Linus Torvalds。
Linux的應用
過去,Linux主要被用作服務器的操作系統,因為它的廉價、靈活性及Unix背景。傳統上,以Linux為基礎的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的組合)”技術,除了已在開發者群體中廣泛流行,它亦是現時提供網站服務供應商最常使用的平臺。 基于其低廉成本與高度可設置性,Linux常常被應用于嵌入式系統,例如機頂盒、移動電話及移動裝置等。在移動電話上,Linux已經成為Symbian OS的主要競爭者;而在移動裝置上,則成為Windows CE與Palm OS外之另一個選擇。目前流行的TiVo數碼攝影機使用了經過客制化后的Linux。此外,有不少硬件式的網絡防火墻及路由器,例如部份LinkSys的產品,其內部都是使用Linux來驅動、并采用了操作系統提供的防火墻及路由功能。 采用Linux的超級電腦亦愈來愈多,根據2008年11月的TOP500超級電腦列表,現時世上最快速的超級電腦使用Linux作為其操作系統。而在表列的500套系統里,采用Linux為操作系統的,占了439組(即87.8%)。
2006年開始發售的SONY PlayStation 3亦可使用Linux的操作系統,它有一個能使其成為一個桌面系統的Yellow Dog Linux。之前,Sony亦曾為他們的PlayStation 2推出過一套名為PS2 Linux的DIY組件。Ubuntu自9.04版本,恢復了PPC支持(包括PlayStation 3)。 而隨著OLPC的XO-1,華碩的Eee PC等低價電腦的推行,許多人樂觀的認為在低端PC市場,linux的市場占有率正在快速的增長。但在Windows進入此一市場后,Linux的市占率快速下滑。現在Windows系統在所有的PC市場中,都占有絕對優勢。
VxWorks 是美國 Wind River System 公司( 以下簡稱風河 公司 ,即 WRS 公司)推出的一個實時操作系統。Tornado 是WRS 公司推出的一套實時操作系統開發環境,類似Microsoft Visual C,但是提供了更豐富的調試、仿真環境和工具。
嵌入式Vxworks系統的主要應用領域主要有以下幾方面:
2.遠程通訊:如:電信用的專用分組交換機和自動呼叫分配器,蜂窩電話系統等
3.醫療設備:如:放射理療設備
4.消費電子:如:個人數字助理等
5.交通運輸:如:導航系統、高速火車控制系統等
7.航空航天:如:衛星跟蹤系統
8.多媒體:如:電視會議設備
9.計算機外圍設備:如:X終端、I/O 系統等
總之,VxWorks的系統結構是一個相當小的微內核的層次結構。內核僅提供多任務環境、進程間通信和同步功能。這些功能模塊足夠支持VxWorks在較高層次所提供的豐富的性能的要求。
VxWorks主要應用于電信級別的數通等產品,而linux主要應用于消費類、工控產品等
微內核、宏內核
內核中提供各種服務的成分與使用這種服務的進程之間形成一種client/server關系,這種服務并不一定非得留在內核中,它本身也可以被設計實現成“服務進程”,其中必須留在內核中的部分只有進程間的通信,如果把這些服務從內核轉移到進程的層次上,那么內核本身的結構就可以大大減小和減化,而各個服務進程也可以單獨設計、實現及調試。
微內核便是將服務轉移到進程上的一種內核模式,主要應用在實時系統和嵌入式系統上,主要是因為通常這些系統都不帶磁盤,整個系統必須都放在EPROM中,常常受到存儲空間的限制,而且所需的服務也比較單一,如PSOS,VxWorks等。
宏內核是一種傳統的內核結構,它將進程管理,內存管理等各項服務功能都放到內核中去,通常用在通用式內核上,如UNIX,linux等。
設備驅動部分的比較和分析
由于linux操作系統和linux引導裝載器在結構上的分離,使得它倆之間的設備驅動程序不能夠通用,當然在芯片的硬件初始化一些硬件相關的代碼上可以互相借鑒。而VxWorks的BOOTROM和運行版本的設備驅動是相同的,因為它的運行版本和BOOTROM的結構是一致的,使用同一操作系統內核。linux操作系統的設備驅動運行在內核空間,用戶進程運行在用戶空間。在linux操作系統中,內核空間和用戶空間的內存管理和映射方式是不同德,應用和設備驅動在數據交換時會涉及到不同的內存空間,會影響到一定效率,但這個問題可以通過修改系統內存空間配置等方法來解決。VxWorks操作系統沒有分開內核空間和用戶空間,設備驅動和應用都運行于同一空間,相互之間的內存都可以訪問,數據交換非常方便,但是這種結構的穩定性就不如linux系統好,兩種操作系統都提供了很多設備驅動的資源和模板。但是由于linux的開源特性,它提供的設備驅動的種類和數量遠遠超過了VxWorks.
Linux優勢更大,Linux的優點是你如果要入行相對可選擇的余地更大。VxWorks用的公司相對不是太多,并且如果學會Linux,再學VxWorks并不困難,反過來則有一定困難。
VxWorks比Linux的優點是實時性好,在開發方面調試工具之類的比Linux好,但是國內你要找到一個很懂VxWorks的人不多,但懂Linux的就很多。
入門的話,學好C語言,試著移植一些驅動到VxWorks里即可,VxWorks兼容POSIX規范,我想你開發的難度應該不是特別大。
評論