A 386 PC for Your RP2350
170 points • 8h agoArticle Link

FRANK 386 是为 Raspberry Pi Pico 2(或 RP2350 微控制器)量身打造的高性能 i386 PC 模拟器,基于 Tiny386 的移植,能在当代小型硬件上完整运行传统软件。它支持完整的 i386 以及部分 i486/i586 CPU 模拟,可选 x87 FPU,并在使用 PSRAM 时将内存扩展至最多 8MB 。输出方式可选 VGA 或 HDMI,音频支持全面,包括 Sound Blaster 16 、 AdLib 和 PC Speaker 。

该模拟器面向复古计算爱好者,能够启动 DOS 、 Linux,甚至 Windows 95 。用户可通过 SD 卡管理软件,支持软盘、硬盘与 CD-ROM 镜像。系统内置运行时磁盘管理器,可在无需重启的情况下热插拔镜像;设置菜单则允许实时调整模拟器配置,例如内存大小、音频设备以及鼠标模拟模式。

FRANK 386 的固件开发针对多款基于 RP2350 的开发板进行了适配,包括 Murmulator 、 Olimex PICO-PC 和 Waveshare RP2350-PiZero,并提供灵活的 GPIO 布局,便于连接常见外设如 PS/2 或 USB 键盘、鼠标以及 NES 手柄等。构建流程记录详尽,基于 Raspberry Pi Pico SDK,提供简便脚本,可按需设定 CPU 频率和板卡兼容性来编译固件。

该项目整合了多项开源基础(如用于外设模拟的 QEMU 、提供基本 I/O 的 SeaBIOS 以及用于存储访问的 FatFs),将各类技术要素融合成一个易于使用的整体。官方构建说明和磁盘镜像管理工具等详尽资源可供参考,帮助用户搭建并调试自己的复古计算站。

49 comments • Comments Link

RP2350 微控制器能够模拟带有 VGA 和 SoundBlaster 的 386 PC 等传统系统,这凸显了现代灵活 I/O 与 PIO (Programmable I/O) 在低成本硬件上的强大能力。尽管 RP2350 不具备无线功能或深度睡眠优化,其支持者认为,与 STM32 或 ESP32 等芯片上那种复杂且僵化的引脚多路复用相比,PIO 模块和灵活的引脚配置能大幅简化电路板设计。

在现代硬件上模拟传统架构面临一个关键障碍:CPU 性能已不再像 Dennard 时代那样呈指数级增长,因此对相对现代的硬件做全系统模拟变得越来越费力。 RP2350 提供安全引导和加密引导等安全特性,这在 Capture The Flag (CTF) 等场景中非常有价值,因为防止对闪存的未授权访问至关重要。

关于在 386 硬件上运行 Windows 95 的可行性存在争议:虽然在极少内存条件下技术上可行,但历史经验表明,这种使用体验常因严重的性能瓶颈和频繁的磁盘交换而大打折扣。关于 Slackware 安装的历史轶事则强调了早期计算的物理性:成堆的软盘以及从零开始手工构建系统的缓慢过程,反映了那一时期的操作复杂性。

现代虚拟化在宿主架构兼容的前提下,为运行传统 x86 软件提供了无需全系统模拟的高效替代方案。通过 RP2350 实现硬件级的传统接口支持仍受限于缺乏对 ISA 总线或 RS232 端口的原生模拟,尽管在时间约束可控的情况下,该芯片的 GPIO 功能理论上允许定制硬件接口。基于软件的 MMU 模拟则使得即使在缺乏专用内存管理单元的 MCU 上也能运行复杂操作系统,从而为运行各种历史操作系统打开了可能性。

这场讨论既流露出对 386 PC 时代的怀旧,也体现出对 RP2350 等现代微控制器技术实力的赞赏。围绕 RP2350 是被视为硬件设计的革命性工具,还是相对于更成熟竞争对手被高估或仅属利基组件,存在明显分歧;但无论立场如何,参与者都对弥合传统计算环境与当今廉价高性能硅片之间的差距抱有共同兴趣。