OS实验xv6 6.S081 开坑

终于把xv6 2019 6.S081做完了,网络部分没有写,因为有计网实验了。怎么说呢,xv6的坑有点多,能做完多亏了:和我同学ljj交流,参考RedemptionC老哥的博客(他写的非常详细,遗憾的是,他好像没有写mmap),再者就是参考这位老哥的做法(没有源码,写得不是特别详细,不过有借鉴作用,mmap就是借鉴了他的思想)……废话不多说了,直接开始。

实验指导

  1. 首推RedemptionC的博客
  2. 这位老哥的个人博客
  3. xv6 6.S081官网(后面的实验都要参考官网,他会给你一些Hints)

实验建议

为了提高成就感,一定要先阅读xv6官方的实验指导!!!不要畏惧英文。xv6给的Hints是非常重要的。 另外,为了提高检索速度,推荐科学上网。

实验环境配置说明

  1. 安装VMware

  2. 安装Ubuntu,我安装的是Ubuntu20.04,不过都无所谓了。首先下载一个Ubuntu20.04镜像文件,然后跟着百度百科走吧

  3. 下载VMware-Tools,增加使用体验。一般来说,安装完Ubuntu后VMware会自动提示你。如果想重新安装,则点击下图所示的地方即可。下载完毕后,跟着这位大哥做吧。(安装之后,即可拖拽文件了)

  4. 配置xv6。右键桌面打开terminal,键入如下命令(以下步骤也可参考xv6官方文档)

    #获取工具链
    git clone --recursive https://github.com/riscv/riscv-gnu-toolchain
    #安装必要依赖
    sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
    #编译工具链
    cd riscv-gnu-toolchain
    ./configure --prefix=/usr/local
    sudo make -j$(nproc)
    cd ..
    #下载并解压qemu
    wget https://download.qemu.org/qemu-4.1.0.tar.xz
    tar xf qemu-4.1.0.tar.xz
    #编译qemu
    cd qemu-4.1.0
    ./configure --disable-kvm --disable-werror --prefix=/usr/local --target-list="riscv64-softmmu"
    make -j$(nproc)
    sudo make install
    cd ..
    

    接下来,检查是否安装成功:

    $ riscv64-unknown-elf-gcc --version
    > riscv64-unknown-elf-gcc (GCC) 10.1.0
    $ qemu-system-riscv64 --version
    > QEMU emulator version 4.1.0
    

    安装成功后,即可下载XV6源码

    #下载xv6源码(不一定从HITSZ这里获取)
    git clone https://github.com/HITSZ-SYSTEMS/xv6-riscv-fall19.git
    cd xv6-riscv-fall19
    make qemu
    

    #下载xv6源码
    git clone git://github.com/mit-pdos/xv6-riscv-fall19.git
    cd xv6-riscv-fall19
    make qemu
    

    当看到init:start sh时,你便配置成功了

  5. 配置VSCode,以便远程连接Ubuntu。

    #在Ubuntu上安装必要依赖
    sudo apt-install openssh-server
    

    5.1 在VSCode上安装Remote-SSH插件

    5.2 识别Ubuntu的ip和host,用一种很简单的方法即可,首先查看你的ternimal前缀,例如我的是deadpool@deadpool-virtual-machine。

    5.3 利用VSCode连接

    键入回车即可

  6. 进入xv6-riscv-fall19根目录,在VSCode的terminal上运行make qemu,运行成功

    注意,按ctrl+a后过一段时间再按x即可退出qemu,这个时间不长也不短,自己把控

结束

配环境是老大难的问题。万事开头难,有了这样一段经历后,便能基本入门linux了。

OS实验xv6 6.S081 开坑相关推荐

  1. xv6 6.S081 Lab1: util

    xv6 6.S081 Lab1: util 写在前面 实验介绍 开始! sleep pingpong Primes Find Xargs 拖了这么久,终于稍微有时间填坑了.今天介绍xv6的第一个实验u ...

  2. xv6 6.S081 Lab8: fs

    xv6 6.S081 Lab8: fs 写在前面 实验介绍 开始! Large File Symbolic links fs代码在这里.我的妈呀,终于要写完了,xv6的file system考察难度并 ...

  3. xv6 6.S081 Lab7: Lock

    xv6 6.S081 Lab7: Lock 写在前面 实验介绍 开始! Memory Allocator Buffer Cache lock代码在这里.本次实验理解起来简单,做起来也容易 写在前面 老 ...

  4. xv6 6.S081 Lab3: alloc

    xv6 6.S081 Lab3: alloc 写在前面 实验介绍 开始! 任务再描述 任务一实现 任务二实现 Buddy Allocator Code Thru 任务二的实现 alloc代码在这里.另 ...

  5. xv6 6.S081 Lab5: cow

    xv6 6.S081 Lab5: cow 写在前面 实验介绍 开始! cow代码在这里.完成了lazy后,cow的实现就非常明了了-- 写在前面 经典写在前面

  6. xv6 6.S081 Lab4: lazy

    xv6 6.S081 Lab4: lazy 写在前面 实验介绍 开始! 打印页表 实现Lazy Allocation 修改sbrk() 实现Lazy Allocation 完善Lazy Allocat ...

  7. 学堂在线_操作系统_notes_第0-2讲_OS概述、OS实验环境准备

    学堂在线_操作系统_notes_第0-2讲_OS概述.OS实验环境准备 - 20220626.No.1821 - 操作系统OS 综合了 C语言 + 数据结构与算法DSA + 计算机组成. OS 是 控 ...

  8. 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处

    新闻上的文本分类:机器学习大乱斗 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处理过程与结果差 ...

  9. python实验报告代写价格_代写OS python程序作业、代写代写OS作业、代写OS实验报告...

    代写OS python程序作业.代写代写OS作业.代写OS实验报告 日期:2018-06-11 03:21 CSE 304 - Operating Systems DUE: June 11. Subm ...

  10. 国产单片机GD32系列开坑,带你零死角玩转GD32 第六章

    [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103C8T6串口开发板设计指南(二) 目录 [开坑国产单片机GD32系列,带你零死角玩转GD32] 第六章 GD32F103 ...

最新文章

  1. redis和memecache有什么区别?
  2. python文件中数字排序_Python 对输入的数字进行排序的方法
  3. 关于IO模拟时序(SPI)的注意事项
  4. python __builtins__ float类 (25)
  5. redhat9Linux解压gz,linux (redhat9)下subversion 的安装
  6. vue项目安装axios - cmd篇
  7. Hello TensorFlow
  8. linux下dns劫持C语言实现,Linux下实现劫持系统调用的总结(上)--代码及实现
  9. HDU 2639 Bone Collector II (dp)
  10. Thingsboard 3.1.0 - 规则链:转换数据结构
  11. JavaScript 函数看代码写结果
  12. c语言流程图各个框的作用,C语言流程图的三种基本结构
  13. 手把手教你获得CSDN徽章:CSDN IT冷知识 每日一练
  14. 【转】纯干货:PS高手完全自学宝典(原创文章)
  15. 继音频转换历程总结成综合
  16. ubuntu 20.04网卡驱动安装(rtl8812au)
  17. 【历史上的今天】1 月 18 日:微软的“技术布道者”出生;反盗版法案抗议行动;哈佛 Mark I 灵感起源
  18. 语音与影像上的自督导式学习模型、一些老版本的补充(李宏毅2022
  19. DVB-条件接收系统(CAS)
  20. CSS / 精灵图+字体图标

热门文章

  1. Quartz.NET 配置文件详解
  2. 人生感悟:与其临渊羡鱼,不如退而结网
  3. restlet client插件下载
  4. 使用微博提供的API接口发送微博
  5. c语言标准之c99下载,C语言标准中的C99与最新的C11
  6. HTTP权威指南学习笔记:连接管理
  7. 首次用MFC制作界面,小白采坑记录
  8. oracle数据库基础知识
  9. word转pdf公式乱码_求助:Word转pdf时公式会公式变成乱码
  10. 2018 Multi-University Training Contest 10 hdu 6432 Problem G. Cyclic(oeis题)