173,6 → 173,12 |
troubleshooting. Moreover, part of the simulators featured integrated debugging facilities. |
Without them, a lot of bugs would remain unresolved or even go unnoticed. |
|
Using several virtual environments for testing one architecture is well justified by the |
fact that sometimes HelenOS would run on two and crash on third or vice versa. Sometimes |
we found that it runs on real hardware but fails in a simulator. The opposite case was, |
however, more common. Simply put, the more configurations, no matter whether real or virtual, |
the better. |
|
From one point of view, we have tested our system on eight different virtual environments: |
|
\begin{itemize} |
210,7 → 216,10 |
(patch \#1282033). |
|
Bochs has some debugging facilities but those have been very impractical and broken |
in SMP mode. |
in SMP mode. Moreover, it is possible to use the GNU debugger {\tt gbd} to connect to running |
simulation, but this has also proven not very useful as we often needed to debug |
problems that existed only in multiprocessor configurations, which {\tt gdb} |
does not understand. |
|
\subsection{GXemul} |
GXemul is an emulator of several processor architectures. Nevertheless, we have |
251,6 → 260,11 |
which was nice for those of us who use notebooks as their development |
machine. |
|
Similar to Bochs, QEMU simulation can be aided by {\tt gdb}. Debugging |
with {\tt gdb} can be pretty comfortable\footnote{Especially when the kernel is |
compiled with {\tt -g3}.} until one needs to debug a SMP kernel running on multiple |
processors. |
|
\subsection{Simics} |
Virtutech's Simics simulator can be compared to a Swiss-army knife for operating system debugging. |
This proprietary piece of software was available to us under an academic license for free. |
295,12 → 309,12 |
make it far enough for the HP to fix or at least clarify the issue. Finally, we adopted a workaround implemented by {\JJ} |
that simply swaps LMA and the program entry point in the kernel ELF image. |
|
\subsection{VMware} |
VMware is the only virtualizer we have used in HelenOS development. It virtualizes the ia32 host machine. |
Since VMware version 5.5, we made use of its possibility to run the guest system (i.e. HelenOS) on multiple processors. |
VMware has no support for debugging but is very useful for compatibility and regression testing because |
it's closest to the real hardware. VMware, being a virtualizer, is also the fastest of all the virtual environments |
we have utilized. |
\subsection{VMware} VMware is the only virtualizer we have used in |
HelenOS development. It virtualizes the ia32 host machine. Since VMware |
version 5.5, we made use of its possibility to run the guest system |
(i.e. HelenOS) on multiple processors. VMware has no support for |
debugging but is very useful for compatibility and regression testing |
because it's closest to the real hardware. VMware, being a virtualizer, |
is also the fastest of all the virtual environments we have utilized. |
|
|
\section{Authoring tools} |