Introduction to Compiling the Linux Kernel using Redhat Linux
Configuring and compiling the Linux kernel is a complex task. Unless you have a particular need to install a custom kernel, generally you will be better off upgrading the kernel using a newer Red Hat kernel.
However, if you do need to build your own kernel, the following lessons outline the process to configure and compile a customized kernel,
and explore some of the decisions you will need to make to build your kernel. Some of the subjects we will touch upon other than the actual compilation steps include
- Modular versus monolithic kernels
- Build requirements, including necessary sources and files
- The modules required for compilation and their functions
No matter what version of Linux you use, the piece of code common to all is the Linux kernel.
Although the kernel can be modified to include support for the features you want, every Linux kernel can offer the following features:
Multiuser: Not only can you have many user accounts available on a Linux system, you can also have multiple users logged in and working on the system at the same time. Users can have their own
environments arranged the way they want: their own home directory for storing files and their own desktop interface (with icons, menus, and applications arranged to suit them).
Multitasking: In Linux, it is possible to have many programs running at the same time, which means that not only can you have many programs going at once, but that Linux, itself, can have programs running in the background.
Many of these system processes make it possible for Linux to work as a server, with these background processes listening to the network for requests to log in to
your system, view a Web page, print a document, or copy a file. These background processes are referred to as daemons.
Graphical User Interface (X Window System): The powerful framework for working with graphical applications in Linux is referred to as the X Window System (or simply X).
X handles the functions of opening X-based GUI applications and displaying them on an X server process (the process that manages your screen, mouse, and keyboard).
On top of X, you use an X-based desktop environment to provide a desktop metaphor and window manager to provide the specific look−and−feel of your GUI (icons, window frames, menus, and colors).
There are several desktop environments and dozens of desktop managers to choose from. (Red Hat provides several desktop managers, but focuses on Gnome and KDE desktop environments.)
Hardware support : You can configure support for almost every type of hardware that can be connected to a computer.
There is support for floppy disk drives, CD-ROMs, removable disks (such as Zip drives), sound cards, tape devices, video cards, and most anything else you can think of.
Note Not every hardware manufacturer provides Linux drivers with their peripheral devices and adapter cards.
Although most popular hardware will be supported eventually in Linux, it can sometimes take a while for a member of the Linux community to write a driver.
Networking connectivity: To connect your Linux system to a network, Linux offers support for a variety of Local Area Network (LAN) boards, modems, and serial devices.
In addition to LAN protocols, such as Ethernet and Token Ring protocols, all the most popular upper-level networking protocols can be built in. The most popular of these protocols is TCP/IP (used to connect to the Internet).
Other protocols, such as IPX (for Novell networks) and X.25 (a packet-switching network type that is popular in Europe), are also available.
Network servers : Providing networking services to the client computers on the LAN or to the entire Internet is what Linux does best. A variety of software packages are available that enable you to
use Linux as a print server, file server, FTP server, mail server, Web server, news server, or workgroup (bootp or NIS) server.
Application support: Because of compatibility with POSIX and several different application programming interfaces (APIs), a wide range of freeware and shareware software is available for Linux.
Most GNU software from the Free Software Foundation will run in Linux.
After completing this module, you will be able to
- Explain the differences between modular and monolithic kernels
- List available modules
- Load kernel modules
- Configure kernel modules
- List the advantages and disadvantages of building a custom Linux kernel
- Describe preliminary kernel-building procedures
- Configure kernel options before compilation
- Compile and install the kernel and modules
- Describe common post-installation procedures
- Use the LILO map installer to install first- and second-stage boot loaders
The next lesson describes kernel concepts.