I said it before, and I’ll say it again – Linux is not for everyone. Convincing people to switch their primary OS is a little bit like trying to convince someone to change their religion, or political views. It’s possible, but not easy. You can’t really “convince” someone that your OS is superior in a discussion. The only way you can really accomplish something like that is by subtle influence – by showing, teaching, and leading by example. I never try to sell Linux to others – I simply use it and talk about the good and bad things that entails with a passion. I found that this approach is actually makes the right kind of people interested in the platform.
To that end however I know many people who like Linux, own dual boot systems, use it occasionally and are passionate about it but never make the plunge of making it their primary OS because they need application X or Y. Note that I didn’t say switch. Switching is the last thing I would want someone to do. I personally believe in being platform agnostic. Your personal computing ecosystem should be a healthy mix of different operating systems and you should be able to jump from Windows to Linux to MacOS without really skipping a beat. Each platform offers different things, and there is no reason to confine yourself to a single one. OS is not a religion. I naturally don’t mean that you ought to go and spend money on new systems so that you can experiment. What I mean, is that instead of throwing out or giving away your old computer when you upgrade to a new one, set it aside and use it to install that one OS you always wanted to try.
But I got side tracked. Let’s get back to the poor Linux enthusiasts who can’t live without that single Windows-only application they actually use every day. I often hear them saying things like “I would banish Windows from my hard drive long time ago if only there was a good Linux alternative for application X” or “if application X would actually run under Wine reliably”. Excuses, excuses, excuses.
I did some testing, and I found out that there is a reliable solution for most of these people. I will let you guess where I’m going with this. Let’s see if you were paying attention to my posts for the last few weeks. The answer here is Virtual Fucking Machines. And I use the f-word here for added emphasis and not to signify teledildonics or something silly like that. Virtualization will let you run most of the crucial Windows-only applications under Linux with no glitches and no problems. For example, for the last few days I have been hacking away in Visual Studio on a .NET application that is supposed to work with MS Outlook using Ubuntu as my primary OS. How did I do that? I was running Windows XP in a VirtualBox. So I was using a real Windows environment, and real Windows application without the need to actually boot into that OS. My machine has 2.4 GHz Intel Centrino Duo CPU and 2 GB of RAM which is actually pretty decent, but not entirely impressive by today standards, but I was able to comfortably run a Virtual Windows XP session. Note that I was running full KDE desktop with several applications open on the Linux side (namely Kontact, Firefox, Gvim and Komodo Edit). The performance was just fine, and the build times were actually pretty good. In fact, I don’t think I would get much more speed running windows natively because I would likely be bogged down with some bloated security suite.
In fact, I must say that Office 2003 inside the emulated session was actually much faster and responsive than Open Office running natively outside the VM. So I would say that roughly 80 to 90% of these killer windows apps that people cannot live without could be comfortably run this way. I haven’t really tested Photoshop (one of the most often mentioned apps in this category) but I don’t see why wouldn’t it run semi-decently in a VM. You may need to allocate more memory to the VM if you usually work with big images, but other than that I believe you should be fine.
There is of course a class of applications which won’t do well in a VM. These are performance intensive apps that usually like to talk directly to your video card such as games, 3d rendering apps and etc. Gaming is one of these things that will remain a Windows domain for a long time. If you are a gamer and you want to play the newest titles on the market, your gaming box needs to run Windows. There is just no way around it – performance is paramount, and it will always be worse under a VM. Not to mention the fact that you won’t have low level access to your system’s 3D acceleration hardware while running in a virtual sandbox. Same goes for rendering or doing 3d animation that is windows, or architecture specific. Some of the stuff you just can’t fake.
But apps which do not need low level hardware access, and are not total resource hogs that take over your whole machine in full screen mode should be happy to run in a virtual machine. So no more excuses people. Next time you have a chance, boot into your Linux partition, download VirtualBox or VMWare then install Windows inside it, and set up your work environment there. Then next time you need to use that killer windopws-only app of yours just fire up your VM and work from there. When you are done, shut it down and enjoy your life in a pristine Linux environment – just like you always wanted.
If the performance sucks, or you think the whole VM thing is a hell of an inconvenience then you can start booting back into your windows partition. I won’t blame you. This is just a friendly suggestion for those of you who would love to take the plunge into Linux – to live it and breathe it every day – but seem to be chained down to Windows by this one or two silly apps. This is something that could let you do your first step towards becoming a better Linux user, and let you learn the intimate inns and outs of the new OS while still having the old one at your fingertips when you need it.
Just don’t try virtualizing Vista yet – that’s a whole mess of issues in itself. XP will still be a perfectly serviceable OS for the next few more years. And by the time they end-of-life it and it is no longer safe to keep it around hopefully hardware and virtualization technology will catch up to the point where running Vista (without Areo) in a VM will be as pleasant and worry free as running XP is now.
[tags]linux, ubuntu, virtualization, vitrual machines, vm, windows, xp, visual studio[/tags]
The only thing I find myself ever booting into XP for is when I need to run some type of Windows Media Player 10-only DRM-based video that I have been unable to find a way of running in Linux. (I subscribe to Setanta Sports Broadband to catch English/international football and rugby matches since I don’t have satellite or cable). I never really thought about doing this until I read your post today but do you suppose this would run properly with VirtualBox/VMWare?
And having no experience with either, is there a particular one you would recommend over the other or do each have their own strengths and weaknesses?
Thanks for this post!
I believe it would work – the VM behaves exactly like a real OS, and I suspect that an app would have to really do something clever to actually figure out it is running inside a virtual sandbox. And of course we would have to assume that the DRM would explicitly check for, and prohibit virtualization.
Try it – all you really need is 10-15GB of free space on the disk to fit the machine and more than 1GB RAM to let the two systems run comfortably.
As for the second question:
VirtualBox is free and released under GPL and very nice. VMWare is proprietary, and I think the free version is only a “Player” which means you can only use “pre-made” OS images. Which means you may not be able to easily find a legal copy of winXP image.
With VirtualBox (and the paid versions of VMWare) you are actually able “install” the guest OS yourself (just like you would install it normally, but in a window). Naturally, you can also use an image file. The image files for the two are not compatible though – at least I don’t think so.
Thanks for getting back to me. Of course, after I posted the questions, I had to do the research myself and decided on VirtualBox. I set out to install the open source version but soon just decided to use the proprietary binary from Sun so I could get to messing with it quicker. Got XP installed from my CD and was in an XP environment soon after.
In the end, with what little bit I’ve played around so far, I can get my video working but the only catch is it plays at 5 fps instead of the usual 20 fps making it nearly unwatchable. For starting out though, at least the audio is flawless. You mention 1 GB+ RAM needed to run comfortably and that may be my current limitation; I only have 768 MB in this machine. I initially left the default VirtualBox suggestion of 198 MB to provide to the virtual machine and have played around with the value a bit seemingly to no benefit. The only thing I notice is when I start providing 512 MB or more, my whole system slows down considerably and I still get 5 fps.
At any rate, I’m glad I have something new to play around with and will try a bunch of stuff both with the virtual XP install (updating to SP3 for instance) and with my VirtualBox install to see if I can get it to run smoother. Thanks again for bringing up the idea and just maybe I will soon have no more excuses for booting into [my] Windows partition.
Yeah, I have 2GB of RAM and I give one to the VM and everything seems to be running smoothly. Then gain, I haven’t tried watching Video this way. It might be just one of these things that can’t be reliably run in the VM. :( I hope not though. Let me know if you figure it out.
The thing about Virtualization is that it does require you to have rather modern hardware. I have a desktop at my house with 1GB of RAM and 1.9GHz CPU but when I tried running VM on it it was rather sluggish.
On the other hand my 2.4 GHz Dual Core laptop with 2 GB of RAM is running it beautifully. :)
Well, I’ve made great strides in getting it working to where I’d be 100% satisfied but I think I’ve just about reached maximum performance with my hardware. I happily discovered VirtualBox’s “Guest Addons” which make a ton of difference combined with tweaking VirtualBox’s settings and completely updating the virtualized XP install. My streaming video is definitely watchable although not quite up to par as watching on a native XP environment. The sound occasionally stutters now and I find a lot of frames get dropped but I think that’s largely due to my crappy hardware.
As an aside, my sister’s husband got a new PC recently and they’re dumping the old parts off with me (much to my delight) so I’m hoping the slightly faster processor (2.4 GHz, single core – compared to my current 1.7 GHz) and increased memory will make the difference (it’ll end up being two 512 MB sticks and a 256 MB).
I’ll still see what I can tweak of course but I’m very happy with my new toy. :D
I use VMware at work and free version is in fact the player. You are able to create new VM’s for it, but you have to do it by hand, that is, with Vim and a little bit of dd. There are premade confige files and tutorials you can find on the Internet but they are a pain. In general, the pay version, Vmware Workstation, is a lot easier to use.
At home I don’t usually use VM’s, (I don’t actually have a need for Windows,) so I’ve never really used VirtualBox, but I wonder if it can allow you to run a pre-existent partition inside of a VM. I know VMware does (not easily, but it does,) and I felt that this would actually be about the optimal solution for someone switching between Windows and Linux/BSD.
I have a valid reason,
Upon upgrading to the new ubuntu, I found that my ATI card’s driver likes to fuck me over, and now I get the white screen of death upon logging in.
There is no way to roll back, so until ATI fixes the error, I am screwed with windows.
@Keith – nice new hardware may help :) And yeah, the Guest Addon thing is great – makes switching between host and guest OS as stemless as switching between desktops. :)
Also, did you try the “Seamless Mode”? It removes the “window” from behind your apps, so they look as if they were running natively under Linux. :P I don’t particularly care for it because I prefer the two environments separate, but it is a fun trick to try at least once. :)
@astine – as far as I know, there is no easy way to make an existing partition run in VirtualBox. It might be possible, but it is probably a major pain. I’m not sure how VM snapshots would work in a setup like this.
Anyway, what would be the benefit of doing this, other than avoiding installing the OS from scratch? I believe the performance would be the same in both cases.
@Travis – can you boot into recovery mode and uninstall the ATI drivers via apt or aptitude? GRUB should have and option for this. It should be possible to run the system on the generic drivers built into the kernel.
Try doing:
Or something like that. If one of the entries is marked with an i – that’s the one you have installed. Then just do:
This ought to restore your xconfig back to the pre-ati state too.
I use VMWare at work and it most definitely is not the ‘player’ version. VMWare Server (not ‘ESX’ or any other brand, just plain old ‘server’) is a free standalone program that allows you to install whatever you feel like, not just premade images. Pop in an install disk (or point to an .iso) and you’re off and running.
What is not free is stuff like ESX/GSX server, which allows you to manage virtual server farms – which has really cool stuff like moving a running virtual machine from one host to another (to balance load, or perhaps consolidate load at night and power down some hosts).
I chose VMWare at first because it’s windows/linux cross-platform, and I’m that mix of guy – I can take machines made on one flavour host and run them on another. Other VMs may do the same thing, but so far I haven’t found VMWare wanting in terms of my needs. If you’re a leet VM guru and know what you’re doing, sure, VMWare may or may not do what you want for free, but if you’re taking your first steps, it’s fine.
Ah, I don’t think the server version of VMWare was always free. But thanks for the tip. In fact I think VMWare is a more mature product than VirtualBox. I used to work with VMWare Worstation back in the day, and it was essentially same as VirtualBox is now in terms of functionality but it was not a free product then.