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)
多种文件系统支持,包括
YAFFS1
、
YAFFS2
、
JFFS2
、
CRAMFS
、
NFS
等。
3)
两种用户界面:
GUI
(类似传统
PC BIOS
)和命令行模式(面向嵌入式系统)。
4)
命令行
Tab
键自动补全。
5)
命令行历史记录及上下键支持。
6)
Flash
分区支持,帮助
Linux
、
Android
内核识别分区。
7)
自动设置启动参数(
Linux kernel command line
),极大地降低了参数设置的复杂度并减少了启动出错的概率。当然,也同时也支持手动设置,以满足特殊要求。另外,boot程序还具有记忆功能,即能记得用户上次输入的参数,以后只需输入boot即可。
引入全新的架构及
NB
(
Never Burn Down
,烧不死)技术。核心设计思想是:把
g-bios
分为上半部分和下半部分,上半部分以最小的代码量完成
CPU
和
Memory
的初始化,并实现引导下半部分的功能;下半部分为
g-bios
主体。上半部分设计简单,调试周期短,完成后就固化在特定的引导区中不再更改;开发人员可在没有仿真器的情况下大胆开发下半部分代码(即
g-bios
主体),事实上,只需一根串口数据线应能轻松完成整个
g-bios
的开发。启动代码的地址无关性带来的麻烦?没有了!因为
bug
或不小心改错了代码,甚至是数据线接触不良而导致启动黑屏?永远不可能出现了!
J
在调试完成并正试发布的产品时,若有必要,也可将上下两部分可合成一个整体——只需一个命令重新编译即可。
9)
优秀的子系统设计:包括中断、网络、
Flash
、USB子系统,等等。
10)
集成
Video BIOS
。
11)
支持
make
g
config
图形化配置,简化移植过程。
更多信息,参见项目主页
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