This is a virtual museum of operating systems (and standalone applications) running under emulation, implemented as a Linux VM for QEMU, VirtualBox, or UTM.
A custom emulator-independent launcher is provided, and all OSes and emulators are pre-installed and pre-configured. The launcher includes a snapshot feature to quickly revert broken installations back to a working state. Hypervisor installers and shortcuts to run the VM on Windows, macOS, and Linux are also included.
↫ Andrew Warkentin’s Virtual OS Museum
These types of preconfigured archives exist in the gaming world, but I’ve never seen something like this for operating systems. The amount of love, work, and care that have gone into this effort must’ve been immense, as it contains more than 1700 installs, more than 520 platforms, and more than 570 distinct operating systems, all wrapped into a single download, with a nice launcher on top to make using all of this as easy as possible. You can either download the full offline version at 121GB zipped, or a version that downloads each image as you fire them up for the first time at 14GB zipped.
The contents span just about everything from early mainframes to desktop operating systems to all kinds of mobile platforms, from the late 1940s to today. I haven’t yet found the time to download the whole thing, but I am absolutely going to, as there are so many names in here that I’ve been wanting to play around with for ages, but just never got the time to set up virtual machines or emulators for.
This is going to be an amazing resource for the kinds of people who read OSNews.

WOW.
Just WOW.
I am a frequent reader of OSNews. I am also a teacher for the “Operating Systems” subject at a universitary (pre-graduate) level. I am sure this resource will be very, very, very, very useful for me in the future.
Thanks a lot for this beautiful pointer! ♥
I agree this is really cool. In fact I want to give it a shot but the downloads are offline for me. The downloads are actually hosted on cloudflare, so I wouldn’t have expected the download to timeout….
I would have thought that cloudflare only needs to download the links once and check them periodically to see if they need updating. So why didn’t cloudflare work?
Update: I tried again a few of minutes later, and this time it did work. So cloudflare was likely busy downloading the gigantic 121GB file in the background while it was publicly returning timeout errors for me. It seems possible that cloudflare just isn’t optimized for such unusually large files and ends up garbage collecting the 121GB file and having to download it again creating more errors.
The files should be offered via bittorrent since bittorrent is well optimized for these loads and is often faster than commercial file sharing options.
https://venturebeat.com/business/bittorrent-performance-test-shows-how-much-faster-sync-is-compared-to-google-drive-onedrive-and-dropbox
I agree… WOW !
Those huge files are directly on the website, no use of a content delivery network, p2p, or a file hosting service. And… as a result, it’s not available right now, unsurprisingly 🙁
orzel,
Read my other post. the downloads are going through cloudflare…and they’re still erroring out. You can confirm this yourself with DNS and WHOIS…
I think what’s happening is that cloudflare times out the download because it’s taking so long to download the giant file in the background. If you manage to hit download AFTER cloudflare successfully downloads the file but BEFORE cloudflare garbage collects it, your download will start correctly.
I’m not familiar with cloudfare’s settings. Is it possible that cloudflare’s default settings have a rapid eviction policy for huge (100GB+) files? Is there some setting that webmasters like the Virtual OS Museum should be using in cloudflare to fix this? For this setup to work correctly for the Virtual OS Museum’s use case, cloudflare must retain giant downloads and must not evict them. Otherwise these errors will continue happening intermittently for people using the download links.
I know it’s using cloudflare. But cloudflare is not a cdn. It caches files, but probably not such huge files unless you have an expensive subscription and/or special configuration.
orzel,
Why? It’s distributed across global points of presence and takes over serving requests to the internet To me that’s a CDN in the ways that matter. And they call themselves a CDN too.
developers.cloudflare.com/reference-architecture/architectures/cdn/
I assume you don’t view it as a CDN because of the way it populates dynamically from a webserver instead of FTP/rsync? However that’s more of a technicality that shouldn’t have a dramatic effect on scaling up static content across the globe. So IMHO the bottleneck is NOT that cloudflare isn’t a CDN, but that the cloudflare’s standard website CDN service doesn’t really work for large files.
Indeed. After some searching I found the answer here…
developers.cloudflare.com/pages/platform/limits/
“The maximum file size for a single Cloudflare Pages site asset is 25 MiB.”
They say some limits can be customized, but it looks like they want to push these use cases into what they call “Cloudflare R2”. I’m not familiar with cloudflare products but it looks like their alternative to “Amazon S3” asset storage.
So the Virtual OS Museum may need to rethink their approach to distributing these giants files. I think bittorrent’s a good choice to keep scalability up and costs down.
Yeah, Cloudflare’s caching is limited to relatively small files, at least on a free account (somebody told me the limit is around 500M)
Links were changed, there’s now torrents (working very well, i got the zip in a very short time), and direct downloads are now from archive.org.
orzel,
Oh wow that’s good news and what a timely update! Archive.org is such a useful gem to have especially for preservation. When it comes to scalability though it’s bittorrent for the win!
Yeah, I was trying to host it on a server provided to me by a friend, and it turns out that it had failing drives. She’s now set up a VM for me on a different machine that has drives that are working fine, although the network bandwidth is more limited. I’m not sure I’m going to host the images themselves on there, but I’ll host the apt repository for updates and on-demand downloads of images in the lite version there at least. I can’t use archive.org for the apt repository long-term (although I do have it on there temporarily) because that would mean I’d have to re-upload all images as a single zip every time I want to update a single package.
I’m going to try to reach out to a few people and see if they want to set up their own mirrors of the apt repository. I might set up some kind of rotating redirector so that requests get spread across multiple servers.
Its great in itself but I really dislike those colors on their web page. What a strange style, a perfect example of a false memory introduced into a popular culture. Probably it all started like this: one day, a graphic designer from Generation Z, saw one of the palettes from the CGA adapter and decided those colors were “typical” of the 1980s. No, they weren’t. Nowhere in the world. Just check out the films and TV shows from that era. Neon lights on the streets and in bars were yellow, red, white, and sometimes green. But not cyan-magenta. At least not on this timeline.
I blame TRON, Automan, and Miami Vice. Throw those three in a blender, sprinkle a little Vectrex on top, and what comes out is the current vaporwave/retrowave aesthetic.
How on Earth are they emulating IRIX? IRIX needs an SGI workstation, which hasn’t been fully emulated.
Some versions run on MAME, AFAIK.
For me the crazy thing is: a TON of OSs at 174G unzipped, that rule finance, markets, internet, governments, for decades.
And then you get a single bloated new OS install at dozens of GB and stupid apps that do a single thing and poorly going at 1GB with all libraries for random crap.
I threw Desktop Classic OS (Debian) on my spare workstation PC just to try this out, and it’s just as impressive as it sounds! Note to anyone who wants to run it on Linux, as I either missed it in the documentation or it wasn’t clear, but you have to either have VirtualBox installed on your system, or *have the VirtualBox AppImage provided by the project actually running*. It won’t be able to launch its own AppImage for you, it runs into an error about duplicated UUIDs. But if you first launch the AppImage, then run the Linux startup script, it runs fine and works perfectly.
It was a little weird running an emulated environment to then run other emulators inside it, but it works well and I spent a few hours today launching and playing with OSes and platforms I’d always wanted to but never had the chance. IBM OS/2 in particular was a blast; I had bought it for my first x86 PC all the way back in 1995 but I never had enough RAM to install and run it so I returned it to the store and bought Windows 95 instead. It was really cool to see what I had missed out on!
I’m thinking I’m going to just make the next release QEMU-first. I already tested it in QEMU since VirtualBox doesn’t support emulating x86 on ARM and I wanted to give people on ARM machines the option to run it even if the performance won’t be all that great (I am planning to make an ARM-native outer VM). I’m still going to leave VirtualBox support present and test it sometimes, but it seems like VirtualBox has been having various issues on other people’s machines, even though it was perfectly fine on the ones I tried it on, and these issues are ones that shouldn’t affect QEMU at all (although whether QEMU will have its own issues unrelated to these is anyone’s guess).
I’ll try to have the new QEMU-first release ready sometime within the next few days.
I’d love to see that in action! It would also mean the project could potentially run on OpenBSD, which is my preferred desktop OS, as well as other non-mainstream host OSes (the other BSDs, maybe even Haiku?).
The scripts to run it in QEMU are already there so there’s not much I have to change to make it QEMU-first. I don’t think QEMU supports hardware virtualization on BSD or Haiku though; for a lot of guest VMs, the performance isn’t going to be great if you are running with an emulated CPU since you’re running with nested emulation though.
This goes quite well with this video :
https://www.youtube.com/watch?v=mfl8poxJjPo (This Museum hides SECRET GOODS)