Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS
Ubuntu20.04/18.04安装Bochs2.6.9编译运行GeekOS
请注意:博主仅测试在Ubuntu18和Ubuntu20上成功安装Bochs-2.6.9、nasm-2.08.02、geekos-0.3.0,其它版本可能会出现不兼容的情况。若安装调试过程中出现各种奇奇怪怪的错误,请百度报错信息,或给我留言。博主也是在多次失败的情况下,总结各位大佬的解决方案,才成功的。
1.在电脑上安装Linux操作系统
安装过程就不多介绍了,放个Ubuntu的种子,需要的自行下载
- Ubuntu 18.04 Desktop (amd64)
magnet:?xt=urn:btih:286D2E5B4F8369855328336AC1263AE02A7A60D5&dn=ubuntu-18.04.4-desktop-amd64.iso
- Ubuntu 20.04 Desktop (amd64)
magnet:?xt=urn:btih:9FC20B9E98EA98B4A35E6223041A5EF94EA27809&dn=ubuntu-20.04-desktop-amd64.iso&xl=2715254784
Ubuntu20安装成功如下图
2.编译安装Bochs需要准备好安装环境
安装Bochs之前需要联网安装下面这些软件:
sudo apt-get install build-essential
sudo apt-get install xorg-dev
sudo apt-get install bison
sudo apt-get install libgtk2.0-dev
sudo apt-get install gcc-multilib
下载安装速度可能较慢,需要点耐心,如果下载中出现失败,用手机开个热点给电脑试下
3.安装Bochs2.6.9
下载Bochs2.6.9
进入链接: 下载地址.
找到bochs-2.6.9.tar.gz并下载保存解压bochs-2.6.9.tar.gz
可以直接鼠标右键选择“提取到此处”安装Bochs
进入bochs-2.6.9目录
在终端输入下列命令
sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install
启动Bochs
直接在终端输入bochs启动,这里可能会报错,不用着急,百度可以解决。
若没有报错,则会出现Bochs的菜单
但是建议选项为[2],没有找到配置文件
配置Bochs
当我们在终端输入bochs后,
Bochs会自己在当前目录顺序寻找以下文件作为默认配置文件:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc(仅对Windows有效)
我们可以自己创建一个名为.bochsrc的文件,来指定Bochs配置我们想要的虚拟机
(请将.bochsrc文件放在 geekos-0.3.0/src/project0/build 目录下。没有geekos?请看第4步!在此目录下会有一个自带的.bochsrc文件,但它是隐藏文件)
在终端输入
sudo gedit .bochsrc
粘贴以下内容(注意这里要确保romimage和vgaromimage这两项的路径是正确的,不然虚拟机启动时会提示“couldn’t open ROM image file”的错误,还有Bochs的版本不一样的话,键盘设置的方式也不太一样):
#################################################################
# Bochs的配置文件
# Configuration file for Bochs
################################################################## how much memory the emulated machine will have
megs: 32# filenameof ROM images
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest# which disk image will be used 这个是启动软盘
floppya:1_44=fd.img, status=inserted# choose the boot disk 确定启动方式
boot: floppy# where do we send log messages?
log: bochsout.txt# disable the mouse
mouse: enabled=0# enable key mapping ,using US layout as default
keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map
保存退出
4.安装nasm和下载GeekOS
- 下载安装nasm
进入链接: 下载地址.
选择nasm-2.08.02.tar.gz,下载保存
解压后进入nasm-2.08.02目录
依次输入以下命令:
./configure
sudo make
sudo make install
再在终端输入nasm -version
出现2.08.02,OK继续!
- 下载GeekOS
直接去GeekOS下载
下载完成后解压
5.编译GeekOS
进入目录 geekos-0.3.0/src/project0/build
终端输入
sudo make depend
sudo make
会报错,因为Makefile在make时将warnings全部视为了errors
于是我们打开当前目录下的Makefile
sudo gedit Makefile
找到第149行的-Werror:
CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror
修改为:
CC_GENERAL_OPTS := $(GENERAL_OPTS)
在Makefile文件的第148行 GENERAL_OPTS := -O -Wall $(EXTRA_C_OPTS) 后面添加编译选项:
(高版本的Ubuntu会有优化问题,导致project运行时线程报错,所以此处可以把-O改成-O0,取消优化)
-fno-stack-protector
然后把Makefile文件中的100行至109行修改为如下内容:
TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32 # Host C compiler. This is used to compile programs to execute on
# the host platform, not the target (x86) platform. On x86/ELF
# systems, such as Linux and FreeBSD, it can generally be the same
# as the target C compiler.
HOST_CC := gcc -m32 # Target linker. GNU ld is probably to only one that will work.
TARGET_LD := $(TARGET_CC_PREFIX)ld -m elf_i386
然后输入命令:
sudo make clean
sudo make depend
sudo make
会出现
cat geekos/fd_boot.bin geekos/setup.bin geekos/kernel.bin > fd.img
即为编译成功
注意:这里的fd.img是软盘文件,和.bochsrc文件相关,非常重要!如果启动Bochs出现黑色界面,但是有弹窗报错,多半和它有关。
6.运行GeekOS
进入目录 geekos-0.3.0/src/project0/build
终端输入:bochs
会出现Bochs菜单,且建议选项为[6]意思是开始模拟
输入"6"弹出黑色页面,然后再在命令行输入"c"
如果出现错误提示,可能是因为软盘映像中没有找到编译好的可执行程序,所以需要我们导入程序。
可以自己编写一段程序,也可以使用自带的示例程序,将编译好的引导扇区写进软盘。
Linux下自带了dd命令可以很方便地进行软盘读写:
sudo dd if=main.o of=fd.img bs=512 count=1 conv=notrunc
("main.o"是要写入软盘的程序文件,“fd.img"是目的软盘,可以用自己建的软盘"a.img”,也可以用自动生成的)
重新运行GeekOS,看到Bochs界面上出现的“Welcome to GeekOS!”,恭喜你成功了!
感谢观看
如果文章对你有用,点个赞再走吧,有问题的可以评论区讨论。
Ubuntu18/20安装配置Bochs2.6.9与编译运行GeekOS相关推荐
- 硬实时RTLinux安装配置详解 (二):编译运行RTLinux
硬实时RTlinux系统配置 4. 配置RTLinux 4.1 配置Patch 4.2 配置RTLinux内核 4.3. 编译Rtlinux内核 4.4 制作initramfs启动引导: 5. 大功告 ...
- ubuntu18.4中查看mysql_Ubuntu18.0.4下mysql 8.0.20 安装配置方法图文教程
mysql 8.0.20 安装配置方法图文教程整理下,供大家参考. 一.准备工作 1.检查是否已经安装mysql 当前计算机没有安装mysql. 2.下载MySQL8.0. 根据MySQL安装指南,发 ...
- Ubuntu18.04安装配置Qt5.15
Ubuntu18.04安装配置Qt5.15 Qt选择 下载Qt 安装Qt5.15.0 配置 后记 Qt选择 在官方的声明中,Qt5.15是Qt5.x的最后一个LTS版本,增加了即将在2020年底推出的 ...
- win10配置mysql8.0_Win10下mysql 8.0.20 安装配置方法图文教程
Win10系统下MySQL 8.0.20安装和配置超详细教程 MySQL下载 MySQL直接去官网下载就行,选择community版本(免费)下载,链接. 在select operating syst ...
- Ubuntu18.04安装配置FRR
FRR 文章描述了如何在Ubuntu18.04的环境下安装配置frr 0. 更新安装源 vi /etc/apt/sources.list 更改文件内容 deb http://mirrors.aliyu ...
- MySQL8.0.20安装配置+用Navicat连接详细教程(win10,Navicat15)
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用 ...
- ubuntu18.04安装配置指南(实测)
Dustone 2021.5.9 本文为实验室Ubuntu重装系统后的配置简要指南,配置为1080Ti. 0:文件备份 桌面## 图片 文档 下载 matlab 主目录(project) sublim ...
- rea t插件 vscode_VSCode构建汇编语言环境(配置VSCode自动调用dosbox编译运行MASM/TASM程序)...
首先,最简单的方法当然是直接安装vscode插件比如下面这个:根据里面的说明使用即可 MASM/TASM - Visual Studio Marketplacemarketplace.visuals ...
- Ubuntu18.04安装配置jmol
说明: 本文介绍了在Ubuntu18.04下如何配置jmol-14.31.34. 一.安装openjdk ①更新apt源缓存 ②安装openjdk 二.上传文件到Downloads目录如下 三.解压文 ...
最新文章
- 数据中台解决的三大问题
- android开发我的新浪微博客户端-用户授权页面UI篇(3.1)
- windows目录内打开CMD的几种方法
- 解决debian apt-get upgrade 错误triggers ci file contains unknown directive `interest-noawait'
- python语言结构_Python语言表示语句结构时采用
- mysql逗号分隔正则查询_正则表达式在逗号分隔的列表中查找字符串和下一个字符-MySQL?...
- 大数据:Parquet文件存储格式
- click传值vue_对vue下点击事件传参和不传参的区别详解
- SSM框架项目的pom导入包和xml配置
- 快手大数据架构演进实录
- _2020年10个最好的Linux发行版本
- Linux 下压缩与解压.zip和.rar
- Java集合的所有知识点详解,偏通俗易懂,集合笔记
- 天宇物流公司创业计划书
- 产品读书《自控力:斯坦福大学最受欢迎的心理学课程》
- method call expected
- Java实现mds降维_降维算法MDS
- 压缩包文件如何将密码找回来
- execve头文件C语言,利用fork()和execve()运行程序
- webstorm解决git冲突