Ubuntu22.04安装pintos

PintOS安装教程

安装预置工具

  1. 使用编辑器打开源文件(也可以去目录下双击打开)
sudo vi /etc/apt/sources.list
  1. 替换为国内镜像源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
  1. 更新软件源
sudo apt-get update
sudo apt-get upgrade
  1. 安装工具
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install libx11-dev
sudo apt-get install libxrandr-dev
sudo apt-get install binutils
sudo apt-get install perl
sudo apt-get install make
sudo apt-get install gdb
sudo apt-get install qemu
sudo apt-get install geany
sudo apt-get install git
sudo apt-get install qemu-system-x86

Ubuntu18.10开始,qemu是个空包,需装qemu-system-x86

下载Pintos

  1. 新建目录,在/home/{username}文件夹创建pintos文件夹 (建议不要直接装在/home文件夹下,可能因权限问题pintos无法正常运行)
cd /home/{username}
mkdir pintos
  1. 进入pintos目录,从网上git最新的pintos到本地
git clone git://pintos-os.org/pintos-anon

配置Pintos

  1. 打开pintos-gdb文件,修改其中的GDBMACROS变量,将gdb-macros完整路径赋值给该变量,gdb-macros文件位于.../pintos-anon/src/misc;

  2. 打开Makefile文件将LOADLIBES变量改为LDLIBS;

  3. 进入.../pintos-anon/src/utils目录输入make编译utils;

    • Ubuntu22.04会报错,这个时候我们需要在/usr/include目录下打开终端输入sudo touch stropts.h添加一个空的头文件,并且修改.../pintos-anon/src/utils/squish-pty.c文件,将288-294行如下一段代码注释掉
      /* if (isastream (slave))
      {
          if (ioctl (slave, I_PUSH, "ptem") < 0
              || ioctl (slave, I_PUSH, "ldterm") < 0)
          fail_io ("ioctl");
      } */
      
      然后make编译时虽有warning但可以正常编译
  4. 编辑.../pintos-anon/src/threads/Make.vars(第7行):更改bochsqemu;

  5. 进入.../pintos-anon/src/threads目录输入make编译线程目录;

  6. 编辑.../pintos-anon/src/utils/pintos(约在第103⾏):替换bochsqemu;

  7. 编辑.../pintos-anon/src/utils/pintos(约在第257行):替换kernel.bin为完整的路径:.../pintos-anon/src/threads/build/kernel.bin; (在做userprog实验时,需把路径中的threads改成userprog)

  8. 编辑.../pintos-anon/src/utils/pintos(约在621行):替换qemu-system-i386qemu-system-x86_64;

  9. 编辑.../pintos-anon/src/utils/Pintos.pm(约在362行):替换loader.bin为完整路径.../pintos-anon/src/threads/build/loader.bin; (和7同理)

  10. 用vi编辑器打开~/.bashrc(或打开隐藏文件夹显示,/home/{username}目录下双击点开~/.bashrc),在最后一行添加export PATH=$PATH:/user/bin:/home/.../pintos-anon/src/utils;

  11. 重新打开终端输入source ~/.bashrc;

  12. 进入到pintos目录下运行pintos run alarm-multiple,若没有报错且出现Execution of 'alarm-multiple' complete则代表成功;

Pintos Project

https://github.com/qqqqc16/pintos

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值