Chapter 13. The SUSE LINUX Boot Concept

Table of Contents

13.1. The init Program
13.2. Runlevels
13.3. Changing Runlevels
13.4. Init Scripts
13.5. The YaST Runlevel Editor
13.6. SuSEconfig and /etc/sysconfig
13.7. The YaST sysconfig Editor

Abstract

Booting and initializing a UNIX system can challenge even an experienced system administrator. This chapter gives a short overview of the SUSE LINUX boot concept. The new implementation is compatible with the System Initialization section of the LSB specification (Version 1.3.x). Refer to Section 12.1.1. “Linux Standard Base (LSB)” for more information about LSB.

The message “Uncompressing Linux...” signals that the kernel is taking control of your hardware. It checks and sets your console — more precisely: the BIOS registers of graphics cards and output format — to read BIOS settings and to initialize basic hardware interfaces. Next, your drivers probe existing hardware and initialize it accordingly. After checking the partitions and mounting the root file system, the kernel starts init, which boots (Unix jargon) the main system with all its programs and configurations. The kernel controls the entire system, including hardware access and the CPU time programs use.

13.1. The init Program

The program init is the process responsible for initializing the system itself in the required way. All other processes are considered child processes of init. init takes a special role. It is started directly by the kernel and resists signal 9, which normally kills processes. All other programs are either started directly by init or by one of its “child” processes.

init is centrally configured via the /etc/inittab file. Here, the runlevels are defined (see Section 13.2. “Runlevels”). It also specifies which services and daemons are available in each of the levels. Depending on the entries in /etc/inittab, several scripts are run by init. For reasons of clarity, these scripts all reside in the directory /etc/init.d.

The entire process of starting the system and shutting it down is maintained by init. From this point of view, the kernel can be considered a background process whose task it is to maintain all other processes and to adjust CPU time and hardware access according to requests from other programs.