- 博客(4)
- 收藏
- 关注
原创 MIT6.S081 Lab4 trap学习笔记
在这个过程中,硬件的状态将会非常重要,因为我们很多的工作都是将硬件从适合运行用户应用程序的状态,改变到适合运行内核代码的状态。RISC-V总共有32个比如a0,a1这样的寄存器,用户应用程序可以使用全部的寄存器,并且使用寄存器的指令性能是最好的。程序计数器(Program Counter Register)mode 标志位,这个标志位表明了当前是supervisor mode还是user mode。
2025-01-08 22:01:22
1894
原创 MIT6.S081 Lab3 page tables学习笔记
题目的意思就是用户申请若干页,你得通过PGT去找对应的物理页,如果该页(eg.第二页)被访问了,就得在一个变量的第二位写1。需要创建一个用户和内核共享的映射,申请一个物理页并将pid写入然后再映射虚拟页即可,照葫芦画瓢trapframe即可。Q.为什么要使用多级页表结构。
2025-01-03 12:28:04
518
原创 MIT6.S081 Lab2 SYSCALL学习笔记
Makefile 调用 perl 脚本user/usys.pl,该脚本生成user/usys.S,即实际的系统调用存根,它使用 RISC-V ecall指令转换到内核。添加系统调用就不写了,参照sys_trace即可。一、syscall trace部分。写完函数后要在def.h添加。在此之前先创建名称数组。1.用户部分代码修改。
2024-12-31 04:34:40
410
原创 6.S081 学习笔记 1
b:设置断点, c:执行到断点,n,s:单步执行,但s会step进函数。start运行到main处,run直接执行程序。(gdb):target remote localhost:26000 连接gdb server。源码目录下make CPUS=1 qemu-nox-gdb/qemu-gdb进入qemu虚拟机。可以输入layout asm显示汇编程序,输入layout reg显示寄存。可以输入tui enable来边debug边显示source code。再开一个终端,gdb-multiarch。
2024-12-30 22:04:28
245
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