<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 向Linux移植的方法與策略

向Linux移植的方法與策略

——
作者:風(fēng)河公司 Dan Noal Tim Fahey 時(shí)間:2007-01-02 來(lái)源:電子產(chǎn)品世界 收藏

摘要: 本文概述了將設備軟件從原來(lái)的平臺上平臺的方法和策略。

關(guān)鍵詞: ;;;

社群已成為設備軟件領(lǐng)域的熱門(mén)話(huà)題。將設備軟件從原來(lái)的平臺上到Linux平臺,的確可以為電子產(chǎn)品制造企業(yè)帶來(lái)不少好處。但是,對于這種平臺移植過(guò)程中可能遇到的問(wèn)題,如果不是預先有所認知并妥善處理,很可能就會(huì )使這項工作費力不討好,甚至面臨得不償失的后果。

要通過(guò)向Linux的移植獲得實(shí)際的回報,自然就要清楚地看到這項工作可以得到哪些好處,同時(shí)明白自己要付出的代價(jià)。

一般說(shuō)來(lái),電子產(chǎn)品制造企業(yè)將設備軟件移植到Linux平臺,主要可以獲得商業(yè)和技術(shù)兩個(gè)方面的好處,歸結起來(lái)包括:
*免權力金
*容易獲得源代碼
*可以從商業(yè)或者非商業(yè)多方面獲得軟件模塊和工具
*更容易招募開(kāi)發(fā)人員
*更廣泛的溝通與協(xié)作資源
*容易為所選的處理器找到支持來(lái)源

在上述所有因素中,免權力金所帶來(lái)的吸引力最大。Linux平臺的TCO(Total Ownership Cost,總體擁有成本)低于其他操作系統,因而常常成為企業(yè)選擇移植到Linux平臺的決定性因素。

慎選Linux平臺

Linux操作系統到處都拿得到,這是選擇Linux的一大好處。但是,如果處理不好,錯誤的選擇就可能成為一系列麻煩的開(kāi)始。操作系統是整個(gè)應用的平臺,最重要的是可靠性。如果你選用的操作系統來(lái)源不可靠,就很難相信它能夠成為可靠的設備軟件平臺,因而給你的總體擁有成本帶來(lái)很大的風(fēng)險。在此決策過(guò)程中,最重要的一項決定是:選擇商業(yè)套裝Linux軟件平臺(Commercial Grade Linux),還是自行獲取源代碼并自行完成平臺和工具的集成和調試。

以L(fǎng)inux為平臺的設備軟件開(kāi)發(fā)者首先必須明確自己所要做的事情——是要在Linux平臺上進(jìn)行產(chǎn)品開(kāi)發(fā),而不是要去開(kāi)發(fā)Linux操作系統。因此,為了降低TCP而選擇Linux平臺的決策者,一般都會(huì )選擇商用套裝的Linux軟件,而不傾向于把自己寶貴的金錢(qián)和時(shí)間浪費在源代碼的整理和工具的集成、測試等基礎性的工作上。只有這樣,電子產(chǎn)品廠(chǎng)商才可以把更多的財務(wù)和人力資源用于開(kāi)發(fā)產(chǎn)品的新功能,解決客戶(hù)關(guān)心的問(wèn)題,使自己的產(chǎn)品具有更強的市場(chǎng)競爭力。

另一個(gè)促使決策者選擇商業(yè)套裝Linux平臺的原因是產(chǎn)品上市速度。如果不選擇商用套件,就必須自行維護Linux版本,需要投入大量的資源和時(shí)間。反過(guò)來(lái),如果選擇預先組合并且經(jīng)過(guò)驗證的商用Linux套件,就能夠加快產(chǎn)品的上市速度。一般說(shuō)來(lái),商用套裝Linux平臺的提供商都會(huì )提供相應的技術(shù)支持和顧問(wèn)咨詢(xún),這就更加有助于縮短電子產(chǎn)品廠(chǎng)商所面臨的技術(shù)差距。相對于從社群獲得技術(shù)支持,商用套裝Linux提供商的支持更有保障,更有助于縮短產(chǎn)品上市時(shí)間,同時(shí)提升客戶(hù)滿(mǎn)意度。

