They are applications from init to the graphical applications we use.
This is an important and integral part of the system.
The kernel is useless without an application that uses the functions of that kernel.
There is no such thing as a kernel-only system.
Root file system
As we all know, the kernel (the zImage or uImage file) can be saved anywhere.
It’s just a file in any file system from FAT, extN on any device that the bootloader can read, even on an NFS server connected to the actual device.
What about apps?
It is usually an application group and it must reside in a file system.
This file system can reside on a memory device or on memory (in the case of Init RAM fs).
When booted, the system runs only one root file system.
Called the root file system, this file system can be extN, JFFS2, ZFS, UBIFS…supporting the file system requirements for Linux.
It is possible to have several file systems located in RAM without a file system on the storage device.
But since it only exists on RAM, it’s only useful in certain situations
such as rescue…init ram fs is an example.
initrd ram fs is a file system containing a number of user-space programs, bootloader
load up RAM for the kernel to mount to use as its root file system.
In most systems, the first thing the kernel does is access to applications
is to mount the root file system. That is, attach it to use it.
Therefore, information about that filesystem storage device must also be passed to the kernel when it is booted. That’s the bootloader’s job
Init . Program
The user-space application that is run by the kernel is called init program.
There’s not just one init program. Each Linux system class has its own init program.
It could be System V (common on desktop distros), systemd, or BusyBox init (common on Embedded Linux).
The location (or path) of the init program in the root file system is usually set as a parameter when starting the kernel.
From this init program, other programs will be started.
Each type of init program has different features, ease of configuration, and changeability.
The program that displays to the console allowing login will also be started.
At this point, we can already use the system like any other Linux system. However, the number of programs available in the root file system of Embedded Linux is much less than on the Desktop.