Chinaunix

标题: 开源项目g-bios介绍 [打印本页]

作者: fleya    时间: 2008-12-09 14:33
标题: 开源项目g-bios介绍
源项目g-bios介绍


简单地说,g-bios是一个Bootloader,或者说是一个嵌入式系统的BIOS,类似于u-boot(另一个有名的Bootloader,由德国人发起)g-bios的作用相当于PC机的BIOS + Bootloader

g-bios不但借鉴了几乎所有主流Bootloader/BIOS的优点,而且加入丰富的、独创的特性,包括:
1) 自动检测有待烧录的image文件类型,并智能自动烧录。
2) 多种文件系统支持,包括YAFFS1YAFFS2JFFS2CRAMFSNFS等。
3) 两种用户界面:GUI(类似传统PC BIOS)和命令行模式(面向嵌入式系统)。
4) 命令行Tab键自动补全。
5) 命令行历史记录及上下键支持。
6) Flash分区支持,帮助LinuxAndroid内核识别分区。
7) 自动设置启动参数(Linux kernel command line),极大地降低了参数设置的复杂度并减少了启动出错的概率。当然,也同时也支持手动设置,以满足特殊要求。另外,boot程序还具有记忆功能,即能记得用户上次输入的参数,以后只需输入boot即可。
引入全新的架构及NBNever Burn Down,烧不死)技术。核心设计思想是:把g-bios分为上半部分和下半部分,上半部分以最小的代码量完成CPUMemory的初始化,并实现引导下半部分的功能;下半部分为g-bios主体。上半部分设计简单,调试周期短,完成后就固化在特定的引导区中不再更改;开发人员可在没有仿真器的情况下大胆开发下半部分代码(即g-bios主体),事实上,只需一根串口数据线应能轻松完成整个g-bios的开发。启动代码的地址无关性带来的麻烦?没有了!因为bug或不小心改错了代码,甚至是数据线接触不良而导致启动黑屏?永远不可能出现了!J
在调试完成并正试发布的产品时,若有必要,也可将上下两部分可合成一个整体——只需一个命令重新编译即可。
9) 优秀的子系统设计:包括中断、网络、Flash、USB子系统,等等。
10) 集成Video BIOS
11) 支持make gconfig图形化配置,简化移植过程。
更多信息,参见项目主页http://g-bios.googlecode.com
作者: bitmilong    时间: 2008-12-09 15:28
楼主的想法很不错
再推出一款功能强大的bootloader

将来会支持什么架构的CPU还有开发板呢?做起来可能比较费事
作者: Send_linux    时间: 2008-12-09 15:40
欢迎大家给出意见,如果把这个项目构建与CU的嵌入开发社区中,会有好的发展么?
作者: dreamice    时间: 2008-12-09 15:59
现在是什么情况了
作者: bitmilong    时间: 2008-12-09 16:00
标题: 回复 #3 Send_linux 的帖子
一定会有好的发展

这个需要投入大量时间和人力.觉得板级支持做的好的话推广会很容易,毕竟它的理想就是简化开发,为后面的OS提供板级开发环境.

不知道U-boot的团队是如何操作的
作者: sep    时间: 2008-12-09 21:56
Mark
我比较赞赏第一个和第八个特性,其他都有现成的或者不难实现
作者: emmoblin    时间: 2008-12-09 23:02
我和想了解一下上半部是怎么实现的。
grub启动不也是有stage1和stage2嘛
我倒是觉得没什么特别的地方。

做单一系统的bootloader很简单,难的是兼容所有平台的bootloader。
单独看uboot 中arm启动部分,代码很少了已经。
作者: pilgrim_kevin    时间: 2008-12-09 23:15
想法支持。

不过无论如何,动手才是最主要的。
作者: changzi100    时间: 2008-12-10 08:14
有想法,没办法!
作者: kns1024wh    时间: 2008-12-10 09:18
标题: 回复 #1 fleya 的帖子
这个还是不好尝试的,没有工业化
作者: yidou    时间: 2008-12-10 09:39
原帖由 emmoblin 于 2008-12-9 23:02 发表
我和想了解一下上半部是怎么实现的。



同问.


感觉其它特性并无特别之处。
作者: myforever    时间: 2008-12-10 09:55
主要还是要有硬件应用平台来测试
作者: Eruda    时间: 2008-12-11 13:42
上半部(top half)所做的工作是为下半部服务的,她初始化一些必要的设备,比如SOC,UART,Memory Controller和Flash,当然为了支持串口传输,还实现了Kermit协议.这样code的size很小,烧写上半部很方便,且提高了开发效率.一些开发过程中的实验性代码可作为下半部分,由串口load到RAM中直接执行,既快速又避免了反复烧写,更重要的是,开发人员可在没有仿真器的情况下大胆开发下半部分代码,代码本身的bug或硬件问题而导致启动无反应的问题不可能出现了.
作者: NewCore    时间: 2008-12-12 10:03
和U-Boot/Vivi相比有什么优势?
作者: yidou    时间: 2008-12-12 10:14
上半部是否有硬件平台相关性?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2