title: Kid Operating System
text: # Kid Operating System
  
  Kid Operating System (KOS) est un projet de développement d'un système d'exploitation à but éducatif sous licence GNU GPL. Il fonctionne sur architecture x86.
  
  Le projet débuta en juin 1998, à l'initiative de jeunes programmeurs lycéens français. Ceux-ci souhaitaient approfondir leurs connaissances en programmation en développant eux-mêmes un petit système d'exploitation. L'inexpérience joua un grand rôle dans l'avancée du développement, qui fut relativement lent au départ. L'équipe de développement a compté jusqu'à une dizaine de personnes actives. À l'heure actuelle (en 2005), l'équipe se réduit à 3 développeurs actifs.
  
  ## Historique
  
  * Juin 1998 : Création du projet par Dimitri Ara et Thomas Petazzoni
  * Fin 1998 : Un mini système d'exploitation démarre
  * Avril 1999 : Arrivée de Julien Munier, acteur majeur du projet. Appel à contribution.
  * Fin 1999 et début 2000 : Deux réunions physiques entre les développeurs, aboutissant à un mini système offrant des fonctionnalités très limitées (pas de gestion mémoire, pas de multitâche)
  * Août 2000 : Refonte complète du système
  * Depuis : Travail constant sur cette deuxième version du système
  
  Un historique plus complet est disponible sur le site.
  
  ## Objectifs du projet
  
  L'objectif du projet n'est pas d'obtenir le plus rapidement possible un système d'exploitation fonctionnel et censé rivaliser avec d'autres systèmes libres ou propriétaires. L'objectif est purement éducatif et pédagogique. Pour les développeurs, ce projet est l'occasion d'apprendre la programmation bas-niveau, de comprendre le fonctionnement interne d'un système d'exploitation et de l'architecture d'un ordinateur, d'apprendre à travailler en groupe et à utiliser les outils de travail collaboratif. Pour les autres, le projet KOS apporte des documents, une bibliographie et un code source disponible sous licence GPL.
  
  ## Spécificités du système
  
  Le système d'exploitation KOS présente quelques particularités par rapport à d'autres systèmes tels que GNU/Linux par exemple.
  
  Tout d'abord, c'est un système modulaire : l'ensemble du noyau est décomposé en modules, qui sont reliés ensemble au démarrage du système. Il ne s'agit pas d'un système à micro-noyau, mais bien d'un système monolithique. Toutefois, l'approche modulaire permet de séparer proprement les parties portables et non portables du système, et de s'assurer de la clarté des interfaces entre les différents modules.
  
  Par ailleurs, KOS tente de mettre en place un système original d'accès aux ressources de l'ordinateur et du système. L'approche traditionnelle d'Unix, disposant d'une interface unique d'accès pour les ressources, toutes considérées comme des fichiers, semblait trop restrictive aux yeux des développeurs. Ceux-ci souhaitaient tenir compte de la disparité réelle des ressources gérées par un système d'exploitation : fichiers, cartes son, cartes graphiques, périphériques divers, sockets... Pour cela, ils tentent de mettre en place une architecture nommée Karm (pour Kos Abstract Resource Management), permettant d'accéder à chaque ressource par diverses interfaces, en fonction des spécificités de celle-ci.
  
  KOS possède quelques autres caractéristiques originales, en particulier au niveau de la gestion de la mémoire virtuelle.
  
  ## Simple Operating System
  
  À partir de KOS, deux des développeurs de ce système ont lancé SOS, Simple Operating System. L'objectif de ce projet est de détailler, étape par étape la réalisation d'un petit système d'exploitation. Chaque étape donne lieu à un article publié dans un magazine mensuel et est accompagné du code associé.
  
  ## Lien externe
  
  * Le site du projet KOS
  