The best way to begin to understand how the linux operating system works is to understand what makes up this system or what we refer to as a linux operating system. Firstly we need to know what a distribution is. A distribution is a group of different components put together and released as a cohesive unit. This is how a linux is released.
- The main components of Linux
Let’s have a look at this components:
The first component in the bottom is the Hardware and the component that sits right on top of it is the Kernel of the operating system. The Kernel is the only part that we refer to as Linux. But just the kernel alone does not give us the operating system. We need a number of other things like tools and utilities and a shell. The tools and utilities are the applications that extend what we can do with the operating system. A shell is the interface between the user and these applications into the kernel. Without a shell we have nothing to interface with the rest of the operating system.
Apps are not the only type of programs that run on a linux system. In the background are other applications or programs that run and we refer to them as deamons. Deamons are the analog of services in the Windows world. They don’t have interaction with the shell, just sit on the background and provide some kind of services.
Also to extend the capability and functionality of the Linux, we have a GUI layer, which is XWindows. On the GUI only the core components have their windows. To really make the GUI usuable and pretty and uniform looking, we need to add on top of the GUI some kind of desktop environment (KDE, GNOME) or Window Manager. Window managers are not as full featured as desktop environments which add also their own set of libraries that people can write programs to.
This whole system is not being developed by one entity like Microsoft or Novell. As you can see the linux world is very modular. The components are independently developed from each other and yet they are compatible and allow a large number of combinations. The Kernel is developed by the Linux Kernel Team, the shell and the core utilities come from the GNU project, the GUI comes from XFREE86 or XORG. Daemons like Samba, Bind Apache are each developed by its own group. This is the concept of the open source software movement.
- Linux Modularity and module development examples
The Linux operating system is a modular system, which means that the components can function without affecting one another. Because of that there is not one single Linux operating system or distribution. Groups of peoples or individuals take all of these different components, put them together in a package and release that as a distribution to the public.
Below you can find a more complete table that explains the Linux modules mentioned above. Each of the components is developed independently, and offers functionality without affecting the others.
||The kernel is constantly being updated.
Current and previous kernel versions can be found at www.kernel.org.
||bash (Bourne-Again Shell) is the most common (and default) Linux shell. It is an enhancement of the original Bourne shell (sh).|
|tcsh is an enhanced version of the Berkeley UNIX C-shell (csh).|
|Graphical User Interface (GUI)||
||XWindows is the most common GUI system. X Windows works in conjunction with an X Client to render the GUI. X Windows is capable of running as a server and sending the GUI images to separate machines running an X Client. Xfree86 is the most common X Client|
|Window Manager/Desktop Environment||
||KDE (Kommon Desktop Environment), which uses the K Window Manager (kwm) and comes with the Qt toolkit for C++.|
|GNOME (GNU Object Model Environment) does not specify a window manager because its design allows use of any window manager. However, it does use Metacity as a default window manager in the absence of a window manager. GNOME requires the use of the GIMP Toolkit (GTK) to render the full GNOME desktop.|
||Wine, available at www.winehq.com.|
||LILO (LInux LOader) is the most common bootloader.|
|GRUB (GRand Unified Bootloader) is a new bootloader that offers extra functionality.|
|Applications and Utilities||
||Text Editors (command-line based)||Vi|
|File Managers||Nautilus (used with GNOME)|
|Konqueror (used with KDE)|
|Office Applications (similar to Word, Excel, etc.)||OpenOffice
KOffice (for KDE)
|Graphic Editor (like PhotoShop)||GIMP|
|Domain Name Service (DNS)||BIND|
|Firewall||Astaro Security Linuxipchains
As you can see, there are dozens of components that can be used with the Linux core. The availability of multiple components to provide a specific feature gives you a lot of choice, more than you might have with other operating system choices such as Microsoft Windows.