探索复古科技:Halfix x86 模拟器
Halfix 是一个由C99语言编写的便携式x86模拟器,它让你能够在现代平台上运行那些古老的操作系统和应用程序。这个项目不仅是对经典计算机架构的致敬,也是学习x86 PC架构的一种理想方式。
为什么选择Halfix?
开发者出于对技术的热爱创建了Halfix,但它并不只是一种娱乐工具。通过Halfix,你可以:
- 在安全环境中测试或开发操作系统。
- 运行那些在现代电脑上不再兼容或不想在个人设备上冒险运行的旧程序和系统。
- 模拟其他基于x86的系统——CPU组件可以相对容易地独立出来,用于其他项目。
- 测试Web浏览器性能,评估其在不同操作系统环境下的表现。
构建与运行
Halfix需要node.js
、支持C99的编译器、zlib
以及Emscripten(仅针对浏览器构建)。确保所需库在编译器可找到的位置。无需任何预配置,直接执行构建脚本即可。
显示驱动器依赖于SDL
,但如果你是在Windows上,有一个本地版本使用Win32 API,不需要安装SDL。
# 调试模式,本地构建
node makefile.js
# 调试模式,Emscripten构建(asm.js)
node makefile.js emscripten
# 调试模式,Emscripten构建(WebAssembly)
node makefile.js emscripten --enable-wasm
# 发布模式,本地构建
node makefile.js release
# 发布模式,Emscripten构建(asm.js)
node makefile.js emscripten release
# 发布模式,Emscripten构建(WebAssembly)
node makefile.js emscripten --enable-wasm release
# 使用Win32 API构建(不需SDL)
node makefile.js win32
# 使用Win32 API构建,发布模式
node makefile.js win32 release
# 更多选项和精细调整
node makefile.js --help
# 切分映像文件
node tools/imgsplit.js os.img
# 在浏览器中运行
http-server
更多详细信息,请访问项目wiki。
系统特性
Halfix模拟了一个完整的x86-32系统,包括:
- 支持FPU、MMX、SSE、SSE2、部分SSE3和PAE的CPU。
- 可配置的内存大小,从1MB到3584MB。
- 包括中断控制器、计时器、DMA控制器、键盘鼠标接口等在内的多种设备。
- i440FX芯片组,带有PMC、ISA-to-PCI总线、IDE控制器和ACPI接口。
- 配备了VGA图形卡、IDE控制器、软盘控制器,以及正在改进中的IOAPIC。
兼容性
Halfix能够启动各种操作系统的软件,包括所有版本的DOS、大多数版本的Windows(除Windows 8外)、OS/2 Warp 3和4.5、ReactOS、一些Linux变种、9Front、NeXTSTEP和其他爱好者操作系统。具体兼容列表可在项目文档中查看。
自我虚拟化
能在半虚拟化的环境中运行Halfix吗?答案是肯定的,尽管速度不是很快。试试看,你会发现乐趣!
屏幕截图
Halfix的强大在于它可以运行各种不同的系统,如:
- MS-DOS
- OS/2 Warp 4.5
- Windows Vista
- Windows 7
- Windows 10
- Ubuntu
还有更多,等待你去探索。
文件传输
创建一个包含要转移的文件的目录,然后创建ISO映像。将该映像文件添加至模拟器的配置中,启动系统后,将文件从光驱复制到硬盘。
已知问题
虽然Halfix功能强大,但仍存在一些待解决的问题,比如SSE3的支持不完整、性能有待提高、定时计算有误等。这些问题在项目Issue列表中有详细记录。
许可证与类似项目
Halfix遵循GNU General Public License v3许可。类似的项目包括v86、JSLinux和jemul8。
让我们一起重温那些经典的计算时刻, Halfix 模拟器,等待你的发现。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考