• Please review our updated Terms and Rules here

Virtual OS Museum

andrew_w

New Member
Joined
May 23, 2010
Messages
7
I've recently released a virtual museum of operating systems and standalone applications implemented as a Linux VM for QEMU, VirtualBox, or UTM. This is the result of over 2 decades of collecting, and nearly all well-known OSes and platforms are represented in some form. Over 1700 installations for over 250 platforms representing nearly 600 distinct OSes are included. I've got enough images available to reach well over 2000, which will include fixing/finishing various emulators to run OSes that are currently impossible to run in emulation. I will be documenting my efforts on my YouTube channel and blog, and will also be posting here (I'll likely be posting about my first such project within a few days or so).

A custom cross-emulator graphical launcher running within the VM is provided; this allows searching for guest VMs based on various criteria, as well as a snapshot feature to revert broken guest installations to a known-good state, among other features.

Virtual OS Museum site

 
Thanks for this excellent initiative. The concept is truly valuable, especially considering the breadth of systems and platforms included.

My only observation is that running a 180 GB virtual machine can be quite demanding for many users and hardware setups. A more modular approach, similar in spirit to projects such as Commodore OS Vision, might make the platform more flexible, easier to update, and more accessible over time.

That said, this is an impressive achievement and clearly the result of many years of serious dedication. Congratulations.
 
Very impressive. Haven't been able to try it out yet due to IA molasses download speed :cautious:

By the way, something about your website is making it render incredibly slow in Firefox. It updates around 2 fps when scrolling. It's fine in Chrome and Edge on the same computer.

My only observation is that running a 180 GB virtual machine can be quite demanding for many users and hardware setups. A more modular approach, similar in spirit to projects such as Commodore OS Vision, might make the platform more flexible, easier to update, and more accessible over time.
There is a "Lite" version that downloads images on demand, although it's still 22gb.
 
Distributing a huge archive as a 5 TiB logical VDI/IMG with Btrfs inside is a little bit hard to navigate choice for anyone who simply wants to browse, inspect, or recover the contents. On Linux it is readable; on macOS and Windows it immediately becomes an obstacle course.

Some suggestions:
  • a readable content manifest/index, for example JSON or SQLite;
  • packages split by category or system, instead of one monolithic image;
  • an optional standard archive format, such as .tar.zst or .zip, split into chunks;
  • sparse disk images only for users who want to run the full VM;
  • clear documentation for macOS, Windows, and Linux;
  • ideally, a “browse/download one system at a time” mode.
 
Distributing a huge archive as a 5 TiB logical VDI/IMG with Btrfs inside is a little bit hard to navigate choice for anyone who simply wants to browse, inspect, or recover the contents. On Linux it is readable; on macOS and Windows it immediately becomes an obstacle course.

Some suggestions:
  • a readable content manifest/index, for example JSON or SQLite;
  • packages split by category or system, instead of one monolithic image;
  • an optional standard archive format, such as .tar.zst or .zip, split into chunks;
  • sparse disk images only for users who want to run the full VM;
  • clear documentation for macOS, Windows, and Linux;
  • ideally, a “browse/download one system at a time” mode.
There's no good way to distribute something like this except as a VM or possibly as a container. There are way too many emulators to run them directly on multiple host OSes, and much is dependent on Linux or something close to it (I'm working on my own OS, which will be Linux-compatible but have a more flexible containerization model among other things, and will have integrated support for container images in its desktop environment, so it would be possible to run this as a container on there without a host VM, but no mainstream OS is able to support something like this). Updates are dependent on apt/dpkg, snapshots are dependent on BTRFS, and everything else is very heavily dependent on a Unix-like OS.

The launcher does use SQLite, but the database is generated dynamically from flat files and is treated more or less as a cache. There's no particularly good way to make the metadata or images available outside the VM (short of downloading individual debs directly from the apt repository). Shared folders aren't available on all VMMs/platforms, and definitely don't support snapshots. Even basic Unix file semantics are likely to be missing on Windows (I haven't actually looked too closely at either QEMU or VirtualBox shared folders on Windows, since I mostly use Linux, but I'd be surprised if they get file permissions right).

