用户程序编写

我们完成了内核态向用户态的切换,以及用户态向内核态的异常切换。同时,我们拥有了一个完整的 libc,可以帮助我们进行系统调用。接下来,我们将尝试使用 ChCore 的 libc 及编译器进行简单的程序编译,并将其加载到内核镜像中运行。

练习题9

尝试编写一个简单的用户程序,其作用至少包括打印以下字符(测试将以此为得分点)。

Hello ChCore!

使用 chcore-libc 的编译器进行对其进行编译,编译输出文件名命名为 hello_world.bin,并将其放入 ramdisk 加载进内核运行。内核启动时将自动运行 文件名为 hello_world.bin 的可执行文件。

hint

  • ChCore 的编译工具链在 build/chcore-libc/bin 文件夹中。
  • 如使用 cmake 进行编译,可以将工具链文件指定为 build/toolchain.cmake,将默认使用 ChCore 编译工具链。

到这里,你的程序应该可以通过所有的测试点并且获得满分。你可以编写一些更复杂的程序并尝试放入 ChCore 中运行。

Last change: 2024-11-24, commit: 839603a