I heard about a virtual machine implementation that runs in web browsers and was like “how? and why?”. But this is a pretty amazing feat. Let’s explore this accomplishment, which is available to try at http://copy.sh/v86/
I’ve used virtual machines a lot in the past. It’s the best way I know to trap Windows in a little bottle, rather than letting it eat a bare machine. Plus, a VM version of windows can have its network card disabled, thus keeping it from trying to turn my home network into a botnet… But running a virtual machine has always required a pretty heavy application, like virtualbox or vmware.
I tried out a few different VM images and was impressed. I ran the Windows98 image, just to get some heavy nostalgia. It booted and brought up the memorable old interface. When I tried to run Windows Update on the VM image, it nearly brought my computer to its knees, but I think it would have eventually gotten to the point of telling me that Windows98 no longer received updates… Proof of concept achieved.
Next I tried the Oberon image, since it sounded cool. I now know Oberon is the King of the Fairies in Renaissance literature. However, when running the Oberon OS, I realized I didn’t know a thing about the operating system. My bad. I shut it down and slinked off. Learning fail… maybe next time.
Next, I tried my personal favorite — a Linux image. This is a bare bones Linux 3.18 image. It booted up, and I was able to run the suggested command to get it on the network. Given its tiny configuration, there was no apt-get or other updater I could try out. I am sure I could have downloaded a bunch of packages and built them in order to flush out a full system, but I’m just not that patient. Still, the image ran properly and was obviously really the Linux kernel underneath. Fascinating.
Lastly, I tried another classic with FreeDOS. This incredibly tiny image booted up to the open source DOS and offered a few games. The text version of Tetris on there is not to be missed.
While I personally don’t plan to implement anything on top of the Virtual X86 implementation right now, I can see a lot of ways this would be useful. Companies already do a lot of work with virtual machines, some even shipping software on VM images. But being able to distribute a completely tested VM image of a software app to the browser as a target has a lot of potential. The big advantages is that no virtualization app is required, so one could reach average consumers directly. Since computers continue to speed up and become more powerful, who says the browser isn’t the target for future VMs? If your app runs on Linux and not Windows, who cares? Just pack it up in a VM and ship it with Virtual x86.
ps: Klein bottles are cool. Here’s an example projected on to three dimensions (so not a true klein bottle, but it looks like one): http://www.kleinbottle.com/images/giantKleinbotandCliff2.jpg And these people will sell bottles like this to you apparently: http://www.kleinbottle.com/
By Chris Koeritz
(Originally published Oct 9 2016)