rqdmap
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
博客
/
Posts
算法
/
ACM
漫评
/
Anime
归档
/
Archive
关于
/
About
日志
/
Changelog
统计
/
Statistics
OS
rCore-OS: 批处理系统
2023.07.26 19:29
2023.08.16 21:52
OS
Rust
RISC-V
Trap
批处理系统
15902字
系列文章 rCore操作系统实践 - rqdmap | blog 本章主要目的为设计和实现支持批处理操作的OS, 其相比于上一节的库OS而言, 主要的不同在于: OS自身运行在内核态; 支持其他应用运行在用户态并发出系统调用 一个接一个的运行不同的应用程序 为了实现这些目的, 本章节需要做的事情分为: 调整应用程序, 使其能够发出系统调用; 操作系统提供额外的功能支持应用程序的执行, 包括但不限于sys_write, sys_exit等具体的系统调用功能. ...
rCore-OS: 基本执行环境
2023.07.24 19:30
2023.08.16 21:51
OS
Rust
RISC-V
QEMU
9579字
系列文章 rCore操作系统实践 - rqdmap | blog 本章主要是讲解如何设计和实现建立在裸机上的执行环境, 并让应用程序能够在这样的执行环境中运行. 导言中说: 大多数程序员的第一行代码都从 Hello, world! 开始,当我们满怀着好奇心在编辑器内键入仅仅数个字节,再经过几行命令编译(靠的是编译器)、运行(靠的是操作系统),终于在黑洞洞的终端窗口中看到期望中的结果的时候,一扇通往编程世界的大门已经打开。 ...
rCore操作系统实践
2023.07.23 20:38
2023.08.16 21:51
OS
Rust
RISC-V
QEMU
530字
系列文章 rCore-OS: 基本执行环境 - rqdmap | blog rCore-OS: 批处理系统 - rqdmap | blog 在寻找Rust实践性的学习材料的过程中发现了rCore-OS项目, 其基于RISC-V架构实现一个用Rust写的操作系统; 教程看上去也不错, 十分的详实且成体系: rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档 因而准备照着教程学习一下rcore-os, 并企图在过程中对Rust的基本编程与操作系统等方面都能获得更进一步的理解. ...
6.828(2021)
2022.05.17 19:56
2023.05.29 23:05
OS
4815字
代码存放于rqdmap/6.828-2021下的各个Branch中 Trap RISC-V的trap机制 在RISC-V中,使用ecall、发生exception和产生中断会使得CPU的控制流改变,转而去执行特殊任务以处理这些事件,这些事件被称为trap. 为了完成trap处理事件,RSIC-V CPU提供了一系列控制寄存器,其中比较重要的有以下几个: stvec: 内核将处理函数的地址写入该寄存器,riscv跳转到该地址处理事件 spec: riscv保存PC计数器在该寄存器中,后续通过sret指令(从trap中返回时调用)将原计数器写回pc scause: riscv在此处写入一个数值表示trap的原因 sscratch: 在开始trap处理时进行辅助 sstatus: 该寄存器中的SIE比特位决定是否允许设备中断,SPP比特位表明该trap来自用户还态还是内核态,并以此决定sret返回的状态. 对于所有的trap类型而言,riscv硬件将会依次执行下述的过程: ...
创建时间
修改时间
字数