电脑环境

Ubuntu20.04.1 LTS

Linux version 5.4.0-42-generic

检查安装环境

#GCC
gcc --version
#GNU binutils
addr2line --version
ar --version
ld --version
objcopy --version
ranlib --version
#Perl
perl --version
#GNU make
make --version
#QEMU
qemu-system-aarch64 --version
#GDB
gdb --version
#X
sudo X --version

若不存在qemu则按如下命令安装或者选择不安装qemu而用bochs

sudo apt-get install qemu

安装并测试PintOS

下载pintos源码并解压
#以下为旧版本  安装会有一些问题
#wget http://www.stanford.edu/class/cs140/projects/pintos/pintos.tar.gz
#tar -xzvf pintos.tar.gz#安装新版本
git clone git://pintos-os.org/pintos-anon#清除版本控制信息
cd pintos-anon
find . -name ".git" | xargs rm -Rf
编辑环境变量
gedit ~/.bashrc

插入export PATH=$PATH:/usr/bin:/home/.../pintos-anon/src/utils(如果是zsh则配置.zashrc)

更新配置

source ~/.bashrc
编译utils
  1. 修改/utils/pintos-gdb中的GDBMACROS为当前路径GDBMACROS=/home/.../pintos-anon/src/misc/gdb-macros
  2. 修改/utils/Makefile中的LOADLIBESLDLIBS
  3. /src/utils中执行make,编译成功则执行下一步,若编译失败则查看存在问题中的解决方案。
编译threads
  1. 修改/src/threads/MAke.vars,更改bochsqemu
  2. /src/threads下执行make
编辑pintos

/utils/pintos

  • 103行:更改bochsqemu
  • 259行:更改kernel.bin/home/.../src/threads/build/kernel.bin
  • 623行 :更改qemu-system-i386qemu-system-x86_64
编辑pintos.pm

/utils/Pintos.pm

  • 362行:更改 loader.bin/home/.../src/threads/build/loader.bin
运行pintos

pintos run alarm-multiple

存在问题

如果在/src/utils中执行make报错

squish-pty.c:10:10: fatal error: stropts.h: No such file or directory

这是因为LInux版本较高,老版本的Linux会包含这个文件,但是有些新的Linux版本已经不再包含了。解决方案可以在/usr/include/下建立一个空的stropts.h文件,或者注释掉代码中与之相关的部分(不要从老版本的Linux中直接拷贝过来,拷贝过来的stropts.h文件中,可能还会包含别的找不到的头文件)。

如果引入stropts.h后仍然再次报错,则需要根据报错注释掉一些代码,仍然是版本问题。需要注释掉squish-pty.c中掉第288到293行

参考链接

https://web.stanford.edu/class/cs140/projects/pintos/pintos_12.html#SEC166

https://github.com/kumardeepakr3/PINTOS-Ubuntu

在Linux上安装PintOS相关推荐

  1. linux上安装mysql,tomcat,jdk

    Linux 上安装 1 安装jdk 检测是否安装了jdk 运行 java –version 若有 需要将其卸载 a)         查看安装哪些jdk rmp –qa |grep java b)   ...

  2. linux下安装sbt_如何在Linux上安装SBT

    linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...

  3. 在Linux上安装QT4

    比起在Windows上安装QT,在Linux上安装QT要容易多了,这都得意于Linux系统的autoconf和automake工具. 1. 将QT的源码包放至到一个目录下,笔者的目录是:/home/k ...

  4. 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解

    明明安装了模块,还是出现 错误 ImportError: No module named 'pandas'  原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解 ...

  5. linux上安装redis

    Redis Redis在linux上安装 将redis-3.0.7.tar.gz上传到linux虚拟机上 编译: a)       因为redis是C语言开发,所以需要先编译,在linux上编译需要依 ...

  6. Linux上安装paramiko模块

    Linux上安装paramiko模块 一.paramiko模块作用 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.由于使用的是pyt ...

  7. 在linux上安装Filezilla文件传输FTP软件

    在linux上安装Filezilla文件传输FTP软件 1 Filezilla安装方法一:使用apt-get安装 2 Filezilla安装方法二:使用filezilla安装包进行安装 1 Filez ...

  8. 如何在 Linux 上安装服务器管理软件 Cockpit

    如何在 Linux 上安装服务器管理软件 Cockpit Cockpit 是一个自由开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器.Co ...

  9. kali linux 的ssh服务器,如何在 Kali Linux 上安装 SSH 服务

    目的 我们的目的是 Kali Linux 上安装 SSH(安全 shell). 要求 你需要有特权访问你的 Kali Linux 安装或者 Live 系统. 困难程度 很容易! 惯例 #– 给定命令需 ...

最新文章

  1. LL1分析构造法_数学建模算法--最优赋权法(含代码)
  2. lsnrctl start启动监听很慢(AIX平台)
  3. LeetCode Linked List Cycle
  4. angular 兼容ie7 bootstrap2兼容ie6
  5. DBUtils连接池,websocket
  6. 量子密钥和量子计算机是什么关系,关于量子通信,这些问题你困惑过吗?
  7. (转)对《javascript 杂谈之哪种写法你更喜欢?》最后一种“匿名函数法”的解释...
  8. 类库、委托、is/as
  9. 基于热传递方程和目标规划的高温服装设计
  10. 带农历日期的html代码,很全的显示阴历(农历)日期的js代码
  11. 在线制作ICO网站图标网站
  12. 35岁了,依然倔强的相信未来!——我的2021年终总结
  13. 软件开发实训(720科技)――第五课:前端css规范
  14. Java基础知识面试题(总结最全面的面试题)
  15. vc 调用webservice
  16. 【爱情】男女关系大实话 婚姻篇
  17. 拉基米德米表系统源码含简易后台
  18. Springboot 使用JPA Repository 注入失败问题
  19. 前端打包工具webpack和Vite
  20. 内存管理_分代机制(年轻代、年老代、永久代)

热门文章

  1. xfs文件系统的备份和恢复
  2. Windows Server 2008变为Vista
  3. BUZ-缓存/状态管理
  4. 产品经理凭啥年薪百万?看这里
  5. 4G 通信模块在ARM 平台下的应用
  6. SpringBoot JdbcTemplate
  7. 闪修侠存在违规行为遭通报,创始人兼CEO王源曾两次被限制高消费
  8. 人月神教α阶段冲刺报告(5/12)
  9. 年省成本超600万,解密时代中国HR的数字化大招
  10. Vuex的作用、使用、核心概念(State、Mutations、Getters、Actions、Modules)、文件抽离