基于Bochs安装GeekOs

2023-11-13

开发环境介绍

1.Ubuntu-16.04
2.boch2.6.11 下载地址: http://sourceforge.net/projects/bochs/files/bochs/2.6.11/
3.nasm-2.08.01 下载地址: http://www.nasm.us/pub/nasm/releasebuilds/2.08.01/
4.GeekOs0.3.0 下载地址:
https://sourceforge.net/projects/geekos/files/

安装bochs

前往bochs的官网下载bochs的压缩包,这里,我们选用bochs-2.6.11.tar.gz
下载完之后,进入下载的目录,对安装包进行解压

tar -zxvf bochs-2.6.11.tar.gz

解压之后,安装相关依赖环境

sudo apt-get install build-essential xorg-dev libgtk2.0-dev

配置参数打开调试功能开关

./configure --enable-debugger --enable-disasm

编译

sudo make

安装

sudo make install 

配置bochs

首先,在终端输入

bochs -help cpu

查看系统支持的cpu配置
在这里插入图片描述
接着,对bochsrc文件进行修改。

sudo gedit .bochsrc

在文件的第190行,更改cpu的model属性为上述cpu支持的值,例如,可以更改为:cpu: model=bx_generic
在这里插入图片描述
再去往文件的第926行,将该行注释掉
在这里插入图片描述
之后,输入bochs命令进行测试,可以看到bochs已经能够正常运行。
在这里插入图片描述

安装nasm

这里我们进入官网,选择nasm-2.08.01.tar.gz,进行下载
下载完之后解压,进入nasm-2.08.01 目录,依次输入以下命令:

./configure
sudo make
sudo make install

这里,我们便安装好了nasm

编译GeekOs

首先我们前往它年久失修的官网,下载源代码包,下载完后使用unzip命令进行解压
之后,进入目录

cd geekos-0.3.0/src/project0/build

对Makefile文件的第148行,149行进行如下更改
为第148行增加编译选项 -fno-stack-protector
删除第149行的 -Werror 参数
在这里插入图片描述
接着,再分别为100行,106行加上 -m32参数
为第109行加上 -m elf_i386 参数
完成后的效果如下所示:
在这里插入图片描述
之后,再依次输入以下命令

sudo make clean
sudo make depend
sudo make

可以发现,编译成功了。使用 ls -a命令进行检查,发现存在fd.img以及.bochsrc文件。

这时,使用sudo gedit .bochsrc修改配置文件

# An example .bochsrc file.
# You will need to edit these lines to reflect your system.

vgaromimage: file= /usr/share/bochs/VGABIOS-lgpl-latest
romimage: file=$BXSHARE/BIOS-bochs-latest
megs: 8
boot: a
floppya: 1_44=fd.img, status="inserted"
log: ./bochs.out
mouse: enabled="0"
private_colormap: enabled="0"
# Uncomment this to write all bochs debugging messages to
# bochs.out.  This produces a lot of output, but can be very
# useful for debugging the kernel.

保存并退出gedit。
最后,输入bochs,测试GeekOs系统
在这里插入图片描述
可见,GeekOs系统已经被成功安装。

参考:
bochs的安装
Ubuntu18.04安装配置Bochs2.6.9与编译运行GeekOS
GeekOS: 一、构建基于Ubuntu9.04的实验环境

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Bochs安装GeekOs 的相关文章

