home
linux
join
mailing list
meetings
Administrative
Links
Tips and Tricks
Linux



An overview of Linux
By A.J. Venter

What is Linux ?

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 version..

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 ...



Linux's Kernel

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 Software

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

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

KDE/Gnome

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 computer.