Subversion Repositories HelenOS-doc

Rev

Rev 149 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
124 decky 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).