【问题标题】:How do you link a bootloader to a c kernel and compile them to an iso?如何将引导加载程序链接到 c 内核并将它们编译为 iso?
【发布时间】:2015-02-21 02:45:25
【问题描述】:

原问题:如何编写引导加载程序并创建 iso?

我最近为我正在设计的操作系统创建了一个简单版本的内核。已完成 asm 和 c 代码链接并编译到内核中,但我不知道如何创建引导加载程序并将其编译为 iso

那么你如何完成这个看似简单却又神秘的任务呢?如何编写引导加载程序并从引导加载程序和内核创建 iso?

请不要给出“组合它们”之类的答案或明显的答案。解释我将如何组合它们。

谢谢!

编辑:我现在知道如何制作一个简单的引导加载程序

那里有 数百个 简单的引导加载程序教程,我可以用我找到的许多方式来调整它们。

我可以制作基本的单阶段引导加载程序并跳转到保护模式之类的东西,但我仍然不知道如何将我的内核链接到我能想到的任何类型的引导加载程序。我现在想实现图形,但我似乎找不到关于让 GRUB2(这是我用来加载我的内核的东西)为我切换到它的信息。我知道如何在切换后使用图形模式而不中断(即使用内存),但我不知道如何将图形引导加载程序链接到我的内核(用 c 而不是 c++ 编写)。

我现在真正需要的是:

更具体的问题:如何**链接引导加载程序到 c 内核并创建 iso?**

【问题讨论】:

  • 可能有现成的工具,但我使用 DiscUtils 库根据我的使用情况做了一个。
  • 不要在旧问题中分配新问题。创建一个新问题。
  • @MichaelPetch 这更像是对旧问题的扩展而不是新问题,但无论如何措辞都是固定的。这一变化使这个问题更适用于其他人,而不仅仅是“你如何制作这个给我代码”,而更多的是“你如何应用这些编码概念。”

标签: assembly operating-system kernel bootloader


【解决方案1】:

您必须创建一个软盘映像,大小通常为 2880*512 字节。此图像代表 3.5" 启动软盘。

然后您使用能够从可引导软盘映像创建可引导 CD 映像的工具。在 Linux 下,“mkisofs”就是这样一个工具。我确信“mkisofs”也有一个 Windows 端口。

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2013-11-13
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多