Skip to content

RunChuanYe/MIT_xv6_labs_2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

1669690523979

Table of Contents
  1. About The Project
  2. How to Get Started
  3. Done and TODO
  4. Gains
  5. Recommendation

About the Project

此项目为MIT的6.S081课程实验。实验中囊括了操作系统的大部分知识,这十个实验都十分值得一做,笔者花费大约一个月,从lab1到lab10都独立思考完成,收获不小。正是应了那句话,纸上得来终觉浅,绝知此事要躬行。

推荐一本好书——《Operating Systems: Three Easy Pieces》。如果你和我一样对OS一无所知,那么强烈建议你边看这本书边写实验。这本书对初学者十分友好,而且不会很枯燥,可以很好地帮助你理解OS的不少细节,可以让你更快看懂xv6的代码。总之,这本书值得一读。

How to Get Started

相关资源,参见xv6-toolsBoot-xv6

Done and TODO

  • Utilities
  • System calls
  • Page tables
  • Traps
  • Lazy allocatioin
  • Copy on-write
  • Multitheading
  • Lock
  • File system
  • mmap
  • network driver

Gains

  1. 什么是系统调用,系统调用的过程,如何编写系统调用
  2. 什么是用户态,内核态,如何在两者之间进行切换
  3. 为什么使用pgtbl,如何管理内存
  4. 什么是trap,为什么设置trap,如何让trap正确返回
  5. 为什么要lazy allocation,有什么好处
  6. 为什么要copy on write,有什么好处
  7. xv6内核并没有多线程机制,如何编写一个用户态多线程,线程如何切换,线程栈是什么
  8. 为什么要使用锁,如何在保证正确性的前提下提高并发性,提高性能
  9. 什么是文件系统,什么是直接索引间接索引多级索引,文件系统布局是什么样的
  10. mmap是什么,实现mmap要注意什么

Recommendation

相信大家在只做xv6中的文件系统实验后,对于文件系统的细节实际上还是不够了解。这里推荐一个实验HITSZ-fs-lab,这个lab是让大家从文件系统的内存布局磁盘布局开始设计自己的fs,并且上限可以很高。你可以仅仅做基本的文件系统命令mountunmountlstouchmkdir,也可以做加强版,如加入更多fs命令磁盘缓冲日志系统等。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published