下面xv6-book以console driver(控制台驱动)为例, 进一步详细的介绍这个流程. Console input 介绍性内容 在正式进入console之前, 我觉得有必要了解一下这些东西的定义: terminal(终端) = tty = 文本输入输出环境 shell = 物理终端 console = 命令行解释器 早期的电脑具有一个带有大量的开关和指示灯控制面板, 这个面...
[xv6-book上原图] 上图展示了这种设计,可以看到文件系统被放在了user space, 在图示的MicroKernel中, 我们把作为进程运行(其实就是放在user space部分)的那部分os称为servers, 当一个进程想要和这部分server交互的时候, 这个进程会向kernel部分的os发起请求,等待回应. 上图就展示了一个user space的进程shell想要访问...
exit 的英文含义是 退出(v.),在 xv6 中,exit 的作用是使调用进程结束执行并且释放资源(内存、打开的文件)。 exit 接受一个整型参数,一般来说,0 代表成功,1 代表失败。 wait wait 的英文含义是 等待(v.),在 xv6 中,wait 的作用是返回当前进程(exited or killed)子进程的 PID ,wait 接受一个整型变量的指...
如果xv6支持多用户,这个情况将会是一个安全问题,因为老文件的拥有者可以读写被其它用户拥有的新文件的块。 xv6通过一个简单形式的日志来解决在文件系统操作期间崩溃的问题。一个xv6的系统调用不直接写磁盘上的文件系统数据结构,而是对于所有它想做的磁盘写,都在磁盘上的一个日志中放置一个描述,一旦系统调用记录了它...
包括xv6在内的大多数内核都会交错的执行多个活动,一个原因来自于多处理器硬件:计算机有多个独立运行的CPU,比如xv6的RISC-V,这些CPU共享物理内存,并且xv6利用这一点来维护被所有CPU共同读写的数据结构。这种共享提高了在一个CPU正在更新数据结构的过程中另一个CPU读取该数据结构的可能,或者只是多个CPU在同时更新相同的...
结合xv6 book阅读xv6源代码是一种高效的学习方式,主要包括理解xv6的架构设计、深入研究代码实现细节、对照xv6 book进行实践操作、以及参与社区交流。理解xv6的架构设计是基础,它能帮助我们把握整体框架,从宏观上理解操作系统的工作原理。xv6是一个简化的类Unix操作系统,其代码清晰、结构紧凑,是学习操作系统原理的理想材料...
另外,xv6-book的Exercise其实很多都是lab里的Challenge难度,加上谷歌也没有答案,所以显得对新手非常不...
NOTE: We have stopped maintaining the x86 book for xv6 but have switched the book to RISC-V (see https://github.com/mit-pdos/xv6-riscv-book/). --- The book compiles using Heirloom Troff, an open source update of the original Unix troff. cvs -d :pserver:anonymous@heirloom.cvs.sourc...
1633_xv6 book PC硬件与BootLoader GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 按照课程的建议,先去读了一下xv6 book的附录,感觉还是有一些收获的。这中间去扫盲增补各种概念的过程就已经收获不少。
Commentary for xv6-public. Contribute to mit-pdos/xv6-book development by creating an account on GitHub.