我自己写BIOS(Writing my own BIOS)

2019-06-25 04:37发布

我没疯,只是重新发明轮子:d
我写的引导加载程序,鼠标和键盘微型驱动器,迷你操作系统等。

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

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

是因为BIOS的汇编语言编写的? 我怎么能闪光呢? 什么是机制? 我可以开始编辑了我目前的BIOS?

Answer 1:

通过BIOS可以用汇编编写,但并不一定是某些部分需要注册后才能拿到参数的系统调用,因为它们不匹配的编译器调用约定。

你怎么闪了吗? 从主板到主板上各不相同,我将开始与开源虚拟机和写入的BIOS。 或者创建,你已经写了BIOS的虚拟机。 该机构改变从供应商的供应商,一般你启动DOS(DOS不是死了,这是非常活跃在PC世界,ESP主板开发和嵌入式系统)。 我不会用一个真正的主板浪费时间,如果你还不知道的答案,所有的这些问题,你要砖一些主板,如果你采取的路径。

你可以尝试把BIOS升级你的主板和逆向工程它(虽然有可能是通过协议一次点击,你不会说的)。 如果你看着办吧,你既可以加载并且在砍。 我不会去那里,你将砖你的系统,你看着办吧了。

真的写BIOS,你所追求的? 相当老派,会像写好玩6502码。 有许多低层次的问题,更加有用和有趣。

如果你能写汇编写的机器代码是不是都不难,你可以只是去做到这一点的乐趣。 86是可怕的,你应该花一些时间来学习其他系统和他们的汇编和机器代码(和写作的操作系统为他们)。 ARM占主导地位的世界,不依赖于BIOS。 我已被告知,获得显卡了,你还是要拨弄在x86 BIOS中的x86东西非x86系统上,可以计算出如何使一个主流的显卡,而不需要运行x86的BIOS。 看一个模拟器运行BIOS,看看它做什么,搞清楚更换开机初始化没有BIOS做...写一个指令集仿真器或反汇编超出写作机器代码下一步,我不会浪费甚至时间在x86虽然第二,我可以建议的替代品清单(或者你可以只用模拟器我写的或收集的发挥)。

如果一个BIOS的x86是你想要去的方式,你的最佳路径是写,更换,或者在BIOS破解虚拟机是QEMU,VirtualBox的,或其他。 更换与你的BIOS将可能在某些目录中替换文件或使用命令行选项指定备用BIOS。 一旦你以及在经历了那么是否还有与他们传统的BIOS主板或许你可以破解你的方式进入一个编程(需要购买几个各类型的主板的,你将砖一些)。 有了这么多的嵌入式系统,在那里,就可以了$ 20至$ 200的经验同级别虎子,它没有任何意义乱砍PC主板没有像样的原理图和文件上。 你可以挖一个最初的PC用的原理图和BIOS上市被记录在案,并且被嵌在BIOS中,所以如果你不开机(不破坏主板),这是不是你可以重新编程或更换BIOS砖芯片。 可能需要使用一个微控制器站在为假冒的BIOS,为寻找到更多的重新编程BIOS芯片合适的硬件也许是很难找到工作的原PC的......有一台Amiga社区,可能更多的乐趣,并会很高兴有你改善/调整他们的BIOS,说把现代化的硬件遗留系统调用的后面。



Answer 2:

FWIW Modbin是一个DOS程序,顾名思义修改BIN图像尤其是对既简单QND相当极端改变现有的BIOS代码的目的。

如果你能得到一个旧的主板(很多都扔掉了还在工作),我会鼓励你玩的BIOS。 它的知识性和乐趣,如果是这样的倾向,你似乎是:)有,我下载的BIOS图片来自的主板是有相同或相似的足够的芯片组虽然由不同制造商生产的时间......有时相当大的优势,包括这种简单的人如继续原来的主板制造商后获得BIOS更新丢球或倒闭,也功能和性能为导向的选择和改变。

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



Answer 3:

如果你想要写的IBM PC兼容计算机的BIOS(这是大多数台式机的今天,尽管有更多的扩展CPU的指令集,以及一些不同的总线接口),那么我建议你通过看IBM PCIBM PC XTIBM PC AT技术参考手册 。 特别是IBM PC AT手册,因为这是事实上的标准是什么。

这些手册有IBM在其计算机上使用的完整的BIOS程序代码列表,以及它们在汇编语言。 您可能需要通过这些手册一点点(尤其是IBM PC AT之一)找到他们打猎,因为一些没有在目录中直接列出,但它们的存在。 希望这些能的BIOS让你开始。



Answer 4:

有办法闪光灯的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覆盖,其中编程剪辑是其中之一。



Answer 5:

BIOS可以用任何你喜欢的语言,虽然低级语言给你更多的控制权。 大会和机器代码几乎相同,区别在于微接口和您键入的内容,例如。 为机器码你只输入2个字符,并装配给你字母数字。 我的自定义BIOS追捕开始了,当我需要电脑开机每隔几个小时,并没有发现,确实,任何BIOS。

要刷新BIOS,请按照生产厂家的指导方针。 BIOS已被替换为UEFI(为增加安全性)。 结帐: https://www.pcworld.com/article/187437/how-to-update-your-bios.html

x86和AMD64的指令参考: https://www.felixcloutier.com/x86/
与扩展x86指令: https://en.wikipedia.org/wiki/X86_instruction_listings
I386指令REF: https://css.csail.mit.edu/6.858/2014/readings/i386.pdf
x86汇编指南: https://www.cs.virginia.edu/~evans/cs216/guides/x86.html
英特尔指令集参考: https://software.intel.com/sites/default/files/managed/a4/60/325383-sdm-vol-2abcd.pdf



文章来源: Writing my own BIOS