感觉RISCV手册里用的也比较乱,下面我写的内容就是中断是指外中断(I/O、时钟、设备等),异常就指内中断(系统调用、缺页错误等),然后合称的话就是中断和异常。 2、中断和异常处理相关寄存器 如下所示是RISCV手册上给出的解释,我对其在几个再说明下。 mie:中的每一位对应下面RISC-V 异常和中断原因表中的一个...
riscv-xv6是基于多核的riscv指令架构的教学用操作系统的实现,这篇短文将在已有相关启动流程介绍[1]的基础上补充介绍riscv-xv6。 1、入口_entry的汇编代码见entry.S[2],_entry的代码会加载在kernel加载到内存的起始位置0x80000000,每个hart(hart 的全称是 Hardware Thread,即硬件线程。在 xv6 操作系统中,hart 通...
[1]、xv6启动流程分析(Code: starting xv6, the first process and system call) [2]、entry.S入口汇编代码:https://gitee.com/kindlytree/xv6-labs-2024/blob/util/kernel/entry.S#L7 [3]、[mstatus寄存器标记状态示意图]:https://gitee.com/kindlytree/riscv-xv6/issues/IB8LJR#note_35014491_link [4]...
// 获取锁// 循环(自旋)直到锁被获取voidacquire(structspinlock*lk){push_off();// 禁用中断以避免死锁if(holding(lk))// 如果当前已经持有该锁了,panic(不允许重入)panic("acquire");// 在RISC-V中,sync_lock_test_and_set会被转换成一个atomic swap:// a5 = 1// s1 = &lk->locked// amoswap...
本章的余下部分解释xv6如何解决这些困难。 8.1. 概览# 如图8.1所示,xv6文件系统实现由很多个层构成。磁盘层在virtio硬盘驱动之上读取和写入块;buffer cache层缓存磁盘块以及维护它们的同步访问,确保在任一特定块中,在同一时间只有一个内核进程可以修改存储在其中的数据;日志层允许更高的层次将多个块的更新封装到一个...
本篇文章将简要介绍内核页表和用户进程页表的机制,页表实现了内存的虚拟地址到物理地址的转换,虚拟地址机制实现了进程之间物理存储空间的隔离。在os中,物理内存一般以页(一页,一般为4096字节)进行分配和管理。 在riscv-xv6中实现了三级页表机制:level2,level1,level0。sv39的寻址方式中,virtual address由9+9+9(三...
Xv6为每个CPU维护了一个cpu结构体(kernel/proc.h:22),它记录了当前在该CPU上运行的进程(如果有的话),为CPU的调度线程保存的寄存器,以及管理中断禁用所需的嵌套自旋锁的计数。函数mycpu(kernel/proc.c:60)返回一个指向当前CPU结构体cpu的指针。RISC-V对CPU进行编号,给每个CPU一个hartid。Xv6确保每个CPU的hartid...
git clone git://github.com/mit-pdos/xv6-riscv.git 进入xv6目录下进行编译,并启动qemu仿真运行: make qemu 运行结果如下图: 在xv6命令行下,输入ls,看到正确回应,那么恭喜你,至此运行环境已经设置成功。 如果要退出qemu, 按下Ctrl 键和A键, 然后释放这两个键,再按X键即可退出 ...
xv6-riscv/kernel/entry.S 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 # qemu-kernel loads the kernel at0x80000000# and causes eachhart(i.e.CPU)to jump there.# kernel.ld causes the following code to # be placed at0x80000000..section.text.global _entry_entry:#setup a stac...
大部分用于操作地址空间和页表的 xv6 代码都在vm.c(kernel/vm.c:1)中。核心数据结构是pagetable_t,它实际上是一个指向 RISC-V 根页表页的指针;pagetable_t可以是内核页表,也可以是进程的页表。核心函数是walk和mappages,前者通过虚拟地址得到 PTE,后者将虚拟地址映射到物理地址。以kvm开头的函数操作内核页表;以...