Opentopia Directory Encyclopedia Tools

Init

Encyclopedia : I : IN : INI : Init


The correct title of this } is }}}. The initial letter is capitalized due to [Naming conventions #Lower case first lettertechnical restrictions].
init (short for "initialization") is the program on Unix and Unix-like systems which spawns all other processes. It runs as a daemon and typically has PID 1.

The functionality diverged considerably between BSD and System V. The usage on most Linux distributions is compatible with System V, but some distributions, such as Slackware, use a BSD-style and others, such as Gentoo Linux, have their own customized version.

Opinions on the relative merits of different schemes can be strongly held, leading both to occasional "flame wars", and also to the development of several alternatives.

BSD-style

BSD init runs the initialization shell script located in '/etc/rc', then launches getty on text-based terminals or a windowing system such as X on graphical terminals. There are no runlevels; the 'rc' file determines how init is to be run.

Advantages: Simple and easy to edit manually.

Problems: If a 3rd-party package needs to have an initialization script run during the boot procedure, it needs to edit one of the existing boot scripts, but a simple mistake in that process could lead to an unbootable system.

SysV-style

System V init examines the '/etc/inittab' file for an 'initdefault' entry, which tells init whether there is a default runlevel. If there is no default runlevel, then the user is dumped to a system console, where a runlevel must be entered manually.

Advantages: Flexiblity and scalability.

Problems: Complexity.

Runlevels

The Runlevels in System V describe certain states of a machine, characterized by the processes run. There are generally 8 runlevels. These are the runlevels 0 to 6 and S or s, which are aliased to the same runlevel. Of these eight, 3 are so-called "reserved" runlevels:

0. Halt
1. Single user mode
6. Reboot
Aside from runlevels 0, 1, and 6, every Unix system treats runlevels a little differently. The common denominator is the /etc/inittab file, which defines what each runlevel does (if they do anything at all).

Default runlevels

OS or Distribution Default runlevel
SUSE 5
Mandriva 5
Solaris 3
AIX 2

On the two Linux distributions in the table above, runlevel 5 is a multiuser graphical environment running X, usually with a display manager such as xdm, kdm or gdm running. However, in the Solaris operating system, runlevel 5 is typically reserved to shutdown and automatically poweroff the machine.

On most systems users can check the current runlevel with either of the following commands:

$ runlevel
$ who -r
The current runlevel is typically changed by root running the telinit or init commands. The default runlevel is set in the /etc/inittab file with the :initdefault: entry.

Skipping init

On most modern bootloaders (such as LILO or GRUB), users can change which process the kernel spawns at the end of its initialization from the normal default of /sbin/init). This is generally done by typing init=/foo/bar at the bootloader's prompt. Appending init=/bin/bash, for example, will bring up a single root shell, without a password. If the system administrator feels that this is insecure, they may setup a BIOS password.

See also

External links

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.

Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: