用户程序编写
我们完成了内核态向用户态的切换,以及用户态向内核态的异常切换。同时,我们拥有了一个完整的 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 中运行。