Skip to content

Latest commit

 

History

History
41 lines (25 loc) · 1.01 KB

0719.md

File metadata and controls

41 lines (25 loc) · 1.01 KB

2020/07/18

windows做实验被劝退,重新换wsl2做实验。装环境,升级系统花了整整一天时间,不过还是抽空又看了一些RISC的架构。

lab0实验完成:

一些细节:

ecall有点像ucore的syscall,不过是上层os向底层os请求的服务,目前还不太清楚这么设计的目的是什么。但是都是先赋值再切换状态。

pub fn console_putchar(c: usize) {
    sbi_call(SBI_CONSOLE_PUTCHAR, c, 0, 0);
}

/// 从控制台中读取一个字符
///
/// 没有读取到字符则返回 -1
pub fn console_getchar() -> usize {
    sbi_call(SBI_CONSOLE_GETCHAR, 0, 0, 0)
}

/// 调用 SBI_SHUTDOWN 来关闭操作系统(直接退出 QEMU)
pub fn shutdown() -> ! {
    sbi_call(SBI_SHUTDOWN, 0, 0, 0);
    unreachable!()
}

又找到了跟ucore类似的熟悉感觉。

最终快完成时遇到了一个很无语的问题:

因为windows更新了,wsl2不能用了,于是退回了一个版本,就可以用了。

运行完 make run,lab0 就结束啦。