For the purpose of writing this article I’m going to use the following definition of “operating system”. There are other definitions and I’m not claiming this is the right one. An operating system is a unit of software that you can install in a computer and will let you use the computer, thought a set of utilities or program in one way or another.
An operating system is for humans, a kernel is for programs.
[…] at the moment I’m thinking of how I see tutorial articles like Setting default editor in ubuntu .. or CPU Frequency Scaling In Ubuntu .. or Hyperic HQ On Ubuntu 7.04 .. and while it’s cool there’s a lot of tutorials on doing X or Y or Z with ubuntu (my preferred distro) why is the tutorial specifically for Ubuntu? Why isn’t the tutorial for Linux? Why are tutorials for Ubuntu incompatible with Redhat or Suse or the other distros?
The answer is: because Linux is not an operating system, it is a kernel. Except for the kernel, the rest of those Linux-based operating systems (a.k.a.: distros) are different. Those tutorials are (almost) always specific to an operating system (even when you leave the realm of Linux-based OSs). If you consider FreeBSD to be an operating system which is also a different operating system than OpenBSD, then Ubuntu, Debian, RedHat and SUSE should also be considered different OSs. Otherwise you’ll be using double standards.
If you don’t expect a tutorial for FreeBSD to work out of the box on OpenBSD, then you shouldn’t expect a tutorial for Ubuntu to work on SUSE or RedHat. If those operating systems are similar enough that you can tweak the tutorial a bit and still apply it, then, be grateful instead of whineful.
The fact that there are a lot of Linux-based operating systems is because Linux is easy to re-use. In fact, re-using is the only way to use it, because unlike the FreeBSD-developers, or the OpenBSD-developers, the Linux-developers, starting with Linus Torvalds, do not make an OS around the kernel they make. And even in those OS-and-kernel-as-one, the kernel is often extracted and used in other operating systems, like Debian GNU/kFreeBSD, PCBSD or FreeNAS.