<HTML ><HEAD ><TITLE >The Linux boot process</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.63 "><LINK REL="HOME" TITLE="The Linux Bootdisk HOWTO" HREF="index.html"><LINK REL="UP" TITLE="Resources and pointers" HREF="a1376.html"><LINK REL="PREVIOUS" TITLE="Ramdisk usage" HREF="x1434.html"><LINK REL="NEXT" TITLE="LILO boot error codes" HREF="a1483.html"></HEAD ><BODY CLASS="SECT1" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Linux Bootdisk HOWTO</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="x1434.html" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >A. Resources and pointers</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="a1483.html" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="AEN1440" >A.5. The Linux boot process</A ></H1 ><P >For more detail on the Linux boot process, here are some pointers: <P ></P ><UL ><LI ><P >The <A HREF="http://linuxdoc.org/LDP/sag/index.html" TARGET="_top" ><I CLASS="CITETITLE" >Linux System Administrators' Guide</I ></A > has a section on booting.</P ></LI ><LI ><P >The <A HREF="http://www.ibiblio.org/pub/Linux/system/boot/lilo/lilo-t-21.ps.gz" TARGET="_top" >LILO ``Technical overview''</A > has the definitive technical, low-level description of the boot process, up to where the kernel is started.</P ></LI ><LI ><P > The source code is the ultimate guide. Below are some kernel files related to the boot process. If you have the Linux kernel source code, you can find these under <TT CLASS="FILENAME" >/usr/src/linux</TT > on your machine; alternatively, Shigio Yamaguchi (shigio at tamacom.com) has a very nice <A HREF="http://www.tamacom.com/tour/linux/index.html" TARGET="_top" >hypertext kernel browser</A > for reading kernel source files. Here are some relevant files to look at: <P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="FILENAME" >arch/i386/boot/bootsect.S</TT > and <TT CLASS="FILENAME" >setup.S</TT ></DT ><DD ><P >Contain assembly code for the bootsector itself.</P ></DD ><DT ><TT CLASS="FILENAME" >arch/i386/boot/compressed/misc.c</TT ></DT ><DD ><P >Contains code for uncompressing the kernel.</P ></DD ><DT ><TT CLASS="FILENAME" >arch/i386/kernel/</TT ></DT ><DD ><P >Directory containing kernel initialization code. <TT CLASS="FILENAME" >setup.c</TT > defines the ramdisk word.</P ></DD ><DT ><TT CLASS="FILENAME" >drivers/block/rd.c</TT ></DT ><DD ><P >Contains the ramdisk driver. The procedures <B CLASS="COMMAND" >rd_load</B > and <B CLASS="COMMAND" >rd_load_image</B > load blocks from a device into a ramdisk. The procedure <B CLASS="COMMAND" >identify_ramdisk_image</B > determines what kind of filesystem is found and whether it is compressed.</P ></DD ></DL ></DIV > </P ></LI ></UL > </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="x1434.html" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="a1483.html" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Ramdisk usage</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="a1376.html" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >LILO boot error codes</TD ></TR ></TABLE ></DIV ></BODY ></HTML >