MIT6.828(Step0)——实验环境配置

实验环境配置

VirtualBox虚拟机为载体,安装Ubuntu

$ uname -a
Linux eliot-VirtualBox 5.11.0-36-generic #40~20.04.1-Ubuntu SMP Sat Sep 18 02:14:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

下载实验框架

$ git clone https://pdos.csail.mit.edu/6.828/2018/jos.git mit6.828

安装 toolchain

先检查本机安装

$ gcc -m32 -print-libgcc-file-name
/usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a

不然则安装相关工具

sudo apt-get install -y build-essential gdb

安装32位支持

sudo apt-get install gcc-multilib

或者直接一站式解决

sudo apt-get install -y build-essential libtool libglib2.0-dev libpixman-1-dev zlib1g-dev git libfdt-dev gcc-multilib gdb

对于 qemu虚拟机,安装课程推荐的定制版本为佳:

git clone git@github.com:mit-pdos/6.828-qemu.git

开始进行配置

先安装配置需要的 python2.7

sudo apt-get install python2.7
./configure --disable-kvm --target-list="i386-softmmu x86_64-softmmu" --python=python2.7

开始编译安装

先进入root用户

su root

开始安装

make && make install

可能遇到的错误:

  • 错误1

MIT6.828(Step0)——实验环境配置

解决方法

.../6.828-qemu$ vim Makefile

更改 Makefile,在最后一行添加

QEMU_CFLAGS+=-w
  • 错误2

MIT6.828(Step0)——实验环境配置

解决方法

.../6.828-qemu$ cd qga/
.../6.828-qemu/qga$ vim commands-posix.c

在头文件中添加

#include
  • 错误3

MIT6.828(Step0)——实验环境配置

解决方法

.../6.828-qemu$ vim config-host.mak

删除其中的 -Werror

  • 错误4

MIT6.828(Step0)——实验环境配置

解决方法

进入root用户模式

su root
make && make install

还有其他错误的,可以自行Google解决.

进入实验的文件夹下:

make

不出意外会出现如下显示

MIT6.828(Step0)——实验环境配置

之后运行虚拟机

make qemu

MIT6.828(Step0)——实验环境配置

这样 MIT6.828的实验环境便配置成功了。

参考资料

https://pdos.csail.mit.edu/6.828/2018/labguide.html

https://pdos.csail.mit.edu/6.828/2018/labs/lab1/

https://www.cnblogs.com/gatsby123/p/9746193.html

https://github.com/woai3c/MIT6.828/blob/master/docs/install.md

Original: https://www.cnblogs.com/oasisyang/p/15355667.html
Author: OasisYang
Title: MIT6.828(Step0)——实验环境配置

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524493/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 个人学习-Linux文件系统架构

    个人学习-Linux文件系统架构 1. 参考文章 [1] https://blog.csdn.net/Holy_666/article/details/86532671 [2]CS…

    Linux 2023年6月6日
    091
  • 堆栈

    目录: 9、【剑指Offer学习】【面试题09:用两个栈实现队列】 30、【剑指Offer学习】【面试题30:包含min函数的栈】 31、【剑指Offer学习】【面试题31:栈的压…

    Linux 2023年6月13日
    095
  • Redis 生产架构选型对比,一文整治选择困难症

    前言 在写开源项目的时候,想到了要支持多种redis部署方式,于是对于这块的生产环境的架构选型展开调研。 一、引擎版本 推荐使用更新的引擎版本以支持更多的特性, Redis 6.0…

    Linux 2023年6月8日
    081
  • Springboot集成Redis举例

    依赖包 配置文件(application.properties) 配置文件(RedisConfig.java) import com.fasterxml.jackson.annot…

    Linux 2023年5月28日
    084
  • shell脚本

    1、什么是shell 什么是shell ? Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。 Shell 既是一种命令语言, 又是一种程序设计语…

    Linux 2023年5月27日
    095
  • NoteOfMySQL-09-存储过程与函数

    常用的SQL语句在执行时需要先编译,然后执行;而存储过程(Store Procedure)是经编译后存储在数据库中的SQL语句集,在数据库中创建和保存。 一、存储过程与函数的区别 …

    Linux 2023年6月14日
    051
  • Centos8 设置中文

    1、一般情况 1.1 进入设置选择 Region&Language 1.2 点击 加号 1.3 点击 汉语(中国) 1.4 选择 汉语(智能拼音) 2、特殊情况 有些虚拟机…

    Linux 2023年5月27日
    0107
  • [ Shell ] 通过 Shell 脚本导出 GDSII/OASIS 文件

    常见的集成电路版图数据库文件格式有 GDSII 和 OASIS,virtuoso 提供了下面两个工具,可以用来通过命令行导出版图数据。 strmout (导出为 GDSII 格式)…

    Linux 2023年6月7日
    0120
  • 通过启动脚本控制PHP-FPM开关

    vi /etc/init.d/php-fpm 复制粘贴以下内容: ! /bin/sh Comments to support chkconfig on CentOSchkconfi…

    Linux 2023年6月6日
    079
  • Python垃圾回收和Linux Copy-on-Write机制

    前言 在口袋助理看到了其他部门的同事针对Python2内存占用做的一点优化工作,自己比较感兴趣,遂记录下。 Linux fork简介 fork是Linux提供的创建子进程的系统调用…

    Linux 2023年6月7日
    0116
  • 【spring-boot】Redis的整合与使用详解

    在pom.xml中添加依赖 org.springframework.boot spring-boot-starter-data-redis 2.2.1.RELEASE io.let…

    Linux 2023年5月28日
    086
  • 11-K8S部署普罗米修斯

    K8S-Kubernetes 集群部署 Prometheus 和 Grafana 1.实验环境 控制节点/master01 192.168.80.20 工作节点/node01 19…

    Linux 2023年6月13日
    078
  • jenkins使用shell脚本执行nohup java -jar包失败

    一、问题 通过jenkins执行shell脚本时,脚本中是通过nohup java -jar &的方式启动,显示执行成功,但是服务却没启动,脚本如下: #! /bin/ba…

    Linux 2023年5月28日
    0164
  • JAVA设计模式-单例模式

    JAVA设计模式-单例模式 单例模式 类只能有一个实例,在内存中会创建并且只创建一次对象。所有其他类或者其他需要调用的地方都是用这一个对象,可以防止频繁创建对象,内存占用高。特点:…

    Linux 2023年6月6日
    095
  • 斐波那契数列前1000项

    斐波那契数列前1000项 {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,177…

    Linux 2023年6月6日
    081
  • Ubuntu16.04部署django+nginx项目

    项目使用django+nginx部署。这个项目断断续续地部署4遍了。感觉每次部署都挺费时间的(找各种配置的资料),于是写一个博客总结一下。 安装vsftpd $ sudo apt-…

    Linux 2023年6月7日
    061
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球