[Kos-cvs] kos/doc testingfr.tex, 1.16, 1.17 screenshot-qemu.png, NONE, 1.1 screenshot-terminal.png, NONE, 1.1

thomas at kos.enix.org thomas at kos.enix.org
Sun Jan 9 17:05:05 CET 2005


Update of /home/kos/cvs/kos/doc
In directory the-doors:/tmp/cvs-serv15291/doc

Modified Files:
	testingfr.tex 
Added Files:
	screenshot-qemu.png screenshot-terminal.png 
Log Message:
2005-01-09  Thomas Petazzoni  <thomas at crazy.kos.nx>

	* doc/testingfr.tex: Documentation has been updated, with the
	current execution status of KOS.



Index: testingfr.tex
===================================================================
RCS file: /home/kos/cvs/kos/doc/testingfr.tex,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- testingfr.tex	29 Dec 2004 19:03:39 -0000	1.16
+++ testingfr.tex	9 Jan 2005 16:05:03 -0000	1.17
@@ -17,10 +17,23 @@
 \usepackage{url}
 \usepackage{a4wide}
 \usepackage{palatino}
+\usepackage{float}
+
+\floatplacement{figure}{H}
 
 \newcommand{\ol}{\em}
 \newcommand{\kos}{{\sc Kos\ }}
 
