What should be in the root filesystem?
The kernel will get a root filesystem, either as a ramdisk, passed as a pointer from the bootloader, or by mounting the block device given on the kernel command line by the root=
parameter. Once it has a root filesystem, the kernel will execute the first program, by default named init
, as described in the section Early Userspace in Chapter 4, Porting and Configuring the Kernel. Then, as far as the kernel is concerned, its job is complete. It is up to the init
program to begin processing scripts, start other programs, and so on, by calling system functions in the C library, which translate into kernel system calls.
To make a useful system, you need these components as a minimum:
init: The program that starts everything off, usually by running a series of scripts.
shell: Needed to give you a command prompt but, more importantly, to run the shell scripts called by
init
and other programs.daemons: Various server programs, started by
init
.libraries: Usually...