WSL9x runs a modern Linux kernel cooperatively with the Windows 9x kernel in ring 0, no hardware virtualization required, working even on a 486.
Key Takeaways
Both Windows and Linux apps run side-by-side; the Linux kernel shares ring 0 with the Windows 9x kernel in cooperative mode, not a VM.
No hardware virtualization dependency means compatibility back to 486-era hardware, a hard constraint modern WSL2 cannot meet.
Architecturally distinct from WSL1 (which implements POSIX syscalls on the NT microkernel) and WSL2 (which uses a full Linux VM); Windows 9x is not NT.
Source and all implementation are published at codeberg.org/hails/wsl9x by Hailey (@hailey@hails.org).
Hacker News Comment Review
Commenters converged on two historical predecessors: CoLinux (Linux kernel co-loaded alongside Windows, no virtualization, akin to WSL2) and flinux (syscall translation layer, akin to WSL1); WSL9x is neither, targeting pre-NT Windows.
The Win9x ring 0 cooperative architecture is technically non-trivial and underappreciated; most summaries lazily reduce it to “DOS with windows,” but it contains a VM Monitor and distinct kernel primitives that make this project possible.
CoLinux hit a hard wall at 32-bit due to pointer-size compatibility requirements and was never ported to Win7; commenters noted WSL9x sidesteps this by targeting 9x, where 32-bit is the only target anyway.
Notable Comments
@rahen: Maps the full pre-WSL landscape: CoLinux=WSL2-like kernel co-load, flinux=WSL1-like syscall shim, Cygwin=native POSIX – useful reference frame for placing WSL9x.
@gblargg: Points out the readme’s “Proudly written with zero AI” is ambiguous – Zero AI is an actual product name.