- Java锁的逻辑(结合对象头和ObjectMonitor)
- 还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
- 自动注册实体类到EntityFrameworkCore上下文,并适配ABP及ABPVNext
- 基于Sklearn机器学习代码实战
wsl2 - Ubuntu 22.04 + VSCode + bochs + xfce4 + VcXsrv 。
笔者环境 wsl2 - Ubuntu 22.04 。
网上教程千千万,请自行查找 。
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 。
VSCode : Visual Studio Code - Code Editing. Redefined 。
安装插件:WSL 。
然后点击左下绿色按钮,按提示连接WSL 。
终端 :Microsoft Store就有 。
以下命令以行为单位粘贴到终端运行 。
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
采用 xfce4 + VcXsrv 。
xfce4是一个轻量级的类Unix的桌面系统,提供桌面环境 。
VcXsrv提供图形界面,使在windows子系统wsl里的操作能够图形化显示 。
下载地址: https://sourceforge.net/projects/vcxsrv/files/latest/download 。
选择 one large window 。
一定勾选Disable access control 。
看到下图即为成功 。
* 解决高DPI模糊问题 。
sudo apt install -y xfce4 。
打开 .bashrc: cd ~ & vim .bashrc 。
在 .bashrc 文件最后添加 。
# 配置xfce4
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
添加后执行 source ~/.bashrc 命令.
sudo startxfce4 。
此外,当看到防火墙选项时,请同意其通过 。
小技巧 :当在终端执行 sudo startxfce4 后,xfce4会在前台输出log无法执行其他命令。此时可以再开一个终端窗口执行其他命令(比如开bochs什么的) 。
bochs 2.6.2: https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz 。
在Linux下使用wget命令下载 。
wget https://sourceforge.net/projects/bochs/files/bochs/2.6.2/bochs-2.6.2.tar.gz 。
* 非必须 。
*移动源码到合适的目录(笔者这里放在 ~/OS/实验3 下) 。
mv bochs-2.6.2.tar.gz OS/实验3 。
*打开源码所在目录 。
cd OS/实验3 。
解压 。
tar -zxvf bochs-2.6.2.tar.gz 。
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
为啥要搞这步捏? 来源:《操作系统真相还原》 。
编译: make 。
安装: sudo make install 。
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
################### 配置结束 ###################
以下操作更加建议直接在图形化界面下的终端执行命令 。
进入bochs安装目录下的bin目录,运行 ./bochs 。
此时在VcXsrv出现一个bochs的黑色窗口 。
所有需要输入的地方请见下图中框出部分 。
在终端输入 c 在VcXsrv下的bochs的黑色窗口出现bochs的UI 。
看到下面的窗口,证明已经成功啦!!!! 。
常见问题 。
原因 :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 。
最后此篇关于操作系统实验&bochs环境配置的文章就讲到这里了,如果你想了解更多关于操作系统实验&bochs环境配置的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在从事一个名为 pintos 的操作系统编程项目。它按照命令 pintos run nameOfProcess 在 bochs 上运行 这是我收到的错误信息 Writing command lin
我想在运行 bochsdbg 时在 0x7c00 处设置断点。 我不想每次都自己输入这两个命令。 b 0x7c00 c 如何在 bochsrc.txt 中做到这一点? 谢谢~ 最佳答案 使用魔
我有启用调试的 bochs 版本。虽然我偶尔需要 Debug模式,但大多数时候,我想直接从终端启动 bochs,而不是停下来在调试命令行上按“c”。是否有一个设置可以做到这一点(不需要我安装两个不同版
我目前正在尝试在 bochs 中编译并运行一个简单的引导加载程序。目前,这是我的 bootloader.asm 文件: [BITS 16] [ORG 0x7C00] ;Where the code g
我想使用 Bochs 作为 8086 模拟器。是否有捷径可寻?我想要的是像 emu8086 ( http://www.emu8086.com/ ) 这样的东西。 最佳答案 如果程序的初始部分适合 51
最近我开始阅读这本关于操作系统开发的“书”(https://littleosbook.github.io/),我觉得它很棒,但是我在尝试以 bochs 启动我的图像时遇到了一个问题。 在某些时候,关于
过去几天我一直在 Bochs 中安装 Pintos。 “threads”目录中的所有内容都编译得很好,我也设置了所有路径。我在构建目录中有 kernel.lo 和其他文件。 问题出在我运行的最后一个命
我正在制作一个简单的操作系统内核,并想使用 bochs 来模拟它。目前,我正在使用 qemu 作为我的模拟器,但想切换到 bochs。我已经在 ubuntu 中下载并安装了 bochs,但找不到使用它
我正在使用 bochs 增强型调试器(bochs 带有 gui 的调试器),但它也在调试 BIOS 代码,这对我来说太复杂了。那么如何在代码开头手动设置断点呢? 我尝试了 int3 但它并没有就此停止
基本上我已经按照此处的说明进行操作了 http://sig9.com/bochs-grub创建一个裸镜像文件,该文件不执行任何操作,只是让 BIOS 启动 GRUB。 问题是: 我正在编写的内核将是
我将引导加载程序从 CHS 更改为 LBA,因此我替换了 int 13h 02h与 int 13h 42h .它在 QEMU 中正常工作,但是,我在使用 Bochs 和我的笔记本电脑运行它时遇到了麻烦
Abstract: I found many output formats supported in NASM generate very sparse machine-code interlaced
我正在尝试在 AMD 286 系统上使用异常处理来初始化保护模式。我已经在 Bochs 上调试了下面的代码,它在那里工作得很好。在 Pentium 4 机器上运行时也是如此。但在 286 上,当它到达
我最近在研究os,但是我不能让bootloader工作 bochsrc.floppy: #configuration file generated by Bochs plugin_ctrl: bios
我在全新安装的 Fedora 22 AMD64 系统上使用 BOCHS (Paket bochs-2.6.2-7.fc22.x86_64) 时遇到了一些麻烦。我使用 yum 获取 bochs,但如果我
我正在尝试在我的内核开发研究中使用 ACPI。当执行 port_byte_out(0xB004, 0x0000 | 0x2000) 代码时,bochs 给出“write to port 0xb004
Prototype mismatch: sub main::SIGVTALRM () vs none at /home/abhijay/pintos-os/pintos/src/utils/pinto
我正在关注 brokenthorn OS 开发系列,直到现在我能够成功运行 bootloader stage1 但是在 linux 机器(ubuntu 16.04)上的 bochs 模拟器中从 FAT
我正在尝试关注 "The little book about OS development"并做一个我在 bochs 中启动的小型操作系统。 但是我遇到了一个我无法解决或解释的问题。简而言之,当传递一
我是一名优秀的程序员,十分优秀!