Next Previous Contents

4. Linux Startup

We start the Linux kernel first from C code executed from ''startup_32:'' asm label:

      |#ifdef CONFIG_MODULES 
      |#ifdef CONFIG_PROC_FS 
      |#if defined(CONFIG_SYSVIPC) 

The last function ''rest_init'' does the following:

  1. launches the kernel thread ''init''
  2. calls unlock_kernel
  3. makes the kernel run cpu_idle routine, that will be the idle loop executing when nothing is scheduled

In fact the start_kernel procedure never ends. It will execute cpu_idle routine endlessly.

Follows ''init'' description, which is the first Kernel Thread:

         |(*call())-> kswapd_init

Next Previous Contents