Archive for April, 2009

OS differences

April 7, 2009

Over the last couple of months i’ve been using GNU/Linux, FreeBSD and OpenSolaris. All of them are Unix-like OS’s so there are similarites but there are also a lot of differences.

The first Unix-like OS I ever used was Solaris 9. It was the default OS on the computers in uni. I felt at home right away and so spent a lot of time installing GNU/Linux on a spare computer at home. So much so that I failed an exam… I also didn’t choose the easiest way as I installed Gentoo.  That was the first time I ever installed a Unix-like OS. It was also in the middle of the switch from Linux 2.4 to Linux 2.6, which was a bit frightening… I have however been using Gentoo ever since.

One of my employers is really pro-FreeBSD, so he got me interested in that. This was about 2 years ago. It was a bit different than GNU/Linux, so it was kinda hard to get used to, and my hardware wasn’t really supported so I dropped it. Recently I have installed a couple of servers for the same guy, and of course FreeBSD was the OS of choise. As a preparation for that I made a new install on my current laptop, which has better support.  This was right about when FreeBSD 7.1 was released. Somehow I found it more manageable and more logical 😉 It is a really nice OS with high quality software. It feels much more like a consistent OS than GNU/Linux, which sometimes feels very unwieldy and unorganized… From time to time I also try out OpenSolaris. I thought I should gather my thoughts on these 3 OS’s.

Some thoughts kernel-wise:

FreeBSD: Has a long tradition and proud heritage from BSD. It feels to me that the development is somewhat slow. Recently the ULE scheduler was choosen as default, which makes threaded applications scale very well indeed. Still has some oddities, like a kernel crash when removing a mounted USB-stick… Not so user-friendly, but I believe that it’s beeing worked on for the 8 series.

Linux: Has a huge developer base and moves rapidly. There is always this feeling, this kinda’ works, try next version. Sometimes a percieved lack of QA rears its ugly head. Has the best hardware support ( for consumer grade equipment, at least ) of the 3.

Solaris/OpenSolaris: Obviously strong backing by SUN, has an excellent track record for stability. The engineers at SUN has put in some great technologies, like ZFS and DTrace. Lacks support for many consumer grade products, which makes it a gamble for ordinary users. The tide is turning though.

Some thoughts distribution-wise:

GNU/Linux: A multitude of distributions. I would love to see more integration and tighter cooperation. I don’t really see a need for so many. It distracts developers of third party software who sadly must know the internals of many distros. It also distracts developers who could spend time on kernel/userland to do distribution specific stuff.

FreeBSD: Really just 2 distros, FreeBSD and PC-BSD. The FreeBSD distro has in my mind a very good filesystem layout: Everything not part of the base system resides in /usr/local. There is always a defined state of the base system, so third party devs have an easy job.

OpenSolaris: There are a few distros. I’ll stick to OpenSolaris. The filesystem layout is all over the place, you never know where to find stuff: is it in /usr/ccs/bin/ /usr/ucb/bin /opt/bin or wherever. OpenSolaris also has /usr/gnu/bin which has some very interesting effects on compilation of third party software, like configure finding /usr/bin/ld which is a symlink to /usr/gnu/bin/ld and so determines that ld is gnu ld, but as gcc is compiled with sun ld, things break badly. And why do they insist that home is /export/home/username?

Some thoughts package-management-wise:

GNU/Linux: Where to start. There everything from LFS  to apt. I generally like portage over all the others. Don’t get me started on RPM-hell.

FreeBSD: Ahh, ports. The main inspiration for portage. This is really good too, and has gook support for binary packages for the lazy ones. As does portage.

OpenSolaris: Well, this apt clone isn’t that bad. It just lacks lots of software for end users.

So all in all I would like an OS like this:

Kernel technology from OpenSolaris, driver support from Linux ( but with SUN QA ), and file system layout from FreeBSD with package management from either ports or portage. Why is there not an infinite amount of spare time to work on this?