6

I'm a genetics PhD student. The word-processing and referencing software available for windows is more suitable (and more compatible with computers in the library etc.), but there's some genetics software that runs better on linux. (Currently i'm shopping for a laptop.)

I know you can get virtual linux in things like cygwin, or you can get two whole operating systems installed on the one machine ("dual boot"?).

Does dual boot have much advantage over something like cygwin?

It seems you don't need any specialized hardware for it? but does separate drives or something like that help?

How does dual boot compare to virtual linux within windows in terms of glitches and bugs?

5
  • 4
    Another solution is to use a full virtual machine, not only cygwin, by the way. It would be closer to what a dual boot provides, but executed on the other OS. It would then be slower, though, obviously.
    – Gnoupi
    Jun 26, 2010 at 15:27
  • thanks, is virtual machine a third option? or the same as what i was calling virtual linux? why is it slower?
    – Kirt
    Jun 26, 2010 at 15:53
  • 1
    The main question to ask yourself is what do you need each system for, and which one is your main one. For example, if you are mostly using one system but need the other only for one program or two, this is exactly the case to use a virtual machine. If you need to use both systems, and that you can actually "stay" under them without missing the essential, then dual boot is an option.
    – Gnoupi
    Jun 26, 2010 at 16:47
  • A virtual machine (VM) is a third option. Actually what you were calling "virtual Linux" a.k.a. Cygwin is not really virtual at all. Cygwin is a set of Windows programs that behave exactly like certain common Linux programs.
    – David Z
    Jun 26, 2010 at 18:40
  • Note that if it's a laptop, you have to check around to see if there are Linux drivers for it.
    – MiffTheFox
    Jun 26, 2010 at 20:47

8 Answers 8

8

Dual-booting will provide you with faster Linux than a true virtual solution (which Cygwin is not) because you will be dedicating your computer's entire processing power, etc to it. However, you will have to put up with the time it takes to shut down one operating system and boot the other whenever you need to switch.

Running Linux in a virtual machine (such as VirtualBox) will typically result in fewer issues simply because your hardware will be emulated so you will not likely have any driver incompatibilities.

You do not need any special hardware to dual-boot, but I would recommend searching for the computer you are thinking about in the context of Linux issues to see if there are any common issues with it. Even brands that (at least in my experience) provide decent enough Linux support (in my case, Toshiba), you could still end up wit a laptop whose ACPI won't work with Linux, effectively preventing you from using it as a laptop.

As @houbysoft mentioned, partitioning (meaning breaking up one drive into two segments that will appear as different drives on your computer) is the most common option for dual-booting, but the Wubi Installer for Ubuntu provides an effective alternative by creating virtual partitions on your disk. It also uses the Windows Boot Manager rather than the GRUB Menu that most distributions default to.

3
  • +1 because dual-booting is kind of a pain. But if you run CPU-intensive tasks on Linux, I think it's worth it. (I used to dual-boot, now I run Windows in a VM on a Linux host, but I kind of want to go back to dual-booting because I miss the graphics performance on Windows.)
    – David Z
    Jun 26, 2010 at 18:43
  • do i avoid hardware compatability issues if i run it in virtual box? If i get a windows 7 PC wouldn't the linux in the box communicate with the hardware via windows?
    – Kirt
    Jul 15, 2010 at 5:24
  • @Bec Yes, you will avoid hardware compatibility issues.
    – Emory Bell
    Jul 15, 2010 at 16:16
7

Cygwin is not really used as a "full linux" in windows, rather, it is usually used to compile linux software under windows, hardly like a full linux replacement.

It is therefore not even comparable to installing both linux and windows side by side. You don't need to have any special hardware, not even separate drives : you will simply divide your (one) drive into two or more partitions and install linux on one of them. Note that for some of the more newbie-friendly linux distributions such as Ubuntu, this is usually done automatically and is really simple.

One more option you have is to install linux in a Virtual Machine in Windows using for example Virtualbox -- this is nice in the way that you can run both windows and linux "at the same time"; however, in a VM the performance will always be a little decreased, so if you need to run programs requiring a lot of CPU/memory, this solution might not be for you.

2
  • some of the stuff i use does take a fair bit of grunt to run, what sort of performance loss are we talking about for a virtual machine?
    – Kirt
    Jun 26, 2010 at 15:56
  • The performance hit from running software in a VM can vary considerably, so it you have access to the software now it might be worth trying to run it in a VM on an existing machine to see what the difference is. What-ever the difference, I would guess it would be a lot better than the relative inconvenience of dual-boot. Jun 26, 2010 at 16:09
3

Dual booting is usually no needed these days - unless you need 3D graphics performance or such in both OSs then virtualisation or ports like cygwin will do the job.

Running Linux or Windows in a VirtualBox or VMWare VM, both of which are free for the sort of use you describe and many more, works very reliably these days. If the genetics software you wish to run is very CPU intensive (and I assume it is, if I'm understanding what you mean by "genetics software" I assume it will be performing searches over large data-sets) and scales well on multi-core CPUs (and you get a multi-core CPU in your new machine) then you may be better off running Linux as the hist OS and Windows in a VM - this is how I run my netbook as your word processing and related tasks will not need such performance. Of course what other software you might like to run could reverse this recommendation. Both VBox and VMWare run find with specific CPU support unless you want to run 64-bit OSs in your VM(s). If you want to run 64-bit OSs in the VM(s) or a little efficiency boost for 32-bit ones then you'll need a CPU with relevant support. Make sure your machine has enough RAM for both the host OS and what you are running in the VMs, of course (this shouldn't be a problem as 3 or 4Gb seems to be becoming standard on even relatively inexpensive laptops these day.

If the software you are wanting to run is in source form and compiles under cygwin then this is a perfectly valid option too, though there are some things for which the cygwin libraries are not as efficient for so there could a similar performance hit there as running it in a VM. If the software is in binary form then you may not have as much success running it in the cygwin environment.

To cut a long story short: go with virtualisation rather than dual-boot. It works very reliably in my experience (both on home desktops/portables and the dev/test servers that I maintain at work) and is far more convenient as you can use both sets of software together - transferring files and other data between the host OS and VMs is no hardship either.

5
  • VMWare is free?
    – Jan K.
    Jun 26, 2010 at 15:53
  • @Jan As in "free beer", yes. At least the player is. I think, the server is free as well. The Workstation version is payware.
    – foraidt
    Jun 26, 2010 at 16:04
  • thanks, virtual machine seems like it might be a good option. (Might get that set up on my desktop as well) So a virtual machine wouldn't alow me access to using the multiple cores as easily? most of the machine's i've looked at are at least dual core, and a lot of the stuff which i may run in linux allow using multiple cores. the computer will be shared with my partner who likes to play games a fair bit, i imagine a lot of them would run quite poorly in virtual windows?
    – Kirt
    Jun 26, 2010 at 16:05
  • It has a free version. It still requires registration though. One more thing I might add that while I agree that if you run a CPU intensive task on your Linux, it is better to have it as your primary OS, but VMWare runs more stable on Windows (because of the multitude of Linux kernel versions may provide incompatibility).
    – petersohn
    Jun 26, 2010 at 16:09
  • VMWare allows you to assign multiple virtual CPUs to a VM if you have multiple real CPUs/cores - but (certainly in the the free versions) this is does not give the speed you might expect and in some cases actually works out slower due to scheduling issues. Modern CPUs are pretty nippy though - you might find a single core is fine for your needs anyway. When picking your CPU, for the use you describe, I would favour a dual-core model with fast cores and plenty of cache over a quad-core which my have slower individual cores and/or less L1/L2 cache per core. Jun 26, 2010 at 16:15
2

Keep in mind that when using a virtual machine with another operating system, you still need to have licenses for both operating systems. If the laptop you're looking at comes with both Windows and Linux flavors at the same price, get the Windows version. You will get a bundled Window license, and you can then install a virtual machine with a free Linux.

1
  • Most distributions of Linux have open source licenses, so licensing is not an issue. Enterprise Linux variants with licenses are basically to ensure support.
    – BillThor
    Jul 4, 2010 at 16:48
2

Alternatively to VM Ware & co., you could run Linux and try Wine to emulate your Windows programs. Through WineHQ you can check if your programs would work before you comit.

2

There is another alternative that has not been discussed here. SomeClown has alluded to it but did not specifically recommended it. This will be not only the most expensive option but far and away the simplest and most reliable. I simply use a separate "box" for each OS that I use or play with and use a KVM switch to swap between them. While this requires a much greater footprint and greater initial expense as well as the stand-by use of power for each box involved, it is clearly the simplest and most reliable solution. Not even Windows 7 XP Mode works as well with legacy hardware (HP Photosmart P1100 printer) as a dedicated XP machine. With this setup, you can leave a program in one OS running while you work on a program in another OS and have no delay or slow-down as a result of switching between OSs. This just works much better for me.

2

Use KVM (Kernel-based Virtual Machine) and run windows in a virtual machine

It's a virtual machine that fully supports 'native virtualization'. Meaning, if you have a processor that supports virtualization, the GuestOS can interface directly with the processor. It's also included directly into the linux kernel so it comes with most/all current distros of *nix and is under active development.

The only downside to this option is that hardware virtualization still sucks so you probably won't be able to get your graphics card working to its full potential.

For more info see this article.

I'm currently have working images of windows7 and windowsXP in Linux Mint 9.

If you're looking for a virtualization solution that is more user friendly checkout virtual box.

I have run dual-boot for a few years now and IMHO it sucks because it's too much of a pain to restart every time you want to change systems and you can never work with both at the same time.

Virtualization is the way to go because it's so easy to save a backup of the whole system (just copy the .img file). In the case of using windows, I don't think I'll ever use it in a non-virtual environment again just because I'm so sick and tired of viruses killing my system and the performance hit (and ridiculous cost) of using an anti-virus software full-time just isn't worth it.

Update: To put this in better context with the question here's a comparison with the alternatives.

Cygwin basically provides most of the common applications and tools common to linux in a custom windows command line application. For example, if you wanted to use gcc-c++ compiler in windows, you'd have to run it in cygwin. It also can provide many of the *nix libraries that those specific apps might need.

The plus side to cygwin is you can run *nix apps in windows. The downside is, those apps still have to be compiled in windows and cygwin may be missing support for a particular *nix specific module.

Dual-boot is probably the best choice if you're looking to do anything that includes a lot of graphics rendering or requires hardware support in *nix. It's a bit of a pain if you're not familiar with partitioning drives and to get the MBR (Master Boot Record) setup so you can see all of the options on boot. If you understand the details of setting up a dual-boot system it's not such a bad option. The only real downside to dual-boot is, you can't use both windows and *nix at the same time. This may not seem like a big deal at first but if you have a preference for one OS over the other, it'll seem like a huge chore to restart and boot the other system (ie about 2min per reboot of wasted time).

Virtual Machines are great if you don't need hardware acceleration and want a system that is portable and easy to deploy. Basically, the VM acts like a virtual computer with its own set of generic emulated hardware. As an example, if you load windows on a VM, you'd only have to install the drivers in the OS once no matter how many different systems you use that image on because the OS only sees the virtual hardware set. IE, you can copy and paste the OS to as many different systems as you want and don't ever have to worry about hardware drivers after the initial install. The downside is you lose hardware acceleration (which basically makes your graphics card useless) in the GuestOS. There have been a lot of advances in Virtual Machines such as, VMs can now interact directly with processors that support virtualization but I haven't heard of any graphics cards so far that have bridged the gap. The greatest advantage to VMs is, the OS partition resides in a single file that can be copied, pasted, put under version control, loaded remotely, etc... like any other file on your system and its size isn't limited to the size of its partition on your hard drive. Another great advantage is, you'll no longer have to reboot to do work in both systems simultaneously.

Here's what it all comes down to:

  • If you want raw performance with the most stability, run the os natively using dual-boot
  • If you aren't comfortable with *nix at all, don't mind re-compiling your applications in windows, and are ready to scrap your efforts if the application you're using may not work, go with Cygwin.
  • If you want a system that is easiest to copy/deploy/backup, don't want to deal with hardware issues and you can accept a performance hit, use a VM.

Personally, I've wasted enough of my life having to re-install windows because of a badly deployed update, spyware/virus, or just general performance degradation over time that I won't run it outside of a VM unless I'm forced to. Ie, I prefer to be able to copy and paste a fresh install of windows to any system if needed. In the case of *nix, it's stable enough that I haven't been forced to reinstall it since I started using if full time (1 1/2 years ago). But, as with all things YMMV. I refuse to waste time/money/processing power to an anti-virus and I have a tendency to abuse my OS more than the average user. Skinny dipping on the net in windows is ill advised ;).

2
  • what's more user-friendly about Virtual Box, it's what i ended up going with, but i'm just trying it out for now, so still open to other options.
    – Kirt
    Aug 11, 2010 at 13:05
  • @Kirstin When I wrote this answer, KVM was still relatively new and suffering from some teething pains. I assume it has improved over the past year. KVM is a hypervisor, meaning it requires processor support to work properly. Processors that support virtualization are becoming more common but be aware of the risk. VirtualBox OTOH is OS level only so it may run slower but the development is much more secure so you can expect fewer issues when you go to deploy it. Feb 2, 2012 at 22:19
1

I'd run Linux as the main OS for it's superior stability and security. (When I don't have to worry as much about system crashes or security, I can then concentrate more on my work. Even if said work involves finding that last darn rune so that I can become a level 67 magician.) I'd then run the Windows programs not in a VM, but with an emulator, i.e. Wine|Cedega|Crossover.

Although you would get the best performance running your programs in their native OS, dual-booting can get to be a real pain in the behind when you have to do it over and over and over again. There also can be some file system compatibility problems and/or limits. MS does not read *nix file systems for one thing (there are utils that do, do this, but not one that I've trusted yet) and although on the *nix side NTFS support has come a long ways, it's still not perfect. Some distro's even give a warning if you turn on NTFS read and write saying, "You're doing this at your own risk. Don't say we didn't warn you". This leaves FAT32 for maximum compatibility and a four gig file size limit for passing files back and forth between OS'.

Virtual machines are great, but that's basically using enough resources for another computer. I might as well have another computer and a KVM switch. (Actually, if you have another computer networked on your LAN this would probably be the best solution. Or lacking the KVM switch just use VNC.)

This is why I'd shoot for an emulator. No time consuming dual-booting. No loading a second OS within a first OS just so I could run one program. Wine is great along with all it's tools like Wine-Doors and such but I recently installed the latest CrossOver and there isn't a Windows app I haven't been able to run. At least not yet. I know I will run into some that just wont work. I just haven't run into one so far. But I did get one to work where I get to be a level 67 magician. That alone makes it worth the money I paid.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .