13

I already know that init is the magical program that is needed for booting your computer and managing runlevels, but what is it's real purpose?

Why do we even need init in the first place? Why can't the bootloader tell Upstart what programs to run and not run?

This question in (late) response to my What would happen if init was deleted? question.

3
  • init is the mother of all processes. Aug 25, 2014 at 11:20
  • It is easier to write the functionality of init as a user process than to write it in the kernel. If it where written in the kernel, then someone would add a process starter that would run in user space, that is more flexible. Thus duplicating the functionality. Therefore it is best to keep the kernel part as simple as possible. Aug 25, 2014 at 11:21
  • man init > "What does init on Ubuntu do" and read it in home folder Aug 26, 2014 at 6:05

2 Answers 2

6

See the manual for init on Unix systems.

This is a post from the Wikipedia entry on init:

In Unix-based computer operating systems, init (short for initialization) is the first process started during booting of the computer system. Init is a daemon process that continues running until the system is shut down. It is the direct or indirect ancestor of all other processes and automatically adopts all orphaned processes. Init is started by the kernel using a hard-coded filename, and if the kernel is unable to start it, a kernel panic will result. Init is typically assigned process identifier 1.

The design of init has diverged in Unix systems such as System III and System V, from the functionality provided by the init in Research Unix and its BSD derivatives. The usage on most Linux distributions is somewhat compatible with System V, but some distributions, such as Slackware, use a BSD-style and others, such as Gentoo, have their own customized version.

Several replacement init implementations have been written with attempt to address design limitations in the standard versions. These include launchd, the Service Management Facility, systemd and Upstart, the latter being used by Ubuntu and some other Linux distributions.

Hope this helps to explain it to you; it’s a lot of reading.

0
3

upstart and systemd are init systems. By convention (and perhaps other constraints), the program is still called init, irrespective of whether systemd or upstart or something else is at play. Don't let the process name fool you. PID1 is not SysV init any longer. It hasn't been for quite some time on Ubuntu.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .