这是我参与「第五届青训营 」笔记创作活动的第十二天,今天青训营也算结束一大半了,本来想着复习一下前面的课程,但发现都是比较偏应用的东西,包括各种库等。在当前暂时没有目标的情况下,决定先学习更加基础的东西,为后面的学习打下更好的基础。思前想后,打算从这学期的操作系统入手,深入理解一下更底层的系统实现。
xv6简介
在众多课程与教科书中,我选择了广受好评的MIT的xv6课程。xv6是一个开源的操作系统,旨在教授操作系统的基本概念和实现方法。它基于UNIX V6操作系统,并使用ANSI C编写。xv6系统提供了一些基本的操作系统功能,如进程调度、文件系统、内存管理和系统调用。它还包含一些内核模块,如进程管理、内存分配、文件系统和设备驱动程序等。由于它的简单性和易于理解,xv6成为了许多教授操作系统课程的常用工具,并且也被广泛用于研究操作系统的实现方法和原理。
xv6环境安装
- 在Windows上使用wsl虚拟环境安装Ubuntu。
- 安装必要的软件包,包括GCC编译器、GNU工具、QEMU模拟器等。
- 在GitHub上拉取xv6源代码。
- 在xv6源代码目录中使用make命令编译xv6操作系统。
- 在QEMU模拟器中运行xv6操作系统,以确保一切正常。
其中,第二步的时候可能会因为版本等问题出现依赖缺失,以具体的报错信息去搜索就能找到解决方法。如果是卡在make的某一步上,可能是因为QEMU版本的问题,而官方文档给出的解决方案仅限于Ubuntu20.04,如果是wsl默认最新版本的Ubuntu22.04则需要手动wget下载并安装。
第一章内容简介
第一章主要介绍了 RISC-V 架构的背景、基本特征和设计原则,以及它的指令集架构和实现方式,为后续章节的学习和应用奠定了基础。同时也介绍了文件系统、进程、IO等方面的内容,算是整体了解了xv6的基本构成与运行方式。