next up previous contents
Next: File Systems Up: Linux & Cluster Previous: Why Use Linux for   Contents

Kernel

The term ``Linux'' is most correctly applied to the name for the Unix-like kernel, the heart of an operating system that directly controls the hardware and provides The kernel is lean and mean. It contains neither an integrated Web browser nor a graphic windowing system. Linux, in keeping with its Unix heritage, follows the rule that smaller and simpler should be applied to every component in the system and that components should be easily replaceable. However, the term ``Linux'' has also been applied in a very general way to mean the entire system, the Linux kernel combined will all of the other programs that make the system easy to use, such as the graphic interface, the compiler tools, the e-mail programs, and the utilities for copying and naming files. Strictly speaking, Linux is the kernel.

Many Linux distribution companies exist. They take the freely available Linux kernel and add an ``installer'' and all the other goodies. In fact, those companies (Red Hat, Turbolinux, Caldera, SuSE, and a host of smaller companies) have the freedom to customize, optimize, support, and extend their Linux distribution to satisfy the needs of their users.

The open source software movement has gathered both publicity and credibility over the past couple of years. Richard Stallman began work in 1984 on creating a free, publicly available set of Unix-compatible tools. He uses the term ``free software'' to describe the freedom users have to modify it, not the price. Several years later, the GNU General Public License (GPL) was released. The GPL (sometimes called the ``copyleft'') became the license for all of the GNU products, such as gcc (a C compiler) and emacs (a text editor). The GPL strives to ensure that nobody can restrict access to the original source code of GPL licensed software or can limit other rights to using the software. Probably the most important aspect of the GPL is that any modifications to GPLed source code must also be GPLed. The Linux kernel also uses a clarified GPL license. Therefore, modifying the Linux kernel for private use is fine, but users may not modify the kernel and then make binary-only versions of the kernel for distribution. Instead, they must make the source code available if they intend to share their changes with the rest of the world.

What exactly does the kernel do? Its first responsibility is to be an interface to the hardware and provide a basic environment for processes and memory management. When user code opens a file, requests 30 megabytes of memory for user data, or sends a TCP/IP message, the kernel does the resource management. If the Linux server is a firewall, special kernel code can be used to filter network traffic. In general, there are no additives to the Linux kernel to make it better for scientific clusters-usually, making the kernel smaller and tighter is the goal.

Since each kernel version can have different configuration options and module names, it is not possible simply to provide the Beowulf user a list of kernel configuration options. Some basic principles can be outlined, however.
next up previous contents
Next: File Systems Up: Linux & Cluster Previous: Why Use Linux for   Contents
Cem Ozdogan 2009-01-05