首页 > 其他分享 >操作系统实验 & bochs 环境配置

操作系统实验 & bochs 环境配置

时间:2023-04-21 13:00:40浏览次数:40  
标签:enable 操作系统 -- sudo apt 实验 bochs 安装

wsl2 - Ubuntu 22.04 + VSCode + bochs + xfce4 + VcXsrv

笔者环境 wsl2 - Ubuntu 22.04

0. 安装WSL2 & VSCode

网上教程千千万,请自行查找

WSL2 WSL2安装教程_pengege666的博客-CSDN博客
​ 切换清华源:ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
​ 备份:sudo cp /etc/apt/sources.list /etc/apt/sources.bak
​ 修改:sudo vim /etc/apt/sources.list
​ 更新:sudo apt update

VSCodeVisual Studio Code - Code Editing. Redefined

​ 安装插件:WSL

​ 然后点击左下绿色按钮,按提示连接WSL

1. 安装软件包

以下命令以行为单位粘贴到终端运行

sudo apt update
sudo apt upgrade

sudo apt-get install -y neofetch
sudo apt-get install -y gcc
sudo apt-get install -y vim
sudo apt-get install -y build-essential
sudo apt-get install -y g++
sudo apt-get install -y libgtk2.0-dev
sudo apt-get install -y nasm
sudo apt-get install -y gdb

2. 配置 WSL2 图形界面

采用 xfce4 + VcXsrv

xfce4是一个轻量级的类Unix的桌面系统,提供桌面环境

VcXsrv提供图形界面,使在windows子系统wsl里的操作能够图形化显示

2.1 安装VcXsrv

下载地址:https://sourceforge.net/projects/vcxsrv/files/latest/download


选择one large window


一定勾选Disable access control

看到下图即为成功

*解决高DPI模糊问题

2.2 安装xfce4

sudo apt install -y xfce4

2.3 配置

打开 .bashrc:cd ~ & vim .bashrc

在 .bashrc 文件最后添加

# 配置xfce4
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0

添加后执行source ~/.bashrc命令。

2.4 启动

sudo startxfce4

此外,当看到防火墙选项时,请同意其通过

小技巧:当在终端执行sudo startxfce4后,xfce4会在前台输出log无法执行其他命令。此时可以再开一个终端窗口执行其他命令(比如开bochs什么的)

3. 安装bochs

bochs 2.6.2:https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz

3.1 下载

在Linux下使用wget命令下载

wget https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz

3.2 解压

* 非必须

*移动源码到合适的目录(笔者这里放在 ~/OS/实验3 下)

mv bochs-2.6.2.tar.gz OS/实验3

*打开源码所在目录

cd OS/实验3

解压

tar -zxvf bochs-2.6.2.tar.gz

3.3 配置

1.进入解压出来的目录

cd bochs-2.6.2/

2.生成 Makefile

请在终端粘贴下列命令(请整块粘贴)

./configure \
--prefix=/your_path/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11 \
LDFLAGS='-pthread' \
LIBS='-lX11'

下对配置命令进行解析 来源:《操作系统真相还原》

--prefix=/your_path/bochs \			# 指定安装目录,安装目录替换your_path
--enable-debugger \				# 打开bochs自身调试器
--enable-disasm \				# 使bochs支持反汇编
--enable-iodebug \				# 启动io接口调试器
--enable-x86-debugger \				# 使bochs支持x86调试器
--with-x \					# 使用x windows
--with-x11 \					# 使用x11图像用户接口

下给出笔者所用命令

./configure \
--prefix=/home/fwm-0100/bochs \
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11 \
LDFLAGS='-pthread' \
LIBS='-lX11'

*3. 修改Makefile

vim Makefile

在92行添加

IBS =-lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lpthread

为啥要搞这步捏? 来源:《操作系统真相还原》

3.4 编译安装

编译:make

安装:sudo make install

bochs安装目录如下:

3.5 配置bochs

打开bochs安装目录,笔者这里是/home/fwm-0100/bochs/bin

创建bochsrc.disk

sudo vim bochsrc.disk

输入以下内容(注意路径/home/fwm-0100要改成自己的bochs安装目录)

###############################################
######## Configuration file for Bochs #########
###############################################

# 第一步
# 设置Bochs在运行过程中能够使用的内存,本例为32MB
megs: 32


# 第二步
# 设置对应真实机器的BIOS和VGA BIOS
# 对应两个关键字:romimage 和 vgaromimage
# 注意这里的/home/fwm-0100 要替换为自己的安装目录
romimage: file=/home/fwm-0100/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/fwm-0100/bochs/share/bochs/VGABIOS-lgpl-latest


# 第三步
# 设置Bochs所使用的磁盘
# 软盘的关键字为floppy。
# 若只有一个软盘,则使用floppya即可,若有多个,则为floppya,floppyb…
# floppya: 1_44=a.img, status=inserted


# 第四步
# 选择启动盘符
# 默认从软盘启动,将其注释,我们使用从硬盘启动
# boot: floppy
boot: disk


# 第五步
# 设置日志文件的输出
log: bochs.out


# 第六步
# 开启或关闭某些功能

# 关闭鼠标
mouse: enabled=0

# 打开键盘
keyboard_mapping: enabled=1,map=/home/fwm-0100/bochs/share/bochs/keymaps/x11-pc-us.map

