views:

1456

answers:

13

I am attempting to choose a Linux, Unix, and/or BSD distribution for development purposes. I want to be able to do things like write shell scripts, develop C, C++, Java, Ruby, Python, etc. apps in a *nix environment, and see things from a different perspective. I'm planning on using a Virtual Machine to do all of this. My first stop was distowatch, but I'm not sure what I'm even looking for in a distribution.

  1. What are the crucial differences between Linux, Unix, and BSD?
  2. What features do I want in a *nix distribution for software development?
  3. Since I'll be virtualizing and can probably run a dozen different distros, what distos would you recommend for:
    1. Linux?
    2. Unix?
    3. BSD?


This is an experiment. I deleted an old question that did not get any good answer with an idea that maybe, if I refocused the entire question, I could get the same information I wanted in a better way. I hope this works. :)

+3  A: 

Lurk on LinuxHater's blog and see which distro he busts on the least.

edit: Goodbye rep points... But seriously, don't go to fanbois. Listen to critics from within the community. They don't look at distros with starry eyes, and can give you the straight line on which one is best for you.

In before ubuntu.

Will
A: 

Try a bunch, and figure out which one you like best. Load them on a VM if you don't have a spare machine to mess around with, and just play with them. A lot of this is subjective as to which one you will like in the end, because everybody's needs are different.

Kibbee
A: 

@Kibbee

If I wasn't running a VM, what would you suggest that I look for? I find it difficult to make an informed decision when I don't know exactly what the various options mean. I've used Windows all my life...I don't know the difference between GNOME and KDE, other than the face that they are two different window managers. Some people might know less than that.

I guess what I'm looking for is not "what distro do I choose?" but "how do I go about evaluating them without installing them all?"

Thomas Owens
+2  A: 

Well, if you're used to windows, the most important recommendation I can make is to use a distro such as Fedora or Ubuntu which has a robust package management and dependency system. As someone new to Linux myself, there is nothing quite so painful as trying to install something, then realizing it requires a library, oops, which I need to compile... ad nauseum. I can do it, but frankly I don't want to spend 3 hours installing the latest version of Java.

levand
Agreed, package management is important, but I prefer Zenwalk's netpkg to apt and yast.
new123456
A: 

For first time user I suggesting finding yourself a guru (in person or online), and using what they like. The better to get good help.

Once you know the basics try a few, then you'll learn what you like.

dmckee
+8  A: 

Differences between Linux, *nix and BSD A quite general way of looking at it is the unices have paid for the certifications and licences from Open Group that allow them to use the name but in this day and age they all do much the same, can run the same software and can be made to operate (on the surface) in similar ways.

Another way of looking at it is one that causes lots of confusion and arguments. Linux is a Kernel and Unices are an operating systems. This is why most Linux distributions are considered GNU/Linux by diehards and free software supporters because the tools come from the GNU project. This is less clear in this day and age where many Unix admins and users replace at least a few of the supplied tools with the GNU tools.

BSD sits across both camps because BSD is a Unix based on it's history but is a free unix unlike many of it's competitors.

What features should you be looking for? and where to find them? This is really subjective and as I'm a freesoftware guy this might offend a few people but I think any of the systems that have been developed by teams of user/developers will have all the 'right' tools and features from the off so I'm going to list a few that I think fit firmly in this camp. This list isn't exhaustive but is pretty indicative of those from this method of development with the strongest user/developer bases.

  • Debian GNU/Linux
  • Slackware GNU/Linux
  • NetBSD
  • FreeBSD
  • OpenBSD

There are also distros based on the above such as Ubuntu which are also great choices because they inherit many of the good points from their ancestors.

Main features to look for. Ease of administration. Most of the above provide usable tools for maintainance and software install with my personal top from the Linux and BSD worlds for this being Debian and FreeBSD.

Peer support, all of the above have a wonderful community of users with FAQs and mailing list archives answering the majority of questions you might have.

sparkes
+5  A: 

Unix isn't really a standalone operating system anymore. The operating system with the most direct heritage to the original Unix is probably SCO OpenServer, but nobody uses it.

Linux and BSD are both Unix-like operating systems, and so can be thought of as a subset of "Unix".

BSD are divided into three popular distributions, FreeBSD, OpenBSD and NetBSD. They each have different focuses but are primarily server-oriented. To greatly simplify their differences, FreeBSD is more general purpose and used frequently as a webserver, OpenBSD is focused on security (pretty much all open-source unix operating systems use security software that originated from OpenBSD), and NetBSD is focused on portability (it runs on damn near anything).

The primary difference between BSD and Linux is their kernels, which implement the POSIX Unix environment in their own unique ways.

Most Linux distributions are also server-oriented but there are some decent desktop versions to choose from. The three most popular are Ubuntu, Novell's OpenSuSE and RedHat's Fedora. As a beginner to Linux, I would focus on these three. Personally I have found Ubuntu to have a slightly better out-of-the-box experience but they each have their relative strengths and flaws that you should weigh.

As far as Gnome vs. KDE, I would recommend Gnome to start with for two reasons: every major distribution uses Gnome as the default on their flagship products, and KDE is in the midst of a complete overhaul to their desktop environment of which the dust has not quite settled yet.

The key is to use the most common software that you can easily find help with. Once you get a little more comfortable, you can look for better solutions to specific things.

Adam Lassek
+2  A: 

