學習VxWorks系統,如何入門?相比Linux,它有何優勢?

小弟現在剛開始做嵌入式,在工業控制領域使用網路技術,之前使用lwip+裸奔。現在想換系統,初步選擇vxworks,但不知如何入門,或者有相關培訓嗎?還有相對linux,vxworks有什麼優勢?


Linux優勢更大,Linux的優點是你如果要入行相對可選擇的餘地更大。VxWorks用的公司相對不是太多,並且如果學會Linux,再學VxWorks並不困難,反過來則有一定困難。

VxWorks比Linux的優點是實時性好,在開發方面調試工具之類的比Linux好,但是國內你要找到一個很懂VxWorks的人不多,但懂Linux的就很多。

入門的話,學好C語言,試著移植一些驅動到VxWorks里即可,VxWorks兼容POSIX規範,我想你開發的難度應該不是特別大。

-----------補充-----------

利益相關:用了5年的VxWorks,也開發了5年的VxWorks的代碼(從6.7至今)。

用VxWorks久的人都會感覺它太小了,但它開發實在是太方便了,有調試器,有完整開發套件。在有開發環境的地方,幾分鐘就能建立一個工程,編譯一個image,甚至可以放到PC機上跑。

不說實時性之類的技術問題,單說入門,就很快的,比重新編譯Linux內核之類的容易的多,我自己實驗過裁剪Linux內核,真是頭大的事情。

VxWorks跨平台做的很好,自帶的BSP在發布的時候都經過比較嚴格的測試,比起Linux來說,各種莫名其妙的硬體錯誤很難遇到。有人講到VxWorks像Unix,我覺得不像,至少從我看到的代碼上看,幾乎沒有Unix的東西,只不過是兼容部分POSIX API而已。

在VxWorks上做二次開發就需要了解它的具體技術細節了,相對而言,我覺得跟別的系統的驅動差不多,無非就是信號量、內存、進程這些東西。如果你喜歡,用標準C的庫也可以實現大部分功能。

VxWorks的缺點也很多:文檔太少,做這個的人不多,授權太貴。網上能找到的盜版都是5.5的,但官方都出到6.9了,說實話我真不喜歡5.5的那一套東西,太過時了,但要真找一套6.9的又有困難,授權費太貴。而且5.5不穩定、功能少(版權問題,我不敢放6.9的截圖,但就組件的個數方面就差別太大了)。

對於Linux來說,通常是裁剪很費勁,編譯一堆問題,但找相關的文檔也容易,如果英文好,去混混社區,總能找到答案,前期入門很難,熟悉以後會容易。而用VxWorks,後期的開發遇到困難就很難找到能幫上的人。

做久了VxWorks的人都說其實Linux更好,當然也有Linux用戶說VxWorks更好,這個只能說看情況了。

幾乎沒有培訓,幾乎沒有參考書,只有用戶手冊,這是VxWorks的現狀,但在國防軍工、自動化、航天領域超過一半的佔有率也說明它是個好系統。

一個入門簡單(VxWorks),一個入門困哪(Linux);一個收費(VxWorks),另一個免費(Linux);一個要想深入了解缺乏資料(VxWorks),另一個資料很多但很雜(Linux)

所以,選擇看自己的需求了。如果能先用VxWorks入門,再用Linux就更好,但這樣學習成本和開發成本都太高了。


之前玩過一段時間,不過也不是特別深,可能有一些錯誤的地方。

想玩Vxworks,也分作幾塊。

最底層的,BSP開發。

BSP全稱板級支持包,這個概念首先就是由風河提出來的。其實BSP這個概念很大,其中包括了CPU支持、系統引導程序、系統鏡像、驅動等等。相比Linux,你可以把BSP理解為GRUB+內核。

往上一層,驅動開發。

對於類UNIX操作系統來說,其實驅動這些東西的原理都差不多,這一點在我現在轉做Linux後也得到了印證。但Vxworks作為一款RTOS,其驅動可能更注重響應時間、優化等等,這點要注意。

再往上一層,應用開發。

說實話我沒認真做過Vxworks的商用應用開發,這一點不是很了解。之前在玩5.5.1的時候有客戶是用Windml開發的,界面比較簡陋。當然,在工控行業來說,談UI基本就是扯蛋。後來聽說有人竟然在Vxworks下開發出了一套中文輸入法,也挺牛逼的。

回到題主的問題,學習Vxworks,如何入門。

抱歉我沒參加過什麼培訓,只是在工作中一邊學習一邊用。

想學好,手邊一定得有硬體和一套開發環境,5.X也好6.X也罷,都行。盜版的好找,實在不行聯繫我,我這有。

還有就是一點一點來,操作系統這些東西不如開發APP那麼有趣,可能會非常枯燥,真想學好,一定要堅持下去。

Vxworks的書籍不多,就那麼幾本,也有電子版的,我就不推薦了。都買了,參照著看。英語好的話,直接看風河的官方文檔。

那相比Linux的優勢。。。

我認為就是小,簡單,開發環境完善,入門快。

一個Vxworks,小的也就幾百K,組件多點,也就幾兆。你可能說Linux也能搞成這樣,但是呢,Linux沒有一個傻瓜化的開發環境,必須要有一定的基礎才能玩的轉。


作為風河的碼農來說2句。vxWorks的優點:

1. 強大的開發調試環境

2. 嚴格的測試流程保證穩定性

3. 強大的售後支持,沒有解決不了的問題

4. 最新版本的中間件功能不比linux差

用來做產品很強大。用Linux來做一個高品質的產品,真心太痛苦了。


我不教人用盜版的,如果你有意用,找風河申請一套試用就是了(這樣也也知道到時大概會收你多少錢),試用版也有手冊和部分源代碼的,VxWorks是RTOS,比Linux簡單多了,都是taskSpawn/taskDelete(), semXCreate()/semXTake()/semXGive()/semXDelete()那一套,簡單看看就會了,網上有5.5的手冊,VxWorks API Reference : OS Libraries ,掃兩眼大概就知道怎麼回事了。6的介面大部分都是差不多的,只是多了進程(RTP)的支持。

VxWorks對比Linux的主要優勢就是實時性好(1ms以下),體積小(100K以下),調試方便,缺點當然是死貴(Royalty,座席,Workbench,獨立Module(比如協議棧)等等等等,一個個給你算),功能少,簡單了。選操作系統這種東西,一般上了船很難下了,對比清楚比較好。


好多企業都在去風盒化不知道題主為何還要學風盒?

這個系統本身在實時操作系統裡面很不錯,不過屬於美國公司,政策風險太高,授權費也貴,不如學好unix,正常情況下實時性也夠,工作還好找


vxworks正版非常貴,但是風河的技術支持非常強;linux開源,有些需要自己折騰,有個rtlinux也是rtos,是在內核上做的修改。


VxWorks是RTOS,Linux不是RTOS,這是最有用的優勢,在嵌入式領域,Linux遠遠趕不上Vxworks


推薦閱讀:

linux那麼多shell命令,包含了很多參數,這些參數有沒有規律可循?是否有些參數固定表示什麼含義?

TAG:Linux入門 | VxWorks |