2012-06-05 120 views
28

我不是疯了,只是重新发明轮子:D
我写的引导装载程序,鼠标&键盘迷你驱动程序,迷你操作系统等。编写我自己的BIOS

我总是试图避免DOS中断,只能通过BIOS的人,试图往前走团结迷你操作系统,但我突然决定写我自己的BIOS :)

传奇说:
我是高级程序员,然后是低级程序员。有一天,我将成为机器语言程序员!

是以程序集编写的BIOS吗?我如何闪光它?什么机制?我可以开始编辑我目前的BIOS吗?

+10

希望对你有用的设备驱动程序:http://www.coreboot.org/Welcome_to_coreboot – sarnold

+0

投票关闭太宽泛。 –

回答

20

BIOS可以用汇编语言编写,但不一定非要,因为它们与编译器调用约定不匹配,所以需要某些部分来获取系统调用的参数。

你如何闪光它?从主板到主板各不相同,我将从一个开源虚拟机开始,为此写一个bios。或者创建一个你已经写好BIOS的虚拟机。机制因供应商不同而不同,一般来说,你需要引导dos(dos并没有死掉,它在PC世界非常活跃,特别是主板开发和嵌入式系统)。如果你不知道所有这些问题的答案,那么我将不会弄乱一个真正的主板,如果你采取这种方式,你会去制造一些主板。

您可以尝试为您的母板进行BIOS升级并对其进行逆向工程(尽管可能会通过点击协议来表明您不会这么做)。如果你弄明白了,你可以加载它并在at处进行破解。我不会去那里,你会弄清楚你的系统,然后再解决它。

正在编写一个BIOS真的是你的后?相当古老的学校,就像写6502代码一样好玩。有许多低级别的问题更有用且有趣。

如果你可以写asm写作机器代码并不难,你可以去做那些有趣的事情。 x86是可怕的,你应该花一些时间学习其他系统和他们的asm和机器代码(并为他们编写操作系统)。 ARM在全球占据主导地位,并不依赖于BIOS。我被告知,要在非x86系统上获得视频卡,您仍然必须在x86 bios上找到x86中的某些东西,可以找出如何在不需要运行x86 bios的情况下调出主流视频卡。看一个模拟器运行BIOS并看看它做了什么,找出它在init中取代电源,而不需要bios这样做......编写指令集模拟器或反汇编器是除了编写机器代码之外的下一步,我不会浪费甚至尽管在x86上只花了一秒钟时间,但我可以建议一个备选方案列表(或者你可以只使用我写的或收集的模拟器)。

如果x86 bios是您想要去的方式,那么您的最佳途径是编写,替换或破解虚拟机为qemu,virtualbox或其他的bios。用你的替换bios可能会替换某个目录中的文件或使用命令行选项来指定替代的bios。一旦你有丰富的经验,那么如果仍然有主板使用传统bioses,也许你可以用自己的方式编程(有些需要购买几种不同类型的主板)。有这么多的嵌入式系统可以在20到200美元之间获得相同级别的经验,因此如果没有像样的原理图和文档,就无法在PC主板上进行破解。你可以挖出一台原始的电脑,并将原理图和BIOS列表记录下来,并且将BIOS插入,这样如果你的电脑无法启动(并且不会损坏主板),那么你可以重新编程或更换BIOS芯片。可能希望使用微控制器作为假BIOS,因为找到正确的硬件来重新编程更多的BIOS芯片,可能很难找到工作的原始PC ...有一个amiga社区可能更有趣,并会很高兴能让你改进/调整他们的BIOS,比如将现代硬件放在传统的系统调用之后。

+7

一些主板具有可以使用的,如果它在更新过程中被损坏恢复主之一的第二BIOS芯片。也许这个功能将有助于避免砖块太多的主板:) –

+0

@ old_timer 先生,我想写一个BIOS,以了解计算机如何工作,因为我没有正式的计算机背景(但我是软件开发人员编写软件使用Java)。请告诉帮我的路线图我怎么能知道如何微处理器,BIOS,内存,操作系统等终于我的代码运行做一些事情值得;从哪个角度我应该开始了解这一点;学习的来源是什么? 我会*急切*等待您的回复。 –

+1

x86的是最后的地方,我就开始了,肯定不是想在最好的启动机器,它是一场噩梦。只因为你有一个是最糟糕的原因。先从一些$或$ 300元的微控制器,学习基础知识造就了像GPIO和定时器一些简单的事情,并获得舒适与baremetal编程(大多数是C如有需要很少ASM)。然后,也许是一个覆盆子pi或mips或powerpc,然后如果你仍然觉得需要尝试一个x86。你会发现几乎没有什么信息可以替代BIOS,甚至可以用几十年的经验来炒几个主板。 –

0

有办法可以刷新BIOS而不是让PC运行。但它需要一些硬件。虽然不应该很昂贵。

你可以尝试像这种tecnique的: http://hackaday.com/2010/11/18/build-your-own-soic-progamming-clip/

此我今天看到: https://conference.hitb.org/hitbsecconf2015ams/sessions/how-many-million-bioses-would-you-like-to-infect/

它更详细地解释它,但你可能不找感染,一些tecniques用于获取bios的内容,其中编程剪辑就是其中之一。

+1

请在链接中添加详细信息,以便作出更好的回答。 –

1

FWIW Modbin是一个DOS程序,它顾名思义就是修改BIN图像,特别是对于现有BIOS代码的简单和相当极端的改变。

如果你可以获得一个老的主板(许多人被扔掉仍然工作),我会鼓励你玩弄BIOS。这是信息丰富和有趣的,如果你是如此倾向,你似乎:)有一段时间,我从mobos下载了具有相同或类似的芯片组,虽然由不同的制造商制造的BIOS图像...有时具有相当大的优势,包括这种简单的人如继续原来的主板制造商后获得BIOS更新丢球或倒闭,也功能和性能为导向的选择和改变。

这导致了“HOT闪烁”,这是拉起插座的BIOS芯片使得销刚好取得了联系,一旦启动了,拉一个,而代以一个坏的(往往是我fuxored),而仍在运行并使用保持系统活动的高速缓存BIOS功能进行闪烁。对于我们这些野人说服有趣的东西,并给了我信心写的OS/2