The boot process reviewed
init program manages system startup, and
then keeps the system running. For instance, when processes die,
init is the program that collects their
exit status values so the kernel can finish unloading them. The exact
startup procedure varies from one version of Linux to another. In this
case, it is the busybox version of
that will be booting our test system.
You may have wondered why the previous startup script uses
exec /sbin/init rather than just invoking
init. The reason is that the startup script
was the previous
init, and had the special
process ID 1. The
init program does not
become the system's startup daemon unless its process ID is 1;
exec causes it to take over the calling
shell's process ID, rather than acquiring a new one.
The init program starts by running the first system startup script,
/etc/init.d/rcS. (If there is no such file,
it prints a warning message and continues without it.) After this, it
runs according to the instructions in
/etc/inittab, if it exists. In the absence
init runs a shell on the console, and deals
gracefully with reboot and halt requests.
With your own kernel, a slightly customized initrd, and your own root
filesystem, you should now be able to boot the system to a shell
prompt. If you created the
rcS file, the
system should greet you on boot. Now you have a working, if rather
minimal, Linux system, built entirely from source, and assembled by
What you do next is up to you. I suggest installing some video games, but you could always configure the system for a database server or a Web server. If you plan to do anything that will produce a lot of disk activity, consider using an external hard drive attached via USB.