What is Linux

Linux is an operating system. More correctly, Linux is the "kernel" or the thing that lets a computer talk to other computers or a person. If you want to know more about what the kernel actually does, see https://en.wikipedia.org/wiki/Kernel_%28computing%29


The true, actual term for what we think of as Linux is called GNU/Linux, because the kernel is useless without a way to interact with people, and the utilities that allow that are created by the GNU foundation. In the following, I will use GNU/Linux and Linux interchangeably, but GNU will only mean the utilities (like find, or ls, or things like that) and kernel will mean only the Linux kernel.


GNU/Linux is actually a collection of programs from many different sources. Twenty years ago, that is exactly what we'd do. First, we would go download the source code for the compiler, then compile it, then we would download the source code for the kernel, compile it, then we would download the source code for the shell, compile it. A single GNU/Linux installation would take days, or even weeks.


Groups of people got together to make life easier on themselves. They created Distributions. Initially, these were just setups that would collect all of the component source code in one place so we could get the source code for the compiler, kernel, etc... all at one time, in one convenient location. These are called Software Repositories, or just Repositories. The original distributions which still survive were Debian, Slackware and Red Hat. See https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg if you want a list of all distributions from 1993 until now.


Distributions advanced until they were creating pre-compiled versions for popular computer systems. So, in 1993, RedHat, Debian and Slackware would all allow you to download the kernel and GNU utilities already compiled for your Intel 8086 or Motorola 68000 processor in your computer. Instead of just downloading the source code and compiling it yourself, you could now simply download the programs.


The problem with this is that there are dependencies. A particular version of the kernel, for instance, required a particular version of libraries, and if you installed a new kernel without installing the updated version of the libraries, the machine would no longer work. Thus, all three distributions (four now, since SUSE took Slackware and made their own version) created a Package Manager. A Package Manager is simply something that ensures if you install a new version of one program, it automatically installs the appropriate version of all other programs (or, at least, warns you that you must do this manually). At this time, programs were not just delivered as the program alone, but were in "packages" that included what dependencies were needed. So, for example, the Linux Kernel v1.4.5 required libc version 1.3.6 and gcc (the compiler) 0.9.5. The package manager could then make sure it had all of the appropriate other packages (dependencies) before putting the updated programs in place. The package manager also kept track of all installed programs and their versions.


Packages were in several forms, but the three you see most often now are deb (Debian), rpm (Red Hat) and yast (SUSE). We use Debian almost exclusively, so the rest of this will concentrate on that, but be aware that other distributions may use something else.


The deb packages are managed by the package manager. There are a couple currently under Debian, dpkg (very basic) and apt (which uses dpkg for some tasks). There are front ends for apt which makes finding things easier; aptitude (command line) and synaptic (GUI based), but they use apt and/or dpkg to actually do the work.


As time went on, the various distributions added more software to their repositories. Initially, they only got a working system going. Now, you can use the package manager to install "real" programs, such as Battle for Wesnoth and Frozen Bubbles (games), Libre Office and calibre (word processor, spreadsheet, ebook reader), GIMP and VLC (graphics and movie player), stuff like that.


For our servers, we only install what we need. So, for the DOM0's, we install a very basic Linux system, then we install the Xen virtualization software. For our web/email servers, we install the Apache web server, postfix SMTP server and Courier IMAP server (the latter two are for sending and receiving mail, and for reading mail, respectively). For our DNS servers, we install the BIND name server. We do not install anything that is not needed; there is no reason for Battle for Wesnoth on a web server.


One final note. There are many, many distributions out there. See http://distrowatch.com/ which specializes in tracking them. On the right side of that page, you will see Page Hit Ranking which will show the top 100 distributions (based on how many times their web sites have been hit). Debian always is in the top 10, as is Fedora (the free version of RedHat).


Many distributions are not built from the ground up, but instead "steal" from the main four: Debian, RedHat, SUSE and Slackware. So, Mint (#1 as I look at it) and Ubuntu (#3) are based on Debian. They use the Debian distribution, add some stuff to it, then release it as their own. Fedora and CentOS are based on RedHat, and OpenSUSE is a free version of SUSE. FYI, BSD Linux is its own, and has been around for a long time. It is also the basis for the Apple OS-X operating system, and many programs for Linux can be installed quite simply on a modern Apple computer. You can see the branches of Distributions in the distribution timeline mentioned above (https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg) as branches off of the main distribution.




linux kernel

The program which allows the computer to do things

GNU utilities

programs which allow the user to tell the computer to do things (and get responses from the computer)


A formal organization of GNU/Linux, other programs, a software repository, and tools to manage installing software from that repository

Software Repository

A location where many programs and/or source code are collected. This can be very small (ie, debian.dailydata.net which only has three programs) or very large (Debian's repository was 658 Gigabytes as of 9 Feb 2012 according to http://eduardo-lago.blogspot.com/2012/02/what-is-size-of-ubuntu-and-debian.html)

Repository Mirror

A full or partial copy of a Software Repository at another location. Debian is fully mirrored many times, definitely in excess of 100, possibly in excess of 1000. This allows people to use Debian without inundating one particular server.


Free and Open Source Software. FOSS programs are those that have licenses that allow users to freely run the program for any purpose, modify the program as they want, and also to freely distribute copies of either the original version or their own modified version (http://www.webopedia.com/TERM/F/FOSS.html). Linux, GNU, Libre Office, Mozilla Firefox are all well known examples of FOSS.




Last update:
2013-06-11 21:41
Average rating:0 (0 Votes)

You cannot comment on this entry

Chuck Norris has counted to infinity. Twice.