<P> The startup function for the kernel (also called the swapper or process 0) establishes memory management (paging tables and memory paging), detects the type of CPU and any additional functionality such as floating point capabilities, and then switches to non-architecture specific Linux kernel functionality via a call to start_kernel (). </P> <P> start_kernel executes a wide range of initialization functions . It sets up interrupt handling (IRQs), further configures memory, starts the Init process (the first user - space process), and then starts the idle task via cpu_idle (). Notably, the kernel startup process also mounts the initial RAM disk ("initrd") that was loaded previously as the temporary root file system during the boot phase . The initrd allows driver modules to be loaded directly from memory, without reliance upon other devices (e.g. a hard disk) and the drivers that are needed to access them (e.g. a SATA driver). This split of some drivers statically compiled into the kernel and other drivers loaded from initrd allows for a smaller kernel . The root file system is later switched via a call to pivot_root () which unmounts the temporary root file system and replaces it with the use of the real one, once the latter is accessible . The memory used by the temporary root file system is then reclaimed . </P> <P> Thus, the kernel initializes devices, mounts the root filesystem specified by the boot loader as read only, and runs Init (/ sbin / init) which is designated as the first process run by the system (PID = 1). A message is printed by the kernel upon mounting the file system, and by Init upon starting the Init process . It may also optionally run Initrd to allow setup and device related matters (RAM disk or similar) to be handled before the root file system is mounted . </P> <P> According to Red Hat, the detailed kernel process at this stage is therefore summarized as follows: </P>

Which process is used to start unix os