[Kos-dev] Comment attirer de nouveaux développeurs ?

David MENTRE dmentre at linux-france.org
Sun Jan 9 13:41:33 CET 2005


Bonjour à tous,

Je connais personnellement Thomas et d2, donc je me permet de m'immiscer
dans la discussion, même si je n'ai jamais développé pour kos et que je
ne compte pas le faire (à court terme ;).

Thomas Petazzoni <thomas.petazzoni at enix.org> writes:

> La liste des petites tâches est en cours de rédaction dans la partie
> "How to contribute ?".

À noter que la partie française est vide (en lang=fr). C'est pour ça que
je n'avais pas vu tes suggestions.

>   - Les documentations, doivent-elles concerner uniquement
> l'implémentation de KOS, ou bien doivent-elles également détailler les
> concepts généraux des OS (mémoire virtuelle, espace d'adressage, thread,
> noyau, interruption ...) ? A mon avis, avec la série SOS, des documents
> sur l'implémentation de KOS suffisent.

Uniquement KOS, en explicitant les différences par rapport à un OS «
classique ».

>   - Les documents et le site, tout en anglais, tout en français, ou les
> deux ? Historiquement, KOS a toujours été un projet assez
> francophone. Doit-on s'ouvrir sur les autres, ou bien pensez-vous qu'on
> gagne du temps en faisant tout en français et qu'on pourra trouver un ou
> deux développeurs qui parlent français ?

Vous gagnez du temps en parlant français (et c'est souvent plus
clair). Maintenant, avec l'anglais, tu changes d'échelle => développeurs
potentiels au niveau mondial.

Dans la communauté Caml, tout le code et doc sont en anglais, mais le
français est parfois utilisé. À mon avis, il faut que le code soit
*impérativement* en anglais.

>   - Est-ce qu'on a vraiment des chances de trouver de nouveaux
> développeurs, ou bien il vaut mieux ne pas perdre son temps à mettre à
> jour des documentations et le site Web ?

Ne pert pas ton temps à mettre à jour des docs : tu vas perdre beaucoup
de temps pour un gain pas évident... sauf si tu réussis à trouver un
objectif qui puisse rassembler autour de toi.

[J'ai déjà fait la plupart de ces remarques de vive voix à thomas, mais
 je les diffuse ici pour Google]

Je pense que le principal problème de KOS actuellement, c'est le manque
d'un objectif, même irréalisable. Il existe déjà une floppée d'OS[1],
donc il faut trouver une raison pourquoi les gens développeraient plutôt
pour KOS que pour un autre.

Donc il faut que vous trouviez un objectif.

Pour ma part, je pense qu'il y aurait énormément à faire au niveau des
OS. Quelques remarques en vrac :

 - il devient envisageable de vérifier de manière formelle certaines
   parties d'un OS, même écrit en C ;

 - pour avancer au plus vite, il faudrait avoir dans KOS un système qui
   permette d'avoir :

   1. des « modules » noyaux qui puissent s'exécuter isolés les uns des
      autres (que le plantage de l'un ne vautre pas les autres) ;

   2. un système de « pipe » entre modules, à la Unix mais qui permette
      des interfaces plus compliquées, avec des types structurés de
      données et des exceptions (autrement dit, un système d'IPC comme
      sur Mach ou dans Corba).

   Avec un tel framework, il me semble envisageable de bidouiller avec
   le système et développer des trucs marrant, sans trop se prendre la
   tête ;

 - avoir un shell pour faire des commandes de base (lancer un module,
   dumper des états, ...) ;

 - avoir un système de documentation du code, pour écrire la doc en même
   temps que le code (cf. noweb, doxygen, ...) ;

 - avoir un environnement de développement user minimal (pas forcément
   une libc) ;

 - comme cela a été suggéré, avoir un module hello-world documenté pour
   démarrer rapidement.


Pour ma part, je serais intéressé par les développements suivants sur
KOS (si j'avais le temps ;) :

 - développer un driver de carte réseau ;

 - développer une pile IP *minimale* ;

 - porter OCaml sur kos (en mode bytecode et natif), de telle sorte que
   le garbage collector d'ocaml utilise la gestion mémoire de kos
   (totalement inutile mais très fun :) ;

 - développer un système de sécurité pour KOS, différent d'Unix ;

 - réfléchir et réaliser un OS de telle sorte qu'on puisse résonner
   dessus, apporter des garanties, des preuves ;

 - réfléchir sur le synchronisme/asynchronisme dans un OS ;

 - porter demexp sur kos (il y a besoin de certaines des étapes
   précédentes pour faire ça) ;

 - porter LISFS sur kos.


Pour enrichir la réflexion, je donne un pointeur sur un papier d'Alan
Kay qui décrit la génèse de SmallTalk (premier langage à objet). J'ai
particulièrement trouvé intéressant sa façon de penser les objets en
terme d'interfaces.

http://www.iam.unibe.ch/~ducasse/FreeBooks/SmalltalkHistoryHOPL.pdf

Pour ceux qui se demanderait s'il y a un rapport entre ce papier et kos,
et bien smalltalk est plus qu'un langage mais tout un système dont l'OS
fait partie.

Un autre papier intéressant est sur l'OS THE, développé par Dijkstra
dans les années 50-60, où il y avait moyen de raisonner sur les
processus, pour être sûr que le tout marcherait ("On the
T.H.E. Operating System").
http://www.cs.utexas.edu/users/EWD/ewd01xx/EWD196.PDF

Un autre pointeur intéressant :
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1303.html

Amicalement,
david mentré

[1] http://cliki.tunes.org/Operating%20Systems
-- 
pub  1024D/A3AD7A2A 2004-10-03 David MENTRE <dmentre at linux-france.org>
 5996 CC46 4612 9CA4 3562  D7AC 6C67 9E96 A3AD 7A2A



More information about the Kos-dev mailing list