Here's what I found out back when I was trying out linuxes

  • Debian - Got good package management (as in it's easy to (apt-)get all those GNU software)
  • Ubuntu - One of the best out-of-the-box desktop system based on Debian
  • Gentoo - Uber configuration-heaven (or hell?)

Those are my first impressions about them. The other distros doesn't leave much impressions. I am not on Linux regularly though.

As with someone who has been on Windows pretty much all the time, the first gotcha when going to *nix systems was the filesystem, they don't have Drives (as in C:\ D:) they have mount points instead and each one can use a different file systems.... (swap, ext2, ext3, journal fs etc.) you can imagine the confusion when putting in a CD-rom haha

and the second one is the methods of installing software, which if your distro don't have a decent package repository, you pretty much have to build everything up from source code tarballs and that ain't something we do often on Windows.

So I'd suggest that you go with Ubuntu first as that's a rather popular and easy to use one and then when you have some deeper knowledge and familiarity with the system, you can start trying the more obscure and hardcore ones.

chakrit
Gentoo is good for learning too. Also optimization, ricing, etc..
Sargun Dhillon
A: 

It's been touched on by a few other answers, but it all depends on what you're "in it" for. Are you in it to learn "how it works"? Then gentoo or slackware are good choices as it forces you to learn a bit more about the underlying system and its organization. If you want to post screenshots of compiz/fuzion (sigh) or want something easy to get into then *buntu distros are a great starting point.

hometoast
+3  A: 

Linux, UNIX and the BSD's are all similar and once you learn one of the flavors, you can function as a general purpose programmer in any of them pretty easily. The biggest differences are for systems programmers and systems administrators to worry about.

For Linux distro's, I would try Ubuntu and openSUSE.

  • Ubuntu and openSUSE are both very easy to install.
  • You can find lots of help and documentation on the Ubuntu forums.
  • Ubuntu is based on the debian packaging system, which is better than RedHat's RPM IMHO.
  • openSUSE has a little better integration with Windows networks (i.e. Exchange Server).

For UNIX distro's, I think the only Open Source option that is (relatively) easy to install and run on commodity hardware is OpenSolaris.

  • This may be the most challenging option to install and get running.
  • I have read the driver support is getting better, but you may want to check the HCL (hardware compatibility list).
  • DTrace and ZFS are awesome tools and better than anything the other options can offer. DTrace may be able to help debugging complicated programming problems.

For BSD distro's, I think FreeBSD is probably the best choice for general purpose programming.

  • Java is not well supported on the BSD's. Java was listed as one of your programming languages.
  • The driver support isn't as good as the Linux distro's, but probably better than OpenSolaris.
  • Documentation and support is not as easy to find as with Linux.
  • Installation is a little more details and complicated than with Linux.
  • Good packaging system.

Even though your focus seems to be on general purpose programming and not on learning the OS, I learned more about Linux and to a lesser degree how PC's work from installing/building/maintaining a gentoo desktop than anything else I have ever done.

Lloyd Meinholz
The bundled documentation for FreeBSD is far superior in comparison with Linux: the handbook and the man pages (the Linux ones are a laugh) are two examples. But sure, I'm talking about "bundled" documentation.
Hernán
A: 

I would add my support to those choosing ubuntu - it's pretty much a no-brainer to install from iso, both on a bare box and in a VM, and apt-get package installer works very nicely for me. Not a fanboi, just pretty comfortable with using Ubuntu over last year or so.

WaveyDavey
+1  A: 

I really can't speak for anything but Linux, since it's the flavour of *nix I have most experience with. I can't really remember the last time I've logged into anything running a *BSD, and the big brand unices that I use (Solaris and HP-UX for the most part) are NOT something I'd recommend a beginner touch, even if you can afford the licensing fees.

I've been using Linux "seriously" (i.e. as my day to day operating system) for something like 10 years - and even before that I'd played around with it, so I'm pretty familiar with it. I started with the Slackware distrbution, and have moved through various flavours of RedHat, Mandrake (called Mandriva these days I believe), Debian, Gentoo (which I probably ran for the longest period of all of them) and I've finally settled on Ubuntu.

A lot of diehards might choose to take issue with the fact that I've ended up with what a lot of them would regard as a "My First Linux" or "Linux for Dummies", but even though I consider myself an extremely competent Linux sysadmin and can make any distro behave the way I want to - I've come to realise that knowing how to hack your way through /etc/* and build your own kernels doesn't necessarily make you a productive user.

Ubuntu works out of the box in 99.9% of cases, and the adminstrative fluff that comes with it is very well done - meaning that if you're coming to Linux from windows, you won't struggle much. The package repositories for Ubuntu (and Debian by extension, since Ubuntu is descended from that fine distro) is, in my opinion, pretty near peerless. That means that if you want to install Application X, you'll be very unlucky indeed not to find it in Synaptic (the package front end) to be installed at the click of a button. Even easier than a windows software install I promise!

Other modern distros like OpenSUSe and Fedora have similar repositories, and similar packaging systems, but they don't have the heritage and evolution that Ubuntu has got from coming from Debian, and I find I cannot recommend them to a newbie very easily. The only caveat there though is that if you're planning on making a career from Linux, in most cases you'll find RedHat is the distribution of choice in the Enterprise. There are companies who have settled on other choices, but they're few and far between.

I hope that helps!

Bryan

GodEater
A: 

I suppose that there's one other unix that's worth mentioning. OS X is a very user friendly operating system that's actually a POSIX certified UNIX. It lacks a lot of the features that a developer would desire from other *nixes (I would kill if OS X could have a package manager that didn't suck for instance), but you get a full-blown unix with a lot of powerful software installed by default.

Jason Baker