编写自己的BIOS

Ahm*_*eim 34 x86 assembly bios

我并不疯狂,只是重新发明轮子:D
我写过启动加载器,鼠标和键盘迷你驱动程序,迷你操作系统等等.

我总是试图避免DOS中断,只使用BIOS,尝试前进一个统一的迷你操作系统,但突然我决定编写自己的BIOS :)

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

BIOS是用汇编语言编写的吗?我该如何闪光?机制是什么?我可以开始编辑当前的BIOS吗?

old*_*mer 24

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

你怎么闪光的?从主板到主板各不相同,我将从一个开源虚拟机开始并为此编写一个BIOS.或者创建一个您编写BIOS的虚拟机.这个机制因供应商而异,通常你会启动dos(dos并没有死,它在PC世界中非常活跃,尤其是主板开发和嵌入式系统).我不会乱用一块真正的主板,如果你还不知道所有这些问题的答案,那么如果你采取这条道路,你将会破坏许多主板.

您可以尝试为您的主板进行BIOS升级并对其进行逆向工程(尽管可能会有点击协议表明您不会).如果你搞清楚,你可以加载它并破解.我不会去那里,你会弄清楚你的系统.

写一个bios真的是你追求的吗?相当古老的学校,就像编写6502代码一样有趣.有许多低级问题更有用,也很有趣.

如果你可以写作asm,写作机器代码并不是那么困难,你可以去做有趣的事情.x86是可怕的,你应该花一些时间学习其他系统及其asm和机器代码(并为它们编写操作系统).ARM主宰世界,不依赖于bios.有人告诉我,为了在非x86系统上获得视频卡,你仍然需要在x86 bios上的x86中进行操作,可以找出如何在不需要运行x86 bios的情况下调出主流视频卡.看一个模拟器运行bios并看看它做了什么,弄清楚在没有bios的情况下替换init上的电源...编写指令集模拟器或反汇编器是除了编写机器代码之外的下一步,我不会浪费甚至虽然在x86上的第二次,我可以建议一个备选列表(或者你可以只使用我编写或收集的模拟器).

如果x86 bios是您想要的方式,那么您最好的方法是为qemu,virtualbox或其他虚拟机编写,替换或破解bios.用您的BIOS替换该BIOS可能会替换某个目录中的文件或使用命令行选项指定备用BIOS.一旦你有丰富的经验,那么如果仍然有主板上有传统的biose,也许你可以破解你的编程方式(需要购买几种每种类型的主板,因为你会砖一些).有这么多的嵌入式系统可以在20美元到200美元之间获得相同水平的经验,如果没有像样的原理图和文档,那么破解PC主板是没有意义的.您可以挖掘原始PC,其中记录了原理图和bios列表,并且如果您的BIOS无法启动(并且不会破坏主板),则可以插入BIOS,这不是砖块,您可以重新编程或替换BIOS芯片.可能想要使用微控制器作为一个假的BIOS,因为找到合适的硬件重新编程更多的bios芯片可能更难找到工作原始PC ...有一个amiga社区可能会更有趣,并会很乐意让你改进/调整他们的BIOS,比如把现代硬件放在遗留系统调用之后.

  • 一些主板有第二个bios芯片,如果在更新过程中被破坏,可用于恢复主要芯片.也许这个功能有助于避免砖砌太多主板:) (10认同)
  • x86是我开始的最后一个地方,当然不是试图启动机器,它充其量只是一场噩梦.仅仅因为你有一个是最糟糕的原因.从一些5美元或10美元的微控制器开始,学习基础知识,提供一些简单的东西,如gpio和定时器,并熟悉裸线编程(如果有的话,大多数是非常需要的C).然后可能是覆盆子pi或mips或powerpc,然后如果你仍然觉得需要尝试x86.你会发现你需要更换一个bios的零信息,并且可能会炒掉一些主板,即使有数十年的经验. (2认同)