The new super food - Why is it so healthy?


A dolmade is a Linux container prepared for installation and execution of windows applications. Once a user has prepared a recipe for a specific application it can be shared and reused by others.

As of now there are basically three well-known solutions to run Windows software under Linux. Have a look in the following table how they compare to each other in terms of making Windows software available for users running mainly Linux environments:


Solution
Dual Boot
Virtualization
Wine
Costs
Windows license

Windows license

for some solutions: Virtualization license

free
Integration with the host system
N/A
host file system/hardware is isolated and (partially) passed through shared mount protocols/abstraction layers
seamless
Performance
native
reduced, especially for 3D GFX
near native, also for 3D GFX
Requirements
separated installation
memory overhead, fixed resource allocations
many functionally complementary versions, many dependencies
Compatibility to installed application
as good as it gets
nearly as good as it gets
depends on windows software and wine version / configuration
Effort maintaining many applications
as good as it gets
low effort to make apps work, but resource-hungry and often bad usability, system updates may break VMs
high effort to make apps work, high effort to not break apps due to system updates or newly installed apps
Effort maintaining one application
ridiculously high
still too high
justifiable if the application is important


Now how does a dolmade compare to that?

  • Costs: it is free, although I plan asking for donations in some way
  • Integration with the host system: seamless (similar to wine), remapping of directories via singularity possible as well as namespace virtualization
  • Performance: near native, 3D support lacks behind Windows (similar to wine)
  • Requirements: singularity runtime with almost no dependencies
  • Compatibility to installed application: if any version of wine in any configuration can run the app there's currently no better way to preserve it for posterity!
  • Effort maintaining many applications: You can install as many applications into one container as you wish. You may test it before you install it permanently. Or you decide to install one app per container which will guarantee that a newly installed one will not break an existing one!
  • Effort maintaining one application: If you find an existing recipe for the container image that can run your application it is as easy as it gets. Just download the container, install your application into it and start using it.

Wait? Didn't you miss something?

Yes indeed. There is still a high effort to install a particular app and make it work well in a dolmade. But when it is done, a recipe specific to that app can be made and published so that other users just need to download the ready-to-use container.

But what about PlayOnLinux - doesn't it try to achieve the same?

Well, yes. And I liked their idea of having recipes. Three things to say:

  • Recipes: I tried it some time ago and got the impression that the recipes were mostly broken. Also there were several recipes available for each game I wanted to try, and each of them ran into other troubles. I want to handle recipes for dolmades differently.
  • Mobility: To my knowledge PlayOnLinux uses separated wine prefixes to isolate apps from each other. But this is not enough to move a successfully installed app from your computer via USB stick to your friends/brothers and make it run there as well. This is the strength of singularity really.
  • Extendability: the containerization really offers nice possibilities such as running dolmaded linux and windows apps or even a mixture of both.