# course-xv6 **Repository Path**: louislin19/course-xv6 ## Basic Information - **Project Name**: course-xv6 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-11-18 - **Last Updated**: 2023-11-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #+TITLE: XV6 操作系统实践 #+AUTHOR: Jinghui Hu #+EMAIL: hujinghui@buaa.edu.cn #+DATE: <2023-10-24 Tue> #+STARTUP: overview num indent #+BEGIN_QUOTE 如果觉得讲解得好,请喝一杯咖啡也是极好的 #+END_QUOTE [[file:img/pay.jpg]] - Github [[https://github.com/Jeanhwea/xv6-course][link]] - Gitee 镜像 [[https://gitee.com/jeanhwea/course-xv6][link]] * 简介 XV6 是 MIT 开发的一个教学用的完整的类 Unix 操作系统,并且在 MIT 的操作系统课程 6.828 中使用 1. 它源自 Dennis Ritchie 和 Ken Thompson 的 Unix Version 6 (v6) 2. 通过阅读并理解 XV6 的代码,可以清楚地了解操作系统中众多核心的概念 (1w) 3. 目前 MIT XV6 操作系统支持 x86 和 riscv 两种体系结构 * 主题 - 序言 1) [[file:01-x86-arch.org][x86 体系结构]] | [[https://www.bilibili.com/video/BV1cw411z7Ro][视频 01]] 2) [[file:02-qemu-simulator.org][QEMU 模拟器]] | [[https://www.bilibili.com/video/BV1me411R7MN][视频 02]] 3) [[file:03-minimal-os.org][编写最小操作系统]] | [[https://www.bilibili.com/video/BV1Fe411975E][视频 03]] - 走进操作系统 1) [[file:11-os-overview.org][操作系统概览]] | [[https://www.bilibili.com/video/BV1vu4y1h7mR/][视频 11]] 2) [[file:12-from-asm-to-c.org][从汇编到 C 语言]] | [[https://www.bilibili.com/video/BV1hM411Q7eb/][视频 12]] | [[https://www.bilibili.com/video/BV1a94y1G7HV/][视频 12a]] 3) [[file:13-xv6-startup.org][xv6 启动流程分析]] | [[https://www.bilibili.com/video/BV1az4y1A7zU/][视频 13]] - 内存管理 1) [[file:21-page-table.org][x86 体系结构分页机制]] | [[https://www.bilibili.com/video/BV1CC4y1778j/][视频 21]] 2) [[file:22-mem-init.org][开启分页及 freelist 初始化]] | [[https://www.bilibili.com/video/BV1bQ4y1n7iE/][视频 22]] 3) [[file:23-kmem-pgtab.org][内核页表初始化]] | [[https://www.bilibili.com/video/BV1Ew411x77A/][视频 23]] | [[https://www.bilibili.com/video/BV1ng4y19751/][视频 23a]] - 进程管理 1) [[file:31-intro-process.org][进程创建]] | [[https://www.bilibili.com/video/BV1Nz4y1A7BW/][视频 31]] 2) [[file:32-init-start.org][scheduler 启动及 switchuvm 切换用户态地址空间]] | [[https://www.bilibili.com/video/BV1fu4y1N7D4/][视频 32]] 3) [[file:33-context-switch.org][swtch上下文切换及内核态执行]] | [[https://www.bilibili.com/video/BV11g4y1Q7Ux/][视频 33]] 4) [[file:34-enter-shell.org][从 initcode 到 shell 启动]] | [[https://www.bilibili.com/video/BV1Fw411K7pE/][视频 34]] | [[https://www.bilibili.com/video/BV1eb4y1M7ie/][视频 34a]] - 中断管理 1) [[file:41-intro-interrupt.org][中断初始化及调用流程]] 2) [[file:42-exec-syscall.org][系统调用流程分析]] - 文件系统 * 答疑 1. 12a 答疑一 [[file:12a-Q&A.org]] 2. 34a 答疑二 [[file:34a-Q&A.org]] * 资源 1. MIT 课程官网 [[https://pdos.csail.mit.edu/6.828/2018/][6.828]] 2. x86 版本 [[https://github.com/mit-pdos/xv6-public][xv6-public]] 3. riscv 版本 [[https://github.com/mit-pdos/xv6-riscv][xv6-riscv]] 4. gas 手册 [[https://sourceware.org/binutils/docs/as/index.html][gas]] 5. Unix 源代码 [[https://www.tuhs.org/][Unix Heritage Society]]