Unix-based operating systems

Hello. I own a MacBook (black) running Leopard (Mac OS X 10.5.8), and I'm curious about a few things -- any help will be very, very much appreciated. I'm pretty much a newbie to Unix, although I have some very basic command-line skills with Mac OS X's Terminal. So while I know how to work the command-line to a certain degree, I have no idea about any of the various Unix-based OS's out there, and that's what I want to ask about. Here's a few questions:

1.) I think the answer to this is no, but I want to make sure -- is there just a Unix operating system? Could I go online, for example, and buy the Unix operating system? Is there a plain-old Unix, or are there only Unix-based operating systems like Linux and BSD and Solaris and whatnot?

2.) Like I mentioned, I have a MacBook. I am also about to buy a PC notebook very soon. I know Mac OS X has Unix at its core, but I would still like to have an actual Unix operating system installed on one of these two computers. I am a developer, and my primary use of this Unix OS will be for programming and development. Given this information, does anyone have any recommendation/advice/information as to which Unix-based OS might be best for me? Is there one (or some) that might be better than the others for me? I'm not concerned so much about price, and I would like a really good, high-end OS. I know many of these OS's have their own purposes and are different from one another, so I know it would be naive to say I want "the best" one, but I would like to know what the best options are for me in terms of high-end, Unix-based operating systems. I've done some research before I came here, but I don't know enough about a lot of the stuff I'm reading to get a good idea of what would be best for me, and I wanted to get the input of people who have real firsthand experience with this kind of thing.

3.) I don't want to do a Live-CD version or anything like that, so would it be better to install this OS on my MacBook or on the PC? Does it matter? Mac's have always been more stable in my experience, so I was thinking that it might handle formatting the hard disk (if that's necessary) better, especially since it's Unix-based to begin with. Would it be more efficient or better overall to partition the HD and install the OS on the Mac or the PC, if either?

Thank you very much in advance for your time and help. I really appreciated any information that anyone has time to give regarding the above questions. Thanks again!

My take on your questions:

  1. There is no such thing as "plain old unix". There are variants on a theme.
    And why buy when all the great ones are free. You buy when you want more support than you get from reading man pages and asking question in places like this.

  2. I'd suggest you get solaris, open solaris, or CentOS and run it on you pc.
    Solaris is more mature. CentOS is probably the best of the Linux types. After all, it's built on Redhat source :slight_smile: I run both types on a variety of systems. I'd would install both on your PC.

  3. Keep the stable system stable. If you are doing dev work, then you can expect things to go strange sometimes. So keep the Mac running stable and try out the other systems on your PC.

Let's see if I can help you a bit:

  1. There was, a long time ago, the one original AT&T UNIX. However, it's long been discontinued, with rights going through various hands (see the current Novell vs. SCO squabble). Sometime around the late 1970s, two different systems started to emerge: System V, and the Berkley Standard Distribution. Current Unices are based on those two. For a complete overview, Wikipedia has a pretty good article.
  2. If by "high-end" you mean "expensive closed-source company produced", you won't be able to buy these alone. Those usually come bundled with hardware, and aren't available without it (AIX, HP-UX, and MacOS X are examples of that).
    Deciding on what UNIX to use depends on what you want to do. If you want to develop in a wide range of languages, or using the most current hardware, I'd suggest Linux. If you want a stable system (both in terms of run-time and system behaviour), I'd suggest *BSD or OpenSolaris
  3. The hardware modern Intel-based Macs use is pretty much completely PC hardware, so it won't make any difference on stability. But I suggest setting up the new system on different hardware, since it won't be as much trouble should you need to re-install.

Note that there are many reports telling you can install OpenSolaris on a macbook. Alternatively you can install VirtualBox on Mac OS/X then install OpenSolaris, some Gnu/Linux or BSDs on the top of it.

Thanks, guys -- great responses. That pretty much answers my questions, but it did raise a few more.

1.) pludi, I was curious what you meant when you said "But I suggest setting up the new system on different hardware, since it won't be as much trouble should you need to re-install." Maybe I'm just being thick, but I can't figure out what you meant by this. Could you elaborate if you get a chance? Thanks!

