1. 程式人生 > >18、linux筆記--為什麼要使用YOCTO,以及其便捷之處

18、linux筆記--為什麼要使用YOCTO,以及其便捷之處

作為靈活多變且經濟高效的解決方案,嵌入式 Linux展現了巨大的價值,並廣泛應用於消費電子裝置、網路裝置、零售點和行業應用程式。然而,廣泛的應用也意味著多樣化的業務需求,嵌入式解決方案開發人員必須構建定製Linux 版本來滿足其特定需求。

這導致了嵌入式Linux 市場的亂象,一直以來,開發人員不得不向各家晶片製造廠商尋求主機板支援包(BSP)和工具。而且這些部件往往是基於不同制式開發的,這無異於雪上加霜。雖然市面上有數百種可用的嵌入式Linux 發行版,但每個版本都是高度定製的,這導致了大量的重複工作,很多開發人員建立了大同小異的Linux 版本,再基於其開發自己的增值特性和功能。

自由修改Linux 來建立定製版本是一把雙刃劍,一方面證明了開源軟體的巨大價值,另一方面也是導致複雜性的根源。建立定製版本在開發、整合、測試和驗證方面要承擔巨大的開銷。由於大多數解決方案開發人員所創造的增值效應並不會很快顯現,因而這些工作的“價效比”往往並不高。BSP 整合通常也比較複雜和困難,這也顯著增加了專案的成本和風險。

鑑於此,開放原始碼運動的精英們意識到了統一化、一致化對於Linux性命攸關,他們聚集起來,啟動了Yocto Project計劃,開始為開源社群培植變革的火種。

Yocto Project通過一個開源協作專案解決了這些難題,它提供了一整套模板、工具和方法以簡化定製Linux 開發。這個開源專案得到了來自商業和開源生態系統的廣泛參與和支援,包括各大晶片廠商、主流作業系統供應商和獨立顧問。

Yocto專案鼓勵跨各種應用程式和裝置型別的創新,支援多種硬體架構,包括x86(32 位和 64 位)、arm、PPC 和MIPS。隨著硬體BSP 支援的增加和BSP 格式的標準化,這個專案創造了巨大的價值。

作為 Yocto Project 的創始成員之一,英特爾在 Linux Foundation 的協調下,與各個社群共同致力於為嵌入式開發人員建立一個共享的開發環境,並提供了模板、工具和最佳實踐,以簡化定製的嵌入式 L i n ux 應用程式的開發。通過提供的關鍵技術,Yocto Project 與英特爾架構之間實現完美的協同增效。

Yocto Project提供全面的開發解決方案

Yocto Project 為嵌入式開發人員提供資源, 專案採用了OpenEmbedded-Core 作為其上游釋出版本。專案擁有一個積極的社群,不斷完善、測試和更新 Yocto Project 核心和其他元件。

專案站點提供了全面的文件, 構建系統( 基於OpenEmbedded 架構)、交叉構建工具、通用的打包系統和一個應用程式開發人員 SDK。Yocto Project 提供的核心元件包括:

x-Architecture。Yocto Project 擴充套件了構建系統的功能,為 Yocto Project 核心和三個構建配置檔案(最小構建、sato 構建和 LSB 構建)提供了最新的經過全面測試的元資料。

BSP。專案包含大量經過測試的 BSP,大大提高了在硬體和架構之間的可移植性,此外還提供了原始碼方案以及生成的 Yocto Project 參考執行時映像。

SDK。Yocto Project 工具可以利用 Eclipse和 Anjuta 外掛自動建立一個 SDK 或應用程式開發人員工具包,SDK 可用於開發應用程式, 適用於和特定的定製執行時映像一起使用。

使用Yocto Project帶來的優勢

Yocto Project 為解決嵌入式Linux 開發亂象邁出了一大步。晶片、作業系統和裝置廠商之間的協作和戰略規劃有助於實現廣泛而一致的行業支援。因此,作業系統廠商可以基於 Yocto Project 核心來開發商業作業系統和其他產品,而且晶片廠商也可以提供硬體 BSP。

總之,該專案為整個生態系統提供了以下獲益:

健壯的構建系統。Yocto Project 支援從其他常用構建系統輕鬆遷移到 Yocto Project 的經過事實驗證的環境,而且新的軟體版本更新也十分容易。

靈活的定製能力。開發人員可以自由選擇資源的使用,或者完善特定的元件(包括這些元件的特定版本)。

可簡單地向商業作業系統遷移。Yocto Project 的設計允許使用者使用自主開發的作業系統或商業作業系統,在遷移時不會丟失優化或功能。此外,商業作業系統也可以使用 Yocto Project 作為上游資源,從而確保最大化程式碼重用。

綜上所述,Yocto Project賦予開發人員一個極高的起點,幫助他們避免重複工作以及不必要的維護。事實上,Yocto Project是全球最大的開源專案之一,以此為基礎而開發的通用建立系統,可幫助開發人員避免從零開始,轉而把時間和資源集中於開發差異化Linux裝置,從而實現投資回報最大化。