Re: VirtualBox Vs Wine - Process
Originally Posted by PJs Ronin
There are a number of very good observations in this post:
... probably more due to my own lack of expertise
This is hardly fair to yourself. WINE is notoriously hard to configure and is known to break functionality with updates that then require regression. When we consider what WINE does, it is hardly surprising that it breaks so often. In fact, it is surprising that works as well as it does.
WINE is basically an attempt to reverse-engineer a foreign operating system, map out its internal functions, and duplicate its effects on apps that are just as foreign as the operating system itself so that they will run efficiently, properly and quickly on an operating system for which they were never designed. WINE developers are on record as saying that one of the most difficult aspects of this task is accommodating the thousands of kludges that MS has written into their own OS. In general terms, this means purposefully writing inefficient, loopy and say-what? code that would not logically occur to a programmer trying to achieve an otherwise intended result.
This process can never be exact. WINE can only approximate Windows functionality to a greater or lesser degree and even the approximation varies from app to app depending on what functions and system calls the app uses. This is why most apps require a certain amount of tinkering and configuring to work. WINE developers try to focus on making WINE compatible with the apps that are most "popular" or "critical", but the more complex the app (i.e. the more obscure the functions it uses), the more difficult it is to achieve this compatibility. This challenge is also multiplied by how new the app is. When you factor in Windows updates, service packs and its ever-changing nature, to say nothing of the updates and changes made to the apps as well, the challenges are truly immense. As a non-programmer looking in from the outside, I marvel at how they achieve what they do. Remember, they aren't doing something so simple as re-writing Windows; they are translating Windows functions so that they will run on Linux.
I don't know about you, but given the magnitude and the complexity of the task, I simply expect WINE to be flaky and fussy and finnicky. Yet, I can run whole games on WINE that don't require any adjustment on my part. It's almost magic and, quite aside from the practical utility, I admire the expertise that went into putting together such an amazing product.
That led me to Virtualbox and I was blown away at how easy it was to get my Windows requirements up and running.
With a little practice, it is amazing how easy it is to use VirtualBox. However, the other VMs are not as easy and require varyingly greater degrees of configuration. I recommend sticking to VirtualBox for new users.
I now use the VMs for my games, testing new releases of Ubuntu b4 I migrate to the production side, and testing other Linux distros. And all of this is neatly wrapped up in VMs that I regularly backup so that crashes/viruses are no longer a prob; reload, rinse, dry and away we go again.
As previously mentioned, the biggest drawback with any VM is that you are necessarily nerfing system resources by using them. By creating a "make-believe" computer inside a real computer (which is what a VM is), you have no choice but to sacrifice power, speed and functionality. As only one example, VirtualBox creates a special Vbox videocard for your Windows VM that has significantly reduced functionality from your real videocard. Games that will run smoothly on a bare-metal Windows installation often choke, stutter or even refuse to run in a Windows VM. @PJs Ronin is either running older games that are not too resource-intensive, or else he is running his VMs on hardware with significant horsepower.
If you have the horsepower, your VM experience will likely also be gratifying if you run relatively resource light apps. However, if your HW is middle-of-the-road and more than four or five years old, you will likely find the experience frustrating, especially for games. In no case will bleeding-edge games run well. They require every edge they can get and will often choke even on modern bare metal. The added inefficiency of VM translation, doubled system calls, video downgrading and sandboxing will render such games unplayable. And the same consideration applies to resource-heavy apps like audio/video-editing, 3-D rendering CAD or professional simulation/math-heavy analytics.
To end on an upbeat note, I have tons of fun running both WINE and VMs. I use my VMs exactly as @PJs Ronin does. I have over a dozen different OSes installed on VMs and have more fun than flying monkeys exploring and breaking them. When I do break them, I just roll back to an earlier snapshot and the recovery is completely painless.
Hope you have the same fun and Happy Ubuntuing.
Newb: How far must I jump to clear the ledge halfway down?
Guru: It's bad to jump off cliffs. Let's look at better options.
Newb: Stop harping about "best practices" and just let me jump.