Linux Fundamentals

General Operation of a Linux System

In Linux, everything is oriented around the Kernel. In fact, what makes Linux Linux is the fact that is uses the Linux Kernel. The Kernel is a single file that consists of core functions and references to modules and is normally stored in the /boot directory. Modules can be compared to device drivers. In order for a Linux computer to recognize a sound card, for example, the module for that sound card must be registered with the Kernel. Modules are files nested in the /lib/modules directory.

The Kernel controls all activity on a Linux system. It co-ordinates all Input/Output functions and acts as an interface to the hardware. The Kernel is developed separately from any specific distribution of Linux and is maintained at From there you can download and upgrade you Kernel at will. Normally, there is no reason to do this, as most distributions of Linux release new versions in loose conjunction with Kernel releases. In a later article I will discuss the Kernel in more depth.

In order to fully understand the operation of a Linux system, you must understand how basic Input/Output is accomplished. Everything in Linux is a file. This is important to understand when we deal with devices (hardware). For example, a typical configuration will have a file name /dev/fd0. This file equates to your floppy drive. When an application wishes to read the floppy drive, or write to the floppy drive, it reads from/writes to the file /dev/fd0. The same is true for all other devices as well. For every piece of hardware on your system, there is a file that corresponds to that device, and those files are mainly stored in the /dev (device) directory. One other example is the file /dev/eth0, which represents your primary network card. When I want to transmit on the network I simply write to the file that corresponds to the network card.

Conceptually, this can all be tied to together. When an application wants to transmit data on a network, that application knows that it simply writes the data to the file /dev/eth0. The Kernel has the module that corresponds to the network card loaded, and is monitoring the file eth0. As data is written to the file, the Kernel translates that into something the hardware can understand and instructs the hardware to send the bytes over the network.