多年經(jīng)驗傾情奉獻(xiàn)--如何選擇適合當(dāng)前項目的最佳操作系統(tǒng)?
編者按:過去由于認(rèn)識上的局限性,對如何選用合適的操作系統(tǒng)博主同樣走過了很多彎路。在企業(yè)的發(fā)展過程中,為了滿足客戶的需求,我們大批量使用了正版uC/OS-II、WinCE、Vxworks、MontaVista Realtime Linux以及開源的嵌入式Linux操作系統(tǒng)。在基于成本核算的項目管理過程中,博主領(lǐng)略了各種操作系統(tǒng)的優(yōu)劣。對于初學(xué)者來說,到底學(xué)習(xí)哪一種操作系統(tǒng)比較好呢?這要看你的條件和興趣了,因此不能一概而論。今特別從技術(shù)經(jīng)濟(jì)的角度出發(fā),將個人的管理經(jīng)驗奉獻(xiàn)給大家,本文僅一家之言,不一定適合所有的行業(yè),也希望您尋求各方面專家的幫助以免誤導(dǎo)。
能滿足大多數(shù)項目需求的uC/OS-II
uC/OS-II最大的應(yīng)用價值是簡潔與實用,當(dāng)一個系統(tǒng)選用uC/OS-II時,最多只需要2M的NOR Flash,2M的SDRAM或最多8M的SDRAM,因此整個系統(tǒng)的成本是最低的。但很多人卻看不起這個小玩意兒,片面地認(rèn)為它沒有什么價值,而事實上uC/OS-II卻能滿足很多項目的需求。最近又推出了新的版本,命名為µC/OS-III,其新的一些特性是:搶占式多任務(wù),在同一優(yōu)先級支持任務(wù)的輪詢調(diào)度,沒有任務(wù)數(shù)的限制,內(nèi)核提供豐富的服務(wù):信號量、互斥信號燈、完全支持優(yōu)先級繼承、事件標(biāo)志、消息隊列、定時器、固定大小的內(nèi)存塊管理,以及內(nèi)置性能測量。
如果將它移植到ARM9,您會發(fā)現(xiàn)它的啟動速度是最快的,甚至只需要1秒的時間。當(dāng)開發(fā)基于GUI的產(chǎn)品時,您會發(fā)現(xiàn)最終的效果可以與其它的操作系統(tǒng)媲美。當(dāng)您點擊HMI人機(jī)界面產(chǎn)品的效果時,我想您就不會忽視uC/OS-II的價值了??墒呛芏嗳瞬恢廊绾螌C/OS-II移植到ARM9,其實只要支持MMU即可。但也有很多人根本就沒有嘗試過,或者根本就沒有這種意愿,于是就主觀臆斷下結(jié)論,一棍子將uC/OS-II打死,所以一些開發(fā)人員常常只選自己會的而不選對的,而且思想非常頑固。博主在過去的開發(fā)生涯中,也犯過各種類似的錯誤。
是不是只要選擇uC/OS-II就一勞永逸了呢?當(dāng)然不是。雖然它能夠滿足很多產(chǎn)品對CF卡、SD卡、TCP/IP以太網(wǎng)、CAN-bus/CANopen/DeviceNet/J1939現(xiàn)場總線、GUI圖形用戶界面、RS232、RS485等多方面的需求,但它還是有一定的局限性。如果需要支持Wi-Fi等更多的軟件時,那就非常麻煩了。但還是有一些人要反駁博主,uC/OS-II要收費不劃算,事實上只要粗略地計算一下開發(fā)成本,其結(jié)論自然也就一目了然了。
資源豐富、繼承性最好的WinCE
如果一次購買超過3000個授權(quán),價格還是很便宜的,這是很多用戶都能夠承受的。由于WinCE與Windows一脈相承的關(guān)系,且使用同樣的開發(fā)工具,那么對于熟練掌握Windows編程的軟件開發(fā)人員來說也就非常方便了,所以很多客戶還是選擇WinCE。如果項目中還需要用到GUI的話,那么WinCE可以說是最佳的選擇了,這是WinCE最明顯的優(yōu)勢之一。
如果無論開發(fā)什么產(chǎn)品都選擇WinCE的話,肯定是不劃算的。比如選用uC/OS-II就可以實現(xiàn)的項目,如果因為開發(fā)人員的喜好而選用WinCE,至少需要2片32M的SDRAM,1片32M的NOR Flash或一片2M的NOR Flash+128M的NAND Flash(因為容量少的工業(yè)級NAND Flash越來越難購買),可想而知其硬件成本還是非常之高的。
高貴、實時、穩(wěn)定的Vxworks<、strong>
Vxworks最大的應(yīng)用價值是實時性和穩(wěn)定性,其血統(tǒng)高貴,由于系統(tǒng)使用了Vxworks,用戶對產(chǎn)品的信任度立即凸顯。根據(jù)博主的經(jīng)驗,如果一次性購買的授權(quán)數(shù)量適當(dāng)大一些,其價格是很多企業(yè)都能夠接受的,最終您一定會驚訝得不可思議,在計算成本時甚至可以忽略不計。
雖然原廠需要收至少47250美元的年費,但您可以得到所有豐富的源代碼,并使用于任何CPU微處理器。如果您只選用某一系列處理器或不需要升級源代碼,那么以后每年的費用則是可以節(jié)省的,只要支付每個產(chǎn)品的授權(quán)費用即可。如果您不需要源代碼,那么所要支付的年費將會更加便宜。
開源、自由的嵌入式Linux
嵌入式Linux最大的應(yīng)用價值是開源,如果需要支持Wi-Fi的話,那么嵌入式Linux是很好的選擇之一,搭配QT開發(fā)GUI人機(jī)界面也是非常不錯的。但很多人選擇嵌入式Linux的出發(fā)點是免費,這是絕對錯誤的,因為很多企業(yè)長期采取放羊式的產(chǎn)品開發(fā)方法,即便一些企業(yè)實施了項目管理,但對于成本核算還是缺乏參照物,幾乎沒有購買商業(yè)化操作系統(tǒng)開發(fā)產(chǎn)品的經(jīng)驗,從而忽略了開發(fā)人員的高工資開支。
從博主使用的情況來看,嵌入式Linux的內(nèi)核是比較穩(wěn)定的,而相對Vxowork、WinCE來說卻是最貴的。但為什么博主還是要推薦選用嵌入式Linux呢?首先Linux是支持新微處理器、新驅(qū)動軟件和新協(xié)議軟件最多、速度最快的平臺,比如最近發(fā)布的USB3.0驅(qū)動軟件。由于其最大的好處就是開源,所以我們可以根據(jù)需要而任意裁剪,即便某些驅(qū)動不穩(wěn)定,但因為有源代碼我們也可以任意修改,所以嵌入式Linux最大的應(yīng)用價值不是免費。隨著Linux技術(shù)與時俱進(jìn)式的發(fā)展,Linux技術(shù)將會越來越完善,因為Linux存在的價值,將時刻提醒壟斷性商業(yè)化軟件回歸大眾化的價格,市場勢必呈現(xiàn)按需配置的多元化用戶自由選擇的新時代。
事實上,我聽到的、感受到的和所接觸到的很多嵌入式Linux開發(fā)工程師都是非常優(yōu)秀的人才,他們的成功案例激發(fā)了我們投入使用開源嵌入式Linux的決心。在學(xué)習(xí)和應(yīng)用嵌入式LInux的過程中,目前大多數(shù)人還是停留在了解內(nèi)核原理,會寫會修改驅(qū)動程序的層面,而對如何開發(fā)出一個穩(wěn)定的基于嵌入式Linux的產(chǎn)品,還是缺乏必要的能力。往往開發(fā)出來的軟件不是“一勞永逸”而是“一逸永勞”,無論是軟件架構(gòu),還是模塊化都不盡人意。因此要想成為優(yōu)秀的嵌入式Linux開發(fā)人員,一定要繼承基于Windows平臺軟件的優(yōu)秀技術(shù)成果,最好有一些通用軟件的開發(fā)經(jīng)驗作為基礎(chǔ)。因為在嵌入式Linux軟件的技術(shù)發(fā)展和積累過程中,有關(guān)基于嵌入式Linux軟件架構(gòu)、模式等技術(shù)相應(yīng)的參考資料還是比較缺乏的,所以兼容并蓄地吸收基于Windows軟件平臺的開發(fā)方法還是非常有必要的,但很多人卻缺乏這種意識,所以在開發(fā)產(chǎn)品的過程中,常常會出現(xiàn)“跑起來很興奮,但要穩(wěn)定卻需費很大的勁”。
隨著開發(fā)工具的發(fā)展和創(chuàng)新,嵌入式Linux的開發(fā)難度將會極度地降低,博主將推出在Windows下支持嵌入式Linux的TKStudio集成開發(fā)平臺,能夠非常方便地實現(xiàn)嵌入式Linux內(nèi)核、驅(qū)動程序與應(yīng)用層軟件的調(diào)試,上百人的開發(fā)與技術(shù)支持團(tuán)隊將為您打造穩(wěn)定的嵌入式Linux軟硬件一體化開發(fā)平臺。 [!--empirenews.page--]
開源軟件
剛起步的一些網(wǎng)站、企業(yè)或個人由于對價格的敏感往往選擇免費的開源軟件,這些軟件的性能正變得越來越好。然而大公司更注重將鋒線降到最低點,因而他們愿意選用收費的微軟軟件或者紅帽子等公司Linux系統(tǒng)提供商的服務(wù)。公司知道,他們向軟件公司開出了一張支票,就同時得到了一份合約,有了這份合約,這些公司就會得到“高水準(zhǔn)服務(wù)的保證”。也就是說,如果軟件出了故障,那么您就可以撥打某個維修電話了。
如今,開源軟件和非開源軟件都代表了巨大的市場。從總營業(yè)收入來計算,微軟遠(yuǎn)遠(yuǎn)超過了自己的開源軟件對手。但是從用戶數(shù)目來計算,兩者之間的差距并非特別大。例如,火狐瀏覽器就在不斷地侵蝕微軟IE瀏覽器的市場份額,而開發(fā)商則通過完全通過Google公司的廣告收入分成。當(dāng)人們使用火狐瀏覽器搜索內(nèi)容的時候,就會鏈接到Google瀏覽器的搜索結(jié)果頁面。而開發(fā)火狐瀏覽器的莫茲拉公司只有不到100人,卻可以和微軟瀏覽器的強(qiáng)大工作團(tuán)隊競爭。這是建立在免費基礎(chǔ)上的另一類生意,瀏覽器并非一定要捆綁到收費的操作系統(tǒng)里一起銷售。
這是一個免費和付費軟件共存的混合世界,這種混合世界不僅可能存在,而且可能發(fā)展的很好,因為只有一道菜不一定適合所有人的口味。
技術(shù)的價值體現(xiàn)
事實上技術(shù)的壁壘不在于基礎(chǔ)技術(shù)本身,每個人實際的競爭在于行業(yè)經(jīng)驗的積累,所以不要迷信學(xué)什么最容易賺錢,最容易就業(yè)之類騙人的鬼話。即便當(dāng)前容易,但那也是暫時的。在80C51單片機(jī)開始流行的初級階段,如果會用C51語言開發(fā)產(chǎn)品,看起來比使用匯編語言顯得水平要高一些;前幾年如果會用ARM開發(fā)產(chǎn)品,看起來似乎又上了一個臺階;再后來如果掌握了嵌入式Linux,看起來好象更上一層樓了。
而現(xiàn)實的情況是很多工程師至今仍然使用變種的80C51單片機(jī)開發(fā)產(chǎn)品,但產(chǎn)品的市場占有率和開發(fā)人員的價值依然堅挺,對于這種現(xiàn)象我們熟視無睹,所以即便有了很好的基礎(chǔ)技術(shù),但未必就能夠創(chuàng)造令人滿意的價值。博主自創(chuàng)業(yè)以來,開發(fā)了穩(wěn)定性高的CAN-bus現(xiàn)場總線系列工控產(chǎn)品,可以毫不夸張地說,在國內(nèi)一直具有絕對的競爭優(yōu)勢和市場占有率,口碑也非常之好,當(dāng)客戶加上與行業(yè)有關(guān)的軟件之后,其售價立即上升十倍,這才是真正的價值體現(xiàn)。
當(dāng)博主在6年前推出第一臺LA1032邏輯分析儀時,只能賣2800元。今年推出了LAB6000系列高性能邏輯分析儀時,售價則為16800~29800元,不曾想到這幾天還賣斷貨。原因何在?新一代邏輯分析儀是面向終端用戶的高附加值儀器,其購買對象為開發(fā)高技術(shù)含量產(chǎn)品,且注重技術(shù)發(fā)展有潛力的高端用戶,因為能夠?qū)崒嵲谠诘貛椭蛻艚鉀Q實際的難題創(chuàng)造價值。
閑談GUI的開發(fā)經(jīng)驗
我們不僅使用過WinCE、uC/GUI,而且還使用過QT,總體來說感覺都是非常不錯的。要想產(chǎn)品賣得好,GUI圖形用戶界面是至關(guān)重要的,并且要求承擔(dān)設(shè)計的美工必須對用戶心理學(xué)、色彩心理學(xué)、人機(jī)工程學(xué)和軟件框架結(jié)構(gòu)必須有深入的研究,最好具有工業(yè)設(shè)計經(jīng)驗。因為這不是技術(shù)活而是藝術(shù),所以一定要有天賦和靈氣。
其次就是GUI中用到的圖片,其實是非常講究的。一般公司開發(fā)的軟件中所使用的圖片都是軟件工程師自己畫的,稍微大一些的軟件公司雖然配備了專業(yè)的美工,但其圖片質(zhì)量則不敢恭維。為什么會出現(xiàn)這種糟糕的現(xiàn)象呢?我們傳統(tǒng)的產(chǎn)品開發(fā)思路,無論做什么都不注重細(xì)節(jié),自己做得不好還非常有理,因為別人也是這樣的。其次,我們的習(xí)慣性思維喜歡從頭到尾自己掌控,只要給別人付費就不愿意,連非常有價值的商業(yè)化操作系統(tǒng)都不愿意支付權(quán)利金,所以也就更加不愿意花錢購買國外的專業(yè)圖庫了,總之一句話:給別人賺錢就是不爽。
而我們的做法是向世界級的第一流企業(yè)購買成熟的知識產(chǎn)權(quán),然后投入人力資源從事基礎(chǔ)研究和開發(fā)買不到的技術(shù),全力以赴支持技術(shù)創(chuàng)新,最終轉(zhuǎn)化為有競爭力產(chǎn)品。過去我們也開發(fā)過很多似乎領(lǐng)先的技術(shù),但最后卻付出了比購買技術(shù)還要大得多的代價。很多時候購買一項技術(shù)從談判到消化只需要2個月,并且同步與世界先進(jìn)技術(shù)水平;而自己開發(fā)卻需要一年以上,后期的維護(hù)費用不少,而且技術(shù)水平一般。有時等自己開發(fā)出來之后,技術(shù)水平又落后一大截了,這樣的自主創(chuàng)新事實上毫無價值。
后記:寫到這里,我突然感到完全有必要寫一篇文章,闡述開發(fā)過程之中的管理之道,那就是“自主創(chuàng)新一定有價值嗎?”向大家介紹博主多年來在開發(fā)產(chǎn)品和從事基礎(chǔ)技術(shù)研究的成功經(jīng)驗與失敗的教訓(xùn),希望對更多的企業(yè)和初學(xué)者有所幫助。