While you weren't looking, the popular Ubuntu Linux distribution changed several features under the hood. Kyle Rankin, coauthor of The Official Ubuntu Server Book , points out the most distressing changes and explains why you need to suffer through them and ultimately come to acceptance.



Of all the things I love about Linux, I think I love its stability the most. I'm not talking about uptime here, even though it's great. What I mean is the sense you get from Linux that it's on a solid foundation. Concepts like "everything is a file," "small programs that do one thing well," and the overall file system layout are well-worn principles with all the major kinks worked out. I get the sense of a collected wisdom, accumulated in the system over the years, guiding Linux forward. Sure, Mozilla's browser will change its name every few years, and both GNOME and KDE have gone through their start-from-scratch phase, but /dev files, initrd , at , cron , and System V init I can always count on these things being there.

Not so fast. It turns out that a few things in that list I just mentioned have already been replaced in a modern Ubuntu system…and the rest are on their way out. Perhaps that fact makes you want to reach for your torch and pitchfork, but hear me out first. By the time you reach the end of this article, I hope that you'll have gone through the five stages of grief: denial, anger, bargaining, depression, and finally reached acceptance of the impending death of these classic parts of Linux infrastructure.

Denial: System V Init

My own journey through the five stages of grief started a few months ago. I was documenting the System V init system under Ubuntu for The Official Ubuntu Server Book when I discovered that my Ubuntu system didn't have an /etc/inittab file. Considering that inittab is the core configuration file for init , that missing file piqued my curiosity. Soon I discovered that not only had it been replaced, but that change happened years agoand I never noticed until now!

If you're new to Linux, you might need a quick tutorial about init . The System V init system governs how Linux starts. After the kernel loads, the System V init program ( /sbin/init ) starts. This program then launches other scripts that mount file systems and start core services; in the case of a desktop system, init then ultimately starts X so you can log in.

One of the core characteristics of System V init is its use of runlevels. Runlevels define up to seven different states of the system, each having an associated number. When init switches to a particular runlevel, it starts or stops certain programs based on that runlevel's settings. For instance, when you tell init to change to runlevel 0, it prepares to halt the computer, shuts down services on the system, unmounts the file systems, and (if your power management works) powers off the system. Runlevel 6 does much the same thing, except that at the end the system reboots.