Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Especially for Rails, I've found that development on Linux is generally a lot nicer than on Windows. However, I still prefer Windows as my main OS.

So far I've tried 2 options.

Dual-Booting with Ubuntu: The problem with this is I don't like having to reboot just to use Ubuntu, like if someone just asked me a quick question about a project.

Virtualizing Ubuntu with VirtualBox: This is pretty damn slow and freezes up at times, even if I'm doing basic stuff like text editing.

Basically, I'm looking for something that doesn't need to be full-featured, but where I can fetch repository packages that I need such as programming libraries. I was thinking maybe there's a Linux distro that's less demanding than Ubuntu that I can use, or some way to run a decent Linux within Windows without virtualizing. Any suggestions?

share|improve this question

migrated from Nov 10 '09 at 3:15

This question came from our site for professional and enthusiast programmers.

I've had success with VMWare and Ubuntu personally. – Nathan Taylor Nov 10 '09 at 0:16
I've ran a VM with ArchLinux when I faced a similar situation: – R. Martinho Fernandes Nov 10 '09 at 0:16
What linux tools do you need exactly? – hasen Nov 10 '09 at 3:28
Currently using: ruby, python, C; then I may need firefox, an editor, and subversion if I can't use the windows counterparts, or if I can't see a webserver run in linux in a windows browser. – Karl Nov 10 '09 at 4:12

16 Answers 16

up vote 7 down vote accepted

Did you consider using Cygwin? I didn't test this myself but there are several resources mentioning this combo:

share|improve this answer
Thing is, I've seen cygwin in action before and it isn't quite what I want. I at least want to be able to run programs graphically and still be able to use a repository like the one on Ubuntu. – Karl Nov 10 '09 at 0:29
You don't use a package manager with Cygwin but it does have a kind of repository. Regarding the ability to run programs graphically, What kind of programs? Can you clarify this? This is confusing, I don't know get you don't boot under Ubuntu then. What are you using Windows for? PS: I've read your concern about dual-booting but I don't get how a graphical environment allows you to give better answers. – Pascal Thivent Nov 10 '09 at 0:41
By the way, you can run a X server under Windows. See Cygwin/X. – Pascal Thivent Nov 10 '09 at 0:44
I was unaware of Cygwin/X. And I'm a bit ignorant about the thing in general, but I remember something about the cygwin python being outdated, and besides that issue I don't want to run the risk of that happening for other things I need such as ruby. – Karl Nov 10 '09 at 0:54
You can mix and match Cygwin/X with python for Win32 and other non-cygwin builds. Personally I like the Win32 ZSH, but have stopped using cygwin in favor of either a virtualized unix environment or native windows tools. – dlamblin Nov 10 '09 at 4:51

Have a look at what cygwin can offer you for a Linux- like experience on Windows.

Or: virtualize Windows (tm) inside Linux.

share|improve this answer
virtualizing windows in linux runs alot better than vice versa – ThePosey Nov 10 '09 at 1:11
The other way around isn't a good idea, I've considered it but the things I run in windows are much more demanding than what I do on linux (Maya, Photoshop, Warcraft, etc.). – Karl Nov 10 '09 at 3:28
Just for the record, Warcraft do run fine with Wine (I'm not playing anymore but I did so I know what I'm talking about). – Pascal Thivent Nov 10 '09 at 11:16

If you want Linux on Windows without virtualization, that sounds like coLinux to me.

