|Running Windows apps under Linux|
What are the best solutions?
Two recent threads by mack have been encouraging more use of linux by Windows users. Carrying on from suggestions in those threads on using Windows emulators:
Accepting that there are some apps that are not available in adequate form on linux, what are the options for running them under a Windows emulator and what is the optimum one (if there is such a thing!)?
My own particular requirement is for genealogy software. It must be compatible with a specific Windows-based proprietary database and must work across the local network of three Windows 2000 machines and (initially) one linux machine without disk access/path problems and without (obviously!) losing data.
For testing web sites I also need to be able to run various versions of MSIE. Currently I can only test locally using IE6 since nothing later works on Windows 2000 (and I do NOT like any later MS OS!). My current method of testing using MSIE-7 and MSIE-8 is to run them on my online servers (both 2003) which is clumsy. Is Windows emulator under linux a possible solution or is there still MS's "one machine one IE" restriction?
My other "must have" is to be able to launch Access files to view and modify - not OO alternatives but the true thing, which as far as I can determine is not possible directly under linux.
Finally, what kind of impact would specific emulators have on speed and resources?
For what it's worth my linux machine runs Ubuntu (currently Hardy).
I have run IE6 under wine. Not reliable, but OK for testing. AFAIK its legal as long as you have a Windows license somewhere (even a really old one....)
I used IEs4Linux to make the installation easier.
Wine is probably the lightest solution, so if it works for you its probably best. I cannot see how people can live with dual booting, so that leaves virtualisation.
I want to try virtualization myself (for multiple versions of IE etc.), and from what I have read so far:
1) Some VMs (e.g. Xen) require hardware support, which not all Intel CPUs have, others (e.g. Virtualbox) just work better with it.
2) Expect to use a lot more memory
3) Some people say there no noticable performance difference, others say its less responsive. Clearly YMMV - possibly depending on hardware support or having adequate memory?
My requirements are lower than yours: I just need IE 6,7 and 8 to work - 6 being the most important because its what causes the problems! The only software I have to install because it is crap.
Your network stipulation of working across a whole bunch of machines sure sounds like 'always on'. So the answer is, run windows.
If you need to run occassional windows apps, your mainstream choices are:
- dual boot. Flawless because you're actually running windows. But you need to reboot.
- wine. OK, not perfect. no reboot. free and I don't think needs a windows license.
- virtualbox. actually runs windws as an app inside linux. no reboot, you need a windows license because you actually install windows as a linux app.
I've done all three and much prefer virtualbox. But don't expect miracles, you're trying to get a closed source proprietary OS to do stuff they specifically don't want you to do. Everything is a hack.
Juding by "Support policy for Microsoft software running in non-Microsoft hardware virtualization software" in the MS knowledge base it looks like saying that it is "stuff they specifically don't want you to do" is not quite true, although they will not support virtualised Windows except under a Windows host.
I'll stick with my statement. I'm sure MS doesn't want you running windows under linux even if all they say publicly is 'it's unsupported'.
Thanks for the replies, guys.
Should have mentioned: the processor is AMD Sempron. Faster, as far as I recall, than my Windows machine and certainly more memory (1 Gbyte) and lots of spare disk.
Two of the machines are "not mine" in that the dev server is only used as a "blind" web server, controlled via Terminal Services, and the other is used by my wife.
Of the other two machines, one runs my Windows-only apps plus a few I can easily move to linux and the other is already Ubuntu, to which I've shifted a lot of my workload. I was contemplating using the linux machine to test the emulator to see if it's worth converting my windows box to linux. My working method is to design on one machine and view results on the other - makes it easier to work on corrections. I was hoping, eventually, to change the windows machine to linux as well (accepting the lower machine spec) but the comments here are rather discouraging.
Certainly I can't be bothered with dual-boot if only because the machines are never turned off: I set up a workplace full of apps and keep it running until a) something kills the OS (usually through abysmal memory management) or b) the monthly (often weekly nowadays) MS bug-fix reboots it. Apart from that I need fast acccess to apps in both environments. Hence the original question.
I agree MSIE-6 is the most non-standard MS browser but the others are also less standard than (eg) firefox so need to be tested before releasing web sites.
I have several Windows licenses going back to 3 but what version is actually run/emulated by Wine/Virtualbox? If I have to install Windows on a virtual machine then it's going to have to be 2000 and IE 7/8 won't work on that so I may as well keep the Windows 2000 box as is.
Wine is a library rather than an OS, and it tries to emulate the functionality of the win32 library of the 32 bits window versions. The basic library calls on win32 didn't change much from Windows 95 to the newest versions.
Virtual boxes like VMWare, XEN etc do not emulate a Windows library. Instead they emulate a computer including BIOS, emulated video card, network card etc. You have to install a Windows version inside the virtual box to create a Windows environment. Compatibility differs between the virtual box products, but Windows 2000 should in general not be a problem.
You should know that there is a significant difference between a library solution like Wine, and a virtual box like VMWare or XEN.
A library solution is royalty free, but may not be compatible for a number of applications. Virtual machines do quite a decent job in emulating a complete hardware and BIOS environment which gives a much better compatibility, but this comes at the price of needing a valid license for the Windows product you install inside the virtual machine. You could either install a retail version of an older Windows version which you don't longer use on a physical machine, or subscribe to the Microsoft MSDN program which entitles you to install the Windows versions in your subscription package for the specific purpose of testing applications and run-time environments.
|this comes at the price of needing a valid license for the Windows product you install inside the virtual machine |
Where I live, the only people with valid Windows licences are those who got it pre-installed with a PC from a major manufacturer!
The free verssion of Wine supports only IE6 out of the box. 7 & 8 require configuration, and I am not sure of the legality of some of the instructions (copying some DLLs from an XP installation).
You may be better off with Crossover, Codeweavers paid version of Wine.
If you are going to convert a Windows box to Linux you can use that license to run Windows in a VM on the same box. Unless the EULA prohibits running it virtualised, its still even on the same box.
I cant say for sure, and this is just my opinion, but when it comes to installing Windows within Linux I think you are ok so long as you have a license to run windows on that machine.
What you are doing is installing Windows within a software environment. Is it really a lot different to installing Windows in a bare computer. What about its BIOS, its software, and the various firmware that goes with the system hardware.
My belief is so long as you have a legally licensed copy of Windows you should be OK.
I just mentioned the End User License Agreement issue because it may influence the decision of people to chose for one option or the other. The exact text of the license agreement differs per product and language. All current EULAs can be found here [microsoft.com].
Thanks again, guys.
The potential problems weighed against benefits suggest to me keeping my windows box going for windows essentials until such time as I can find true replacement apps and no longer have to worry about MS web browsers because I've retired from web design. :)
|The exact text of the license agreement differs per product and language. |
That is one reason I prefer open source!
|The potential problems weighed against benefits suggest to me keeping my windows box going for windows essentials |
The discussion has been helpful to me as well: it has convinced me that I need to run virtualised Windows for testing with IE.