What is Linux?

The Kernel
The Kernel is the “core” of a Linux operating system. Without it you have a box with useless hardware. The purpose of the Linux Kernel is to manage the hardware, memory, system and device drivers, etc..
Without getting to technical, if you took a working version of any Linux distribution and deleted your /boot directory (were the kernel resides on your directory), upon reboot you wouldn’t get passed the boot loader. You would just stare at a blank screen OOPS!. So the kernel is most important piece of software on a Linux machine.
Everything Else
Most people, when talking about Linux are talking about the whole suite of programs that most distributions use in order to productively use Linux. Now ‘productively’ is a subjective term. For most desktop users, you want to be able to navigate your computer in a point and click manner, but Linux can run purely from a command prompt. This is the preferred way for system administrators. They do not need a robust GUI to set up a web server. The server will work with or without the point and click interface. As I am writing this tutorial, I am running Ubuntu with the fluxbox window manager and using gedit to write this. For you, you might choose a friendlier desktop environment like KDE or GNOME
This is the greatest thing about Linux, it’s flexibility. With Windows you are forced to use their desktop environment and a lot of other programs. With Linux, you can become the designer. You can pick and choose how you want your system to look, act or behave. All without breaking any license agreements.
If you are reading this, maybe you are not running Linux or are thinking about testing it out. So lets continue with a basic system setup:
For the sake of simplicity, I will consolidate Linux into three different levels:
The Command Line
When you install Linux with just the basic essentials, you will get a text-based login prompt. Once you login you are greeted with a command prompt:
[root@localhost#/home/root]
This will look different depending on your system, but it’s a basic prompt to tell you that you are logged into the system and the system is waiting for a command.
This mode acts like MS-DOS but is more robust. This environment is well suited for system administrators who run computer ’services’ (like a web server)
X Window System and Window Managers
The graphical user interface (GUI) is the point and click environment most Windows users are most familiar with. In Linux, the GUI can be so many things, you are not forced to use any particular program.
It all starts with a program called the ‘X Window System’ or simply ‘X’. ‘X’ is the first program that starts in order to control any input device (keyboard, mouse, etc…) and the output (computer monitor). You can run X by itself, but it won’t look pretty. You will get a basic grid like background and you will be able to move the mouse around. That’s about it.
In order to create ‘windows’ and better manipulate your environment, you need what is called a ‘window manager’. Besides stating the obvious, a window manager allows you to move windows around, minimize them to a taskbar, etc… It all depends on which window manager you use. You can run Linux quite well just using a window manager. In fact, most power users prefer this method.
Some popular windows managers are: fluxbox, blackbox, WindowMaker, FVWM, FVWM95
The Desktop Environment
A desktop environment is a suite a programs that run on top of X to create a user friendly system. This is by far the closest you can get to Windows without using Windows. Their are three basic desktop environments:
1. KDE – If you want a fully functional Windows replacement, KDE is a great choice.
2. GNOME – Built for speed and simplicity This desktop environment is better suited for power users.
3. XFCE – If your system runs on older hardware, or need to conserve system resources, XFCE is a great alternativeto GNOME