2.) There were two recommendations for OpenSolaris in these posts. I can probably research this myself, so don't spend too much time answering this, but what is the difference between Solaris and OpenSolaris. I assume the main difference is that OpenSolaris is open source, but what exactly does that mean? I mean I know the technical definition, that the source code is available to read and alter if you want, but what does it mean in terms of the operating system itself? Does Solaris have functionality that OpenSolaris doesn't, or vice versa?

3.) jp, you mentioned this: "And why buy when all the great ones are free. You buy when you want more support than you get from reading man pages and asking question in places like this." This is a very good point. Is this true, that the only thing you get more of when you buy it is support, and that there's no real difference in functionality? If that's true then I would definitely be inclined to go for a free one.

4.) The OS's I've been considering are RedHat Linux, Fedora Linux, Ubuntu Linux, Solaris, and BSD. Given the information I gave in the last post (about being a developer and whatnot), should I cross any of these off the list, or should I add any new ones to the list? jp mentioned CentOS -- I don't know anything about this one. I definitely want to have a lot of languages available to develop with (like pludi mentioned about Linux). So I guess I'm just asking if anyone has any further input on this. Other than that, thanks a lot for your replies -- they are very much appreciated.

Ad 1: It's a precaution I take when I start learning a new system: install it on it's own hardware, or at least in a virtual machine. That way, I can tinker around as much as I want, and even have the system completely unusable, without endangering my main machine. (Some) VMs have the additional advantage of allowing snapshots, so you won't even have to reinstall.

Ad 2: Wikipedia:

Ad 3: As I said, commercial Unices are usually tied to some hardware and support contracts. Software-wise, they aren't made to be cutting-edge, but stable and tested.

Ad 4: You only listed 3 different OS: Linux, Solaris, and BSD ;). For the Linux distributions you listed: they are pretty much the same. Fedora is the "staging ground" for Red Hat Enterprise Linux. CentOS is RHEL, without the commercial support, and some commercial extensions cut. Other distributions include SuSE (SuSE Linux Enterprise Server/OpenSuSE), Debian (Ubuntu), Slackware, and Gentoo.

Linux distributions usually have tools for most languages included, and a huge subset of that is available on other platforms (eg. the GNU Compiler Collection [C/C++/Objective-C/Java/FORTRAN/Ada], Perl, Python, Ruby, ...)

Solaris is generic the name of this OS which is based on UNIX System V release 4.0. The last major release was Solaris 2.0 in the early nineties. Since then, there has been many minor releases, the last one being Solaris 10. There are also regular updates, last one is update 8 (S10u8) releases this month (08/09). Most of Solaris 10 source code has been gradually open sourced since 2005, and this source code and the community around it is named OpenSolaris.
There are several operatings systems based on that source code, one being also named OpenSolaris, latest release 2009.06.

You will find more features and newer applications in OpenSolaris than in Solaris 10. Some of them are backported to Solaris 10 but not all of them. The next minor version of Solaris, dubbed Solaris 11 but might be something totally different, will be built on top of the OpenSolaris code.

You won't learn a thing about linux running ubuntu, its far too convincing a windows ripoff. (As if in homage, its system requirements are almost equally horrendous, too.) And Redhat linux is closed-source now, Fedora is the open-source fork of the last open thing they had.

For a developer distro, I'd recommend Gentoo -- the only distro I know of where you can do "emerge xorg-x11" and have xorg-x11, headers and all without needing x11-dev, xorg-x11-dev, x11-headers, x11-drivers-headers, x11-kitchensink-headers, and three million others to complete the set before compiling X things will actually work. It also lets you install multiple versions of gcc and switch between them seamlessly. Installing Gentoo the old-fashioned way from the Gentoo Handbook is a crash-course in linux down to the bones.

