Free Guides
Language Tutorials

Linux+ Study Guide (XK0-002)
Concepts
What is Linux?
Linux is a 32 bit open source operating
system. It is based on the very popular Unix operating system and
it’s code is freely available (thus explaining the “open source”
label as opposed to closed source where the code is not available
freely). Linux is often referred to as being a “gathering of very
cool software”. While this is not a bad description, a more precise
definition would reveal that Linux refers to a specific part of the
“gathering”. Linux points to it’s most basic element: the kernel.
Everything else that is bundled with the Linux you get is an
application.

Figure
1.1 - Linus Torvalds is the founding father of Linux
Picture by Christopher Gardner
The
Linux kernel is the operating system itself. There are different
versions and they are released by a non-profit organization using a
version number system. Each time something is added to the kernel, a
new beta or experimental version is released. Generally, there can
be up to 11 latest versions of the kernel available.
The main ones being:
- The latest beta version: containing all the new features. This version may contain bugs or unstable code. Ex: 2.5.44
- The latest stable version: this version is recognized as stable and its code is presumed without bug. Ex: 2.4.19
- The latest prepatched versions: these are Linux alpha version and are being tested before released. Ex: the latest prepatched version for the beta version could be 2.5.8-pre3
- The latest patched version: Finally, these are the patched versions for different major releases. They contain corrections to different bug reports and are being tested.
The last thing to know about kernel versions
is the way the numbers are being assigned. For a X.Y.ZZ version, X
would represent a major release version. Y is a minor release
version and Z is a patch version number. In other words, when a bug
is found and a patch released, only the Z number will change. When a
bunch of new features are implemented and the need to do an upgrade
is done, the Y number is changed and finally, when a collection of
upgrades have been done, when a major improvement or code revision
has been done, the X number will be revised. To learn more about
kernel versions, make sure to visit
www.kernel.org.
Here are some examples (at the time of this writing):
| The latest stable Linux kernel tree is: | 2.4.19 |
| The latest prepatch for the stable Linux kernel tree is: | 2.4.20-pre11 |
| The latest beta version of the Linux kernel is: | 2.5.44 |
| The latest prepatch for the beta Linux kernel tree is: | 2.5.8-pre3 |
| The latest 2.2 version of the Linux kernel is: | 2.2.22 |
| The latest prepatch for the 2.2 Linux kernel tree is: | 2.2.22-rc3 |
| The latest -ac patch to the stable Linux kernels is: | 2.4.20-pre10-ac2 |
| The latest -ac patch to the beta Linux kernels is: | 2.5.44-ac3 |
| The latest -dj patch to the beta Linux kernels is: | 2.5.39-dj2 |
Distributions
As mentioned before, Linux is often distributed in different
formats; there exists many like it, each of them being bundled with
loads of software by different companies or non-profit
organizations. These formats are called distributions. They include
a kernel and a collection of applications, software, wizards and
specific tools.

Figure 1.2 - The RedHat Linux distribution is amongst the most popular distributions.
Packaging
Originally, open source software like Linux was provided as source
code. While this had interesting features, only hardcore developers
could handle, compile and play with the necessary files. Soon,
binary files were available and usually shipped with easy to follow
instructions to compile them. Such instruction are usually found in
a Makefile which is generally a simple set of scripts and
instructions.
Even though source code is always available, binary files are now
the most current way to handle program installation in Linux. By
using special applications, it is possible to handle the
installation of binaries without hard user intervention. However,
the format in which they are provided can differ from one to
another. Especially since some popular distributions have developed
their own proprietary systems to resolve packaging problems. For the
exam, you should know the major packaging solutions and some of
their specific attributes. Here are some examples:
- Tarball: This is the equivalent of a windows .zip file. Tarball refers to the TAR utility used to build the packages.
- RPM: (Red hat Package Manager) This package manager was developed by Red Hat and is now being used by a lot of other distributions. The RPMs carry information about the files dependencies. This means that this system keeps information on what files belong to which package. It simplifies the installation of programs because whenever you need to install a file, it will tell you what other packages should be installed.
- DEB: (Debian Package handling solution) This solution from Debian is much like the rpm’s except it handles the file dependencies in a more efficient way, simplifying the installation of patches and upgrades.
Licensing
Licensing in the Linux world is quite easy to understand. The
software, applications and even the kernel will fall under one of
the following license mode:
GPL: Gnu Public License (www.gnu.org).
Basically, when a programmer decides to place his work under the GNU
license, he has an obligation to freely give his software, without
charges and to publish all the source code. Only shipping, handling
and media can be billed. Whenever the author makes updates to his
software, he has to publish it and publish the updated code to the
public. Most of Linux falls in this category.

Figure 1.3 - The Gnu logo
- BSD: Berkeley software Distribution. BSD is basically the same as GPL except that it is less restrictive as to the distribution and the and modifications.
- Freeware: The author of the software is under no obligation to release his code but will let his software go for free.
- Commercial software: This kind of licensing is rare in the Linux community. Basically this is when you need to buy the right to use a software, just like any Windows OS.
Linux Command Prompt
The Linux command Prompt is called the Shell. Just as the DOS shell
is identified by a group of characters (C:\), the Linux shell is
identified by its own set of characters. Many different shells
exist. The most commonly used is probably Bash (Bourne Again Shell),
but there are many others. Shells will vary with distributions or
users' taste.
To find out what your shell is type the echo
$SHELL command.

Figure 1.4 - Using the Shell to identify it
Daemons
A daemon is more or less the Linux equivalent of a windows service.
It is an automated process that manages resources, processes, etc.
Man pages
The man command is a small command utility that outputs information
about a Linux command. This information is generally known as a "man
page". To learn more about the man command, simply type
man man.
Case Sensitive
For many reasons including security reasons, Linux is a highly case
sensitive operating system. New users often encounter frustration
when typing in commands because they tend to forget this little
detail!