An overview of Linux
What is Linux ?
By A.J. Venter
Linux,for those who haven't figured it out by now,is a freely distributed multitasking multiuser operating system that behaves like UNIX.
Linux was designed specifically for the PC (Intel CPU) platform and takes advantage of its architecture to give you performance similar to
high-end UNIX workstations. A number of ports of Linux to other hardware platforms have also appeared, and they work much like the PC
To begin with lets look at the Linux operating system as a package. When you install Linux, what do you get? Here's a quick list ...
The kernel is the very core of an operating system. It is always in memory and has the task of managing hardware resources that are used
by the applications running on top of it. This includes everything from memory management to CPU allocation. Because of this the kernel
needs to be able to communicate with the hardware at a very low level. Linux's kernel (the only part that technically is linux) has
one major advantage over all other operating system kernels. It is open source, this means that you can recompile it, to include support
only for those hardware devices you actually have. The windows NT kernel (called kernel32.sys) needs to support all the common device types
even though no-one has all of them in one machine. The result is that kernel32.sys is over 16MB in size. A standard Linux kernel coming with
the RedHat distribution is approximately 1.5MB in size, my own custom kernel ways in at just under 750Kb. The advantage is obvious,
remember the kernel is constantly in memory, using 750kb of memory for it -rather than 16MB obviously makes your system significantly faster.
What's more the Linux kernel is widely considdered to be one of the most stable operating system kernels out there. In fact you will search
long and hard for anybody who has seen a Linux system crash at kernel level. Yet again the reason is largely the open-source nature of the
kernel. The core kernel developement team - led by Linus Torvalds who founded the Linux kernel - comprizes hundreds of programmers. Add to
that all the people who have submitted single drivers, bugfixes etc. and many thousands of people have contributed to the kernel - it is hard
to imagine any bugs slipping through a safety-net that tight.
The Linux kernel however is not merely an open-source clone of any unix kernel - it contains many unique innovations that have taken the
operating system world by storm most of them are still not available to any other operating sytem. For example Linux is the only operating
system that can support emulated programs (such as JAVA programs) at kernel level.
The kernel's versioning system is interesting (it shows a lot of the carefull way in which the kernel is developed) every kernel has a three
number version as in vmlinuz-X.Y.Z. No one really knows what vmlinuz stands for (I think it is something to do with Linus and Finland myself)
but the numbers are easy. The X is the major number - this indicates the series of the kernel and is only updated when a major level is
reached in the evolution of the kernel. After over 10 years, Linus is still busy with the 2 series kernels, but he is hinting that the
3.y.z series is soon to come. The seccond (Y) value indicates two things - firstly the number of this release within the series, and
seccondly it's status. If the number is even then this is a stable kernel, if it is odd, this is a developement kernel that may still contain
bugs. There is thus at any point two latest kernels out there, one the latest stable kernel which contains only drivers that have been
rigorously tested, and one the latest developement kernel which contains all the latest innovations and ideas - and is also where the testing
happens that are meant to eventually allow them to become stable. At the time of writing the latest stable kernel is 2.4.17 and the latest
developement kernel is 2.5.2
The last number (Z) is the minor number, which is used to indicate progression within the series. Since no software is ever completely
bug-free there are still bugs in the stable kernels, the biggest difference between 2 numbers in a given stable series is that the larger
Z value will contain fixes to any bugs since discovered and also any drivers from the unstable series that have matured into stabillity since
the previous release.
GNU (a recursive acronym for Gnu's Not Unix) was developed by the Free Software Foundation (FSF) to provide royalty-free software to
programmers and developers. Since it was created, many programmer packages and toolkits have been developed and assigned to FSF for
distribution. Most GNU software mirrors commercially avaliable software (which usually has a hefty licencing fee attached), and in many cases
is an improvement.
X (sometimes called X Window) is a graphical user interface designed at MIT to provide portable GUI applications accross different platforms.
The version of X supplied with Linux is called XFree86, and is a direct port of standard X11R5 system to 80386-based architectures. XFree86
has been enhanced to provide compatibility with many other GUI's and more importantly is open source. In 1998 the Open-Group a group of
compamies including Microsoft, IBM and Apple that maintains X decreed that the new X11 Release 6 would be a binary only system and that
source licenses would cost a hefty price-tag. With the blessing of Linus the XFree86 organisation refused to be bound that way and continued
to develope XFree86 as a completely open-sourced system based on the X11 release 4 code-base (which was still open). This placed such
pressure on the Open-Group that in early 1999 they reversed their decesion and XFree86 4.0 which was first released in early 2000 is based
on (and that means includes all the abillities of) X11 Release 6. The developement of X progresses slower than the rest of the system
because of the tremendous complexity of the code-base, but it is remarkable stable and fast. Also the networking architecture of the system
gives it many advanced capabilities (like remote applications) which no other GUI can compete with. This piece is written on the latest
release of X at time of writing which is XFree86 4.0.3
Since late 1998 many efforts have been made to create a desktop enviroment on top of the X system that would allow Linux to be used with
sufficient ease to be a viable alternative as a desktop operating system. The most proliffic of these projects have been KDE and Gnome.
Gnome had it's foundation in a licensing issue with the QT toolkit used by KDE, however this has since been resolved. Gnome and KDE have
both become highly stable and mature enviroments that makes a computer very easy to use (in my opinion many things are EASIER in KDE than in
Windows). It is not really fair to ask which is better, as this is a subjective question. Many people favour each and they both use slightly
different technologies to the same end. In the end it is a matter of which appeals best to your personal taste.
Yes Windows users - in the Linux world you get to CHOOSE what you want from your computer, and your personal taste actually matters.
This is a far cry from the Windows world where you use their idea of user-friendly and have no influence over the behaviour of your own