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
Containerized 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
Functionality of 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 do dolmades compare to that?

  • Costs: no licensing fees required
  • 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: non-privileged user account, python
  • Functionality of installed application: if you somehow succeed in getting it to run using any version of wine I currently know no better container based way to preserve functionality for the future.
  • Effort maintaining many applications: Applications will exist as separate containers with isolated containers which means their configuration or system files are isolated
  • 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 dolmade, provide the required ingredients, cook your application 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 or Lutris - don't they try to achieve the same?

Well, yes. And I liked their idea of having recipes. But there are some differences:

  • Repositories: The most important factor to make dolmades a success seems to me the integration of repositories where users can manage recipes, ingredients and cooked dolmades. This way dolmades could be archived, reproduced, shared or distributed. Both solutions offer no special repositories for their resources.
  • Recipes: When I had tried, some recipes worked for me, some were broken - mainly due to missing links. Also sometimes several recipes existed for one game making it hard to decide which one would suit best. I want to handle recipes for dolmades differently. Recipes should match their ingredients uniquely by using checksums and similarity scoring.
  • Mobility: Both solutions use separated wine prefixes to isolate apps from each other. This is not even sufficient for transferring a successfully installed app from your computer to your friends' and expect it to still work there.
  • Extendability: The containerization really offers nice possibilities such as running dolmaded linux and windows apps or even a mixture of both.