Giter Site home page Giter Site logo

rayjyh / mit6.828_os Goto Github PK

View Code? Open in Web Editor NEW

This project forked from smallpond/mit6.828_os

0.0 1.0 0.0 2.14 MB

MIT 6.828 Lab https://pdos.csail.mit.edu/6.828/2018/schedule.html

Home Page: https://pdos.csail.mit.edu/6.828/2018/schedule.html

License: GNU General Public License v3.0

C 94.82% Assembly 1.08% C++ 0.88% Python 1.57% Perl 0.31% Makefile 0.78% Emacs Lisp 0.01% Objective-C 0.14% Shell 0.23% Ruby 0.10% OpenEdge ABL 0.08% HTML 0.01%

mit6.828_os's Introduction

MIT6.828 Operating System Engineering

花了两个月多的时间,终于把 MIT6.828 的课程跟完了。刚接触这个课程时,就有一种感觉:哇,好神奇! 这个课程真的是循序渐进,一步一步在你的脑海里建立起 OS 的大厦框架。从 Lab1 的手把手教学到 Lab6 的放任你自由,很好地对学生的学习进行了引导。学完这个课程后,你也就拥有了一个属于你自己的完整的内核雏形!

1. 简介

课程评价:神级课程——要是早遇到,我还会是这种 five(废物) 系列

课程网址:6.828: Operating System Engineering,一直跟着其 schedule 走就可以啦。

xv6 讲义:a simple, Unix-like teaching operating system,讲义中会将每个部分的实现讲得十分详细,在代码编写时遇到不太清晰的概念时,可以多参考讲义。

我的实现环境:

  • VMware Workstation虚拟机
  • Ubuntu16.04
  • qemu,最好使用 MIT 给的 patch 版本(Lab6 用到 pacth 版本的qemu 较多)。安装方法也可参考Tools Used in 6.828 链接
  • 工具链 Tools Used in 6.828

环境搭建网络上教程很多,这里我就不再赘述,直接给出别的大佬写的教程:MIT-6.828-JOS-环境搭建

2. Xv6

学习6.828时,你会发现经常遇到 xv6 和 JOS这两个名词,不明白它们两者之间的关系,在完成实验时思路就会不是很清晰。xv6 是一个类Unix的教学操作系统,而 JOS 是在xv6的基础上改写,让我们能在其上进行实验的 OS。 所以实际上,当我们遇到不会实现的问题时,可以去参考 xv6 相应部分的源码。

Homework 实现:完整实现代码。Github_SmallPond/MIT6.828_OS

3. JOS

以下是我实验过程中记下的笔记,包含我的实现思路以及代码。 不过有些重复的细节,我就没有记录,可以参考我的完整实现代码。Github_SmallPond/MIT6.828_OS

4. 参考文献

  1. MIT 6.828 JOS 操作系统学习笔记/fatsheep9146,刚入门时参考,包括环境搭建。博文写得十分详细,可惜貌似只写到了 Lab2。
  2. clpsz/mit-jos-2014,此大神放出了自己到 Lab4 的代码,其文档提及了一些细节,很有帮助。
  3. Unknown Unknown,过程较详细(相当于对官方文档做了一遍翻译),英语不好可以参考这边,但我还是建议以官方文档为主,毕竟英语还是要学好呀。这位大神做到了LAB5,但不包括HW。
  4. bysui的博客, 这位大神完成了全部的实验,但是我在后面才发现这么好的资源!

我的课程能顺利完成,少不了各位大佬记录下的实验过程,由衷感谢以上各位大神。同时希望我也能帮到后来的学习者~

mit6.828_os's People

Contributors

smallpond avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.