在Linux上安装PintOS
电脑环境
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
- 修改
/utils/pintos-gdb
中的GDBMACROS
为当前路径GDBMACROS=/home/.../pintos-anon/src/misc/gdb-macros
- 修改
/utils/Makefile
中的LOADLIBES
为LDLIBS
- 在
/src/utils
中执行make,编译成功则执行下一步,若编译失败则查看存在问题中的解决方案。
编译threads
- 修改
/src/threads/MAke.vars
,更改bochs
为qemu
- 在
/src/threads
下执行make
编辑pintos
/utils/pintos
- 103行:更改
bochs
为qemu
- 259行:更改
kernel.bin
为/home/.../src/threads/build/kernel.bin
- 623行 :更改
qemu-system-i386
为qemu-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相关推荐
- linux上安装mysql,tomcat,jdk
Linux 上安装 1 安装jdk 检测是否安装了jdk 运行 java –version 若有 需要将其卸载 a) 查看安装哪些jdk rmp –qa |grep java b) ...
- linux下安装sbt_如何在Linux上安装SBT
linux下安装sbt 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you how to install ...
- 在Linux上安装QT4
比起在Windows上安装QT,在Linux上安装QT要容易多了,这都得意于Linux系统的autoconf和automake工具. 1. 将QT的源码包放至到一个目录下,笔者的目录是:/home/k ...
- 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解
明明安装了模块,还是出现 错误 ImportError: No module named 'pandas' 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解 ...
- linux上安装redis
Redis Redis在linux上安装 将redis-3.0.7.tar.gz上传到linux虚拟机上 编译: a) 因为redis是C语言开发,所以需要先编译,在linux上编译需要依 ...
- Linux上安装paramiko模块
Linux上安装paramiko模块 一.paramiko模块作用 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.由于使用的是pyt ...
- 在linux上安装Filezilla文件传输FTP软件
在linux上安装Filezilla文件传输FTP软件 1 Filezilla安装方法一:使用apt-get安装 2 Filezilla安装方法二:使用filezilla安装包进行安装 1 Filez ...
- 如何在 Linux 上安装服务器管理软件 Cockpit
如何在 Linux 上安装服务器管理软件 Cockpit Cockpit 是一个自由开源的服务器管理软件,它使得我们可以通过它好看的 web 前端界面轻松地管理我们的 GNU/Linux 服务器.Co ...
- kali linux 的ssh服务器,如何在 Kali Linux 上安装 SSH 服务
目的 我们的目的是 Kali Linux 上安装 SSH(安全 shell). 要求 你需要有特权访问你的 Kali Linux 安装或者 Live 系统. 困难程度 很容易! 惯例 #– 给定命令需 ...
最新文章
- LL1分析构造法_数学建模算法--最优赋权法(含代码)
- lsnrctl start启动监听很慢(AIX平台)
- LeetCode Linked List Cycle
- angular 兼容ie7 bootstrap2兼容ie6
- DBUtils连接池,websocket
- 量子密钥和量子计算机是什么关系,关于量子通信,这些问题你困惑过吗?
- (转)对《javascript 杂谈之哪种写法你更喜欢?》最后一种“匿名函数法”的解释...
- 类库、委托、is/as
- 基于热传递方程和目标规划的高温服装设计
- 带农历日期的html代码,很全的显示阴历(农历)日期的js代码
- 在线制作ICO网站图标网站
- 35岁了,依然倔强的相信未来!——我的2021年终总结
- 软件开发实训(720科技)――第五课:前端css规范
- Java基础知识面试题(总结最全面的面试题)
- vc 调用webservice
- 【爱情】男女关系大实话 婚姻篇
- 拉基米德米表系统源码含简易后台
- Springboot 使用JPA Repository 注入失败问题
- 前端打包工具webpack和Vite
- 内存管理_分代机制(年轻代、年老代、永久代)