如何使用 asm 和 c 创建多级引导加载程序?
How to create a multistage bootloader with asm and c?
我想创建一个简单的 32 位基于文本的操作系统。
引导程序:
首先我想创建一个多级引导加载程序。
第 1 阶段:汇编代码(NASM-编译器)
第 2 阶段:C(GCC 编译器)
内核:
然后它应该加载应该用 C 编写的内核(GCC 编译器)
我也想知道如何正确编译和执行它。
模拟器应该是Qemu
显示 "Hello world" 的示例 32 位操作系统会有所帮助。
不要编写自己的引导加载程序。 配置并使用现有的引导加载程序,可能 GRUB。这将使您的玩具 OS 更容易使用(对您和其他用户而言)。
阅读 http://osdev.org/ 因为他们有很多关于 OS 在 PC 上构建的资源(包括 hello world OS)。
也阅读一些很好的操作系统书籍(例如 Operating Systems: Three Easy Pieces). You'll find out that there cannot be very simple OSes. See also 答案。
此外,至少要非常熟练地使用 POSIX 和 Linux 系统编程(首先阅读 Advanced Linux Programming)。
我想创建一个简单的 32 位基于文本的操作系统。
引导程序:
首先我想创建一个多级引导加载程序。
第 1 阶段:汇编代码(NASM-编译器)
第 2 阶段:C(GCC 编译器)
内核:
然后它应该加载应该用 C 编写的内核(GCC 编译器)
我也想知道如何正确编译和执行它。
模拟器应该是Qemu
显示 "Hello world" 的示例 32 位操作系统会有所帮助。
不要编写自己的引导加载程序。 配置并使用现有的引导加载程序,可能 GRUB。这将使您的玩具 OS 更容易使用(对您和其他用户而言)。
阅读 http://osdev.org/ 因为他们有很多关于 OS 在 PC 上构建的资源(包括 hello world OS)。
也阅读一些很好的操作系统书籍(例如 Operating Systems: Three Easy Pieces). You'll find out that there cannot be very simple OSes. See also
此外,至少要非常熟练地使用 POSIX 和 Linux 系统编程(首先阅读 Advanced Linux Programming)。