diff --git a/guide/source/chapter3/5exercise.rst b/guide/source/chapter3/5exercise.rst index 5b0e6b8..f15d9b9 100644 --- a/guide/source/chapter3/5exercise.rst +++ b/guide/source/chapter3/5exercise.rst @@ -60,7 +60,9 @@ ch3 中,我们的系统已经能够支持多个任务分时轮流运行,我 ├── ... -- 通过所有测例: +- 开发并通过所有测例: + + 在 ``YOUR_LAB1_REPO_DIR`` 下进行编码(可学习参考 ``os3-ref/src`` 目录下的源代码,并在 ``os3/src`` 中完成编码),并进行编译测试。 CI 使用的测例与本地相同,测试中,user 文件夹及其它与构建相关的文件将被替换,请不要试图依靠硬编码通过测试。 @@ -68,14 +70,14 @@ ch3 中,我们的系统已经能够支持多个任务分时轮流运行,我 你需要在编译时指定 ``BASE=0`` 控制框架仅编译实验测例(在 os 目录执行 ``make run BASE=0``), 或指定 ``BASE=2`` 控制框架同时编译基础测例和实验测例。 - + .. note:: **测试方式** 你的实现只需且必须通过测例,建议读者感到困惑时先检查测例 - 如果实现正确,可在项目仓库的根目录下执行 ``make test3`` ,应该看到如显示输出: + 如果实现正确,可在项目仓库的根目录下执行 ``make test3`` ,应该看到类似如下的显示输出: .. code-block:: console diff --git a/guide/source/chapter4/7exercise.rst b/guide/source/chapter4/7exercise.rst index 46d95b2..c92f4b0 100644 --- a/guide/source/chapter4/7exercise.rst +++ b/guide/source/chapter4/7exercise.rst @@ -66,6 +66,68 @@ tips: TIPS:注意 port 参数的语义,它与内核定义的 MapPermission 有明显不同! +- 开发并通过所有测例 + +在 ``YOUR_LAB2_REPO_DIR`` 下进行编码(可学习参考 ``os4-ref/src`` 目录下的源代码,并在 ``os4/src`` 中完成编码),并进行编译测试。 + +.. note:: + + **测试方式** + + 你的实现只需且必须通过测例,建议读者感到困惑时先检查测例 + + 如果实现正确,可在项目仓库的根目录下执行 ``make test4`` ,应该看到类似如下的显示输出: + + .. code-block:: console + + $ cd YOUR_LAB2_REPO_DIR + $ make test4 + ...... + [rustsbi] RustSBI version 0.2.2, adapting to RISC-V SBI v1.0.0 + .______ __ __ _______.___________. _______..______ __ + | _ \ | | | | / | | / || _ \ | | + | |_) | | | | | | (----`---| |----`| (----`| |_) || | + | / | | | | \ \ | | \ \ | _ < | | + | |\ \----.| `--' |.----) | | | .----) | | |_) || | + | _| `._____| \______/ |_______/ |__| |_______/ |______/ |__| + [rustsbi] Implementation : RustSBI-QEMU Version 0.1.1 + [rustsbi] Platform Name : riscv-virtio,qemu + [rustsbi] Platform SMP : 1 + [rustsbi] Platform Memory : 0x80000000..0x88000000 + [rustsbi] Boot HART : 0 + [rustsbi] Device Tree Region : 0x87000000..0x87000ef2 + [rustsbi] Firmware Address : 0x80000000 + [rustsbi] Supervisor Address : 0x80200000 + [rustsbi] pmp01: 0x00000000..0x80000000 (-wr) + [rustsbi] pmp02: 0x80000000..0x80200000 (---) + [rustsbi] pmp03: 0x80200000..0x88000000 (xwr) + ...... + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] not found + [PASS] not found + [PASS] not found + + Test passed29777: 21/21 + Report for lab1 found. + Report for lab2 found. + - 提交你的修改 - 如果是基于GitHub Classroom 开发, 在本地环境或在线codespaces环境下,执行 ``git push`` 命令,提交修改的代码到gitub进行CI自动评测。如果评测结果是 红色小叉 (位于repo的中上位置),可进一步点击红色小叉查找具体出错时的CI执行情况。 diff --git a/guide/source/chapter5/4exercise.rst b/guide/source/chapter5/4exercise.rst index 6699f0f..f009d66 100644 --- a/guide/source/chapter5/4exercise.rst +++ b/guide/source/chapter5/4exercise.rst @@ -87,9 +87,60 @@ BigStride 表示一个预先定义的大常数,则该调度方案为每个进 从本章开始,你的内核必须前向兼容,能通过前一章的所有测例。 +- 开发并通过所有测例 + +在 ``YOUR_LAB3_REPO_DIR`` 下进行编码(可学习参考 ``os5-ref/src`` 目录下的源代码,并在 ``os5/src`` 中完成编码),并进行编译测试。 + .. note:: - 利用 ``git cherry-pick`` 系列指令,能方便地将前一章分支 commit 移植到本章分支。 + **测试方式** + + 你的实现只需且必须通过测例,建议读者感到困惑时先检查测例 + + 如果实现正确,可在项目仓库的根目录下执行 ``make test5`` ,应该看到类似如下的显示输出: + + .. code-block:: console + + $ cd YOUR_LAB3_REPO_DIR + $ make test5 + ...... + [rustsbi] RustSBI version 0.2.2, adapting to RISC-V SBI v1.0.0 + .______ __ __ _______.___________. _______..______ __ + | _ \ | | | | / | | / || _ \ | | + | |_) | | | | | | (----`---| |----`| (----`| |_) || | + | / | | | | \ \ | | \ \ | _ < | | + | |\ \----.| `--' |.----) | | | .----) | | |_) || | + | _| `._____| \______/ |_______/ |__| |_______/ |______/ |__| + [rustsbi] Implementation : RustSBI-QEMU Version 0.1.1 + [rustsbi] Platform Name : riscv-virtio,qemu + [rustsbi] Platform SMP : 1 + [rustsbi] Platform Memory : 0x80000000..0x88000000 + [rustsbi] Boot HART : 0 + [rustsbi] Device Tree Region : 0x87000000..0x87000ef2 + [rustsbi] Firmware Address : 0x80000000 + [rustsbi] Supervisor Address : 0x80200000 + [rustsbi] pmp01: 0x00000000..0x80000000 (-wr) + [rustsbi] pmp02: 0x80000000..0x80200000 (---) + [rustsbi] pmp03: 0x80200000..0x88000000 (xwr) + ...... + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + ...... + [PASS] found + [PASS] found + [PASS] not found + [PASS] not found + [PASS] not found + + Test passed42266: 24/24 + + stride ratio = [15202320, 13745266, 13849200, 12149100, 10944222, 9782240] + [PASS] Stride Test + + Test passed42266: 1/1 - 提交你的修改 diff --git a/guide/source/chapter6/4exercise.rst b/guide/source/chapter6/4exercise.rst index 34c53ba..39cc6ec 100644 --- a/guide/source/chapter6/4exercise.rst +++ b/guide/source/chapter6/4exercise.rst @@ -102,6 +102,59 @@ Lab4 编程作业 你也可以完全在用户态进行调试。仿照 ``easy-fs-fuse`` 建立一个在当前操作系统中运行的应用程序,将测试逻辑写在 ``main`` 函数中。这个时候就可以将它引用的 ``easy-fs`` 的 ``no_std`` 去掉并使用 ``println!`` 进行调试。 +- 开发并通过所有测例 + +在 ``YOUR_LAB4_REPO_DIR`` 下进行编码(可学习参考 ``os6-ref/src`` 目录下的源代码,并在 ``os6/src`` 中完成编码),并进行编译测试。 + +注意:本次实验需要扩展文件系统的功能,所以,除了需要修改扩展 ``os6`` 目录下的代码外,还需要修改扩展 ``easy-fs`` 和 ``easy-fs-fuse`` 下面的部分代码。 + +.. note:: + + **测试方式** + + 你的实现只需且必须通过测例,建议读者感到困惑时先检查测例 + + 如果实现正确,可在项目仓库的根目录下执行 ``make test6`` ,应该看到类似如下的显示输出: + + .. code-block:: console + + $ cd YOUR_LAB4_REPO_DIR + $ make test6 + ...... + [rustsbi] RustSBI version 0.2.2, adapting to RISC-V SBI v1.0.0 + .______ __ __ _______.___________. _______..______ __ + | _ \ | | | | / | | / || _ \ | | + | |_) | | | | | | (----`---| |----`| (----`| |_) || | + | / | | | | \ \ | | \ \ | _ < | | + | |\ \----.| `--' |.----) | | | .----) | | |_) || | + | _| `._____| \______/ |_______/ |__| |_______/ |______/ |__| + [rustsbi] Implementation : RustSBI-QEMU Version 0.1.1 + [rustsbi] Platform Name : riscv-virtio,qemu + [rustsbi] Platform SMP : 1 + [rustsbi] Platform Memory : 0x80000000..0x88000000 + [rustsbi] Boot HART : 0 + [rustsbi] Device Tree Region : 0x87000000..0x87000ef2 + [rustsbi] Firmware Address : 0x80000000 + [rustsbi] Supervisor Address : 0x80200000 + [rustsbi] pmp01: 0x00000000..0x80000000 (-wr) + [rustsbi] pmp02: 0x80000000..0x80200000 (---) + [rustsbi] pmp03: 0x80200000..0x88000000 (xwr) + ...... + [PASS] found + [PASS] found + ..... + [PASS] found + [PASS] found + [PASS] not found + [PASS] not found + [PASS] not found + + Test passed53852: 27/27 + Report for lab1 found. + Report for lab2 found. + Report for lab3 found. + Report for lab4 found. + - 提交你的修改 - 如果是基于GitHub Classroom 开发, 在本地环境或在线codespaces环境下,执行 ``git push`` 命令,提交修改的代码到gitub进行CI自动评测。如果评测结果是 红色小叉 (位于repo的中上位置),可进一步点击红色小叉查找具体出错时的CI执行情况。 diff --git a/guide/source/chapter8/5exercise.rst b/guide/source/chapter8/5exercise.rst index 6d22a37..16eca0a 100644 --- a/guide/source/chapter8/5exercise.rst +++ b/guide/source/chapter8/5exercise.rst @@ -87,7 +87,61 @@ Lab5 编程作业 - `lab5(os8)参考框架: `_ - 实验目录在 ``os8`` 。 -- 通过所有测例 +- 开发并通过所有测例 + +在 ``YOUR_LAB5_REPO_DIR`` 下进行编码(可学习参考 ``os8-ref/src`` 目录下的源代码,并在 ``os8/src`` 中完成编码),并进行编译测试。 + +.. note:: + + **测试方式** + + 你的实现只需且必须通过测例,建议读者感到困惑时先检查测例 + + 如果实现正确,可在项目仓库的根目录下执行 ``make test8`` ,应该看到类似如下的显示输出: + + .. code-block:: console + + $ cd YOUR_LAB5_REPO_DIR + $ make test8 + ...... + [rustsbi] RustSBI version 0.2.2, adapting to RISC-V SBI v1.0.0 + .______ __ __ _______.___________. _______..______ __ + | _ \ | | | | / | | / || _ \ | | + | |_) | | | | | | (----`---| |----`| (----`| |_) || | + | / | | | | \ \ | | \ \ | _ < | | + | |\ \----.| `--' |.----) | | | .----) | | |_) || | + | _| `._____| \______/ |_______/ |__| |_______/ |______/ |__| + [rustsbi] Implementation : RustSBI-QEMU Version 0.1.1 + [rustsbi] Platform Name : riscv-virtio,qemu + [rustsbi] Platform SMP : 1 + [rustsbi] Platform Memory : 0x80000000..0x88000000 + [rustsbi] Boot HART : 0 + [rustsbi] Device Tree Region : 0x87000000..0x87000ef2 + [rustsbi] Firmware Address : 0x80000000 + [rustsbi] Supervisor Address : 0x80200000 + [rustsbi] pmp01: 0x00000000..0x80000000 (-wr) + [rustsbi] pmp02: 0x80000000..0x80200000 (---) + [rustsbi] pmp03: 0x80200000..0x88000000 (xwr) + ...... + [PASS] found + [PASS] found + [PASS] found + ...... + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] found + [PASS] not found + [PASS] not found + [PASS] not found + + Test passed60963: 29/29 + Report for lab1 found. + Report for lab2 found. + Report for lab3 found. + Report for lab4 found. + Report for lab5 found. - 提交你的修改