[Kos-cvs]
kos-web/contents contribute_en.i, 1.2, 1.3 contribute_fr.i,
1.1, 1.2 doc-projet_fr.i, 1.4, 1.5
thomas at kos.enix.org
thomas at kos.enix.org
Sun Jan 9 15:34:23 CET 2005
Update of /var/cvs/kos/kos-web/contents
In directory the-doors:/tmp/cvs-serv10635/contents
Modified Files:
contribute_en.i contribute_fr.i doc-projet_fr.i
Log Message:
HOWTO Contribuer
Index: doc-projet_fr.i
===================================================================
RCS file: /var/cvs/kos/kos-web/contents/doc-projet_fr.i,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- doc-projet_fr.i 5 Jan 2005 23:41:25 -0000 1.4
+++ doc-projet_fr.i 9 Jan 2005 14:34:20 -0000 1.5
@@ -10,6 +10,10 @@
peuvent être utiles à la compréhension de KOS et cette page essaie de
les lister.</p>
+<p>A noter que le code source est écrit et commenté en anglais. Nous
+commençons à commenter l'ensemble du code en utilisant l'outil
+Doxygen.</p>
+
<h2>Documents à jour ou dignes d'intérêt</h2>
<h3>Compiler, tester et débugger KOS</h3>
Index: contribute_fr.i
===================================================================
RCS file: /var/cvs/kos/kos-web/contents/contribute_fr.i,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- contribute_fr.i 5 Jan 2005 21:35:17 -0000 1.1
+++ contribute_fr.i 9 Jan 2005 14:34:20 -0000 1.2
@@ -2,7 +2,126 @@
start_content_section("Comment participer ?");
?>
-<p>Bientôt.</p>
+<h2>Pourquoi contribuer à KOS ?</h2>
+
+<p>En contribuant à KOS, vous pourrez :</p>
+
+<ul>
+
+ <li>Comprendre le fonctionnement interne d'un système d'exploitaiton
+ 32 bits multitâche moderne, et le fonctionnement de l'architecture
+ d'un ordinateur. KOS est un petit système d'exploitation, comparé au
+ noyau Linux, ou à ceux des systèmes BSDs. Cela permet d'avoir une
+ compréhension complète de son fonctionnement, et donc ensuite de
+ pouvoir plus facilement comprendre comment les autres noyaux
+ fonctionnement ;</li>
+
+ <li>Améliorer vos compétences en programmation C ;</li>
+
+ <li>Participer à un développement distribué, ce qui permet
+ d'utiliser des outils comme les mailing-lists ou CVS et de discuter
+ les concepts et idées par courrier électronique. L'organisation du
+ développement de KOS est typique de celle d'un petit Logiciel Libre,
+ et participer à son développement vous permettra de découvrir cela
+ ;</li>
+
+ <li>Et surtout, participer à un projet cool et sympa !</li>
+
+</ul>
+
+<p>Même si le projet paraît déjà important, nous sommes tout à fait
+prêts à expliquer à quiconque réellement intéresser comment tout cela
+fonctionne. N'hésitez pas à participer !</p>
+
+<h2>Comment contribuer ?</h2>
+
+<p>Voici quelques étapes pour commencer à contribuer à KOS :</p>
+
+<ol>
+
+ <li>S'incrire à la <?
+ make_link("contacts.php", "liste de diffusion"); ?>
+ <code>kos-dev</code>, qui est la liste dédiée au
+ développement. N'hésitez pas à poser vos questions, même si elles
+ vous paraissent stupides. Nous savons que comprendre le
+ fonctionnement d'un système d'exploitation n'est pas facile, et
+ sommes prêts à expliquer ;</li>
+
+ <li>Récupérer le code source en utilisant <? make_link("cvs.php",
+ "CVS"); ?>, et le faire fonctionner en lisant le document
+ <i>Compiler, tester et debugger KOS</i> disponible sur la <?
+ make_link("documentations.php", "page des documents"); ?>. La
+ plateforme de développement principale est Unix, en particulier
+ GNU/Linux. KOS n'est pas très <i>user-friendly</i> pour le moment,
+ donc n'hésitez pas à poser vos questions sur la liste de discussion
+ si vous n'arrivez pas à le compiler ou à l'éxécuter ;</li>
+
+ <li>Programmer un petit <i>module</i> simple en prenant exemples sur
+ les modules déjà existants. Une fois que vous êtes familier avec les
+ procédures de compilation et de tests, vous pouvez choisir un des
+ éléments de la liste de la section suivante. Parlez-en sur la liste
+ avant de commencer !</li>
+
+</ol>
+
+<p>Bien entendu, contribuer du code n'est pas la seule manière de
+contribuer. Le site a besoin d'être mis à jour avec de nouvelles
+documentations et références sur les systèmes d'exploitation
+(architecture, concepts, recherches, documentations sur le matériel
+...). Le projet KOS a également besoin de documentation. Documenter le
+projet est un bon point de départ pour comprendre son
+fonctionnement.</p>
+
+<h2>Que puis-je faire ?</h2>
+
+<p>La TODO-liste complète est disponible dans le répertoire racine du
+module CVS <b>kos</b>. Ici, je liste quelques points de la TODO-liste
+qui sont relativement indépendants des développements actuels et qu'un
+nouveau développeur peut donc prendre en charge.</p>
+
+<ul>
+
+ <li>Implémenter le support de l'écriture dans le driver IDE. Pour le
+ moment, le driver IDE est seulement capable de lire depuis un disque
+ dur. Ajouter le support en écriture ne devrait pas être trop
+ difficile ;</li>
+
+ <li>Implémenter le support de l'écriture dans le driver FAT. FAT est
+ le seul système de fichiers supporté par KOS et est limité à la
+ lecture seule. Ajouter le support de l'écriture est un challenge
+ intéressant !</li>
+
+ <li>Implémenter le support des IRQ et du DMA dans le driver
+ IDE. Pour l'instant, le driver IDE utilise uniquement la technique
+ du <i>polling</i>, c'est à dire l'attente active, ce qui n'est pas
+ très efficace. Ajouter le support des IRQ, et pourquoi pas du DMA
+ serait intéressant ;</li>
+
+ <li>Améliorer le driver PCI. Pour l'instant, un driver PCI très
+ basique détecte les périphériques PCI du système. Ce driver doit
+ être amélioré pour proposer aux autres drivers (drivers de carte
+ réseau par exemple) une API for demander si des cartes PCI sont
+ disponibles, et si oui quelles sont leurs caractéristiques ;</li>
+
+ <li>Implémenter un driver pour les cartes réseau PCI NE2000. Cette
+ carte réseau est amulée par Bochs et Qemu ;</li>
+
+ <li>Implémenter une pile réseau basique, avec le support ARP, IP, et
+ pourquoi pas UDP, ICMP et TCP ! Bien sûr, cela doit être fait étape
+ par étape, au fur et à mesure.</li>
+
+ <li>Séparer le module <code>idt</code> en deux modules. Ce module
+ contient le code de gestion des interruptions, mais celui-ci mélange
+ du code dépendant de l'architecture avec du code indépendant de
+ l'architecture. Il faut donc identifier ces deux parties de code, et
+ mettre la partie dépendante de l'architecture dans un module
+ <code>arch/idt</code> et conserver la partie indépendante dans
+ <code>idt</code> ;</li>
+
+ <li>Séparer le module <code>debug</code> en deux modules, pour les
+ mêmes raisons que le module <code>idt</code> ;</li>
+
+</ul>
<?
end_content_section();
Index: contribute_en.i
===================================================================
RCS file: /var/cvs/kos/kos-web/contents/contribute_en.i,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- contribute_en.i 6 Jan 2005 23:49:41 -0000 1.2
+++ contribute_en.i 9 Jan 2005 14:34:20 -0000 1.3
@@ -21,7 +21,7 @@
useful tools like mailing-lists or CVS, and discussing concepts and
solutions through e-mail ;</li>
- <li>And most of all, take part in a nice and sympathic project !</li>
+ <li>And above all, take part in a nice and sympathic project !</li>
</ul>
@@ -54,7 +54,7 @@
<li>Start hacking by creating a new and simple <i>module</i> by
taking the examples on available modules. Once you're familiar with
the compilation and testing procedure, you can start hacking items
- that are on the TODO-list, see next section.</li>
+ that are on the TODO-list, see next section. </li>
</ol>
@@ -70,7 +70,7 @@
<p>The complete TODO-list is available in the root directory of the
<b>kos</b> CVS module. Here, we list some items that are quite
"independent" in the sense that it is possible for a new developer to
-take them in charge.
+take them in charge.</p>
<ul>
@@ -85,17 +85,18 @@
<li>Implementing IRQ and DMA usage in the IDE driver. Currently, the
IDE driver only uses the <i>polling</i> mode (i.e busy-waiting),
which is not very efficient. Adding IRQ and maybe DMA support would
- be very nice.</li>
+ be very nice ;</li>
<li>Improve the PCI driver. Currently, a very basic PCI driver
detects the PCI devices of the system. This driver has to be improved
to allow other drivers (network drivers, etc..) to query for cards
- and for their configuration.</li>
+ and for their configuration ;</li>
<li>Implement a NE2000 PCI driver, usable with the emulated devices
of Qemu and Bochs.</li>
- <li>Implement a basic ARP, IP, and then UPD, ICMP, TCP stack.</li>
+ <li>Implement a basic ARP, IP, and then UPD, ICMP, TCP stack. Of
+ course, this has to be done step by step.</li>
<li>Split the <code>idt</code> module, which is the module that
contain the interrupt handling code, into two parts. The first part
@@ -103,6 +104,12 @@
module), and the second part has to be be architecture-dependant (and
be placed in the <code>arch/idt</code> module)</li>
+ <li>Split the <code>debug</code> module, a module that contains some
+ debugging facilities. Some of these functionnalities are
+ architecture-dependent, some are not. There should be a new
+ <code>arch/debug</code> module in which all the
+ architecture-dependent functionalities go.</li>
+
</ul>
<?
More information about the Kos-cvs
mailing list