What does init on Ubuntu do?

Solution 1:

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.

Solution 2:

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.