share|improve this answer
Looked into this a bit and found andLinux ( Anyone have experience with that? – Karl Nov 10 '09 at 1:00

Perhaps you need to upgrade your PC. Ubuntu+text editing shouldn't be a problem for VirtualBox or VMWare.

However, if you want a resource-lite distro, try Arch Linux + Xfce desktop.

share|improve this answer

You can install Ubuntu using a windows installer using Wubi. The result is a standard dual boot setup, but with a simplified method for installing ubuntu if you already have windows pre-existing on your machine. Switching between windows and ubuntu requires a reboot.

share|improve this answer
Isn't that essentially the same thing as dual-booting though? I'd still have to "reboot" to switch from one to the other, wouldn't I? – Karl Nov 10 '09 at 3:25

I'd try to find another PC to put Ubuntu on. A relatively older one should run it fine.

You can join them together and share the keyboard/mouse with win2vnc or x2vnc.

share|improve this answer
Unfortunately that isn't that great of an option for me, since I'm using a laptop that I carry all over the place. – Karl Nov 10 '09 at 3:26

You may be able to tweak VirtualBox to speed it up significantly. If you have a recent CPU, you can enable VT-x (Intel) or AMD-V, and possibly also nested paging. If your processor supports both of these, you should see a significant speed increase. As mentioned by others, you could always try making linux less demanding - use a lighter window manager, or use a distro like DSL or Puppy linux.

share|improve this answer
I'll take a good at this options, I didn't mess with them at first because I didn't know what they did. – Karl Nov 10 '09 at 3:24

I've found virtualizing Windows XP pretty sluggish with a full dev environment running, but maybe that's just because I do that for Flex development which requires Flex Builder which almost instantly consumes all of my VM's allocated RAM. Virtualization is really demanding on your hardware, my next build is going to have 16GB of RAM so that I can virtualize in peace.

I think it would be faster to run a minimal Linux distro like Arch in VirtualBox and use that for running the servers and things like the console commands that generate your skeletons. I use git for all my source control and just push and pull from a remote repo to share code between my VMs, it's just easier that way than setting up something special.

Good luck. I think this approach is much more reliable and straightforward than cygwin or other POSIX implementations on Windows; it generally takes significant fiddling to get those things to work correctly for more than a couple of applications, and I assume if you're going to be running a server you'll have some issues with it.

share|improve this answer

Boxes are cheap, especially something to run Linux on. I have a wimpy little garage server that has only 256MB on it and it runs Ubuntu 9.04 server just fine. You can always network the filesystem so you can use whatever on your Win box to edit, but when you run the code, you are actually running in a Linux environment, no games, no compromises.

Once you've taken the plunge (please return it by Tuesday) you'll find that Linux is far more interesting as a server environment. You can try out nginx, or play around with iptables, or ... The point is, just get a separate Linux box and all of the problems are "solved." And you will be building marketable skills in the process.

share|improve this answer
Sounds like a good idea for the future, but for now I'll stay on one machine. I'm not really rooted to one location right now, so then the network lag could become an issue. – Karl Nov 10 '09 at 4:11
I have websites on dedicated servers on 3 continents and via SSH I can't really tell which is which without looking at my command prompt (which shows the hostname). If you're trying to run X windows over a long/slow connect, then yeah, you'll see a difference, but if you go Old School (vi, tcsh, and a bunch of gopher's spinning in their cages) then there's not much difference between a 15 msec ping and a 150 msec ping. (You can tell by the speed of my response I don't check SuperUser too often). – Peter Rowell Dec 9 '09 at 4:38

Try VMWare player. It's free and really nice. You can drag and drop between your windows environment and Linux. It's quite easy to use aswell. I'm running Ubuntu and OpenSUSE on top of my Windows XP.

share|improve this answer

Download and run the POSIX subsystem for Windows. It's kinda like Linux.

share|improve this answer

You could stick with Ubuntu in a VM (keep the benefits of broad community support etc.) and try a less demanding windowing environment than Gnome or KDE. Wmii and awesome are, from what I've heard, pretty good. (edit) Forgot about Fluxbox, there's an intro to using it on Ubuntu here.

share|improve this answer

If you're just looking for a "linux-like" development environment, MSYS provides a bash shell and a good handful of development tools that run natively in Windows. Combined with MinGW, lets you compile and install plenty of open source packages.

Alternatively, Cygwin provides an emulation layer which lets you compile and run most linux programs. A bit slower than the native Windows programs you get with MSYS, but better selection of libraries/software that have don't have good Windows ports yet.

share|improve this answer

Why not just develop in windows. Most of the standard opend source tooling Apache, perl, php, ruby, sqlite, Mysql, vim, Eclipse etc. etc. come nicely packed as windows ".exe" install files (in may cases much more nicely packaged!).

The only real pain is occasionally you may have to write a ".bat" file which I thought was pretty awful attempt at a shell for an 8 bit machine and has not improved one bit in the last 20 years.

share|improve this answer
Ruby/rails is really sluggish in Windows, and the binaries are a bit outdated. It also gives me weird console issues. I actually started just using Windows but I got annoyed really fast. – Karl Nov 10 '09 at 3:23

I personally can get by with msysgit, which is a fork of msys, which is a fork of cygwin. Depending on what exactly you need I'd say one of those. it's unfortunate that I've noted incompatibilities between msys and msysgit. I'm not sure if there's a binary incompatibility with mingw and msysgit, but in theory they should work together so I would go with that. Given it doesn't have a package manager... but is enough unix for me on windows... depending on what you really want/need. Otherwise go with a virtualization product.

share|improve this answer

I recommend using Lubuntu instead of Ubuntu when running Ubuntu in a VM environment.

I also do not like the speed of normal Ubuntu. Lubuntu is faster especially in a VM. It also just needs about 256MB of RAM to run good.

Only downside: There are no long term releases of Lubuntu. That means you need to upgrade Lubuntu maybe once/twice a year (which is easy with Ubuntu based systems).

share|improve this answer

You must log in to answer this question.

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