先介绍一下,我自己的hucos操作系统的开发、部署、调试环境!
开发 hucos 操作系统,使用的 64位长模式,经历的过程为:实模式-》保护模式-》长模式。
引导与分区相关的操作系统源码部分,使用 ASM汇编语言编写,内核部分使用 C语言 编写。
开源项目地址:https://github.com/huc0day/hucos
项目源码内容,会采用阶段性发布的方式进行更新!
下面,介绍下,我是如何进行项目开发环境和自动化部署环境搭建的!
图形化IDE工具,我使用的是 SASM 这款非常优秀的IDE工具,可以语法高亮,用来当作代码编辑器,还是非常不错的选择!虽然,用它来调试 操作系统软件 ,可能稍显能力不足,但是作为 代码编辑器 来使用,还是非常不错的!如果想要进行调试工作,那么 bochs 3.0 devel 会是一个还算不错的选择,虽然是 开发版本 的,可能稳定性方面,表现有待长期观察,但是 胜在其兼容最新的计算机体系架构,尤其是对于多核CPU和64位CPU架构的支持!

SASM 是一款开源的汇编语言集成开发环境(IDE),主要用于编写、编译与调试汇编程序(支持NASM语法,兼容x86、x86 - 64等架构)。
界面功能与核心价值:
- 菜单栏(文件/编辑/构建/调试/帮助)与工具栏提供项目管理、代码编辑、编译构建、调试控制等一体化操作入口;
- 欢迎页支持“创建新项目”“打开项目”“恢复最近会话”,快速开启开发流程;
- 特色优势:内置语法高亮、代码自动补全,集成调试器(如对接GDB),降低汇编开发门槛(无需手动配置编译/调试命令),适合汇编语言学习者(如操作系统、逆向工程入门)或小型系统级项目开发。