此外,商用套裝軟件提供商都已經(jīng)形成了一定的合作伙伴體系。尤其是當電子產(chǎn)品制造企業(yè)所選擇的硬件平臺缺乏開(kāi)放源代碼社群支持的時(shí)候,商用套裝軟件提供商及其合作伙伴體系的支持能力就更顯示出特有的優(yōu)勢,而且成為決定產(chǎn)品開(kāi)發(fā)項目成敗的關(guān)鍵因素。

如果不選擇商用套裝Linux平臺,而是選擇開(kāi)放源碼社群,這就意味著(zhù)你的開(kāi)發(fā)工具都要來(lái)自開(kāi)放源碼社群。相對而言,你就可以對這些軟件工具掌握較高的控制權,也可以任意選擇其他相容的開(kāi)發(fā)工具,用來(lái)為你的產(chǎn)品設計增加所需的功能。開(kāi)放源碼意味著(zhù)不需要與別的公司簽署任何軟件購買(mǎi)或技術(shù)支持合約。對于某些電子產(chǎn)品企業(yè)來(lái)說(shuō),不需要與另外的廠(chǎng)商簽署復雜的軟件購買(mǎi)與支持合約,就可以免除一些繁瑣的行政工作。

開(kāi)放源代碼工具的經(jīng)常成本(Normal Cost)通常比較低,這是因為取得這些工具不需要直接的金錢(qián)成本。由于可以免費獲得開(kāi)發(fā)工具,而且這些開(kāi)發(fā)工具流通比較廣泛,因此可以較快地投入產(chǎn)品設計工程項目。不過(guò),必須注意的是,如果選擇自行取得操作系統,就應當在做出決定之前充分考慮到將會(huì )付出的機會(huì )成本。

雖然大多數開(kāi)放源代碼使用者都對單獨的開(kāi)發(fā)工具的品質(zhì)給以肯定,但這些工具如何集成起來(lái)、融為一體,選擇開(kāi)放源代碼平臺的產(chǎn)品制造商就只好自行解決和確認。事實(shí)上,各個(gè)開(kāi)發(fā)工具之間能否相互配合比單個(gè)開(kāi)發(fā)工具的品質(zhì)更為重要。如果選擇了商用套裝Linux平臺,有些供應商就可以提供整合式的開(kāi)發(fā)套件,在出貨前都已經(jīng)進(jìn)行了商用級的品質(zhì)確認。

值得注意的,并非每個(gè)宣稱(chēng)提供Linux操作系統和開(kāi)發(fā)工具的廠(chǎng)商都提供商業(yè)級(Commercial Grade)Linux的套裝軟件和相應的全球化支持與服務(wù)。例如,有的嵌入式Linux軟件提供商自行為L(cháng)inux增加了許多內容,并且采用了非標準的代碼,形成了所謂的“專(zhuān)有版Linux”,往往與原來(lái)的Linux社群反而沒(méi)有多少聯(lián)系了,這與采用Linux的目標是相背離的。

反過(guò)來(lái),像Wind River這樣的商用套件開(kāi)發(fā)工具提供商的產(chǎn)品不僅提供最原始、純正的Linux內核代碼,而且預先整合了各種開(kāi)發(fā)工具和符合特定行業(yè)需求的工具和參考設計,這就使得電子產(chǎn)品制造商不僅可以基于一個(gè)標準、純正、開(kāi)放的Linux開(kāi)放源碼平臺,而且免除了工具整合的工作,從而可以專(zhuān)注于應用軟件功能特性的開(kāi)發(fā)。如果產(chǎn)品制造商有額外需求,例如增加第三方的Plug-in,這都會(huì )增加整合的工作量,而商用套裝Linux平臺提供商就可以提供額外的功能與支持,這些都無(wú)法從免費的開(kāi)放源代碼社群獲得。此外,商用套裝Linux平臺提供商還可以提供更完善的技術(shù)支持和專(zhuān)業(yè)服務(wù),幫助產(chǎn)品制造商克服開(kāi)發(fā)過(guò)程中遇到的困難。

移植方法與過(guò)程