+%BEGIN IMAGE
+\newlength{\taillecol}
+%HEVEA \setlength{\taillecol}{11cm}
+%END IMAGE
+%BEGIN LATEX
+%BEGIN LATEX
+\newcommand{\mysub}[3]{\subfigure[#2]{#3}}
+\setlength{\taillecol}{\linewidth}
+%END LATEX
+
 \title{Compiler, tester et débugger \kos}
 \author{Thomas Petazzoni}
 \date{28 décembre 2004}
@@ -139,8 +152,9 @@
 architectures suivantes :
 
 \begin{enumerate}
-\item Linux sur processeur x86
-\item Solaris sur Sparc, en cross compilation
+ \item GNU/Linux sur processeur x86
+ \item GNU/Linux sur processeur PPC, en cross compilation
+ \item Solaris sur Sparc, en cross compilation
 \end{enumerate}
 
 \subsection{Compilation}
@@ -170,8 +184,262 @@
 L'image de disque dur produite est dans le module {\tt kos-sys}, sous
 le nom {\tt hd10M.img}.
 
+\section{Tester dans un émulateur}
+
+Pour tester \kos, nous utilisons la plupart du temps un émulateur, qui
+évite d'avoir à rebooter une machine très fréquemment, surtout si on
+en a qu'une seule ! D'autre part, l'utilisation d'un émulateur
+(surtout quand il est open source) est vraiment très pratique pour le
+debugging.
+
+Nous utilisons principalement {\em Bochs} (voir \ref{emu:bochs}) et
+{\em Qemu} (voir \ref{emu:qemu}). Il est
+également possible d'utiliser {\em VMWare} (voir \ref{emu:vmware}),
+mais ce n'est pas un Logiciel Libre !
+
+\subsection{Bochs}
+
+\label{emu:bochs}
+
+{\em Bochs} est un émulateur d'architecture x86 plateforme PC
+standard. Il permet d'émuler des lecteurs de disquette, de disques
+durs, de CD-ROM, le PCI, une carte son et le réseau. Le site officiel
+de Bochs est \url{http://bochs.sourceforge.net}.
+
+{\em Bochs} est disponible en version binaire pour Windows ou Unix sur
+le site Web. Les sources sont également disponibles sous forme
+d'archives, ou via CVS. Certaines distributions GNU/Linux, dont {\em
+Debian} proposent des paquets précompilés pour {\em Bochs}.
+
+\subsubsection{Compilation et installation de Bochs}
+
+Si vous avez téléchargé une version binaire ou une version précompilée
+pour votre distribution GNU/Linux, vous pouvez passer cette section
+qui concerne la compilation et l'installation.
+
+Pour compiler Bochs, c'est assez simple :
+
+\begin{verbatim}
+./configure --with-x11 \
+            --enable-debugger \
+            --enable-disasm \
+            --enable-port-e9-hack \
+            --disable-control-panel
+make
+\end{verbatim}
+
+\begin{itemize}
+\item {\tt --with-x11} permet de sélectionner X11 comme interface
+d'affichage. Vous pouvez aussi utiliser {\tt --with-win32} pour
+Windows.
+\item {\tt --enable-debugger --enable-disasm} permet d'aactiver le
+débuggeur et le désassembleur.
+\item {\tt --enable-port-e9-hack} permet d'activer un petit hack
+permettant d'obtenir des messages de debug dans le terminal ayant
+lancé Bochs. Extremement pratique !
+\item {\tt --disable-control-panel} indique qu'on ne doit pas vous
+demander de personnaliser votre fichier de configuration à chaque
+lancement de bochs.
+\end{itemize}
+
+Pour installer Bochs (sous Unix), je vous recommande :
+
+\begin{verbatim}
+./install-x11-fonts
+ln -s bochs /usr/bin/bochs
+\end{verbatim}
+
+\subsubsection{Configuration de Bochs}
+
+\paragraph{Configuration de base}
+
+Bochs dispose maintenant d'une interface en mode texte permettant de
+configurer la plupart des paramètres importants. Toutefois, je vais
+vous présenter les lignes à modifier par rapport au .bochsrc fourni en
+standard.
+
+\begin{verbatim}
+romimage: file=/home/kos/bochs/bios/BIOS-bochs-latest, address=0xf0000
+megs: 8
+vgaromimage: /home/kos/bochs/bios/VGABIOS-elpin-2.40
+floppya: 1_44=/home/kos/src/kos/grub/fd.img, status=inserted
+diskc: file="/home/kos/src/kos-sys/hd10M.img", cyl=306, heads=4, spt=17
+boot: a
+log: bochsout.txt
+\end{verbatim}
+
+Evidemment n'oubliez pas de personnaliser ces lignes pour qu'elles
+correspondent à votre configuration.
+
+\subsubsection{Utilisation de Bochs}
+
+Pour utiliser Bochs à partir des sources de \kos, utilisez simplement
+la commande :
+
+\begin{verbatim}
+make bochs
+\end{verbatim}
+
+Ceci lance la compilation de kos, génère l'image de disquette, et
+lance Bochs. Ça ne fonctionnera bien sûr que sous Unix, car {\tt
+make bochs} utilise \emph{Grub} pour crééer une image de disquette.
+
+\subsection{Qemu}
+
+\label{emu:qemu}
+
+{\em Qemu} est un émulateur écrit par Fabrice Bellard, et disponible
+sur le site \url{http://bellard.org/qemu}. Il émule plusieurs
+architectures, dont l'architecture {\tt x86} qui nous
+intéresse. L'émulation de {\em Qemu} est bien plus rapide que celle de
+{\em Bochs}.
+
+\subsubsection{Compilation de Qemu}
+
+La compilation de {\em Qemu} s'effectue de manière classique à l'aide
+des commandes {\tt ./configure \&\& make \&\& make install}. Aucune option
+particulière n'est à fournir.
+
+\subsubsection{Utilisation de Qemu}
+
+Pour lancer \kos en utilisant {\em Qemu}, il suffit simplement
+d'utiliser :
+
+\begin{verbatim}
+make qemu
+\end{verbatim}
+
+\subsection{VMWare}
+
+\label{emu:vmware}
+
+Nous ne détaillerons pas la procédure d'installation de VMWare, elle
+st complètement automatisée par le script \texttt{vmware-install.pl}
+se trouvant dans l'archive.
+
+Nous ne détaillerons pas non plus la procédure de configuration de
+VMWare : il suffit d'indiquer que le lecteur de disquette correspond
+au fichier {\tt grub/fd.img} dans les sources de \kos et que le
+fichier {\tt hd10M.img} correspond au premier disque dur.
+
+\section{Que dois-je obtenir à l'éxécution ?}
+
+A l'heure actuelle, \kos ne dispose pas d'applications utilisateur
+``conviviales'' telles qu'un shell. Il n'est donc pas évident de
+savoir ce que vous devez obtenir, et si l'éxécution s'est bien
+déroulée.
+
+Au 9 janvier 2005, l'éxécution de \kos doit donner lieu à l'apparition
+sur la console d'un miniscule {\em shell}, avec des commandes très
+minimales. Ce {\em shell} n'est pas une application utilisateur, il
+fonctionne en mode noyau, et propose juste quelques commandes. La
+plupart des commandes, comme {\tt cat} ou {\tt ps} affichent leur
+sortie sur le fameux port {\tt 0xE9} (voir \ref{port-e9-hack}). Si
+vous n'avez pas compilé Bochs ou Qemu comme il faut ou que vous
+éxécutez sur une machine réelle, vous ne verrez pas toutes ces
+informations.
+
+En haut de l'écran, des petits caractères de couleurs tournent. Celui
+le plus en haut à droite en bleu est incrémenté à chaque tick
+d'horloge. Le ou les autres en rouge sont des threads noyaux.
+
+Enfin, KOS éxécute tout de même quelques applications utilisateur de
+test. Lors de leur éxécution, énormément d'informations sont affichées
+sur le port {\tt 0xE9}. Ces applications utilisent les appels systèmes
+{\tt fork}, {\tt exec}, {\tt open}, {\tt write} et {\tt brk}
+notamment. Elles ne font rien de particulièrement visible sur la
+console.
+
+La figure \ref{fig:qemu} montre l'éxécution de \kos dans Qemu, et la
+figure \ref{fig:terminal} un très bref extrait de la sortie de \kos
+sur le port {\tt 0xE9}.
+
+\begin{figure}[htbp]
+   \centering \includegraphics[width=\taillecol]{screenshot-qemu.eps}
+   \caption{\kos dans Qemu}
+   \label{fig:qemu}
+\end{figure}
+
+\begin{figure}[htbp]
+   \centering \includegraphics[width=\taillecol]{screenshot-terminal.eps}
+   \caption{Extrait de la sortie de \kos sur le port {\tt 0xE9}}
+   \label{fig:terminal}
+\end{figure}
+
+Si vous n'obtenez pas ce comportement, n'hésitez pas à demander sur la
+liste de diffusion de \kos, il se peut que le comportement ait
+changé.
+
+\section{Débugger dans un émulateur}
+
+\subsection{Le port-e9-hack}
+
+\label{port-e9-hack}
+
+\subsubsection{Dans Bochs}
+
+Dans {\em Bochs}, le {\em port-e9-hack} est intégré en standard dans
+les sources, et est activé dès lors qu'il a été compilé avec l'option
+de configure {\tt --enable-port-e9-hack}.
+
+Pour activer l'envoi des messages de debugging pour le loader, éditez
+le fichier {\tt loader/config.h} et vérifiez que la constante {\em
+DEBUG\_ON\_BOCHS\/} est bien définie.
+
+Pour activer l'envoi des messages de debugging pour les modules (le
+noyau), faites de même pour le fichier {\tt modules/config.h}.
+
+{\em Remarque\/}~: Il n'est pas obligatoire d'avoir le debugging dans
+le loader et dans les modules simultanément : toutes les combinaisons
+sont possibles !
+
+Ce petit hack très utile permet d'obtenir une grande quantité
+d'informations, et je vous conseillerai donc d'avoir un terminal
+conservant de nombreuses lignes d'historique, comme c'était le cas
+pour le debugging via ligne série.
+
+\subsubsection{Dans Qemu}
+
+Dans {\em Qemu}, le {\em port-e9-hack} n'est pas disponible en
+standard, mais nous proposons un patch pour Qemu permettant de
+l'intégrer. Celui-ci sera prochainement disponible.
+
+\subsection{Les sources de Bochs}
+
+Bochs étant sous licence GPL, ses sources sont disponibles et surtout
+modifiables. On peut donc modifier le comportement de la machine
+virtuelle, et obtenir de nombreuses informations sur ce qui se déroule
+en interne du processeur.
+
+\subsection{Le debugger de Bochs}
+
+Bochs dispose d'un debugger qui permet de placer des breakpoints,
+d'éxécuter pas à pas, etc... Vous trouverez plus d'informations
+concernant les possibilités du debugger dans la documentation de Bochs
+(fournie avec les sources).
+
+\subsection{Debugging avec VMWare}
+
+Même si VMWare ne dispose pas d'un équivalent au {\em port-e9-hack\/},
+il permet de faire des choses intéressantes avec les ports séries. En
+effet il est possible d'indiquer à l'émulateur si l'on souhaite que le
+port série de l'OS client corresponde à un fichier, à un port série ou
+à un TTY sur l'OS hote. Ces options sont disponibles pour 4 ports
+séries.
+
+On peut donc configurer \kos pour avoir les messages de debug sur la
+ligne série, puis configurer VMWare pour qu'il les envoie au choix
+dans un fichier, sur un TTY, ou sur un port série réel. Le plus simple
+étant d'envoyer la sortie dans un fichier.
+
+VMWare ne possède pas de debugger.
+
 \section{Tester sur une machine réelle}
 
+\subsection{Difficultés du test}
+
+\label{difficultes}
+
 \kos est un système d'exploitation complet, on peut donc le tester sur
 une machine réelle. Toutefois, la configuration de \kos n'est pour
 l'instant pas très souple : les applications utilisateur de test
@@ -179,6 +447,11 @@
 premier disque. Nous recommandons donc de tester \kos dans Bochs ou
 dans un autre émulateur, voir \ref{emu}.
 
+Si toutefois, vous souhaitez réellement tester \kos sur une machine
+réelle, vous devez copier le contenu de l'image de disque générée par
+le module CVS {\tt kos-sys} dans la première partition du premier
+disque dur de la machine, qui devra être formatée en FAT.
+
 \subsection{Avec une disquette}
 
 Vous devez disposer d'une disquette 1.44 Mo soit après l'avoir
@@ -195,6 +468,9 @@
 Il suffit ensuite de rédémarrer la machine et de la faire booter sur
 la disquette.
 
+Si l'éxécution de \kos échoue, c'est parce qu'il n'a pas réussi à
+monter la partition racine, voir \ref{difficultes}.
+
 \subsection{Par réseau}
 
 \kos utilise le \emph{bootloader} Grub. Avec les versions récentes de
@@ -297,7 +573,7 @@
 
 \begin{verbatim}
 title KOS
-bootp 
+bootp
 kernel (nd)/home/kos/src/kos/loader/loader.img
 module (nd)/home/kos/src/kos/grub/kos.a.gz
 \end{verbatim}
@@ -308,7 +584,7 @@
 
 Réinstallez Grub via la commande {\tt grub-install}, ou directement
 via la commande {\em install\/} du shell
-{\tt /sbin/grub}. \footnote{Reportez-vous à la documentation de Grub 
+{\tt /sbin/grub}. \footnote{Reportez-vous à la documentation de Grub
 pour une telle manipulation, car elle peut être dangereuse pour vos
 données}.
 
@@ -328,6 +604,9 @@
 configfile (nd)/home/kos/src/kos/menu.lst
 \end{verbatim}
 
+Si \kos échoue, c'est qu'il n'a pas réussi à monter la partition
+racine, voir \ref{difficultes}.
+
 \section{Débugger sur une machine réelle {\em via\/} ligne série}
 
 Cette possibilité n'est intéressante que dans le cas où on dispose de
@@ -371,247 +650,6 @@
 
 %% FIXME : Méthode pour avoir le debugging en ligne série sous Windows.
 
-\section{Tester dans un émulateur}
-
-Pour tester \kos, nous utilisons la plupart du temps un émulateur, qui
-évite d'avoir à rebooter une machine très fréquemment, surtout si on
-en a qu'une seule ! D'autre part, l'utilisation d'un émulateur
-(surtout quand il est open source) est vraiment très pratique pour le
-debugging.
-
-Nous utilisons principalement {\em Bochs} (voir \ref{emu:bochs}) et
-{\em Qemu} (voir \ref{emu:qemu}). Il est
-également possible d'utiliser {\em VMWare} (voir \ref{emu:vmware}),
-mais ce n'est pas un Logiciel Libre !
-
-\subsection{Bochs}
-
-\label{emu:bochs}
-
-{\em Bochs} est un émulateur d'architecture x86 plateforme PC
-standard. Il permet d'émuler des lecteurs de disquette, de disques
-durs, de CD-ROM, le PCI, une carte son et le réseau. Le site officiel
-de Bochs est \url{http://bochs.sourceforge.net}.
-
-{\em Bochs} est disponible en version binaire pour Windows ou Unix sur
-le site Web. Les sources sont également disponibles sous forme
-d'archives, ou via CVS. Certaines distributions GNU/Linux, dont {\em
-Debian} proposent des paquets précompilés pour {\em Bochs}.
-
-\subsubsection{Compilation et installation de Bochs}
-
-Si vous avez téléchargé une version binaire ou une version précompilée
-pour votre distribution GNU/Linux, vous pouvez passer cette section
-qui concerne la compilation et l'installation.
-
-Pour compiler Bochs, c'est assez simple :
-
-\begin{verbatim}
-./configure --with-x11 \
-            --enable-debugger \
-            --enable-disasm \
-            --enable-port-e9-hack \
-            --disable-control-panel
-make
-\end{verbatim}
-
-\begin{itemize}
-\item {\tt --with-x11} permet de sélectionner X11 comme interface
-d'affichage. Vous pouvez aussi utiliser {\tt --with-win32} pour
-Windows.
-\item {\tt --enable-debugger --enable-disasm} permet d'aactiver le
-débuggeur et le désassembleur.
-\item {\tt --enable-port-e9-hack} permet d'activer un petit hack
-permettant d'obtenir des messages de debug dans le terminal ayant
-lancé Bochs. Extremement pratique !
-\item {\tt --disable-control-panel} indique qu'on ne doit pas vous
-demander de personnaliser votre fichier de configuration à chaque
-lancement de bochs.
-\end{itemize}
-
-Pour installer Bochs (sous Unix), je vous recommande :
-
-\begin{verbatim}
-./install-x11-fonts
-ln -s bochs /usr/bin/bochs
-\end{verbatim}
-
-\subsubsection{Configuration de Bochs}
-
-\paragraph{Configuration de base}
-
-Bochs dispose maintenant d'une interface en mode texte permettant de
-configurer la plupart des paramètres importants. Toutefois, je vais
-vous présenter les lignes à modifier par rapport au .bochsrc fourni en
-standard.
-
-\begin{verbatim}
-romimage: file=/home/kos/bochs/bios/BIOS-bochs-latest, address=0xf0000
-megs: 8
-vgaromimage: /home/kos/bochs/bios/VGABIOS-elpin-2.40
-floppya: 1_44=/home/kos/src/kos/grub/fd.img, status=inserted
-diskc: file="/home/kos/src/kos-sys/hd10M.img", cyl=306, heads=4, spt=17
-boot: a
-log: bochsout.txt
-\end{verbatim}
-
-Evidemment n'oubliez pas de personnaliser ces lignes pour qu'elles
-correspondent à votre configuration.
-
-\paragraph{Fabrication de votre propre image de disque dur}
-
-Avec Bochs, il est possible d'émuler le controleur IDE, et donc
-d'avoir dans le système qui tourne dans l'émulateur des disques
-durs. Sur la machine hôte (sur laquelle tourne l'émulateur), ces
-disques durs sont des fichiers (on parle d'{\em images\/} de disque
-dur). Si les images de 10M constituées par défaut ne vous conviennent
-pas, voilà comment procéder.
-
-Il faut tout d'abord décider la taille du disque dur, en termes de
-nombre de cylindres, de nombre de têtes et de nombre de secteurs par
-pistes. Quelques exemples de configuration sont données dans le
-.bochsrc par défaut.
-
-Pour l'exemple, on utilisera les valeurs : 
-\begin{center}
-\begin{tabular}{cc}
-nombre de cylindres & 306 \\
-nombre de tetes & 4 \\
-nombre de secteurs par piste & 17 \\
-\end{tabular}
-\end{center}
-
-On calcule la taille totale du disque dur :
-\begin{center}
-taille en secteurs = nombre de cylindres * nombre de tetes * nombre de
-secteurs par piste
-\end{center}
-
-Pour notre exemple, on a un disque dur de 306*4*17 secteurs, soit
-20808 secteurs. Chaque secteur faisant 512 octets, notre image de
-disque doit faire 10653696 octets, soit exactement 10 Mega-octets.
-
-Pour créer cette image de disque dur~:
-\begin{verbatim}
-# editer kos-sys/Makefile : ajuster le paramettre bs=10M de dd, puis
-cd kos-sys ; make hd
-\end{verbatim}
-
-L'image est générée dans le répertoire {\tt kos-sys/} et s'appelle
-{\tt hd10M.img}.
-
-Ensuite, il faut configurer Bochs pour qu'il reconnaisse ce nouveau
-disque dur en ajoutant la ligne :
-\begin{verbatim}
-diskc: file=/chemin/complet/image, cyl=306, heads=4, spt=17
-\end{verbatim}
-
-Le driver IDE de KOS devrait normalement reconnaître la présence d'un
-disque dur en {\em Primary Master}.
-
-\subsubsection{Utilisation de Bochs}
-
-Pour utiliser Bochs à partir des sources de \kos, utilisez simplement
-la commande :
-
-\begin{verbatim}
-make bochs
-\end{verbatim}
-
-Ceci lance la compilation de kos, génère l'image de disquette, et
-lance Bochs. Ça ne fonctionnera bien sûr que sous Unix, car {\tt
-make bochs} utilise \emph{Grub} pour crééer une image de disquette.
-
-Si vous ne voulez pas tenter de / ou ne pouvez pas (si vous êtes sous
-Windows par exemple) tout recompiler avant chaque lancement de Bochs,
-utiliser simplement la commande~:
-
-\begin{verbatim}
-bochs
-\end{verbatim}
-
-\subsection{Qemu}
-
-\label{emu:qemu}
-
-{\em Qemu} est un émulateur écrit par Fabrice Bellard, et disponible
-sur le site ????. FIXME.
-
-\subsection{VMWare}
-
-\label{emu:vmware}
-
-Nous ne détaillerons pas la procédure d'installation de VMWare, elle
-st complètement automatisée par le script \texttt{vmware-install.pl}
-se trouvant dans l'archive.
-
-Nous ne détaillerons pas non plus la procédure de configuration de
-VMWare : il suffit d'indiquer que le lecteur de disquette correspond
-au fichier {\tt grub/fd.img} dans les sources de \kos et que le
-fichier {\tt hd10M.img} correspond au premier disque dur.
-
-\section{Débugger dans un émulateur}
-
-\subsection{Le port-e9-hack}
-
-\subsubsection{Dans Bochs}
-
-Dans {\em Bochs}, le {\em port-e9-hack} est intégré en standard dans
-les sources, et est activé dès lors qu'il a été compilé avec l'option
-de configure {\tt --enable-port-e9-hack}.
-
-Pour activer l'envoi des messages de debugging pour le loader, éditez
-le fichier {\tt loader/config.h} et vérifiez que la constante {\em
-DEBUG\_ON\_BOCHS\/} est bien définie.
-
-Pour activer l'envoi des messages de debugging pour les modules (le
-noyau), faites de même pour le fichier {\tt modules/config.h}.
-
-{\em Remarque\/}~: Il n'est pas obligatoire d'avoir le debugging dans
-le loader et dans les modules simultanément : toutes les combinaisons
-sont possibles !
-
-Ce petit hack très utile permet d'obtenir une grande quantité
-d'informations, et je vous conseillerai donc d'avoir un terminal
-conservant de nombreuses lignes d'historique, comme c'était le cas
-pour le debugging via ligne série.
-
-\subsubsection{Dans Qemu}
-
-Dans {\em Qemu}, le {\em port-e9-hack} n'est pas disponible en
-standard, mais nous proposons un patch pour Qemu permettant de
-l'intégrer. Celui-ci sera prochainement disponible.
-
-\subsection{Les sources de Bochs}
-
-Bochs étant sous licence GPL, ses sources sont disponibles et surtout
-modifiables. On peut donc modifier le comportement de la machine
-virtuelle, et obtenir de nombreuses informations sur ce qui se déroule
-en interne du processeur.
-
-\subsection{Le debugger de Bochs}
-
-Bochs dispose d'un debugger qui permet de placer des breakpoints,
-d'éxécuter pas à pas, etc... Vous trouverez plus d'informations
-concernant les possibilités du debugger dans la documentation de Bochs
-(fournie avec les sources).
-
-\subsection{Debugging avec VMWare}
-
-Même si VMWare ne dispose pas d'un équivalent au {\em port-e9-hack\/},
-il permet de faire des choses intéressantes avec les ports séries. En
-effet il est possible d'indiquer à l'émulateur si l'on souhaite que le
-port série de l'OS client corresponde à un fichier, à un port série ou
-à un TTY sur l'OS hote. Ces options sont disponibles pour 4 ports
-séries.
-
-On peut donc configurer \kos pour avoir les messages de debug sur la
-ligne série, puis configurer VMWare pour qu'il les envoie au choix
-dans un fichier, sur un TTY, ou sur un port série réel. Le plus simple
-étant d'envoyer la sortie dans un fichier.
-
-VMWare ne possède pas de debugger.
-
 \section{Reporter un bug}
 
 Pour reporter un bug, c'est assez simple : il faut être le plus précis
@@ -703,6 +741,54 @@
   -dummy-net}. Si l'on souhaite réellement utiliser le réseau, il
 faudra alors se reporter à l'option {\tt -n} de {\em Qemu}.
 
+\section{Fabrication d'une image de disque dur personnalisée}
+
+Cette section présente comment fabriquer une image de disque dur
+personnalisée, si celle de 10 Mo générée par le module CVS {\tt
+  kos-sys} ne convient pas.
+
+Il faut tout d'abord décider la taille du disque dur, en termes de
+nombre de cylindres, de nombre de têtes et de nombre de secteurs par
+pistes. Quelques exemples de configuration sont données dans le
+.bochsrc par défaut.
+
+Pour l'exemple, on utilisera les valeurs :
+\begin{center}
+\begin{tabular}{cc}
+nombre de cylindres & 306 \\
+nombre de tetes & 4 \\
+nombre de secteurs par piste & 17 \\
+\end{tabular}
+\end{center}
+
+On calcule la taille totale du disque dur :
+\begin{center}
+taille en secteurs = nombre de cylindres * nombre de tetes * nombre de
+secteurs par piste
+\end{center}
+
+Pour notre exemple, on a un disque dur de 306*4*17 secteurs, soit
+20808 secteurs. Chaque secteur faisant 512 octets, notre image de
+disque doit faire 10653696 octets, soit exactement 10 Mega-octets.
+
+Pour créer cette image de disque dur~:
+\begin{verbatim}
+# editer kos-sys/Makefile : ajuster le paramettre bs=10M de dd, puis
+cd kos-sys ; make hd
+\end{verbatim}
+
+L'image est générée dans le répertoire {\tt kos-sys/} et s'appelle
+{\tt hd10M.img}.
+
+Ensuite, il faut configurer Bochs pour qu'il reconnaisse ce nouveau
+disque dur en ajoutant la ligne :
+\begin{verbatim}
+diskc: file=/chemin/complet/image, cyl=306, heads=4, spt=17
+\end{verbatim}
+
+Le driver IDE de KOS devrait normalement reconnaître la présence d'un
+disque dur en {\em Primary Master}.
+
 \section{Compilation sous Windows}
 
 La compilation sous Windows n'a pas été testée depuis un long

--- NEW FILE: screenshot-terminal.png ---
(This appears to be a binary file; contents omitted.)

--- NEW FILE: screenshot-qemu.png ---
(This appears to be a binary file; contents omitted.)



More information about the Kos-cvs mailing list