随机推荐

  • openssl md5

    关于 16位和32位 md5得到的是一个16字节的散列值 每个字节用16进制 0x 格式成两个字符 连起来得到一个32个字符的串这就是所说的32位 16位就是取的32位的中间段 md5 aabbccdd 32位 bf3b2290e229da
  • (海伦公式)已知三角形三条边长,求面积

    海伦公式 已知三角形三条边长 求面积 海伦公式 S p p a p b p c 其中p是三角形的周长的一半p a b c 2 以下转自百度百科 海伦公式海又译作希伦公式 海龙公式 希罗公式 海伦 秦九韶公式 传说是古代的叙拉古国王 希伦 H
  • jQuery与原生JS相互转化

    前端发展很快 现代浏览器原生 API 已经足够好用 我们并不需要为了操作 DOM Event 等再学习一下 jQuery 的 API 同时由于 React Angular Vue 等框架的流行 直接操作 DOM 不再是好的模式 jQuery
  • WSL 2(Ubuntu18.04)编译Linux内核(5.7.9)并替换掉WSL 2原有内核

    准备工作 配置库 由于编译过程中需要很多库 因此需要提前进行配置 如果编译过程中遇到的报错均在下文的报错信息中记录 准备安装的库的命令为 sudo apt get install libncurses5 dev libncursesw5 d
  • Android NDK Address Sanitizer

    文章目录 构建 运行 堆栈轨迹 二进制测试 此文章是基于官方文档 Address Sanitizer的基础上做了一些扩展说明 从 API 级别 27 Android O MR 1 开始 Android NDK 可支持 Address San
  • 华为OD机试真题2022Q4 A + 2023 B卷(Java)

    大家好 我是哪吒 五月份之前 如果你参加华为OD机试 收到的应该是2022Q4或2023Q1 这两个都是A卷题 5月10日之后 很多小伙伴收到的是B卷 那么恭喜你看到本文了 抓紧刷题吧 B卷新题库正在更新中 华为机试有三道题 第一道和第二道
  • 安装win10 和ubuntu18.04双系统时 device for boot installation的选择

    最近在笔记本上安装ubuntu18 04 电脑预装了win10 有两个盘 128G的SSD 1T的HDD win10装在了SSD上 磁盘是GPT UEFI启动模式 在HDD上压缩了空间安装Ubuntu 在安装界面上有一个 Device fo
  • Selenium - Tracy 小笔记2

    selenium本身是一个自动化测试工具 它可以让python代码调用浏览器 并获取到浏览器中加们可以利用selenium提供的各项功能 帮助我们完成数据的抓取 它容易被网站识别到 所以有些网站爬不到 它没有逻辑 只有相应的函数 直接搜索即
  • PAT乙级1052 卖个萌 (20 分)测试点123

    https pintia cn problem sets 994805260223102976 problems 994805273883951104 测试点0 Are you kidding me 中 为转义字符 要用双 表示 测试点1
  • 动态规划经典例题-最长公共子序列-python

    最长公共子序列 问题描述 题解 以问题中为例 A helloworld B loop res i j 表示 截止到B的第i个字符和截止到A的第j个字符的最长公共子序列 例如 res 2 5 2表示第2行第5列 也就是lo和hello的最长公
  • centos7 安装 bugfree3

    1 安装apache yum install httpd 2 安装mysql wget i c http dev mysql com get mysql57 community release el7 10 noarch rpm yum y
  • set的特点

    set不允许元素重复且无序 常用实现有HashSet LinkedHashSet和TreeSet HashSet通过HashMap实现 HashMap的key即HashSet存储的元素 所有key都使用相同的Value 一个名为PRESNT
  • 6. Modules

    6 Modules 如果你退出 Python 解释器并重新进入 你做的任何定义 变量和方法 都会丢失 因此 如果你想要编写一些更大的程序 最好使用文本编辑器先编写好 然后运行这个文件 这就是所谓的创建 脚本 随着你的程序变得越来越长 你可能
  • C语言--学生管理系统--(完整代码)

    本系统分成了三个文件 main c student c student h 功能 实现对班级成员的增加 删除 修改 遍历 根据成绩排序 增加 会检查 现在班级已有的人数 班级是否已满 没有学号重复检测 删除 根据学号查询 gt 删除 会判断
  • 【Java开发环境配置】1-JDK安装教程&环境变量配置(21)

    一 JDK概念 JDK 是Java开发工具包 Java Development Kit 的缩写 它是一种用于构建在 Java 平台上发布的应用程序 applet 和组件的开发环境 其中包括了Java编译器 JVM 大量的Java工具以及Ja
  • stata豪斯曼检验报错

    xsmle gdp gt cz gdzc ersan ur model sdm wmat Wzhusj hausman nolog Warning All regressors will be spatially lagged 在使用xsm
  • 转载:switch/case语句中,每个case都要加花括号

    前言 多写代码 才能发现问题 即使现成的代码 手打一遍也有收获 这不遇到一个很无语的问题 问题及原因 解决方法见以下转载内容 原创者 ChirlChen 博客地址 https blog csdn net qqmindyourwill art
  • 网络编程之网络丢包故障如何定位?如何解决?

    引言 本期分享一个比较常见的网络问题 丢包 例如我们去ping一个网站 如果能ping通 且网站返回信息全面 则说明与网站服务器的通信是畅通的 如果ping不通 或者网站返回的信息不全等 则很可能是数据被丢包了 类似情况想必大家都不陌生 针
  • 3分钟搞懂:JavaScript 和 ECMAScript

    JavaScript 和 ECMAScript ECMAScript 是 JavaScript 语言的国际标准 JavaScript 是 ECMAScript 的一种实现 Adobe ActionScript 和 JScript 同样实现了
  • 基于Bochs安装GeekOs

    开发环境介绍 1 Ubuntu 16 04 2 boch2 6 11 下载地址 http sourceforge net projects bochs files bochs 2 6 11 3 nasm 2 08 01 下载地址 http