當選定了操作系統及其來(lái)源和開(kāi)發(fā)工具套件之后,在開(kāi)始產(chǎn)品開(kāi)發(fā)之前,還必須進(jìn)行一些準備工作,以便產(chǎn)品開(kāi)發(fā)項目執行得更為成功,并且確保今后的工作能夠得心應手。

第一步是建立評估體系,作為日后衡量向Linux的移植是否成功的依據。在這個(gè)評估體系中,必須考慮到以下幾個(gè)因素:第一,為何要從原來(lái)的平臺移植到Linux;第二,是否有明確的目標來(lái)定義向Linux平臺移植的成功;第三,是否建立了衡量工作效率的方法;第四,如果進(jìn)行這種移植的目的是降低TCO,那么這個(gè)目標是否真正達到了;第五,有哪些指標必須進(jìn)行評估,而哪些指標則不一定要考慮。

這種評估應該盡量采用量化的方法。例如,必須設定明確的ROI(投資報酬率)、TCO以及其他指標,以此來(lái)評估企業(yè)向Linux的移植是否獲得成功。不同的評估方法可能對移植的成敗與效果得出不同的結論。例如,降低TCO的指標還可以細分為免付權力金、相對便宜的程序代碼維護以及人力資源成本的節省等。另外有些方面則可以從策略的角度來(lái)進(jìn)行概念性的評估,包括由于選用了Linux和商用套件而獲得了競爭差異性的機會(huì ),或者為企業(yè)開(kāi)辟了新的收入來(lái)源??傊?,如果沒(méi)有清晰的評估體系,你永遠都不會(huì )知道自己所做的事情是否成功,是否獲得了實(shí)際的效益。

另外,風(fēng)險因素也不可忽視。例如,如果向Linux平臺的移植不成功,將會(huì )對TCO造成多大程度的影響。如果忽視了風(fēng)險的存在,其后果常常更加難以收拾。

第二步是確定企業(yè)自身需要哪些外部支持。電子產(chǎn)品制造企業(yè)可能需要一些特定行業(yè)領(lǐng)域的支持,例如測試與驗證、技術(shù)培訓或者項目管理等。因此,企業(yè)可以考慮將部分工作委托給有技術(shù)實(shí)力和經(jīng)驗的外部服務(wù)提供商,幫助自己解決一些基礎性的問(wèn)題,從而使自己的精力集中在應用軟件的開(kāi)發(fā)方面。

最后,電子產(chǎn)品制造商還必須仔細審視其向Linux平臺移植的進(jìn)度計劃。這個(gè)問(wèn)題常常被忽視。VDC調查資料顯示:超過(guò)40%的設備軟件受訪(fǎng)企業(yè)都認為,造成項目進(jìn)度延誤的主要因素就是他們自己制定了不切實(shí)際的進(jìn)度計劃。如果去實(shí)際檢驗一下項目的進(jìn)度,就會(huì )發(fā)現事情比想象的嚴重。VDC報告還指出,超過(guò)三分之一的設備軟件項目的進(jìn)度都落后于計劃,甚至有10%的項目最終干脆放棄了。雖然導致進(jìn)度延誤的原因各不相同,但是在制定計劃的時(shí)候就充分考慮到各種可能的問(wèn)題并做好預防措施,顯然有助于避免許多問(wèn)題的發(fā)生。

向Linux平臺移植的確是一項不容易的工作,這個(gè)操作系統原本是為了企業(yè)系統而設計的,如果沒(méi)有針對設備軟件應用做出適當的調整,其中就會(huì )隱藏著(zhù)許多風(fēng)險,這也是許多電子設備廠(chǎng)商傾向于選擇經(jīng)過(guò)專(zhuān)業(yè)設備軟件提供商集成與驗證的商業(yè)套裝Linux的主要原因。

需要逾越的難題

設備軟件的運行架構與原本Linux所針對的企業(yè)運行環(huán)境有很大的不同。設備軟件開(kāi)發(fā)者可以選擇最接近設備軟件環(huán)境的Linux軟件架構,以便簡(jiǎn)化移植的過(guò)程。但是,從以下幾個(gè)問(wèn)題可以看出,其中的障礙還是不小的:

