tiny 386 PC模拟器,在esp32上运行win9x。
Tiny386 是一个用 C99 编写的 x86 PC 模拟器,其最突出的特点是极致的可移植性——它甚至能在 ESP32-S3 这类微控制器上成功启动 Windows 9x/NT 操作系统。项目的核心是一个从零构建的、简洁而高效的 i386 CPU 模拟器,代码量仅约 6000 行。虽然缺少调试功能、硬件任务切换和部分权限检查,但它能够运行绝大多数 16/32 位软件。为了支持现代 Linux 内核和 Windows 系统,项目还加入了部分 486 和 586 指令,并提供了可选的 x87 FPU 模拟器。在完整 PC 系统的构建上,Tiny386 从 TinyEMU 和 QEMU 移植了大量外设,包括 8259 PIC、8254 PIT、8042 键盘控制器、CMOS RTC、ISA VGA(支持 Bochs VBE)、IDE 磁盘控制器、NE2000 ISA 网卡、8257 ISA DMA、PC 扬声器,以及可选的 Adlib OPL2 和 SoundBlaster 16 声卡。固件方面,它使用 SeaBIOS 提供的 BIOS/VGABIOS,同时也支持通过名为 linuxstart 的小型存根代码直接启动 Linux 内核,这一思路源自 JSLinux。Tiny386 解决了在资源受限的嵌入式平台上运行经典 x86 操作系统的问题,特别适合复古计算、操作系统教学、嵌入式系统开发调试等场景。其技术栈以纯 C99 为核心,依赖 libslirp、SDL1.2 或 rawdraw 等库实现图形和网络功能,在 ESP32 平台上则使用 ESP-IDF 框架。项目采用 BSD-3-Clause 许可证,部分移植代码采用 MIT 许可证,SeaBIOS 采用 LGPL-3 许可证。