Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I would recommend looking at <a href="http://lxr.linux.no/linux" rel="noreferrer">LXR</a>. It makes it easier to follow the flow of the code (you do not have to search for each function that is called &mdash; well, you have, but the site does it for you).</p> <p>Some starting points, for the current version (2.6.30):</p> <ul> <li><a href="http://lxr.linux.no/linux+v2.6.30/init/main.c#L536" rel="noreferrer"><code>start_kernel()</code></a> &mdash; think of it as the kernel equivalent of <code>main()</code>. This function initializes almost all the kernel subsystems; follow it to see in code what you see scrolling on the screen during the boot.</li> <li><a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/kernel/entry_32.S" rel="noreferrer">entry_32.S</a> &mdash; system calls and interrupts (x86-32 version, which should be nearer what you know; note the use of the AT&amp;T assembly dialect instead of the Intel dialect you might be more used to).</li> <li><a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/kernel/head_32.S" rel="noreferrer">head_32.S</a> &mdash; the kernel entry point. This is where the kernel starts after switching to protected mode; in the end, it will call <code>start_kernel()</code>.</li> <li><a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/boot/" rel="noreferrer">arch/x86/boot</a> &mdash; the real-mode bootstrap code. It starts in assembly (<a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/boot/header.S" rel="noreferrer">boot/header.S</a>), but quickly jumps into C code (starting at <a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/boot/main.c" rel="noreferrer">boot/main.c</a>). Does the real-mode initialization (mostly BIOS calls which have to be done before switching to protected mode); it is compiled using a weird GCC trick (<code>.code16gcc</code>), which allows the generation of 32-bit real-mode code.</li> <li><a href="http://lxr.linux.no/linux+v2.6.30/arch/x86/boot/compressed/" rel="noreferrer">arch/x86/boot/compressed</a> &mdash; if you ever wondered where does the "Decompressing Linux..." message comes from, it is from here.</li> </ul>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload