首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
星见遥
掘友等级
学生
|
中科大软件学院
中科大软件学院在读研究生
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
XV6学习 (6) Lab: traps
这一个实验主要是对RISC-V的汇编、栈帧结构以及陷阱进行简单的了解,难度并不大。 代码放在github上。 RISC-V的函数调用过程参数优先使用寄存器传递,即a0~a7共8个寄存器。返回值可以放在a0和a1寄存器。printf的参数13保存在a2寄存器。 Q2: Where…
XV6学习 (5) 陷阱和系统调用
在操作系统中,有三种情况会导致CPU的控制流发生转移:用户态中通过ecall指令进入内核态;异常发生,如除零、访问非法地址;设备中断,如硬盘完成读写请求。上面这些情况可以统称为陷阱(trap)。 陷阱在一般情况下应该是透明的,即当执行完处理程序后能够恢复之前程序的状态。这就要求…
XV6学习 (4) Lab pgtbl
这一个实验主要是学习XV6的页表(分页机制),关于分页机制的相关内容已经写在XV6学习 (3)里面了。 代码放在Github上。 这一个就是要实现一个vmprint()函数来遍历页表并打印,可以仿照freewalk()函数来写。 在这里是通过pte & (PTE_R|…
XV6学习(3) Page tables
页表是操作系统中非常重要的一部分,用于将虚拟地址转化为物理地址。虚拟内存是操作系统实现进程隔离的关键技术。 在 XV6 中通过 RISC-V 的页表机构完成了虚拟地址向物理地址的转换。 XV6 运行于 Sv39 RISC-V 上,64 位地址中的低 39 位被使用。RISC-V…
XV6学习(2) Lab syscall
实验的代码放在了Github上。 第二个实验是Lab: system calls。 这个实验主要就是自己实现几个简单的系统调用并添加到XV6中。 在user/user.h中添加系统调用函数的定义。 在user/usys.pl中添加入口,这个文件将会在make后生成user/us…
XV6学习(1) Lab util
正在学习MIT的6.S081,把做的实验写一写吧。 实验的代码放在了Github上。 第一个实验是Lab util,算是一个热身的实验,没有涉及到系统的底层,就是使用系统调用来完成几个用户模式的小程序。 启动XV6,按照文档执行就ok了。 在XV6中没有ps命令,而是使用Ctr…
个人成就
文章被点赞
16
文章被阅读
38,895
掘力值
851
关注了
0
关注者
31
收藏集
0
关注标签
9
加入于
2020-07-04