The start_kernel() Function

Start_kernel() is located in kernel/init/main.c.

The start_kernel() function orchestrates all of Linux's startup procedure. Prior to invoking all the other functions needed to get the kernel into an operational state, start_kernel() prints the familiar Linux startup banner and parses the command line.

The following sections describe each of the functions called by start_kernel(), in the order of their invocation. The code in Figure 5 shows the first few lines of start_kernel().

asmlinkage void __init start_kernel(void)
{
    char * command_line;
    unsigned long mempages;
    extern char saved_command_line[];

    lock_kernel();
    printk(linux_banner);
    setup_arch(&command_line);
    printk("Kernel command line: %s\n", saved_command_line);
    parse_options(command_line);
    trap_init();
    init_IRQ();
    ...

Figure 5. The start_kernel() function.