What I'd really like to do would be able to run this on a Linux system that runs directly in a browser through WASM, but that is impossible to do except in a very crippled form because WASM insists on forcing internal memory safety features with no way to bypass them, and these prevent any kind of UML-style port of a normal kernel. There is a port of QEMU to WASM, but that is going to be slower than running natively on WASM would be, and last I checked it supports neither graphics nor streaming disk images, both of which would be absolutely required for something like this.
 
The complaint is that it's all or nothing, even with the "lite" version.

There's no accessible list of OSes that one could quickly scan.

If I wanted to try out (random choosing) CP/M 2.2, I need to download 22G worth of stuff.

Even today, that first step is a loo loo.
 
There's no good way to distribute something like this except as a VM or possibly as a container. There are way too many emulators to run them directly on multiple host OSes, and much is dependent on Linux or something close to it (I'm working on my own OS, which will be Linux-compatible but have a more flexible containerization model among other things, and will have integrated support for container images in its desktop environment, so it would be possible to run this as a container on there without a host VM, but no mainstream OS is able to support something like this). Updates are dependent on apt/dpkg, snapshots are dependent on BTRFS, and everything else is very heavily dependent on a Unix-like OS.

The launcher does use SQLite, but the database is generated dynamically from flat files and is treated more or less as a cache. There's no particularly good way to make the metadata or images available outside the VM (short of downloading individual debs directly from the apt repository). Shared folders aren't available on all VMMs/platforms, and definitely don't support snapshots. Even basic Unix file semantics are likely to be missing on Windows (I haven't actually looked too closely at either QEMU or VirtualBox shared folders on Windows, since I mostly use Linux, but I'd be surprised if they get file permissions right).

What I'd really like to do would be able to run this on a Linux system that runs directly in a browser through WASM, but that is impossible to do except in a very crippled form because WASM insists on forcing internal memory safety features with no way to bypass them, and these prevent any kind of UML-style port of a normal kernel. There is a port of QEMU to WASM, but that is going to be slower than running natively on WASM would be, and last I checked it supports neither graphics nor streaming disk images, both of which would be absolutely required for something like this.
I understand why a VM is the easiest supported runtime target, especially given the dependency on Linux, QEMU, Btrfs snapshots, apt/dpkg, and Unix filesystem semantics. However, that does not necessarily mean the VM must become the only practical distribution or inspection format.

The question is not simply “How do I run the entire museum on every host OS?” It is also:

How do users browse, audit, selectively download, mirror, recover, or extract the contents without treating a multi-terabyte virtual disk image as the sole entry point?

Since the launcher already generates its SQLite database from flat metadata files, and since the Lite edition already downloads individual assets from an apt repository, the project already appears to possess enough structure to expose manifests, indexes, or per-system content outside the VM itself.

The VM can remain the canonical and fully supported runtime environment, while the content distribution could still be modular, inspectable, and archivable.

Btrfs snapshots are a perfectly valid implementation detail for the execution environment, but they should not become the only way to access or reason about the archive. Likewise, Windows and macOS filesystem limitations certainly affect direct execution, yet they do not prevent the publication of browsable manifests, chunked archives, per-system packages, or documented extraction procedures for Linux users.

In short, the VM may indeed be the correct execution format, but it is a rather poor sole distribution and archival format.
 
@gferluga are you reposting LLM output?
Sorry for asking but I haven't seen so many IT-words in one post not even on the computer forum, "audit", "sole entry point", "canonical", "inspectable", "reasoning about" etc.
 
Fair question. No, the ideas are mine, although I did use an LLM to help polish the English, since I’m not a native speaker. The underlying concern is simply that, as someone coming from mainframes, software preservation, and long-term archival environments, I tend to think about catalogs, distribution, and data accessibility separately from the execution environment. Greetings from Trieste...
 
The complaint is that it's all or nothing, even with the "lite" version.

There's no accessible list of OSes that one could quickly scan.

If I wanted to try out (random choosing) CP/M 2.2, I need to download 22G worth of stuff.

Even today, that first step is a loo loo.
The site does have a list of installations (although I haven't updated it to include the new stuff I've added since the last image release).

I would like to add a wiki to the site and integrate it into the launcher, but initially I just wanted to focus on getting the VM working. It probably would also be a good idea to make a search page that provides similar search functionality to what the launcher provides.
 
Back
Top