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.
init
is the mother of all processes.init
as a user process than to write it in the kernel. If it where written in the kernel, then someone would add a processstarter
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.man init > "What does init on Ubuntu do"
and read it in home folder