# 硬盘设置
ata0: enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14

# gdb支持(需要在配置的时候就开启,不然会报错)
# 这样gdb便可以远程连接到此机器的1234端口调试
# gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0

################### 配置结束 ###################

3.6 运行bochs

进入bochs安装目录下的bin目录,运行./bochs

此时在VcXsrv出现一个bochs的黑色窗口

在终端输入c 在VcXsrv下的bochs的黑色窗口出现bochs的UI

看到下面的窗口,证明已经成功啦!!!!


3.7 常见问题

原因:disk有tab(空格)

解决:删除配置文件空格即可

原因:看图,不应该换行

解决:不换行喽

原因:配置编译的时候没写gdb

解决:配置文件就不要加gdb喽,注释掉

原因:配置文件没有放在bochs安装目录的bin目录下

解决:移动到bin目录下,如:/home/fwm-0100/bochs/bin

参考文档

《操作系统真相还原》

通过 VcXsrv 在 WSL2 上使用图形化界面(xfce4) - bluenlq - 博客园 (cnblogs.com)

WSL2(Ubuntu 22.04.2 LTS) + Win11 + Bochs-Gui_wsl安装bochs_物与我皆无尽也的博客-CSDN博客

Linux下bochs打开黑屏解决方法

特别鸣谢:ZGY

标签:enable,操作系统,--,sudo,apt,实验,bochs,安装
From: https://www.cnblogs.com/lfcoding/p/17336550.html

相关文章

  • 国产操作系统之银河麒麟服务器版V10安装
    国产操作系统之银河麒麟服务器版V10安装https://blog.csdn.net/carefree2005/article/details/128003425 恒悦sunsite于2022-11-3008:30:00发布4159收藏16分类专栏:国产操作系统文章标签:国产操作系统9090console控制台版权国产操作系统专栏收录该内容10篇文章1......
  • 银河麒麟服务器操作系统安装VMware Tool
    银河麒麟服务器操作系统安装VMwareTool 安装前提:确保虚拟机连接iso 注:因为我已经安装过VMwareTools,因此此时是显示重新安装 点击重新安装后,会弹出如下对话框,选择"是"  选择"确定"弹出如下界面,将标红文件解压到桌面  鼠标右键该压缩包,选择“解压缩到...........
  • 银河麒麟高级服务器操作系统V10 SP3安装kafka_2.12-2.3.1
    银河麒麟高级服务器操作系统V10SP3安装kafka_2.12-2.3.1 1.安装环境设置1关闭Selinux12345678910111213141516171819[root@localhost~]#vim/etc/selinux/config #Thisfilecontrolsthestate of SELinux on thesystem.#SELI......
  • Ubuntu操作系统纯内网环境搭建ntp时钟同步服务器//京鸿通信/www.kyohoon.com/15507589
    一、环境准备   服务器:192.168.10.181(Ubuntu操作系统)   客户端:192.168.10.82 (Ubuntu操作系统)  所有服务器均不能访问互联网二、ntp服务器端操作:   (1).现在服务器端安装ntp服务器安装包,首先需要在172.16.20.129服务器上准备好ntp安装包。并进行安装ntp......
  • MFC-IsWow64Process 32位进程是否运行在64位操作系统中
     CStringstr;BOOLbIsWow64=FALSE;BOOLb=IsWow64Process(GetCurrentProcess(),&bIsWow64);//32位进程是否运行在64位操作系统中/*指定进程是否运行在64位操作系统的32环境(WOW64)下参数1:HANDLEhProcess进程的句柄。句柄必须具有PROCESS_......
  • 链路聚合-实验
    一、实验背景什么是链路聚合?将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入吞吐量在各成员端口的负载分担当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担......
  • UML时序图实验报告
    1,这是一张向我们直接展示了银行取款活动图,首先我们需要填写表单,其次需要输入密码,根据判断条件,检查密码的正误,密码错误直接结束,密码正确,根据用户的需求,如果取款则出款并结束,如果是计算利息,则执行打印清单操作,并结束。   2,这张图片展示了用户想要续借图书的时序图,这里的目......
  • xv6操作系统启动过程
    当按下系统电源按键后,做一些硬件层面的配置和初始化:上电复位:在开机时,计算机进行硬件复位,确保寄存器和其他硬件组件处于初始状态。检查和测试硬件:计算机进行一系列硬件检查和自检操作,以确保硬件组件功能正常。这可能包括内存检测、CPU测试等。初始化硬件组件:初始化和配置计算......
  • 数据中心厂商超云加入龙蜥社区,多款服务器完成与龙蜥操作系统适配
    近日,长城超云(北京)科技有限公司(以下简称“超云”)签署了CLA(ContributorLicenseAgreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis)。超云是由CEC中国电子、云基地产业基金联合注资成立的国家高新技术企业,其专注于云基础架构、云系统、云服务三大产业布局,现已形成了覆盖X86服......
  • 【原创】实验验证 -fstack-protector 编译选项效果
     使用 -fstack-protector选项的编译脚本  [root@Bettystack_smash_test]#catmk.sh  #!/bin/bash g++-O2-Wall-m32-shared-Wl,-fpiccaptureexception.cpp-olibcaptureexception.so gcc-g-fstack-protector-Wall-U_FORTIFY_......