向Linux移植的方法與策略
摘要: 本文概述了將設備軟件從原來的平臺上移植到Linux平臺的方法和策略。
關鍵詞: Linux;開放源代碼;移植;DSO
Linux和開放源代碼社群已成為設備軟件領域的熱門話題。將設備軟件從原來的平臺上移植到Linux平臺,的確可以為電子產(chǎn)品制造企業(yè)帶來不少好處。但是,對于這種平臺移植過程中可能遇到的問題,如果不是預先有所認知并妥善處理,很可能就會使這項工作費力不討好,甚至面臨得不償失的后果。
要通過向Linux的移植獲得實際的回報,自然就要清楚地看到這項工作可以得到哪些好處,同時明白自己要付出的代價。
一般說來,電子產(chǎn)品制造企業(yè)將設備軟件移植到Linux平臺,主要可以獲得商業(yè)和技術兩個方面的好處,歸結起來包括:
*免權力金
*容易獲得源代碼
*可以從商業(yè)或者非商業(yè)多方面獲得軟件模塊和工具
*更容易招募開發(fā)人員
*更廣泛的溝通與協(xié)作資源
*容易為所選的處理器找到支持來源
在上述所有因素中,免權力金所帶來的吸引力最大。Linux平臺的TCO(Total Ownership Cost,總體擁有成本)低于其他操作系統(tǒng),因而常常成為企業(yè)選擇移植到Linux平臺的決定性因素。
慎選Linux平臺
Linux操作系統(tǒng)到處都拿得到,這是選擇Linux的一大好處。但是,如果處理不好,錯誤的選擇就可能成為一系列麻煩的開始。操作系統(tǒng)是整個應用的平臺,最重要的是可靠性。如果你選用的操作系統(tǒng)來源不可靠,就很難相信它能夠成為可靠的設備軟件平臺,因而給你的總體擁有成本帶來很大的風險。在此決策過程中,最重要的一項決定是:選擇商業(yè)套裝Linux軟件平臺(Commercial Grade Linux),還是自行獲取源代碼并自行完成平臺和工具的集成和調(diào)試。
以Linux為平臺的設備軟件開發(fā)者首先必須明確自己所要做的事情——是要在Linux平臺上進行產(chǎn)品開發(fā),而不是要去開發(fā)Linux操作系統(tǒng)。因此,為了降低TCP而選擇Linux平臺的決策者,一般都會選擇商用套裝的Linux軟件,而不傾向于把自己寶貴的金錢和時間浪費在源代碼的整理和工具的集成、測試等基礎性的工作上。只有這樣,電子產(chǎn)品廠商才可以把更多的財務和人力資源用于開發(fā)產(chǎn)品的新功能,解決客戶關心的問題,使自己的產(chǎn)品具有更強的市場競爭力。
另一個促使決策者選擇商業(yè)套裝Linux平臺的原因是產(chǎn)品上市速度。如果不選擇商用套件,就必須自行維護Linux版本,需要投入大量的資源和時間。反過來,如果選擇預先組合并且經(jīng)過驗證的商用Linux套件,就能夠加快產(chǎn)品的上市速度。一般說來,商用套裝Linux平臺的提供商都會提供相應的技術支持和顧問咨詢,這就更加有助于縮短電子產(chǎn)品廠商所面臨的技術差距。相對于從開放源代碼社群獲得技術支持,商用套裝Linux提供商的支持更有保障,更有助于縮短產(chǎn)品上市時間,同時提升客戶滿意度。
此外,商用套裝軟件提供商都已經(jīng)形成了一定的合作伙伴體系。尤其是當電子產(chǎn)品制造企業(yè)所選擇的硬件平臺缺乏開放源代碼社群支持的時候,商用套裝軟件提供商及其合作伙伴體系的支持能力就更顯示出特有的優(yōu)勢,而且成為決定產(chǎn)品開發(fā)項目成敗的關鍵因素。
如果不選擇商用套裝Linux平臺,而是選擇開放源碼社群,這就意味著你的開發(fā)工具都要來自開放源碼社群。相對而言,你就可以對這些軟件工具掌握較高的控制權,也可以任意選擇其他相容的開發(fā)工具,用來為你的產(chǎn)品設計增加所需的功能。開放源碼意味著不需要與別的公司簽署任何軟件購買或技術支持合約。對于某些電子產(chǎn)品企業(yè)來說,不需要與另外的廠商簽署復雜的軟件購買與支持合約,就可以免除一些繁瑣的行政工作。
開放源代碼工具的經(jīng)常成本(Normal Cost)通常比較低,這是因為取得這些工具不需要直接的金錢成本。由于可以免費獲得開發(fā)工具,而且這些開發(fā)工具流通比較廣泛,因此可以較快地投入產(chǎn)品設計工程項目。不過,必須注意的是,如果選擇自行取得操作系統(tǒng),就應當在做出決定之前充分考慮到將會付出的機會成本。
雖然大多數(shù)開放源代碼使用者都對單獨的開發(fā)工具的品質(zhì)給以肯定,但這些工具如何集成起來、融為一體,選擇開放源代碼平臺的產(chǎn)品制造商就只好自行解決和確認。事實上,各個開發(fā)工具之間能否相互配合比單個開發(fā)工具的品質(zhì)更為重要。如果選擇了商用套裝Linux平臺,有些供應商就可以提供整合式的開發(fā)套件,在出貨前都已經(jīng)進行了商用級的品質(zhì)確認。
值得注意的,并非每個宣稱提供Linux操作系統(tǒng)和開發(fā)工具的廠商都提供商業(yè)級(Commercial Grade)Linux的套裝軟件和相應的全球化支持與服務。例如,有的嵌入式Linux軟件提供商自行為Linux增加了許多內(nèi)容,并且采用了非標準的代碼,形成了所謂的“專有版Linux”,往往與原來的Linux社群反而沒有多少聯(lián)系了,這與采用Linux的目標是相背離的。
反過來,像Wind River這樣的商用套件開發(fā)工具提供商的產(chǎn)品不僅提供最原始、純正的Linux內(nèi)核代碼,而且預先整合了各種開發(fā)工具和符合特定行業(yè)需求的工具和參考設計,這就使得電子產(chǎn)品制造商不僅可以基于一個標準、純正、開放的Linux開放源碼平臺,而且免除了工具整合的工作,從而可以專注于應用軟件功能特性的開發(fā)。如果產(chǎn)品制造商有額外需求,例如增加第三方的Plug-in,這都會增加整合的工作量,而商用套裝Linux平臺提供商就可以提供額外的功能與支持,這些都無法從免費的開放源代碼社群獲得。此外,商用套裝Linux平臺提供商還可以提供更完善的技術支持和專業(yè)服務,幫助產(chǎn)品制造商克服開發(fā)過程中遇到的困難。
移植方法與過程
當選定了操作系統(tǒng)及其來源和開發(fā)工具套件之后,在開始產(chǎn)品開發(fā)之前,還必須進行一些準備工作,以便產(chǎn)品開發(fā)項目執(zhí)行得更為成功,并且確保今后的工作能夠得心應手。
第一步是建立評估體系,作為日后衡量向Linux的移植是否成功的依據(jù)。在這個評估體系中,必須考慮到以下幾個因素:第一,為何要從原來的平臺移植到Linux;第二,是否有明確的目標來定義向Linux平臺移植的成功;第三,是否建立了衡量工作效率的方法;第四,如果進行這種移植的目的是降低TCO,那么這個目標是否真正達到了;第五,有哪些指標必須進行評估,而哪些指標則不一定要考慮。
這種評估應該盡量采用量化的方法。例如,必須設定明確的ROI(投資報酬率)、TCO以及其他指標,以此來評估企業(yè)向Linux的移植是否獲得成功。不同的評估方法可能對移植的成敗與效果得出不同的結論。例如,降低TCO的指標還可以細分為免付權力金、相對便宜的程序代碼維護以及人力資源成本的節(jié)省等。另外有些方面則可以從策略的角度來進行概念性的評估,包括由于選用了Linux和商用套件而獲得了競爭差異性的機會,或者為企業(yè)開辟了新的收入來源??傊?,如果沒有清晰的評估體系,你永遠都不會知道自己所做的事情是否成功,是否獲得了實際的效益。
另外,風險因素也不可忽視。例如,如果向Linux平臺的移植不成功,將會對TCO造成多大程度的影響。如果忽視了風險的存在,其后果常常更加難以收拾。
第二步是確定企業(yè)自身需要哪些外部支持。電子產(chǎn)品制造企業(yè)可能需要一些特定行業(yè)領域的支持,例如測試與驗證、技術培訓或者項目管理等。因此,企業(yè)可以考慮將部分工作委托給有技術實力和經(jīng)驗的外部服務提供商,幫助自己解決一些基礎性的問題,從而使自己的精力集中在應用軟件的開發(fā)方面。
最后,電子產(chǎn)品制造商還必須仔細審視其向Linux平臺移植的進度計劃。這個問題常常被忽視。VDC調(diào)查資料顯示:超過40%的設備軟件受訪企業(yè)都認為,造成項目進度延誤的主要因素就是他們自己制定了不切實際的進度計劃。如果去實際檢驗一下項目的進度,就會發(fā)現(xiàn)事情比想象的嚴重。VDC報告還指出,超過三分之一的設備軟件項目的進度都落后于計劃,甚至有10%的項目最終干脆放棄了。雖然導致進度延誤的原因各不相同,但是在制定計劃的時候就充分考慮到各種可能的問題并做好預防措施,顯然有助于避免許多問題的發(fā)生。
向Linux平臺移植的確是一項不容易的工作,這個操作系統(tǒng)原本是為了企業(yè)系統(tǒng)而設計的,如果沒有針對設備軟件應用做出適當?shù)恼{(diào)整,其中就會隱藏著許多風險,這也是許多電子設備廠商傾向于選擇經(jīng)過專業(yè)設備軟件提供商集成與驗證的商業(yè)套裝Linux的主要原因。
需要逾越的難題
設備軟件的運行架構與原本Linux所針對的企業(yè)運行環(huán)境有很大的不同。設備軟件開發(fā)者可以選擇最接近設備軟件環(huán)境的Linux軟件架構,以便簡化移植的過程。但是,從以下幾個問題可以看出,其中的障礙還是不小的:
第一,Linux的系統(tǒng)調(diào)用(System Call)與設備軟件平臺所使用的應用程序代碼和中間件不同,因此設備軟件開發(fā)可能與Linux軟件開發(fā)存在一些概念上的差異;
第二,現(xiàn)有的設備軟件操作系統(tǒng)和Linux之間的I/O架構也存在差異;
第三,內(nèi)部程序或者內(nèi)部處理器之間的通信存在的差異可能更大。Linux內(nèi)核程序和線程(Thread)很可能和設備軟件開發(fā)者現(xiàn)有的應用程序開發(fā)經(jīng)驗截然不同。
所以,當你向Linux移植的過程開始之后,必須隨時掌握列入評估體系的關鍵指標,并且要保證其詳細程度深入到軟件架構的層次。發(fā)現(xiàn)問題所在,以及發(fā)現(xiàn)問題的時機都是非常重要的。性能調(diào)試的指標或者問題本應在需求分析階段就得到解決,如果這些問題被延誤到系統(tǒng)集成測試和優(yōu)化階段,就會給問題的判定帶來極大的麻煩與困難。
引入DSO的好時機
向Linux移植的另一個重要影響是它對軟件開發(fā)環(huán)境所帶來的沖擊。這可能意味著企業(yè)組織架構的重大變化,因此必須確保有效的管理、組織和溝通。不過,Linux同時也很可能給軟件人員帶來一個很好的改善機會。
為了讓企業(yè)向Linux轉移的過程達到最簡化和正面的效應,必須建立科學的評估體系以便衡量移植所帶來的成效,并從項目一開始就在這個評估體系中對確定的指標進行追蹤衡量。除了嚴謹?shù)囊?guī)則以外,還必須為整個過程建立完善的文檔,并且與整個團隊就工作進程展開充分的溝通。事實上,這也是任何軟件項目都必須遵循的原則和流程。附圖給出了一個已經(jīng)在一些移植項目中經(jīng)過實踐的方法,顯示了一個軟件項目必須遵循的步驟,稱之為DSO方法學(Device Software Optimization Methdology)。
企業(yè)向Linux移植為什么有可能成為全面提升其軟件開放能力的重要機會呢?因為與傳統(tǒng)的嵌入式軟件開發(fā)工具不同,DSO提供了更加完整的解決方案。傳統(tǒng)的嵌入式軟件開發(fā)環(huán)境,一般都是針對某個產(chǎn)品的開發(fā),選擇一個RTOS (嵌入式實時操作系統(tǒng)),再加上一些開發(fā)、調(diào)試工具。DSO方法則完全不同,它是在整個電子制造企業(yè)和產(chǎn)品生命周期這兩個更大的范疇內(nèi)對設備軟件的開發(fā)、部署和維護進行規(guī)劃,充分考慮到產(chǎn)品生命周期各個階段的需求,實現(xiàn)了更大跨度的最優(yōu)化。有了DSO,甚至可以在設備中實現(xiàn)遠程管理和維護功能,讓電子產(chǎn)品制造商在自己的辦公室即可對遠方的設備提供現(xiàn)場維護和支持,從而以更低的成本使設備的使用率和性能保持最佳狀態(tài)。
Wind River是幫助企業(yè)實施DSO方法學的開拓者和領先者,并且正在致力于把自己20多年的設備軟件經(jīng)驗融入到Linux平臺之中。在DSO方法學指導下實施向Linux的移植,讓設備軟件開發(fā)者集中精力從事應用開發(fā)層面的創(chuàng)新,而不需要在操作系統(tǒng)和工具集成方面消耗過多的資源,從而為設備軟件的性能、成本和可靠性注入新的活力,在根本上增強其產(chǎn)品的市場競爭力。
評論