0,0 → 1,53 |
\chapter{Boot Loading Process} |
|
The startup of HelenOS happens in several steps. |
Depending on the platform these steps can be either |
described as \textit{piggybacker loading}: |
|
\begin{enumerate} |
\item Platform boot loader loads the piggybacker image |
and jumps to its entry point. |
\item The piggybacker unwraps the kernel image and |
the images of the initial user space tasks, creates |
a boot information structure and jumps to the |
entry point of the kernel. |
\item The kernel initializes and runs the initial tasks |
according the boot information structure from the |
piggybacker. |
\end{enumerate} |
|
If the platform supports a more sophisticated native boot loader, |
a \textit{multiboot loading} contains following steps: |
|
\begin{enumerate} |
\item Platform boot loader loads the kernel image and initial |
user space tasks, creates a boot information structure |
and jumps to the entry point of the kernel. |
\item The kernel initializes and runs the initial tasks |
according the boot information structure from the |
boot loader. |
\end{enumerate} |
|
A third kind of boot loading occurs on platforms with no support |
of boot loader. It is called \textit{image loading} and is |
used mostly on simulated architectures. |
|
\begin{enumerate} |
\item The kernel and initial user space images are placed |
on well-known physical memory locations (usually |
by a simulator configuration file). The execution |
starts directly on the kernel entry point. |
\item The kernel initializes and runs a previously hardwired |
number of initial user space tasks. |
\end{enumerate} |
|
The following sections describe the particual features of the |
boot loading process on the supported platforms. |
|
\section{IA-32 and AMD64} |
|
On both platforms HelenOS depends on a boot loader which |
supports the Multiboot Specification (i.e. GRUB). The kernel |
image (usually called \texttt{image.bin}) is loaded by the |
boot loader just above the 1st megabyte of the physical |
memory (the exact location is 1081344 bytes). |