The history of Linux init systems
So, what is an init
system? Well, init
is short for initialization. An init
system, then, initializes the operating system upon bootup. After the bootup has completed, the init
system will continue working, managing system processes and services. Each system process is assigned a process ID number, or PID. The init
process is always PID 1, and every other process that gets started on the system is either a child or a grandchild of the init
process.
For many years, the SysV Init system was the primary init
system for Linux-based operating systems (SysV is short for System 5. The V is the Roman numeral for 5). SysV init
was originally developed by Bell Labs engineers for the Unix operating system, all the way back in the early 1970s. (At that time, I was a young pup in junior high school, and I still had a full head of hair.)
Note
There are actually a few more Linux init
systems besides the ones that I'm mentioning here. But these were the most commonly used ones in the pre-systemd
days.
SysV init
worked well in its day, but it was never perfect. Nowadays, with new high-performance hardware, SysV init
has shown both its age and its deficiencies. The first attempt to come up with something better occurred in July 2009, when Ubuntu engineers released the first version of the upstart init
system. Although it was better than SysV, it still had its share of problems, especially the early versions which were quite buggy.