第一,Linux的系統調用(System Call)與設備軟件平臺所使用的應用程序代碼和中間件不同,因此設備軟件開(kāi)發(fā)可能與Linux軟件開(kāi)發(fā)存在一些概念上的差異;
第二,現有的設備軟件操作系統和Linux之間的I/O架構也存在差異;
第三,內部程序或者內部處理器之間的通信存在的差異可能更大。Linux內核程序和線(xiàn)程(Thread)很可能和設備軟件開(kāi)發(fā)者現有的應用程序開(kāi)發(fā)經(jīng)驗截然不同。

所以,當你向Linux移植的過(guò)程開(kāi)始之后,必須隨時(shí)掌握列入評估體系的關(guān)鍵指標,并且要保證其詳細程度深入到軟件架構的層次。發(fā)現問(wèn)題所在,以及發(fā)現問(wèn)題的時(shí)機都是非常重要的。性能調試的指標或者問(wèn)題本應在需求分析階段就得到解決,如果這些問(wèn)題被延誤到系統集成測試和優(yōu)化階段,就會(huì )給問(wèn)題的判定帶來(lái)極大的麻煩與困難。

引入的好時(shí)機

向Linux移植的另一個(gè)重要影響是它對軟件開(kāi)發(fā)環(huán)境所帶來(lái)的沖擊。這可能意味著(zhù)企業(yè)組織架構的重大變化,因此必須確保有效的管理、組織和溝通。不過(guò),Linux同時(shí)也很可能給軟件人員帶來(lái)一個(gè)很好的改善機會(huì )。

為了讓企業(yè)向Linux轉移的過(guò)程達到最簡(jiǎn)化和正面的效應,必須建立科學(xué)的評估體系以便衡量移植所帶來(lái)的成效,并從項目一開(kāi)始就在這個(gè)評估體系中對確定的指標進(jìn)行追蹤衡量。除了嚴謹的規則以外,還必須為整個(gè)過(guò)程建立完善的文檔,并且與整個(gè)團隊就工作進(jìn)程展開(kāi)充分的溝通。事實(shí)上,這也是任何軟件項目都必須遵循的原則和流程。附圖給出了一個(gè)已經(jīng)在一些移植項目中經(jīng)過(guò)實(shí)踐的方法,顯示了一個(gè)軟件項目必須遵循的步驟,稱(chēng)之為方法學(xué)(Device Software Optimization Methdology)。

企業(yè)向Linux移植為什么有可能成為全面提升其軟件開(kāi)放能力的重要機會(huì )呢?因為與傳統的嵌入式軟件開(kāi)發(fā)工具不同,DSO提供了更加完整的解決方案。傳統的嵌入式軟件開(kāi)發(fā)環(huán)境,一般都是針對某個(gè)產(chǎn)品的開(kāi)發(fā),選擇一個(gè)RTOS (嵌入式實(shí)時(shí)操作系統),再加上一些開(kāi)發(fā)、調試工具。DSO方法則完全不同,它是在整個(gè)電子制造企業(yè)和產(chǎn)品生命周期這兩個(gè)更大的范疇內對設備軟件的開(kāi)發(fā)、部署和維護進(jìn)行規劃,充分考慮到產(chǎn)品生命周期各個(gè)階段的需求,實(shí)現了更大跨度的最優(yōu)化。有了DSO,甚至可以在設備中實(shí)現遠程管理和維護功能,讓電子產(chǎn)品制造商在自己的辦公室即可對遠方的設備提供現場(chǎng)維護和支持,從而以更低的成本使設備的使用率和性能保持最佳狀態(tài)。

Wind River是幫助企業(yè)實(shí)施DSO方法學(xué)的開(kāi)拓者和領(lǐng)先者,并且正在致力于把自己20多年的設備軟件經(jīng)驗融入到Linux平臺之中。在DSO方法學(xué)指導下實(shí)施向Linux的移植,讓設備軟件開(kāi)發(fā)者集中精力從事應用開(kāi)發(fā)層面的創(chuàng )新,而不需要在操作系統和工具集成方面消耗過(guò)多的資源,從而為設備軟件的性能、成本和可靠性注入新的活力,在根本上增強其產(chǎn)品的市場(chǎng)競爭力。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>