g-bios

g-bios

g-bios研發團隊Intel、IBM、Qualcomm、AMD,研發者資深軟體工程師g-bios是由 Intel、IBM、Qualcomm、AMD 的幾名資深軟體工程師與開源社區共同研發的一個 Bootloader,或者說是一個嵌入式系統的 BIOS,類似於u-boot(另一個有名的Bootloader,由德國人發起)。g-bios的作用相當於 PC 機的BIOS + Bootloader。g-bios 不但借鑑了幾乎所有主流 BSP/BIOS/Bootloader 的優點,而且加入不少獨創的特性。

基本介紹

  • 外文名:g-bios
  • 屬於:Bootloader
項目簡介,獨創之處,體系架構,源碼獲取,在獲取源碼前請首先安裝svn,,線上參與項目或討論,MaxWit其它開源項目,

項目簡介

項目主要負責人是有著業界狂人之稱的Conke Hu(畢業於浙江大學,原Intel、AMD公司資深軟體工程師/項目經理,AMD Chipset Linux Kernel負責人,Linux Kernel、g-bios等開源項目開發者),目前他也是MaxWit公司的主要負責人。

獨創之處

主要有以下幾點:
1、自動檢測有待燒錄的 image 檔案類型,並智慧型自動燒錄。
2、支持多種檔案系統,包括 YAFFS2、JFFS2、CRAMFS、UBI、NFS 等。
3、命令行自動補全(Tab)鍵及歷史記錄(上、下鍵)支持。
4、Flash(MTD) 分區支持,幫助 Linux、Android 核心識別分區。
5、自動設定 Linux 核心啟動參數(Linux kernel command line),極大地降低了參數設定的複雜度並減少了啟動出錯的機率。當然,同時也支持手動設定,以滿足特殊要求。
6、常用命令具有記憶功能。如 boot 命令,它能記住用戶輸入的參數,以後只需簡單輸入boot 即可。
7、引入全新的架構及 NB 技術(即 Never Burn-down,又稱 “燒不死” 技術)。開發人員可在沒有仿真器的情況下大膽開發 Bootloader 。事實上,只需一根串口數據線應能輕鬆完成整個 g-bios 的開發。啟動代碼的地址無關性帶來的麻煩?沒有了!因為 bug 或不小心改錯了代碼,甚至是數據線連線問題而導致啟動黑屏?也不可能出現了!
8、支持完整的中斷機制。開發者可簡單地通過一個編譯選項選擇 IRQ 或 Polling 兩種模式的中的任意一種。
9、優秀的網路子系統,並提供符合 POSIX 規範的 Socket API,方便二次開發。
10、支持多種常用外設,包包括:WDT、UART、NAND、NOR、SD/MMC、USB、LCD、Touchscreen,…
11、集成硬體調試/測試程式,大大提高了 bring-up 的工作效率。
12、完美支持 Google Android 作業系統,簡化 Android 的系統移植過程。
13、支持圖形化配置,不但讓新手很容易上手,而且使 g-bios 的移植和開發過程變得更簡單

體系架構

G-bios體系結構詳見左圖。其在MaxWit嵌入式Linux體系中的位置如右圖所示。
g-bios在MaxWit嵌入式Linux架構中的位置g-bios在MaxWit嵌入式Linux架構中的位置

源碼獲取

在獲取源碼前請首先安裝svn,

源碼地址

線上參與項目或討論

ChinaUnix 論壇上的 g-bios版塊

MaxWit其它開源項目

在該開源項目中可以學習(初學者)或開發(有經驗者)如下一系列技術:
1、完整嵌入式開發環境搭建。如設定TFTP、NFS等網路伺服器,SVN(或其他工具)管理代碼,安裝Windows虛擬機等等細節,更重要的是,如何使用標準源碼,從頭到尾,自己打造一個最新的Cross Toolchain,比如支持NPTL和EABI的gcc-4.4 + glibc-2.9/uClibc-0.30!
2、移植、開發bootloader,包括g-bios和u-boot等。這個過程雖然不難,但我們可以借bootloader更輕鬆更細緻地研究X86、ARM等體系結構。
3、移植、開發Linux kernel,這部分可易可難,試想在一個核心不支持的全新的板子上跑起Linux及所有的驅動,這個工作量也不少。
4、創建ramdisk和rootfs。這個基本上是個手工活,但也必不可少。
5、移植、最佳化或開發Lib,包括:音視解碼器、GUI庫、OpenGL、多媒體、SQLite、WebKit等。
6、移植、最佳化或開發Java VM,支持Java開發也非常重要。
7、移植、最佳化或開發Application,包括:設備管理工具、媒體播放器、視窗管理器、遊戲(當然,不是貪吃蛇)、瀏覽器、即時通訊工具、嵌入式資料庫、辦公軟體等。
該開源項目並不是簡單的移植工作,事實上,多數時間是在從事研發:進行Linux核心的新特性的分析和改進,驅動調試,libc源碼分析,彙編語言/MMU/中斷的研究、QT、嵌入式版GTK+、DirectFB、SDL、TCP/IP協定棧的實現等等。

相關詞條

熱門詞條

聯絡我們