进程的页面表存储在内存中,因此内核可以用普通的赋值语句更新表,这就是alacuvm和分配uvm所做的。x86硬件将页表条目缓存到翻译查找备用缓冲区(TLB)中,当xv6更改页表时,它必须使缓存的条目无效。如果它没有无效缓存条目,然后在某个时候以后TLB可能使用一个旧的映射,指向一个物理页面,同时被分配给另一个进程,因此,一...
[xv6-book上原图] 上图展示了这种设计,可以看到文件系统被放在了user space, 在图示的MicroKernel中, 我们把作为进程运行(其实就是放在user space部分)的那部分os称为servers, 当一个进程想要和这部分server交互的时候, 这个进程会向kernel部分的os发起请求,等待回应. 上图就展示了一个user space的进程shell想要访问...
本文来源于xv6-book第二章,翻译了一下并做了一些自己的笔记。 前面介绍了shell和一些系统调用,这里主要介绍: 进程隔离,系统调用 后面是创建并执行第一个进程,第一个进程的工作是启动shell程序 目录: Abstracting physical resources User mode, kernel mode, and system calls Kernel organization Process overview Code...
最好使用代理 cd ~/xv6-book/build && wget -i pkg.txt # 交叉编译 ./install.sh echo export PATH=~/xv6-book/build/local/bin:$PATH >> ~/.bashrc echo export LD_LIBRARY_PATH=~/xv6-book/build/local/lib >> ~/.bashrc # 这步非常重要,主要是设置环境变量 source ~/.bashrc && sudo ldconfig...
xv6-riscv-book-Chinese本项目是MIT 6.S081与6.828课程用书xv6-riscv-book的中文翻译。此版翻译基于xv6-book-2020-Chinese修改与校对完成,全部内容转为Markdown格式。如果您在阅读过程中发现翻译中有任何错误或可以改进的地方,欢迎提出issue或pull request。目录操作...
简介:本合集基于Xv6 book及其源代码进行详解,主要解决如下问题: #1 将英文翻译为中文,方便各位同学查看。 #2 结合Xv6 book解读每一个源代码文件。 #3 为便于理解添加动态图/静态图作为补充。 #4 综合回顾之前所讲的知识,增加说明文字。 Xv6 book是纯纯的干货,一个字的
以下所有的内容都可以在 xv6 book、实验指导书和 xv6 源码中找到原始出处; 发现有错误或改进的地方时,请不要吝啬您的键盘。 一、准备工作 1、内核内存布局 左边是 Kernel 的虚拟内存布局,右边是映射过去的物理内存布局。系统内的所有进程(包括 Kenel 和用户进程)都坐落在KERNBASE到PHYSTOP地址之间。Kernel 的end地...
lastest_book_risc_v 添加xv6的文档 6个月前 pic init gh page 11年前 xv6-public-master 添加xv6的源码 6个月前 .gitignore 添加xv6的文档 6个月前 LICENSE add LICENSE. 6个月前 README.md update README.md. 5个月前 SUMMARY.md rename to md and SUMMARY.md for gitboo...
这个疑问在xv6 book中解释的十分清楚: When it needs to force a trap, the RISC-V hardware does the following forall trap types (other than timer interrupts): 1. If the trap is a device interrupt, and the sstatus SIE bit is clear, don’t doany of the following. ...