【问题标题】:How would I write a bootloader to load a c kernel?我将如何编写引导加载程序来加载 c 内核?
【发布时间】:2012-03-02 16:55:43
【问题描述】:

我在编写引导加载程序时正在学习 NASM。到目前为止,我有一个 hello world 引导加载程序。我想知道如何将 c 程序链接到它并让引导加载程序将其加载到内存中并开始执行它的入口点函数。我需要 NASM 代码,因为我是 NASM n00b。非常感谢您的帮助。

编辑:基本上我需要知道如何链接 c 程序,并且我需要 NASM 代码来测试它的入口点函数。有什么我应该知道的问题吗?

【问题讨论】:

  • 到目前为止你有没有尝试过?你遇到了什么问题?
  • 不。只是不知道如何链接和加载它。谷歌没有帮助。

标签: c assembly kernel nasm bootloader


【解决方案1】:

虽然this tutorial 适用于 C++,但其过程完全相同(本教程列出了 C++ 特定的部分,它们只是静态 ctors 和 dtors)。

当您在这方面遇到问题时,osdev.org 通常会有答案或教程

【讨论】:

  • 谢谢,这正是我所需要的。
【解决方案2】:

关于启动内核有很多陷阱:

这是一个很好的资源http://linuxgazette.net/issue77/krishnakumar.html

这应该让你开始。

【讨论】:

  • 这是一个将引导加载程序复制到软盘上的 c 程序。我需要一个引导加载程序来启动内核。我用 dd 来复制我的引导加载程序。
  • 很公平 :) 我想你已经得到了上面的答案
  • 实际上,如果您阅读所有内容,它确实有引导加载程序程序集
猜你喜欢
  • 2021-10-12
  • 1970-01-01
  • 2020-09-10
  • 2015-06-02
  • 1970-01-01
  • 2010-12-10
  • 2018-03-26
  • 2016-02-09
相关资源
最近更新 更多