西电 操作系统课设 在Ubuntu18.04安装pintos
西电 操作系统课设 在Ubuntu18.04安装pintos
- 前言
- 1. 主要步骤
- 2. VMware的安装
- 3. Ubuntu18.04的安装和配置
- 4. Bochs的安装
- 4. Pintos安装
- 5. 运行Pintos
- 6. 可能会遇到的问题
前言
由于本人更喜欢使用VMware,而且Ubuntu12.04的软件源失效了,很多东西都没办法安装,因此写了一份在用VMware虚拟机在Ubuntu18.04下安装pintos的教程,希望能够帮到大家。感谢竹佬在群里提供的思路以及新版本的pintos压缩包。文章中可能会有一些错误,恳请各位大佬批评指正。
1. 主要步骤
(1)安装VMware虚拟机
(2)Ubuntu18.04的安装和配置
(3)Bochs虚拟机的安装
(4)Pintos安装及测试
2. VMware的安装
西电的同学可以到西电睿思下载
3. Ubuntu18.04的安装和配置
(1)在官网Ubuntu Releases下载Ubuntu18.04-desktop-amd64.iso
(2)在VMware中创建新的虚拟机,安装程序光盘映像文件,然后完成安装
(3)启动虚拟机, 在Software & Update中将源切换成国内的源
(4)安装工具软件
名称 | 用途 | 安装方法 |
---|---|---|
gcc | 编译器(3.3版本后) | sudo apt install gcc |
g++ | 编译bochs所需 | sudo apt install g++ |
libncurses5-dev | 编译bochs所需 | sudo apt install libncurses5-dev |
libx11-dev | 编译bochs所需 | sudo apt install libx11-dev |
libxrandr-dev | 编译bochs所需 | sudo apt install libxrandr-dev |
binutils | 二进制工具集 | sudo apt install binutils |
perl | 一种程序设计语言(5.8.0版本后) | sudo apt install perl |
make | 编译工具(3.80版本后) | sudo apt install make |
gdb | 调试工具 | sudo apt install gdb |
QEMU | 虚拟机(0.11.0版本后) | sudo apt install qemu |
vim | 文本编辑工具 | sudo apt install vim |
geany | 文本编辑工具(IDE) | sudo apt install geany |
4. Bochs的安装
(1)下载bochs(本人使用的是2.6.8版本)到Ubuntu
Bochs下载网址:官网链接、官网所有版本链接
(2)解压bochs下载文档
本手册中工作文件夹路径为:“/home/username/os”(你的用户名是什么username就写什么)
(3)配置bochs
进入 bochs 解压后的文件夹:cd /home/xd/os/bochs-2.6
执行命令:
sudo ./configure --enable-gdb-stub --with-x --with-x11 --with-term --with-nogui
(注意最前面的点)
(4)编译bochs
执行命令:make
注意编译后应当没有 error 信息,如果有可根据提示安装某些包后,重新编译。
(5)安装
执行命令:make install
(6)检测
执行命令:bochs
可见如下界面:
(BXSHARE not set. using compile time default '/usr/local/share/bochs'
这个错误暂时不知道怎么解决,但好像影响不大)
4. Pintos安装
(1)下载Pintos压缩包
链接:https://pan.baidu.com/s/1XqXUAglNzcwJTCVwso-mpQ 提取码:xdos
(2)解压Pintos压缩包到工作目录(这里以“/home/username/os/”为例)
(3)配置环境变量
修改配置文件“.bashrc”
这个文件在 “/home/username” 目录下,但是是隐藏文件,Ctrl + H 即可显示隐藏文件
右键用Geany打开
在文件的最后加上如下内容(设置路径,注意路径要和自己机器上的路径一致,不可照搬)
export PATH="$PATH:/home/username/os/pintos-anon/src/utils"
注意 “PATH” 和 “=” 之间不能有空格!修改以后进入 “home/username” 目录下,执行命令:
bash
对于用户 root,在“/root”文件夹下也有一个隐藏文件“.bashrc“,对它也进行上述更改,两个文件添加的内容是一样的。然后进入 root 目录下执行一次 bash 操作。
点击注销,重新登录修改配置文件 “pintos-gdb”
按照路径 “/home/username/os/pintos-anon/src/utils” 找到文件pintos-gdb,用Geany打开
在第4行进行如下修改,将路径改为自己机器的路径
在之前的目录utils下用Geany打开文件“Makefile” (这一步好像可以不用)
将第5行改为LDLIBS = -lm
在目录 “/home/xd/os/pintos-anon/src/utils” 下执行make
命令编译
5. 运行Pintos
进入 “/home/xd/os/pintos-anon/src/threads” ,执行make
命名编译
编译成功后,会生成build 目录,进入 build 目录,运行测试用例 alarm-multiple(命令:pintos – run alarm-multiple
)
出现如下界面:
安装成功!
6. 可能会遇到的问题
.bochsrc:186: cpu directive malformed.
错误原因:PC的CPU与配置文件中的cpu model不匹配
解决方法:在终端输入bochs -help cpu
我的电脑是AMD处理器,就在配置文件中将cpu model改为amd_k6_2_chomper
.bochsrc:908: Bochs is not compiled with lowlevel sound support
解决方法:修改配置文件,注释掉以下两行
#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
#speaker: enabled=1, mode=sound
西电 操作系统课设 在Ubuntu18.04安装pintos相关推荐
- 操作系统课设--虚拟内存
山东大学操作系统课设lab7 实验七 虚拟内存(lab7) 实验目的 实验环境 实验思路 关键源代码注释以及程序说明 调试记录 实验七 虚拟内存(lab7) 实验目的 在未实现虚拟内存管理之前,Nac ...
- 操作系统课设--系统调用
山东大学操作系统课设lab6 实验六 系统调用(lab6) 实验目的 实验环境 实验思路 调试记录 实验六 系统调用(lab6) 实验目的 扩展现有的class AddrSpace的实现,使得Nach ...
- 操作系统课设--具有二级索引的文件系统
山东大学操作系统课设lab5 实验五 具有二级索引的文件系统(lab5) 实验目的 实验环境 实验思路 调试记录 实验五 具有二级索引的文件系统(lab5) 实验目的 Nachos系统原有的文件系统只 ...
- 操作系统课设--扩展文件系统
山东大学操作系统课设lab4 实验四 扩展文件系统(lab4) 概念欠缺 实验目的 实验环境: 实验思路: 关键源代码注释以及程序说明: 调试记录: 实验四 扩展文件系统(lab4) 概念欠缺 ifd ...
- 操作系统课设--具有优先级的线程调度
山东大学操作系统课设lab2 实验二 具有优先级的线程调度(lab2) 概念欠缺 实验环境 实验目的 1. 熟悉Nachos原有的线程调度策略 2. 设计并实现具有优先级的线程调度策略 实验二 具有优 ...
- 操作系统课设--NACHOS试验环境准备、安装与MAKEFILE分析
山东大学操作系统课设lab1 实验一 NACHOS试验环境准备.安装与MAKEFILE分析(lab1) 实验环境: 分析记录: 1. 准备虚拟机下LINUX宿主操作系统环境 2. NACHOS实验代码 ...
- 操作系统课设之Linux 进程管理
前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...
- 华南农业大学操作系统课设(模拟磁盘文件系统实现)(JavaFX)(单人课设)
文章目录 展示效果的视频 题目要求+代码+报告+展示视频的下载地址 实验报告 一.需求分析 (1)输入的形式和输入值的范围: 1.输入的形式 2.输入值的范围 (2)输出的形式: (3)程序所能达到的 ...
- 操作系统课设--使用信号量解决生产者/消费者同步问题
山东大学操作系统课设lab3 实验三 使用信号量解决生产者/消费者同步问题(lab3) 实验目的 理解Nachos的信号量是如何实现的 生产者/消费者问题是如何用信号量实现的 在Nachos中是如何创 ...
最新文章
- 微服务实践(七):从单体式架构迁移到微服务架构
- px4原生源码学习四--Nuttx 实时操作系统编程
- ASP.NET Core应用程序容器化、持续集成与Kubernetes集群部署(二)
- 使用XML文件方式配置log4cxx(log4cxx xml例子)
- 系统动力学模型_蓝谷学术动态|典型海洋生态系统动力学模型构建、应用及发展入选2020年经典中国国际出版工程...
- win7下使用U盘安装Ubuntu Kylin完全详解教程
- 聊天系统服务器端类图,课程设计-简单聊天室JAVA课程设计.doc
- flv.js插件播放flv格式的视频实例(vue)
- 13个免费资源网站,你想要的全都有!【各类宝藏资源,建议收藏】
- 微信小程序wx.getUserInfo获取用户所在地区将拼音转换为中文的方法
- 计算机中的成绩排名相同怎么弄,Excel:重复名次也可以查姓名成绩EXCEL基本教程 -电脑资料...
- 不重启JVM,对未添加日志的方法添加日志!
- 国际快递清关要多少时间,国际快递进口如何清关2021.12.01
- 翻译Deep Learning and the Game of Go(3)第2章:围棋是一个机器学习难题(规则部分就不翻了)
- 【知识图谱】通俗易懂的知识图谱技术
- Intent Service 和Service的区别
- python自学免费图片_自学Python----爬取Beautyleg图片
- lua基础学习(1):使用Visual Studio编译lua和luac
- 22_微信小程序开发-BLE低功耗蓝牙开发-源码
- Anchor Boxes详解