[Français] [English]
Comme dans de nombreux projets libres, KOS ne dispose malheureusement pas d'une documentation complète et cohérente. Cependant, quelques documentations ont été écrites et peuvent être utiles à la compréhension de KOS et cette page essaie de les lister.
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.
Ce document présente de manière complète comment compiler, tester et débugger KOS. En effet, KOS n'étant pas une simple application utilisateur et ne disposant pas de procédure d'installation automatisée, son utilisation n'est pas évidente au premier abord. Ce document vise à résoudre ce problème.
Téléchargement en français : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Téléchargement en anglais : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document présente l'architecture modulaire de KOS et le fonctionnement des modules : le système de l'export des symboles, de l'initialisation, etc.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document présente la construction pas à pas d'un module simple,
le module hello world. Il explique comment déclarer les
routines d'initialisation, les fonctions à exporter, comment
construire le Makefile
et donne quelques indications sur
les conventions de codage utilisées dans KOS.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Cette page rassemble une série de graphes montrant les dépendances entre modules : fonctions et variables d'un module utilisées par les autres, fonctions et variables d'autres modules utilisées par un module.
Lien : [HTML]
De septembre 2003 à Janvier 2004, Mélanie Bats et Thomas Petazzoni ont travaillé sur KOS dans le cadre de leurs études à l'UTBM. En plus du développement réalisé, ce travail a permis la rédaction d'un rapport relativement complet sur KOS. Il explique en détail le fonctionnement de Karm et de la gestion de la mémoire virtuelle dans KOS, et donne des informations générales sur les caractéristiques de l'OS.
Téléchargement du rapport : [PDF]
Téléchargement des slides de la présentation des travaux : [PDF]
Ce document présente le fonctionnement des processeurs x86 au niveau de la gestion de la mémoire virtuelle (segmentation et pagination), ainsi qu'au niveau de la gestion des interruptions. Il n'est pas complet, mais comporte des informations intéressantes, plus abordables que dans les documentations officielles d'Intel.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document présente de manière un peu incomplète la gestion des
interruptions dans KOS, par le module idt
. Bien qu'écrit
il y a déjà quelques temps, il reste relativement à jour puisque le
module idt
n'a pas beaucoup changé.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
David Decotigny et Thomas Petazzoni publient une série d'articles décrivant pas à pas la construction d'un petit système d'exploitation baptisé SOS. Ces articles sont publiés dans Linux Magazine France, mais les articles deviennent disponibles en ligne deux mois après leur parution sur le site officiel de SOS, http://sos.enix.org.
Ils constituent une excellente base pour comprendre le fonctionnement de l'architecture x86 et d'un système d'exploitation, et donc pour commencer à contribuer à des projets tels que KOS. Voici les articles disponibles jusqu'à présent :
Ce bref document en français rédigé en juillet 2002, et donc largement obsolète, présente rapidement l'origine du projet KOS et son organisation à l'époque.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Le KOS book est un gros ouvrage rédigé au début du projet. Il concerne la version de KOS qui était en développement jusqu'en août 2000, et n'est donc plus à jour. Toutefois, il comporte des informations générales sur le fonctionnement d'un processeur x86 (segmentation, pagination, interruption), etc.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document incomplet présente le fonctionnement du module
bootstrap
, qui n'existe plus. Il est aujourd'hui remplacé
par le module init
.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document est une ancienne documentation concernant la gestion de la mémoire dans KOS. Certaines informations sont encore valides, mais dans l'ensemble, le document n'est pas à jour.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Babel est un des projets de système permettant d'exporter des interfaces personnalisées vers les applications et bibliothèques utilisateur. Il a été abandonné au profit de Karm, voir la page des caractéristiques de KOS.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce document présente un ancien projet : le langage K. Ce sur-langage du C devait permettre la description d'interfaces et l'écriture de pilotes de périphériques utilisant ces interfaces dans le cadre de Babel. L'idée a été complètement abandonnée au profit du mécanisme Karm.
Téléchargement : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Ce schéma pseudo-UML présentait les principales structures de données de KOS qui jouaient un rôle dans la gestion de la mémoire virtuelle. Les notions de thread, team, address_space ou virtual_region sont toujours d'actualité, mais le schéma n'est plus à jour.
Téléchargemnt : [DIA] [EPS] [PDF]
Ce document présente une idée permettant d'agrandir les piles noyau dynamiquement sur architecture x86. L'idée était présente dans d'anciennes versions de KOS, mais présente des déficiences dans certains cas très précis qui nous ont obligé à l'abandonner.
Téléchargement, en français : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]
Téléchargement, en anglais : [PS] [PDF] [GZIPPED PS] [GZIPPED PDF] [HTML] [GZIPPED HTML TAR ARCHIVE]