Accueil

Présentation
News
Caractéristiques
Historique

KOS

Télécharger

Binaires
Sources

Le coin du développeur

Comment participer ?
Accès CVS
CVSWeb

Documentation de KOS

Documents
Conférences
FAQ

Bibliographie

Livres
Docs en local
Liens
Sources d'autres OS

Misc

Contacts

Mailing lists
Les auteurs
IRC: Discuter

Images

Screenshots
Photos
Notre hébergeur: Enix.org

Historique

Le projet fut lancé en juin 1998 par Dimitri Ara, accompagné par Thomas Petazzoni.

Leur travail consista alors à échanger leurs idées sur le thème des OS, avant d'entreprendre le développement à proprement parler.

Octobre 2004

Travail par Thomas sur un nouveau système de mapping, reverse mapping et gestion de la mémoire physique. Le nouveau système a été conçu dans l'objectif de permettre la mise en place de la synchronisation au niveau de la gestion de la mémoire virtuelle.

Juillet 2004

Présentation de KOS par David et Thomas aux Rencontres Mondiales du Logiciel Libre à Bordeaux, dans le cadre du thème Embarqué.

Juin 2004

David et Thomas commencent la rédaction d'une série d'articles publiés dans Linux Magazine France concernant la programmation d'un OS. Ces articles illustrent le développement d'un petit système d'exploitation nommé SOS, qui s'inspire très fortement de KOS. La série doit compter environ 12 numéros, et s'étaler sur plus d'un an.

Mardi 1er juin 2004

Présentation de KOS à l'UTBM, par Thomas.

Dimanche 25 avril 2004

Présentation de KOS à Libr'East, par Thomas.

de Septembre 2003 à Janvier 2004

Travail de Thomas et Mélanie Bats sur KOS dans le cadre de leurs études à l'UTBM. Leur travail a porté sur deux éléments principaux :

Ce travail a donné lieu à la rédaction d'un rapport disponible sur le site.

Décembre 2003

Au cours d'un Week-end de codage, Julien et Thomas ont amélioré le support du format de fichier ELF. Ils ont également travaillé sur les threads utilisateurs et leurs piles, ainsi que sur quelques finitions de la mémoire virtuelle. Enfin, ils ont commencé à étudier le fonctionnement du bus PCI.

Octobre 2003

Au cours d'un Week-end de codage, Julien et Thomas ont implémenté plusieurs primitives importantes, en particulier fork, exec et brk. Cela a été possible grâce au travail déjà effectué par Thomas sur le système de gestion de mémoire virtuelle.

Fin mai 2003

Week-end de codage entre David et Thomas à Montpellier.

Le scheduler a été recodé, en intégrant directement du code de gestion de waitqueues, et en posant le postulat que seul le thread en cours d'éxécution n'est pas dans une waitqueue. Les primitives de synchronisation de kitc ont été entièrement recodées pour qu'elles utilisent les nouvelles waitqueues. On a donc maintenant à disposition des sémaphores, mutex et files de messages. Enfin, la façon dont un thread se termine a été revue, de manière à supprimer du code douteux du module task. Le CVS actuel compile, et tourne, mais n'est pas exempt de bugs ;-)

Début mai 2003

Après une longue période d'inactivité, due à une forte occupation des principaux développeurs, et à un blocage concernant Babel, le développement de Kos a enfin repris le Week end dernier. En effet, Julien et Thomas ont réfléchi conjointement à une solution permettant d'implémenter les drivers et d'exporter diverses interfaces à l'utilisateur, pour éviter l'utilisation d'un ioctl(). Bien entendu, de nombreuses réflexions, prototypes et test avaient été réalisés auparavant. Finalement, deux solutions sont apparues :

Au final, la première solution a été retenue à ce moment là, de manière à ce que le développement puisse avancer sur des bases simples.

Novembre 2002

WE de codage avec Julien, David et Thomas.

Implementation d'un nouveau module "kares" (pour Kos Abstraction and Resource Export Services), le nouveau Babel. Cette nouvelle version est en fait le résultat de l'intégration des idées implémentées dans le prototype réalisé au mois d'août par David et Thomas, et des recherches sur le thème de l'espace de nommage réalisées par Julien. Le nouveau système repose donc sur un nscache, namespace cache qui donne une représentation en mémoire d'une portion de l'espace de nommage, et sur des ressources proposant de multiples interfaces, et un soupçon de réflexivité pour couronner le tout. Une partie du code est en C++ (sans exceptions, sans RTTI), pour voir ce que cela peut donner.

Aout 2002

Week End de codage entre David et Thomas

Mise en place d'un modele etandant le Babel actuel pour le dialogue cpl3/cpl0. Repose sur le principe d'interfaces multiples pour les ressources, et sur un peu de reflexivite pour eviter d'avoir des GUID a la COM :) Petit programme de test C++ (linux/x86 seulement) pour voir (module kos-dev/syscall-test).

Mi-juillet 2002

Une présentation de KOS a eu lieu au LSM (Libre Software Meeting) à Bordeaux le vendredi 12 juillet. Cette présentation a été réalisée par Thomas Petazzoni. Les slides de la présentation seront bientôt disponibles online. Cette rencontre a permis de rencontrer notamment des développeurs de Hurd (Marcus Brinkmann et Neal Walfield) et donc de discuter du développement des systèmes d'exploitation.

