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|
for some solutions: Virtualization license
|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.