mit6.828资源获取

自己2017年9月到2月这段时间慢慢把5个lab磨完了,期间遇到了不少困难和疑惑,所以打算通过写博客的形式来回忆,记录和总结自己学习mit6.828的过程。

MIT6.828就不用我多介绍了, mit鼎鼎大名的操作系统经典课程,北大,华工等学校的操作系统实验都是基于这个课程的实验部分。课程所有的lab都是开源的,课程实验包括6个实验, 包含

  • Booting a PC
  • Memory Management
  • User Environments
  • Preemptive Multitasking
  • File system, Spawn and Shell
  • Network Driver (default final project)

    6个实验, 跟完这6个实验后就相当于写完了一个简单的OS并且把bootloader,虚拟内存,进程,多进程,文件系统,网络驱动六个方面的开发熟悉了一遍 。虽然jos实现的功能相对有限,但是它能够帮助我们真正了解操作系统的实现过程以及原理,而不再是雾里观花,完成这门课再读一下lkd等书,我们也可以说自己具有linux内核开发的能力了。

下面是ubuntu系统下lab的资源获取和相关软件的安装

1.先安装git

sudo apt-get install git

git的学习可以参考:

廖雪峰git教程

2.然后在terminal输入下面命令行将jos代码拷贝到本地

athena% mkdir ./6.828
athena% cd ./6.828
athena% git clone https://pdos.csail.mit.edu/6.828/2016/jos.git lab
Cloning into lab...
athena% cd lab

3.安装使用mit修改过的qemu

git clone http://web.mit.edu/ccutler/www/qemu.git -b 6.828-2.3.0
cd ./qemu
进行./configure:
./configure --disable-kvm --target-list="i386-softmmu x86_64-softmmu"
编译安装:
sudo make
sudo make install

4.进到lab目录下, 编译然后使用qemu模拟运行

make
make qemu

因为我这里使用的2016年的实验代码,所以有warning

大家可以使用最新的代码,也可以把

lab/GNUmakefile的下面一段代码删掉就行

成功运行

完成这些准备工作,下面我们就可以开始进行实验1了。

原文地址:https://www.cnblogs.com/jessehzj/p/8476305.html

时间: 2024-10-07 14:41:11

mit6.828资源获取的相关文章

MIT-6.828 Lab3实验报

Lab 3: User Environments实验报告 tags:mit-6.828 os 概述: 本文是lab3的实验报告,主要介绍JOS中的进程,异常处理,系统调用.内容上分为三部分: 用户环境建立,可以加载用户ELF文件并执行. 建立异常处理机制. 提供系统调用的能力. Part A: User Environments and Exception Handling 本实验指的用户环境和UNIX中的进程是一个概念,之所有没有使用进程是强调JOS的用户环境和UNIX进程将提供不同的接口.

关于UI资源获取资源的好的网站

前言:和我一样喜欢UI的一定喜欢这里的内容. 下面是关于sketch资源获取网页,点击图片就能进入: 连接是:https://github.com/JakeLin 居然意外百度到Sketch中国,还提供sketch破解版下载哦:http://www.sketchs.cn/index.html Sketch 资源合集:http://www.ui.cn/detail/15895.html

Struts2 Web 资源获取的四种方式

Struts2 Web 资源获取一个有四种方式,两个大类 拦截器获取 Web 资源模式 静态对象获取 Web 资源模式 第一种:实现ServletRequestAware.ServletResponseAware.ServletContextAware接口 struts.xml <action name="FirstAction" class="Action.FirstAction"> <result name="success"

SpringMVC基础——参数获取与Servlet资源获取问题

一.SpringMVC 使用 @PathVariable.@RequestParam.@RequestHeader.@CookieValue 等来解决参数获取问题. 1. @PathVariable:映射 URL 绑定的占位符,可以借助于传入到方法参数列表中的 @PathVariable 注解获取到 URL 映射中的参数值.如: <a href="handler01/1">test pathvariable</a> @RequestMapping("/

RAII(资源获取即初始化)详解

概念 使用局部对象管理资源的技术通常称为"资源获取就是初始化" Resource Acquisition Is Initialization 机制是Bjarne Stroustrup首先提出的.要解决的是这样一个问题: 在C++中,如果在这个程序段结束时需要完成一些资源释放工作,那么正常情况下自然是没有什么问题,但是当一个异常抛出时,释放资源的语句就不会被执行.于是Bjarne Stroustrup就想到确保能运行资源释放代码的地方就是在这个程序段(栈帧)中放置的对象的析构函数了,因为

强烈推荐的两个神级教学项目: nand2tetris 与 MIT6.828

nand2tetris 难度:★★★★☆ 推荐:★★★★★ nand2tetris 项目有一本书叫<计算机系统要素>,也有英语的视频教程.如果英语不好的可以看书,内容是一样的. 这本书主要讲解了计算机原理(1-6章).编译原理(7-11章).操作系统相关知识(12章).不要看内容这么多,其实这本书的内容非常通俗易懂,翻译也很给力.每一章背后都有对应的练习,需要你手写代码去完成,堪称理论与实践结合的经典. 这里引用一下书里的内容简介,大家可以感受一下. 本书通过展现简单但功能强大的计算机系统之构

Android 项目中的资源获取方法

Android资源文件分类: Android资源文件大致可以分为两种: 第一种是res目录下存放的可编译的资源文件: 这种资源文件系统会在R.java里面自动生成该资源文件的ID,所以访问这种资源文件比较简单,通过R.XXX.ID即可: 第二种是assets目录下存放的原生资源文件: 因为系统在编译的时候不会编译assets下的资源文件,所以我们不能通过R.XXX.ID的方式访问它们.那我么能不能通过该资源的绝对路径去访问它们呢?因为apk安装之后会放在/data/app/**.apk目录下,以

各类地址及资源获取的方式

搭建虚拟主机后,而不是利用eclipse把工程发布到tomcat中的一些错误 1.首先jstl,standard.jar包得导入,否则运行会出现异常 org.apache.jasper.JasperException: This absolute uri http://java.sun.com/jsp/jstl/core) cannot be resolved in either web.xml or the jar files deployed with this application,而不

Web资源获取

1.拦截器获取 Web 资源模式 2.静态对象获取 Web 资源模式 1.拦截器获取 Web 资源模式: (1)使用Struts2 Aware拦截器 index.jsp表单: <body> <form action="<%=path %>/firstAction" method="post"> 姓名:<input type="text" name="name"><br>