[Kos-cvs] kos-web/contents contribute_en.i,1.1,1.2

thomas at kos.enix.org thomas at kos.enix.org
Fri Jan 7 00:49:43 CET 2005

Update of /var/cvs/kos/kos-web/contents
In directory the-doors:/tmp/cvs-serv32099

Modified Files:
Log Message:
Début de la page sur les contributions.

Index: contribute_en.i
RCS file: /var/cvs/kos/kos-web/contents/contribute_en.i,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- contribute_en.i	5 Jan 2005 21:35:17 -0000	1.1
+++ contribute_en.i	6 Jan 2005 23:49:41 -0000	1.2
@@ -2,7 +2,108 @@
 start_content_section("How to contribute ?");
+<h2>Why contribute to KOS ?</h2>
+<p>By contributing to KOS, you'll be able to :</p>
+ <li>Understand the internals of a modern 32-bit multitasked operating
+ system, and the internals of computer architecture. KOS is a small
+ operating system, compared to the Linux kernel or other *BSD
+ kernels. It allows you to have a complete understanding of its
+ internals, and then to have a better knowledge of how Linux or other
+ kernels work ;</li>
+ <li>Improve your C programming skills ;</li>
+ <li>Take part in a distributed development, which involves using very
+ 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>
+<p>Even if the project seems to be quite huge at the moment, we are
+very ready to explain to everyone who is really interested how things
+works. Don't hesitate to get involved !</p>
+<h2>How to contribute ?</h2>
+<p>Here are a few steps to start contributing to KOS :</p>
+ <li>Subscribe to the <code>kos-dev</code> <?
+ make_link("contacts.php", "mailing list"); ?>, which is the
+ development mailing list. Even if the main language in the archive is
+ French, do not hesitate to ask your questions in English, and we'll
+ switch to this language. Morever, do not hesitate to ask questions,
+ even on simple questions. We know that operating systems aren't easy
+ to understand at the beginning, but we ready to explain ;</li>
+ <li>Fetch the source code using <?  make_link("cvs.php", "CVS"); ?>,
+ and then get it running using the <i>Compile, test and debug KOS</i>
+ documentation available in the <? make_link("documentations.php",
+ "documentation"); ?> section. The preferred platform for development
+ is a Unix platform, like GNU/Linux. KOS is not very user-friendly at
+ the moment, so don't hesitate to ask your questions on the mailing
+ list if you're not successful at compiling or running it ;</li>
+ <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>
+<p>Of course, contributing code is not the only way of
+contributing. The website always needs to be updated with more
+documentation and links on operating system architecture, research,
+computer hardware, etc... The KOS project also needs some
+documentation. Documenting the project is a good starting point to
+understand its internals.</p>
+<h2>What can I do ?</h2>
+<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.
+ <li>Implementing write capability in the IDE driver. Currently, the
+ IDE driver is only able to read from a disk. Adding write capability
+ shouldn't be very hard ;</li>
+ <li>Implementing write capability in the FAT driver. FAT is currently
+ the only filesystem supported by KOS, and is limited to read-only
+ access. Adding write capability is a nice challenge !</li>
+ <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>
+ <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>
+ <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>Split the <code>idt</code> module, which is the module that
+ contain the interrupt handling code, into two parts. The first part
+ should be architecture-independant (left in the <code>idt</code>
+ module), and the second part has to be be architecture-dependant (and
+ be placed in the <code>arch/idt</code> module)</li>

More information about the Kos-cvs mailing list