MoCoLinux 0.1.0 — Linux inside Windows XP x64, installing itself
Linux 7.1.5 running inside Windows XP x64 — no hypervisor, no emulation, no
virtualisation extensions. Both kernels resident on the same processor, taking
turns.
This release installs itself. Extract, run mocolinux-setup.exe, restart when
asked, and it finishes on its own: it boots Linux and has it build a complete
Manjaro system on a fresh disk image over your network. Afterwards Manjaro starts
at logon, and the desktop icons run Linux applications as ordinary Windows
windows.
Kate, xterm, Dolphin browsing the guest's cooperative block device, and Konsole —
each an XP window with a Luna frame and a taskbar button, beside Steam and the
Start button.
What works
- Manjaro with systemd to a multi-user target, ext4 root over a cooperative block device
- Processes in ring 3, 32-bit binaries, Landlock, user namespaces
- KDE applications as rootless native Windows windows over an X server on the host
- Networking: an ethernet device in the guest, NAT on the host,
pacmanover HTTPS - Preemption of a running task, and the host's clock as virtual time
- Asynchronous block I/O — the guest keeps scheduling while its disk works.
A full package install now answers the console in 16–125 ms; it used to freeze
the guest solid for minutes at a time and trip systemd's own watchdogs - Clean shutdown, and a run can be ended from another process
Verified end to end on a Lenovo ThinkCentre M92p (i5-3470): 217 console polls with
zero timeouts, 1.3 GB downloaded, no bugcheck, guest responsive throughout.
Requirements
Windows XP Professional x64 or Server 2003 x64 (the 5.2 kernel), an x86-64
processor, ~25 GB free on NTFS, a network connection, and administrator rights.
Every binary imports only DLLs a stock XP x64 has — no .NET, no Universal CRT, no
Visual C++ runtime.
Read this before deciding something is broken
- The first boot after a Windows restart is reliable and the second is not.
Guest RAM must come from Windows in unbroken 32 MB runs, and one run's churn
fragments physical memory enough that the next boot's allocations grind the
machine. Restart Windows between sessions. Top item inTODO. - Graphical applications render in software on the guest's single processor, so a
desktop feels slow. Indirect GLX caps hardware OpenGL at 1.4 regardless of the
card; the real fix needs a command stream and is not built. - No SMP — one processor in the guest.
- A bugcheck is possible. This is a kernel driver that swaps CPU context with
Windows, at version 0.1.0. Do not put anything you care about on it.
Not yet
SMP, the coLinux message layer (so colinux-console-nt cannot attach), a DHCP
client in the guest, inbound port redirects, and accelerated OpenGL. TODO is
specific about all of it.
sha256 d557cd9df7ed29bf7e621e43d3c059de27040bc1a4ed4a96832b89247b586a9d
GPL v2, as coLinux was. Built on Dan Aloni's cooperative Linux.
