Windows 9x Subsystem for Linux

· systems · Source ↗

TLDR

  • WSL9x runs a modern Linux kernel (6.19) cooperatively inside the Windows 9x kernel via a VxD driver, enabling both OSes simultaneously without rebooting.

Key Takeaways

  • Three components: a patched Linux kernel (win9x-um-6.19 branch), a VxD driver written in ASM/C, and a 16-bit DOS wsl.com client.
  • Linux syscalls (int 0x80) are intercepted via the Win9x GPF handler because Win9x lacks a long enough IDT for a proper handler.
  • The Linux kernel is based on user-mode Linux but runs in ring 0 and calls Win9x kernel APIs instead of POSIX APIs; context switching lives in linux/arch/um/os-Win95.
  • wsl.com uses MS-DOS VM windows as TTYs; ANSI color support requires a driver like nnansi.com loaded beforehand.
  • Build requires i386-linux-musl cross toolchain, Open Watcom v2, a pre-built Linux kernel, and a Windows 9x hard drive image.

Hacker News Comment Review

  • Commenters noted surprise that Linux 6.19 still targets i386, given mainline dropped i386 around 2012; this project relies on that continued support.
  • The naming drew debate: “Windows 9x Subsystem for Linux” mirrors Microsoft’s own grammatically ambiguous convention, which commenters found appropriately absurd.
  • No pre-built binary or VM image is publicly available yet, which is the main friction point for people wanting to try it quickly.

Notable Comments

  • @a1o: Asks for a downloadable binary or pre-configured VM, highlighting the gap between build complexity and casual tryability.

Original | Discuss on HN