【发布时间】:2020-04-07 10:07:38
【问题描述】:
一些背景: 我现在是一名计算机工程专业的学生,我刚刚完成了一个项目,该项目创建了一个微处理器,该微处理器具有在 FPGA 上运行的超级简单指令集。我选择实现一个简单的文件存储方案、一个 VGA 纯文本显示输出和一个 PS/2 键盘输入。我编写了两个主要程序,一个在处理器的 ROM 中的固件和一个提供一堆库类型函数的内核,并且能够从文件系统加载和执行文件。这个项目很有挑战性,总体来说很有趣。
我的问题: 我想在现代计算机上进行一些超低级编程,但我似乎找不到任何可以帮助我入门的资源或文档。明确地说,我想找到合适的文档来帮助我用 C、x86 或 x86-64 程序集编写我可以编译的程序,并将其格式化为某种形式的可引导数据。我知道这是一项艰巨的任务,通常不是业余爱好者会承担的,但我知道这是可能的 (Terry Davis's TempleOS)。
是否有任何我可以阅读的网站或书籍包含制作这样的东西所需的细节?
【问题讨论】:
-
问:你到底想写什么?听起来像bootloader?注意:在您的项目中 1) 您有某种带有处理器、存储设备的系统板。 2)主板有一些固件(BIOS?),以允许系统从存储加载操作系统并开始在 CPU 上运行它。 3) 一旦操作系统运行,您就可以运行您的“其他”软件——程序、驱动程序等。这是一个示例引导加载程序:apriorit.com/dev-blog/66-develop-boot-loader
-
您可以尝试学习类似的程序,例如memtest (github.com/Distrotech/memtest86) & grub (github.com/coreos/grub)
标签: operating-system kernel low-level