1,7 → 1,7 |
\chapter{Boot Loading Process} |
|
The startup of HelenOS happens in several steps. |
Depending on the platform these steps can be either |
Depending on the platform, these steps can be either |
described as \textit{piggybacker loading}: |
|
\begin{enumerate} |
17,7 → 17,7 |
\end{enumerate} |
|
If the platform supports a more sophisticated native boot loader, |
a \textit{multiboot loading} contains following steps: |
the \textit{multiboot loading} consists of the following steps: |
|
\begin{enumerate} |
\item Platform boot loader loads the kernel image and initial |
24,12 → 24,12 |
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 |
according the 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 |
from boot loader. It is called \textit{image loading} and is |
used mostly on simulated architectures. |
|
\begin{enumerate} |
37,11 → 37,11 |
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 |
\item The kernel initializes and spawns compiled-in |
number of initial user space tasks. |
\end{enumerate} |
|
The following sections describe the particual features of the |
The following sections describe the particular features of the |
boot loading process on the supported platforms. Sample |
configuration files for all simulators are in the directory |
{\em kernel/contrib/conf}. |
48,9 → 48,9 |
|
\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 |
On both platforms, HelenOS depends on a boot loader which |
supports the Multiboot Specification (e.g. GRUB). The kernel |
image (usually called \texttt{image.iso}) is loaded by the |
boot loader just above the 1st megabyte of the physical |
memory (the exact location is 1081344 bytes). Modules loaded by |
GRUB are automatically detected by the kernel and after initialization |
75,7 → 75,7 |
|
\section{32-bit MIPS} |
The MIPS port is fully supported in the {\em msim} and {\em gxemul} simulators. |
These simulators allow specifying a memory contents of the simulated |
These simulators allow to specify a memory contents of the simulated |
computer. Unfortunately, the autodetection of loaded modules does |
not work. In order to change number of loaded modules, the file |
kernel/arch/mips32/src/mips32.c must be modified. |
107,13 → 107,13 |
is created which can be later loaded directly with ARC boot loader |
e.g. using BOOTP protocol. |
|
\section{IA64} |
The IA64 port is supported on the ski simulator. The situation is very similar |
\section{IA-64} |
The IA-64 port is supported on the Ski simulator. The situation is very similar |
to the MIPS loader - the loaded modules must be loaded on correct addresses in |
the ski configuration file and specified in the file |
the Ski configuration file and specified in the file |
kernel/arch/ia64/src/ia64.c. |
|
Sample IA64 configuration file: |
Sample IA-64 configuration file: |
\begin{verbatim} |
load kernel.bin |
romload ../uspace/ns/ns 0x400000 |