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.

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:

No comments:

Post a Comment