Friday, 4 March 2016

Credit Where It's Due

If you already know what a kernel is, move right along, nothing to see here :)


If you call yourself a "Linux user," what do you mean when you say that you "use Linux?"

What is Linux anyway?

You probably already know that it has nothing to do with the apps you are running to get things done. Like Firefox, Chrome, Gimp or whatever. They are available on other "operating systems" too, right? Right.

So what about the more basic stuff like your desktop, the menu you use to start apps, the task bar and all those windows you bring up to configure your settings, network, display and such? Nope, still nothing to do with Linux.

Maybe you are a l33t h4x0r and do stuff in the terminal (you know simple stuff like changing directory and listing the files), but you are still not actually "using Linux" directly. These are all programs (read "apps") written by Richard Stallman and his friends at the GNU project. They are part of GNU, not Linux.

Yup, when you type "ls" to simply list the files, this is not some magical functionality of Linux. It is a genuine "app" written by the folks at GNU and just given the name "ls."  No different from your fancy "app" to browse the net or read e-mail. Really, it even has a main() and everything... :p

All of these apps, PLUS the Linux app, make up the "GNU" operating system that you are using.

So what is Linux, what does it actually do, and when are you actually using it? As simply as I know how to describe it, Linux is the "app" that lets other apps do stuff. Basically, it cares about the hardware so other apps don't have to. For example, what is a "file" and how do you open one? You might have your stuff stored on a CD (optical technology) for example, which is completely different from a hard disk (magnetic technology). Yet you can still open "files" on each of them. This is what Linux does.

From a programmers point of view, Linux provides a function to "open" a file and deliver it to us in a specific format. It is Linux which does all the hard work of getting the data off the actual hardware; we don't care if it is an optical device or a magnetic device, or if the data is stored sequentially or whatever. Linux handles all that for us.

It even handles interactions with your processor, deciding which apps will get access to the next "cycle" of instructions and allocating them intelligently to give you the illusion of running several programs simultaneously.

Anyway, Linux (written by Linus Torvalds) is just one component (granted, a very important one) out of thousands that make up the system you are running on your computer when you claim to be a "Linux user." For most of the others we have to thank Richard Stallman and GNU.

On a side note, the GNU project does indeed have their own kernel in development. It's called "The Hurd" and for several technical reasons isn't considered a viable alternative to Linux for every day use yet.

As an example to illustrate the point, the Apple Mac runs the Mac OS operating system, which uses the XNU kernel. This is directly analogous with saying that you run the GNU operating system which uses the Linux kernel.

But nobody says they are running XNU, or they are an "XNU user."

This is why I think we should endeavor to respect Stallman's wishes and try to remember to refer to it as "GNU/Linux". And if you have never heard of Stallman or GNU, please take a look, and learn about who they are, where they came from and what they are doing:

1 comment:

  1. We have to thank Stallman for Linux, too. Just look at the license Torvalds changed Linux to to be able to use Linux as the kernel for GNU.

    So you heard me right. I'm a GNU user. I won't call me a GNU/Linux user -- this name wouldn't come easily off the lips and it's not necessary to mention the kernel in the name of an operating system.

    The browser is also a part of an operating system. Every app is. Stallman is the reason why we have free software in the way we have it today. It was never his aim to write all the software all himself or all by the GNU Project.

    FreeBSD only exists because of GNU and they even followed the example and won in court so today's FreeBSD officialy isn't Unix as well! Welcome to the club.

    Torvalds and Stallman probably will never say this, but Linux is the kernel of GNU. I read somewhere that Torvalds thinks making Linux GPL'ed was the best decision in his life -- remarkable for a married man.