I've also heard good things about SuSe. It apparently provides a decent developer environment. But again it has the millions-of-unguessable-developer-dependencies-package problem.

Sorry Corona688 but you are incorrect. For example, the complete source code for RHEL in the form of source RPM's is available publicly available ftp://ftp.redhat.com/pub/redhat/linux/enterprise/

Which is what CentOS is based on.

Okay. Thanks a lot -- great answers. And thanks for the recommendation on Gentoo, Corona -- I'm definitely going to look into that one. I'm curious about some things regarding if I wanted to install one or more of these systems on my MacBook (under Snow Leopard -- well, Leopard right now, but I'll be upgrading Snow Leopard before I install a Unix system). I have both Parallels Desktop and VMware Fusion on my MacBook (although neither are being used at the moment -- I don't have any other OS's installed or emulated or anything at the moment). So, I'm curious:

1.) I could, if I wanted to, use Boot Camp to partition the hard drive and then install the OS(s) on those partition(s) -- that would be one way to do it, right?

2.) Instead of actually installing the OS(s) on the hard drive, I could alternatively use emulation, right? In this case, I'm curious -- what would be the effect of using a emulator like VirtualBox or something versus an application like Parallels or Fusion? What's the difference there in terms of its effect on installing an Unix-based OS? Would you prefer one to the other? Will any OS work under VirtualBox, or just certain ones? Similarly, will any OS work with Parallels/Fusion? Also, if I did choose to use Parallels or Fusion instead of VirtualBox, would one be better (between Parallels and Fusion) for Unix-based OS's than the other -- I've always liked Parallels, but I just wanted to see if anyone has any experience in that direction.

3.) So, I could choose which of these two ways I want to do it (partitioning or emulation). Will the OS run better one way than the other? I assume there has to be some downside to emulation otherwise everyone would just use that, right? Is there anything along these lines (partitioning vs. emulation) that I should know? Any input here?

Thanks again everyone -- your responses are very much appreciated.

The questions you directed to me have been answered expertly by the previous posters so I'll refer you to their responses.

As for emulation vs native, native is always better. Having said that, I don't think it will matter much for most situations.

You might want to consider Solaris zones (aka containers). You can create multiple virtual machines using a single image of the Solaris. And you can run Linux in a branded zone. This is probably the most efficient way to run Solaris and Linux environments simultaneously on a single system.

Yes.

VirtualBox, Parallels and Fusion are similar products. VirtualBox being the only one based on open source code and downloadable for free.

I would say any mainstream current x86 OS should run on any of these except Mac OS/X itself which as far as I know can only be emulated by Parallels.

An OS will always run faster without a virtualization extra layer.

Thank a lot, guys -- your replies have been extremely helpful. A few things left that I wanted to wrap up if anyone gets the time:

1.) Like I mentioned, I'm running a MacBook right now, but am most likely going to be buying an expensive PC soon. It was mentioned, however, that it may be a good idea to mess around with installing various Unix OS's on a machine that is strictly used for that purpose, that way protecting the other machines from any side effects of this experimentation, especially since I will be doing a lot of development with the Unix OS's, which can have side effects in itself. So, in place of or in addition to the high-end PC I am thinking about buying, I may look into an inexpensive little notebook for running various Unix OS's. Does anyone have any recommendations for what I should buy if I wanted to do this? I would want it to be cheaper, since it would just be for the sake of experimenting with different Unix OS's and development on those OS's, but I would also want it to be fully functional in that sense (not a P.O.S., in other words) -- so what would be the minimum basic specs I should be looking to buy on a notebook for this purpose that would be as cheap as possible but still allow for sufficient performance for the purposes I've discussed? Also, what type of notebook should I be looking at? Are there any alternatives to the standard PC/Mac decision -- is there anything else out there that I should be checking out? I know desktops can be custom-built from the ground up -- can this be done with notebooks too?

Thank you very much for your time and help!