Début juillet 2002

Reecriture du chargeur elf32 pour le noyau. Permet de charger n'importe quel objet reloquable elf32, sans hypothese sur les sections (pas de script ld pour former les modules), ni sur le nombre d'initlevels.

Juin 2002

Quelques améliorations :

Mai 2002

Journée de coding entre Julien et Thomas

Avril 2002

Un Week-End de coding avec David, Julien et Thomas, puis encore 5 jours de coding entre Julien et Thomas.

Mars 2002

Une journée de coding entre Julien et Thomas

Fin Février 2002

Mi-Février 2002

Un mois de coding pour Thomas, dont un Week-End avec David, et un autre avec Julien.

Durant son mois de coding, Thomas a avancé sur les points suivants :

Durant le Week-End avec Julien :

Durant le Week-End avec David :

Novembre 2001

Week-end KOS avec David, Julien et Thomas.

Septembre-Octobre 2001

Aout 2001

Semaine KOS avec David, Thomas et Julien :

Mai-Juillet 2001

Avril 2001

Semaine KOS avec David, Julien et Thomas :

Mars-Avril 2001

Intégration de Babel dans un module, double fault fonctionnel.

Février 2001

Week-End KOS avec David, Julien et Thomas

Janvier 2001

Petit Week-End KOS avec David et Thomas

Toussaint 2000

Petit Week-End KOS avec David, Julien, Jérome et Thomas.

L'allocateur de mémoire pour le noyau codé par Thomas est prêt. Discussions intenses au sujet de Babel.

Debut Octobre 2000

David et Thomas améliorent le loader (support de différents types de modules) et l'optimisent (division par trois de la vitesse de linkage).

Aout 2000

Deux semaines de programmation avec Julien, David et Thomas

Le loader est terminé. Nous n'utilisons plus notre propre bootsecteur, mais utilisons à la place le bootloader Grub. En effet, Grub nous permet de charger un noyau (dans notre cas, c'est un loader) et des modules depuis un système de fichiers sur disquette ou sur disque dur, ou bien depuis le réseau. De plus, Grub passe directement en mode protégé avant d'éxécuter le noyau. La phase de boot se passe donc ainsi : chargement du loader par Grub, chargement des modules par Grub, passage en mode protégé par Grub, démarrage du loader, passage en mode paginé par le loader, relocation des modules, puis éxécution du noyau proprement dit.

Printemps 2000

Grande réflexion sur le projet. On recommence tout sur des bases plus saines, avec une architecture plus réfléchie, et quelque chose de mieux concu. Kos sera un système modulaire : le noyau lui même sera découpé en différents modules (scheduler, task, vmm, pmm, etc ...), qui seront linkés ensemble au démarrage par un loader.

12 - 14 Fév 2000

Seconde Assemblée KOS, toujours au Château de Méridon.

Encore une fois trois jours intenses, moins de programmation mais beaucoup de débats. Malheureusement pas de photos cette fois ci :-(

29 - 1er Nov 99

Première Assemblée KOS au Château de Méridon.

Un très bon moment, les photos ici!

5 Octobre 1999

Nouveau design pour KOS-web !

29 Septembre 1999

Une nouvelle page aussi importante qu'utile pour l'utilisation de KOS-cvs a été crée ici.

20 Septembre 1999

Nouvelle version sur KOS-cvs ! Elle est désormais compilable sous les deux os (DOS et Linux) à partir d'un makefile unique. Elle comprend également un driver clavier enfin fonctionnel, une version de conio.c débuggée et un bootsecteur réactualisé (support de kernel plus volumineux ).

15 Septembre 1999

Le record de 59 abonnées à KOS-ml a été atteind !

Septembre 1999

Le travail reprend, tout le monde est de retour pour travailler. Une version 0.05 est rapidement disponible avec toutes les améliorations faites durant l'été.

Mise en place de tous les moyens techniques à disposition (Web/CVS).

Eté 1999

Le travail est interrompu pour cause de vacances, refonte du site officiel

Mai,Juin 1999:

Réorganisation du projet, le nombre de participants étant passé de 2 à plus de 30 !!!

18/04/1999

Après de nombreux essais, ce sont finalement Coffeeman et Emmanuel Marty qui réussissent à faire fontionner un kernel 32bits depuis le Bootsecteur de KOS, DJGPP est alors utilisé pour compiler KOS

09/04/1999

Grâce au travail des nouveaux développeurs, Thomas Lorblanches parvient à faire tourner le kernel en Mode Protégé : Une grande avancée !

06/04/1999

Création de la mailing-list par Julien Munier, appel à la contribution sur les OS-Ring et NG.

03/04/1999

Abandon officiel du projet par Dimitri Ara, on le regrettera

02/03/1999

Julien Munier rejoint le groupe suite à un message diffusé sur LVI

25/02/1999

Exécution d'un kernel en C, linké avec JLOC

15/02/1999

Déclaration d'un pile par le Bootsecteur, éxecution d'un kernel 16bits en assembleur

04/01/1999

Détection du processeur (386+ nécessaire)

16/12/1998

Premier Bootsecteur affichant "Loading KOS ..." (version 0.0.1)

11/10/1998

Premier MBR valide