Skip to content

Commit

Permalink
[docs] update lab 0
Browse files Browse the repository at this point in the history
  • Loading branch information
chiakicage committed Mar 4, 2024
1 parent b267655 commit c266596
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions docs/environment.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@ TOTAL: 0H-0M-12S-124900us
关于为什么不用 `libc`, `qemu-user-static` 是一个用户态的 riscv 虚拟机, 就像你在 OS 实验中用 `qemu-system-riscv64` 运行的系统一样, 它是不带标准库的. 如果你想输入输出, 你需要手动调用 `syscall`. 这个工作在之前是由 `libc` 来帮你完成的, 你只需要调用它提供的库函数 (比如 `printf`), 我们提供的 runtime 也是这样实现的.
<br><br>
如果你实在想用 `libc` (比如说你想要用 C++ 写 runtime) 也是可以实现的, 但是助教并没有在 Debian 12 上配出来. 你可以考虑使用 ArchLinux, 它对交叉编译工具链的支持更友好一些 (至少助教在 ArchLinux 上配出来了). 如果你对此感兴趣可以和助教交流.
<br><br>
你的编译器实现的是编译这里的 `test.c` 的工作, 然后再去调用 assembler 和 linker 来生成可执行文件. 理论上最后的可执行文件可以运行在你的 OS 实验最终的产物上, 你在 OS Lab 中已经实现了运行用户态程序的功能. 如果你感兴趣, 你可以在你自己的 OS 上运行你自己的编译器生成的程序.
<br><br>
~~然后在你自己的 CPU 上运行~~
<br>
~~计算机系统 IV~~


## 实验提交
没有提交内容. Just have fun.

0 comments on commit c266596

Please sign in to comment.