Subversion Repositories HelenOS-doc

Rev

Rev 150 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. \chapter{Boot Loading Process}
  2.  
  3. The startup of HelenOS happens in several steps.
  4. Depending on the platform these steps can be either
  5. described as \textit{piggybacker loading}:
  6.  
  7. \begin{enumerate}
  8. \item Platform boot loader loads the piggybacker image
  9.       and jumps to its entry point.
  10. \item The piggybacker unwraps the kernel image and
  11.       the images of the initial user space tasks, creates
  12.        a boot information structure and jumps to the
  13.        entry point of the kernel.
  14. \item The kernel initializes and runs the initial tasks
  15.       according the boot information structure from the
  16.        piggybacker.
  17. \end{enumerate}
  18.  
  19. If the platform supports a more sophisticated native boot loader,
  20. a \textit{multiboot loading} contains following steps:
  21.  
  22. \begin{enumerate}
  23. \item Platform boot loader loads the kernel image and initial
  24.       user space tasks, creates a boot information structure
  25.        and jumps to the entry point of the kernel.
  26. \item The kernel initializes and runs the initial tasks
  27.       according the boot information structure from the
  28.        boot loader.
  29. \end{enumerate}
  30.  
  31. A third kind of boot loading occurs on platforms with no support
  32. of boot loader. It is called \textit{image loading} and is
  33. used mostly on simulated architectures.
  34.  
  35. \begin{enumerate}
  36. \item The kernel and initial user space images are placed
  37.       on well-known physical memory locations (usually
  38.        by a simulator configuration file). The execution
  39.        starts directly on the kernel entry point.
  40. \item The kernel initializes and runs a previously hardwired
  41.       number of initial user space tasks.
  42. \end{enumerate}
  43.  
  44. The following sections describe the particual features of the
  45. boot loading process on the supported platforms.
  46.  
  47. \section{IA-32 and AMD64}
  48.  
  49. On both platforms HelenOS depends on a boot loader which
  50. supports the Multiboot Specification (i.e. GRUB). The kernel
  51. image (usually called \texttt{image.bin}) is loaded by the
  52. boot loader just above the 1st megabyte of the physical
  53. memory (the exact location is 1081344 bytes).