xv6实验环境搭建
安装bochs
因为要运行的是xv6,所以不能直接使用 apt-get 直接获取软件。apt-get获取到的软件不支持SMP (Symmetric Multi-Processing)。因此,需要下载源码自己编译(源代码下载地址在下载页面的底部Download SVN Snapshot )
需要预先安装的软件(参考 )
sudo apt-get install g++
sudo apt-get install libc6-dev
sudo apt-get install build-essential
sudo apt-get install xorg-dev
sudo apt-get install libgtk2.0-dev
配置编绎选项(参考 )
./configure --enable-smp --enable-debugger --enable-disasm --enable-vmx=2 --enable-configurable-msrs --enable-x86-64 --enable-a20-pin --enable-acpi --enable-pci
这里x86-64似乎是必须的,而不是在64位机器上才需要。 配置选项说明
配置完成后就可以进行编译安装了。
make
sudo make install
遇到的问题:
/usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1'
解决办法:参考这个博客中的第二个方法 在Makefile.in中187行
$(MCH_LINK_FLAGS) \
$(SIMX86_LINK_FLAGS) \
$(READLINE_LIB) \
$(EXTRA_LINK_OPTS) \
$(LIBS)在最后$(LIBS)后面加上 \ -lpthread如下:
$(MCH_LINK_FLAGS) \
$(SIMX86_LINK_FLAGS) \
$(READLINE_LIB) \
$(EXTRA_LINK_OPTS) \
$(LIBS)\
-lpthread即可编译通过。
致命错误: gtk/gtk.h:没有那个文件或目录
安装过预编译软件后需要重新运行configure命令。
xv6编绎
make 然后运行 make bochs 或 make qemu即可(看是安装的什么模拟器) 如果出现任何奇怪的问题,建议重新下载最新版源码(git clone git://pdos.csail.mit.edu/xv6/xv6.git )
遇到的问题
mkfs: mkfs.c malloc: Assertion used < 512 failed.
redefinition of struct stat
xv6下载最新源码
>>PANIC<< numerical parameter 'n_processors' was set to 2, which is out of range 1 to 1
bochs下载源码自己编绎,不要用apt-get。
vga_update_interval' is deprecated - use 'vga' option instead.
由于下载的bochs更新,所以导致一些旧选项不兼容。可以修改成相应的选项。在文件 dot-bochsrc 497行,把
vga_update_interval: 300000
改为
vga:update_freq=10
配了半天,以为已经成功了,但是在运行起来以后,发现,还是没有办法引导成功。之前一直想把boch配起来,是以为boch才方便调试。然后,再去试一下qemu,发现,用gdb调试,也不是很麻烦。果断放弃了折腾。还是把这个过程,记录下来,以供需要的人参考。
xv6实验环境搭建的更多相关文章
- 操作系统内核Hack:(一)实验环境搭建
操作系统内核Hack:(一)实验环境搭建 三四年前,心血来潮,入手<Orange's:一个操作系统的实现>学习操作系统内核,还配套买了王爽的<汇编语言(第二版)>和<80 ...
- Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...
- mininet(一)实验环境搭建
mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 最近学习(https://github.com/mininet/openflow-tutor ...
- 【MySQL】MySQL无基础学习和入门之一:数据库基础概述和实验环境搭建
数据库基础概述 大部分互联网公司都选择MySQL作为业务数据存储数据库,除了MySQL目前还有很多公司使用Oracle(甲骨文).SQLserver(微软).MongoDB等. 从使用成本来区分可以 ...
- TensorFlow实验环境搭建
初衷: 由于系统.平台的原因,网上有各种版本的tensorflow安装教程,基于linux的.mac的.windows的,各有不同,tensorflow的官网也给出了具体的安装命令.但实际上,即使te ...
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...
- Linux下的ssh实验环境搭建与管理
实验环境[size=10.5000pt]1:网桥模式[size=10.5000pt]2:安装好vmtoos[size=10.5000pt]3:安装好yum[size=10.5000pt]4:安装好ss ...
- 实验一:JAVA实验环境搭建 ,JDK下载与安装及 Eclipse下载与安装
一.搭建JAVA实验环境 1.JDK的下载 (1)打开 IE 浏览器,输入网址“http://www.oracle.com/index.html”,浏览 Oracle 官方主页.鼠标双击Downloa ...
- xv6 操作系统的环境搭建
xv6 是 MIT 设计的一个教学型操纵系统.xv6 可在 Intel X86 框架上运行,为了方便,建议将 xv6 运行在 QEMU 虚拟机器上,本人的实验环境是 ubuntu 18.04 . 1. ...
随机推荐
- 跨域iframe高度自适应(兼容IE/FF/OP/Chrome)
采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域.跨域两种情况. 由于客户端js使用浏览器的同源安全策 ...
- page59-一种能够累加数据的ADT(可视化版本) [可用于数据挖掘可视化工具]
public class VisualAccumulator VisualAccumulator() 创建一个累加器 void addDataValue(double val) 添加一个新的数据值 d ...
- CentOS服务器的16个监控命令
你可以通过图形化用户界面(GUI)程序来获取这些外壳命令提供的大量信息,具体取决于使用哪一种Linux发行版.比如说,SUSE Linux就有一款出色的.图形化配置和管理工具YaST,KDE的KDE ...
- HTML5+开发移动app-mui开发示例
mui 官网:http://dcloudio.github.io/mui/ 说明:希望你可以把官网内容通读一遍,这是以后开发的基础 开始 新建项目 在首页点击新建移动App,如下: 或者在项目管理器内 ...
- HTML页面中常见的一些小方法
在<Head>标签中加 <meta http-equiv="pragma " content="no-cache"> <met ...
- 移动开发Html 5前端性能优化指南
详细内容请点击 PC优化手段在Mobile侧同样适用在Mobile侧我们提出三秒种渲染完成首屏指标基于第二点,首屏加载3秒完成或使用Loading基于联通3G网络平均338KB/s(2.71Mb/s) ...
- 人情世故&潜规则
大凡成功的牛人,无一例外都明白这一点.他们读懂了社会的本质和人际交往的潜规则,知道对方需要什么,知道对方脑子里在想什么.你几乎看不见他奔波劳碌,但是在不动声色中,他就已经实现人生目标.他们成功的密码是 ...
- jQuery插件的编写和使用 <思维导图>
以下是jQuery插件的编写和使用的思维导图,全屏观看,请点击:jQuery插件的编写和使用
- jQuery自定义Web页面鼠标右键菜单
jQuery自定义Web页面鼠标右键菜单 右键菜单是固定的,很多时候,我们需要自定义web页面自定义菜单,指定相应的功能. 自定义的原理是:jQuery封装了鼠标右键的点击事件(“contextmen ...
- [老老实实学WCF] 第四篇 初探通信--ChannelFactory
老老实实学WCF 第四篇 初探通信--ChannelFactory 通过前几篇的学习,我们简单了解了WCF的服务端-客户端模型,可以建立一个简单的WCF通信程序,并且可以把我们的服务寄宿在IIS中了. ...