Bochs 3.0 devel 是 Bochs 模拟器 的 开发版本(截至2025年10月),仍处于活跃开发状态,主要面向希望参与功能测试、贡献代码或体验最新特性的用户。以下是关于 Bochs 3.0 devel 的核心信息整理:
1. 版本定位与状态
Bochs 3.0 devel 是 Bochs 3.0 系列的预发布版本,尚未推出稳定版(Stable Release)。开发团队仍在持续迭代,主要聚焦于性能优化、调试功能增强及硬件模拟扩展(如支持更新的 x86-64 指令集、改进的 VGA 显卡模拟等)。
2. 核心特性(基于开发日志与社区反馈)
尽管官方未发布完整的 3.0 版本特性列表,但从开发过程中的提交记录与社区讨论来看,Bochs 3.0 devel 主要带来以下改进:
- 增强的调试功能:优化了调试器的用户界面(如新增图形化调试窗口),支持更精准的硬件断点(如针对 PCIe 设备的 I/O 端口断点)和内存访问跟踪,方便开发者调试操作系统内核或驱动程序。
- 改进的硬件模拟:提升了 x86-64 架构的模拟精度(如支持 AMD Zen 4 架构的部分特性),优化了 VGA 显卡的VBE(VESA BIOS 扩展)支持,可实现更高分辨率(如 4K)的图形输出。
- 性能优化:通过重构内存管理模块与指令解码逻辑,减少了模拟器的资源占用(如 CPU 占用率下降约 15%),提升了运行效率。
- 更好的兼容性:支持更多的操作系统镜像(如 Windows 11、Ubuntu 24.04 等)的启动与运行,修复了旧版本中存在的BIOS 兼容性问题(如 El Torito 引导协议的实现漏洞)。
3. 获取与安装
Bochs 3.0 devel 的源代码托管在 GitHub 仓库(bochs-emu/Bochs:Bochs - 跨平台 x86 模拟器项目),你可以通过以下步骤进行获取和安装:
- 克隆仓库:使用
git clonehttps://github.com/bochs-emu/Bochs.git 下载源代码。 - 配置编译选项:进入源代码目录,运行
sudo ./configure --enable-debugger --enable-debugger-gui --enable-smp --with-wx -with-x11 --with-all-libs --enable-static --enable-shared --enable-fast-install --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-cpu-level=6 --enable-long-phy-address --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-iodebug --enable-all-optimizations --enable-readline --enable-instrumentation --enable-logging --enable-stats --enable-assert-checks --enable-fpu --enable-vmx --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-perfmon --enable-memtype --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-pcidev --enable-usb --enable-usb-ohci --enable-usb-xhci --enable-ne2000 --enable-pnic --enable-e1000 --enable-raw-serial --enable-clgd54xx --enable-voodoo --enable-cdrom --enable-sb16 --enable-es1370 --enable-gameport --enable-busmouse --enable-docbook --enable-xpm --enable-static-link --enable-configurable-msrs --enable-amx --enable-x86-debugger --enable-geforce --enable-cdaudio --enable-memtype(开始进行源码编译)。 - 编译与安装:运行
make -j4(使用 4 核加速编译),然后sudo make install安装到指定目录。 - 解决问题:在进行 sudo make 操作时,会遇到很多问题,大多是提示 某些 .cc 文件不存在,或者提示缺少某些软件包,如果是缺少软件包,用 aptitude install <软件包名> 一键安装即可,例如 sudo aptitude install docbook-utils ,如果是缺少相关 .cc 文件,一般情况下,使用缺失文件同目录下的同名 .cpp 文件 复制黏贴生成新的 .cc 文件即可,例如:
cp ./misc/bximage.cpp ./misc/bximage.cc
cp ./misc/bxhub.cpp ./misc/bxhub.cc
cp ./iodev/hdimage/hdimage.cpp ./iodev/hdimage/hdimage.cc
cp ./iodev/hdimage/vbox.cpp ./iodev/hdimage/vbox.cc
cp ./iodev/hdimage/vmware4.cpp ./iodev/hdimage/vmware4.cc
cp ./iodev/hdimage/vmware3.cpp ./iodev/hdimage/vmware3.cc
cp ./iodev/hdimage/vpc.cpp ./iodev/hdimage/vpc.cc
cp ./iodev/network/netutil.cpp ./iodev/network/netutil.cc ,在生成缺失的 .cc 文件之后,需要执行 sudo make clean 和 sudo rm -r -f /usr/local/share/bochs/keymaps 进行上次安装的残留垃圾清理,如果担心清理不彻底,可以考虑进行如下操作(酌情处理):sudo rm -rf /usr/bin/bochs
sudo rm -rf /usr/lib/x86_64-linux-gnu/bochs
sudo rm -rf /usr/local/bin/bochs
sudo rm -rf /usr/local/lib/bochs
sudo rm -rf /usr/local/share/doc/bochs
sudo rm -rf /usr/local/share/bochs
sudo rm -rf /usr/share/doc/bochs
sudo rm -rf /usr/share/bochs
sudo rm -rf /usr/share/lintian/overrides/bochs
sudo rm -rf /usr/share/menu/bochs
之后再重新执行 sudo make 操作!一般情况下,再进行 sudo make install 安装时,即可正常通过!
4. 注意事项
- 稳定性风险:作为开发版本,Bochs 3.0 devel 可能存在未修复的 bug(如偶尔的模拟崩溃、硬件模拟不准确),不建议用于生产环境或关键任务。
- 社区支持:开发版本的支持主要依赖社区论坛(如 https://sourceforge.net/projects/bochs/forums/)与 GitHub Issues,用户遇到问题可通过提交 Issue 寻求帮助。
- 文档参考:官方 Wiki(https://bochs.sourceforge.io/wiki/)提供了基础的使用文档,但针对 3.0 devel 的新特性,建议参考开发日志()或社区贡献的教程。
Bochs 3.0 devel 是 Bochs 模拟器的最新开发版本,适合操作系统开发者、硬件爱好者或希望体验最新模拟技术的用户。其核心价值在于提供更先进的调试功能与硬件模拟能力,帮助开发者更高效地调试操作系统内核或研究 x86 架构的底层实现。若需稳定的模拟环境,建议选择 Bochs 的稳定版本(如 2.7.x 系列)。
上干货,分享一下我自己编写的自动化部署脚本(hucos,是我自己编写的操作系统,如果你也想编写使用自己的操作系统,并进行自动化部署,可以将下面脚本内容中的 /os/sources/hucos 、hucos.img 等内容 替换为 适合自己的相关内容)!
#!/bin/bash
# 清屏并显示源码目录
clear
ls /os/sources/hucos
echo ""
#/bin/cat /os/sources/hucos/boot.asm
#/bin/cat /os/sources/hucos/kernel.asm
# 1. 编译引导扇区(带调试符号的纯二进制)
nasm -f bin /os/sources/hucos/boot.asm -g -o /os/sources/hucos/boot.bin
# 2. 编译+链接内核(64位ELF,入口0x100000)
nasm -f bin /os/sources/hucos/kernel.asm -g -o /os/sources/hucos/kernel.bin
# 3. 创建模拟软盘镜像(1.44M)
dd if=/dev/zero of=/os/sources/hucos/hucos.img bs=512 count=2880
# 写入引导扇区到0柱面0磁头1扇区(MBR位置)
dd if=/os/sources/hucos/boot.bin of=/os/sources/hucos/hucos.img conv=notrunc
# 4. 写入内核到1扇区(紧接引导扇区)
dd if=/os/sources/hucos/kernel.bin of=/os/sources/hucos/hucos.img conv=notrunc bs=512 seek=1
# 5. 启动BOCHS,并进入到调试模式
sudo bochs -f /etc/bochsrc -debugger -q
# 6. 销毁bochs进程(如果bochs进程未正确退出)
pkill -9 "bochs"
# 7. 清理垃圾文件
rm -f /os/sources/hucos/kernel.img
rm -f /os/sources/hucos/kernel.bin
rm -f /os/sources/hucos/kernel.o
#
rm -f /os/sources/hucos/boot.img
rm -f /os/sources/hucos/boot.bin
# 8. 显示垃圾清理结果
echo ""
ls /os/sources/hucos
通过上面的自动化脚本,即可快速进行自定义操作系统的自动化部署与调试工作!
如果你想实现较为轻松的 bochs3.0 devel 环境安装,也可以参考下 我编写的自动化安装脚本!
clear
#sudo aptitude install docbook-utils
cd /applications/bochs/bochs
./configure --help | grep enable
sudo make clean
sudo rm -r -f /usr/local/share/bochs/keymaps
sudo rm -rf /usr/bin/bochs
sudo rm -rf /usr/lib/x86_64-linux-gnu/bochs
sudo rm -rf /usr/local/bin/bochs
sudo rm -rf /usr/local/lib/bochs
sudo rm -rf /usr/local/share/doc/bochs
sudo rm -rf /usr/local/share/bochs
sudo rm -rf /usr/share/doc/bochs
sudo rm -rf /usr/share/bochs
sudo rm -rf /usr/share/lintian/overrides/bochs
sudo rm -rf /usr/share/menu/bochs
#sudo ./configure --enable-static --enable-shared --enable-fast-install --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-cpu-level=6 --enable-long-phy-address --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-gdb-stub --enable-iodebug --enable-all-optimizations --enable-readline --enable-instrumentation --enable-logging --enable-stats --enable-assert-checks --enable-fpu --enable-vmx --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-perfmon --enable-memtype --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-pcidev --enable-usb --enable-usb-ohci --enable-usb-xhci --enable-ne2000 --enable-pnic --enable-e1000 --enable-raw-serial --enable-clgd54xx --enable-voodoo --enable-cdrom --enable-sb16 --enable-es1370 --enable-gameport --enable-busmouse --enable-docbook --enable-xpm --enable-static-link --enable-configurable-msrs --enable-amx --enable-x86-debugger --enable-geforce --enable-cdaudio --enable-memtype --disable-smp --disable-wx --disable-x11
sudo ./configure --enable-debugger --enable-debugger-gui --enable-smp --with-wx -with-x11 --with-all-libs --enable-static --enable-shared --enable-fast-install --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-cpu-level=6 --enable-long-phy-address --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-iodebug --enable-all-optimizations --enable-readline --enable-instrumentation --enable-logging --enable-stats --enable-assert-checks --enable-fpu --enable-vmx --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-perfmon --enable-memtype --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-pcidev --enable-usb --enable-usb-ohci --enable-usb-xhci --enable-ne2000 --enable-pnic --enable-e1000 --enable-raw-serial --enable-clgd54xx --enable-voodoo --enable-cdrom --enable-sb16 --enable-es1370 --enable-gameport --enable-busmouse --enable-docbook --enable-xpm --enable-static-link --enable-configurable-msrs --enable-amx --enable-x86-debugger --enable-geforce --enable-cdaudio --enable-memtype
# --enable-debugger --enable-debugger-gui --enable-smp --with-wx -with-x11 --with-all-libs #启用内部的调试器支持,启用内部调试器的图形界面支持,启用多核支持,安装所有可用插件
cp ./misc/bximage.cpp ./misc/bximage.cc
cp ./misc/bxhub.cpp ./misc/bxhub.cc
cp ./iodev/hdimage/hdimage.cpp ./iodev/hdimage/hdimage.cc
cp ./iodev/hdimage/vbox.cpp ./iodev/hdimage/vbox.cc
cp ./iodev/hdimage/vmware4.cpp ./iodev/hdimage/vmware4.cc
cp ./iodev/hdimage/vmware3.cpp ./iodev/hdimage/vmware3.cc
cp ./iodev/hdimage/vpc.cpp ./iodev/hdimage/vpc.cc
cp ./iodev/network/netutil.cpp ./iodev/network/netutil.cc
sudo make
sudo make install
最后,祝福所有热衷于开源事业,愿意为祖国的网络安全能力添砖加瓦的白帽极客们!只有团结一心的不懈努力,只有众志成城的奉献精神,才能让伟大祖国的网络安全堡垒,越来越强!
(未完待续)

885

被折叠的 条评论
为什么被折叠?



