Home windows and Linux would possibly look like oil and water at first, and a fusion would possibly look like an unholy mixture. In a method, that also holds true — no less than when it comes to the philosophy behind the 2 extraordinarily standard working techniques.
That being mentioned, there have all the time been makes an attempt (a few of which, like Wine, have been extremely profitable) to bridge the hole. We now have tasks like Wine for Linux, and naturally, the Home windows Subsystem for Linux (WSL). Each tasks try and run applications from the opposite OS in a separate setting, with compatibility layers in place.
Taking the crazier tasks into consideration, developer Hailey has constructed WSL9x, a mission that brings a WSL-like Linux subsystem to Home windows 9x.
Associated
I changed Home windows Settings, File Explorer, and the Microsoft Retailer — and every thing feels far more environment friendly
Three apps that repair what Home windows nonetheless cannot.
Getting it working
Not straightforward in any respect
Going by the official Codeberg repo, it’s a little bit of a trouble. WSL9x consists of three separate components:
- A VxD driver that helps initialize WSL9x
- A patched Linux kernel
- A wsl.com file for the consumer
Getting it working collectively required numerous dependencies, together with your typical kernel improvement instruments and linux-headers. To begin, clone the repo into an area listing.
Earlier than you head to the listing, clone and set up i386-linux-musl from the musl-cross-make GitHub repo. After it is constructed, you’ll wish to export the PATH to the identical. This step is necessary; with out this, it received’t compile. You’ll additionally want Open Watcom V2.
The mission won’t have made this clear, however you do want a Busybox 1.36.1 binary within the bin folder. Copy the supply, construct this system, and duplicate it over to /wsl9x/bin/. With out these binaries, this system wouldn’t work. Fastfetch can be listed as a dependency, however you possibly can all the time remark it out throughout the win9x_cpio_list file underneath /wsl9x/linux/ to get it to compile. Ensure to make any related modifications to the identical file while you tweak these dependencies.
Subsequent, I needed to construct the patched Linux kernel. I set the WATCOM env var, and ran the second command specified within the repo.
I had no luck cloning the Linux repo. In the event you occur to run into the identical subject, contemplate downloading it as a .zip file from GitHub and extracting it. Copy over the contents of the folder into the Linux folder, and you need to be good to go from right here.
You might need to generate a config earlier than you possibly can truly compile. This step takes a while to finish, so stay affected person.
As soon as it is accomplished, you’ll wish to import a Home windows 9x (on this case, I used Home windows 98) img file, precisely titled hdd.base.img. In different phrases, seize a Home windows 9x ISO and carry out an entire set up onto the digital laborious drive. As soon as accomplished, shut down the VM utterly.
Copy it over to the WSL9x listing, and run make with the correct env vars set. Assuming every thing was arrange accurately, it is best to see a hdd.img file with WSL9x able to go very quickly.
With the picture full, it was now doable as well into Home windows 9x with one thing like Bochs. As soon as logged in, I needed to fireplace up the MS-DOS Immediate underneath Packages throughout the Begin Menu.
Typing in wsl, I hit the Enter key and voilà! I had a Home windows Subsystem for Linux up and operating in Home windows 98, inside a VM inside Linux. You possibly can examine the set up by typing in uname -a, which ought to spit out the Linux kernel model.
You might additionally use QEMU, however the course of is much extra concerned. QEMU does include the good thing about having acceleration, which makes the set up extra usable.
So, what works?
Extra like a proof-of-concept
Unsurprisingly, not a lot works. The truth that it even works in any respect is a large feat in itself. Thus far, the Linux kernel appears to be working simply fantastic inside Home windows 9x, principally.
Like trendy WSL, WSL9x goals to let Home windows 9x and Linux workloads coexist with out rebooting. It’s much more spectacular when you think about that the complete mission was written with out the usage of AI instruments.
I might run a couple of fundamental instructions like ls, /dev, and extra, however there was no bundle supervisor put in. In different phrases, it’s not doable to immediately set up a Linux bundle onto WSL9x.
Whereas the official Codeberg repo does present a fastfetch, I by no means managed to get it engaged on my set up — it’s a terribly troublesome set up, in spite of everything. Because it stands proper now, the mission is in a proof-of-concept standing, and Hailey has known as it one among their best hacks ever, and I really feel inclined to agree (even when calling this a hack appears disingenuous).
Future implications
A enjoyable mission, however it could possibly be genuinely helpful
To be completely sincere, there aren’t that many makes use of. To which you would possibly ask, then why? To which I then counter, why not? A part of the enjoyment in making such unattainable tasks work is within the enjoyable of it, and tinkering will be fairly an addictive pastime.
Additionally, contemplating that 486 assist is deliberate to be dropped quickly from Linux, this mission might become the proper reply to operating sure historical legacy applications. With WSL9x, you would, in principle, compile trendy applications natively and have them work in Home windows 9x simply fantastic.
Nonetheless, provided that the mission is admittedly new, it would take some time earlier than we see any significant outcomes.
Mighty spectacular
WSL9x is a little bit of a programmer flex. Whereas its sensible makes use of are virtually fully theoretical at this level, it doesn’t change the truth that that is nonetheless a really spectacular mission by itself, particularly because it makes use of an actual (and trendy!) Linux kernel.

