Les scripts, j'adore
J'adore les petits bricolages qu'on peut faire avec des scripts rapidement écrits. Ça peut paraître assez stupide, mais je trouve ça assez fantastique. Dernier exemple en date : j'avais envie d'une page Web liste les flux RSS auxquels je suis abonné grâce à
Feed2Imap. Mieux, il faudrait que cette page Web soit sur mon Wiki, et qu'elle se mette à jour automagiquement, sans que j'ai besoin de faire quoi que ce soit. La recette est la suivante.
Soit un fichier
.feed2imaprc qui contient la liste des flux RSS avec leur URL, de la forme :
- name: KernelTrap
url: http://kerneltrap.org/node/feed
target: imap://user:pass@host/mail/rss/vrac
Un petit script Perl parse ce fichier, et crache une requête SQL de type
update qui peut mettre à jour la page
ListeFluxRss de mon blog :
#!/usr/bin/perl -w
use strict;
my $name = "";
my $url = "";
my $body = "===== Liste de flux RSS =====
Ci-dessous sont listés les flux RSS auxquels je suis abonné, grâce à [[http://home.gna.org/feed2imap Feed2Imap]].
";
while(<>)
{
if (/- name: (.*)/) {
$name = $1;
}
if (/url: (http\:\/\/.*)/) {
$url = $1;
}
if ($url) {
$body .= " - [[" . $url . " " . $name . "]]\n";
$url = "";
}
}
my $sql = "update wikini_pages set body='$body', time=NOW() where (tag='ListeFluxRss' and latest='Y')";
print $sql;
Il suffit alors de lancer quelque chose comme (le mot de passe de la base MySQL étant dans le fichier
~/.my.cnf) :
cat .feed2imaprc | ./rsslist2html | mysql -h localhost -u thomas thomas
Et hop, la page
ListeFluxRss est mise à jour. On rentre la commande dans la
crontab pour qu'elle soit appelée tous les jours, et voilà, c'est mis à jour automagiquement.
Franchement, j'adore ce genre de petits bricolages. C'est peut-être crado, pas bien conçu ou que sais-je encore, mais en tout cas, ça a pris 5 minutes en réutilisant les outils qui existent déjà. Je trouve vraiment ça merveilleux.
Autre traduction de l'essai sur Creative Commons
Le site
Libroscope vient de publier une autre traduction de l'essai de Benjamin Mako Hill, dont j'ai
parlé hier. Cette traduction, basée sur un texte plus complet est moins littérale et mieux rédigée. Elle s'intitule
Vers une liberté définie : Creative Commons et le mouvement du logiciel libre. Je vous recommande de lire celle-ci plutôt que la
mienne, réalisée trop rapidement.
Toujours à propos de Creative Commons, débat entre Stallman et Bornfreud
À
Copyright 2005, un cycle de conférences qui a eu lieu au Canada, un
débat chaud a semble-t-il opposé
Richard Stallman, de la
Fondation pour le Logiciel Libre et
Marcus Bornfreund, qui s'occupe entre autre de la traduction des licences Creative Commons au Canada.
Les arguments sont assez proches de ceux développés dans l'essai de Benjamin Mako Hill que j'évoquais
hier : Stallman trouve « qu'il y a des bonnes et des mauvaises licences dans Creative Commons, mais que surtout, le problème est qu'elles sont mélangées sous l'étiquette générique
Creative Commons » et « que
Creative Commons devrait faire un travail plus important pour identifier les libertés fondamentales, comme ce qui a été fait pour la GPL, et de les utiliser comme base pour déterminer quelles licences proposer ». Le mail résume également le point de vue de Marcus Bornfreud, basé principalement sur la « liberté de choix ».
Le reste du thread donne peut-être d'autres points de vue intéressants. Bonne lecture !
Git bisect
Via le
blog de Dave Miller, je découvre une fonctionnalité amusante et intéressante de
git. Pour ceux qui ne connaissent pas
git, c'est le nouveau système de gestion de version utilisé par les développeurs du noyau depuis l'abandon de la version gratuite de BitKeeper par la société BitMover (voir les dépêches
LinuxFr là,
là et
là).
La fonctionnalité dont parle Dave Miller, expliquée dans l'
entrée de ChangeLog correspondante, est
git bisect. Elle permet de rechercher quelle changement dans le noyau a introduit un bug. En gros, on marque une version comme étant "bonne" (sans le bug) et une version comme étant "mauvaise" (avec le bug). Entre ces deux versions, il y a un certain nombre de changements.
git propose alors automatiquement de tester une version du noyau avec la moitié des changements entre la "bonne" et la "mauvaise" version. On peut alors vérifier si cette version fonctionne ou pas. Si elle fonctionne, alors
git propose une autre version sur laquelle auront été appliqués 3/4 des changements entre la "bonne" et la "mauvaise" version d'origine. Et si elle ne fonctionne pas,
git propose une autre version sur laquelle auront été appliqués 1/4 des changements entre la "bonne" et la "mauvaise". Et ainsi de suite, par
dichotomie, on finit par trouver le changement dans le noyau qui a introduit un bug. Sympathique, non ?
Vérification formelle des logiciels
Wikipédia décrit les
méthodes formelles de la façon suivante :
les méthodes formelles sont des techniques permettant de raisonner rigoureusement sur des programmes informatiques, ou aussi des matériels électroniques, afin de démontrer leur correction, en se basant sur des raisonnements de logique mathématique.
Je ne suis pas du tout un spécialiste de la vérification formelle, loin de là. Ce qui m'amène à en parler, c'est un article de
Kuro5hin,
A Case for Formal Specification, que je trouve assez clair et abordable pour le néophyte comme moi. Il vante les mérites de la vérification formelle, mais comme tous les articles d'initiation se limite à un exemple simpliste, qui ne permet pas de convaincre le lecteur de la viabilité de la méthode, ce qui se ressent quelques peu dans les commentaires. Toutefois, ça reste une lecture intéressante que je recommande à tous ceux qui programment.
Lorsque j'étais en stage à Rennes, mon maître de stage (et développeur de
demexp) était un fan des méthodes formelles, il tient d'ailleurs une
liste de quelques outils adaptés. À propos de vérification formelle, il y a eu une conférence sur le système d'exploitation
Coyotos dans le thème OS des RMLLs cette année, j'en ai parlé
ici. Un des objectifs de ce projet est de
Construct the kernel and key utilities in a new systems programming language (BitC) with a well-defined, mechanically-specified semantics. This will allow us to formally verify security and correctness properties of the system and its key utilities.
Il serait sans doute intéressant de voir ce que cela va donner en pratique.
Traduction d'un essai sur les Creative Commons
Pour poursuivre autour du sujet des
Creative Commons, sujet que j'ai
déjà abordé il y a quelques temps, j'ai aujourd'hui traduit un essai de
Benjamin Mako Hill, développeur Debian et Ubuntu qui semble s'intéresser aux problématiques éthiques, philosophiques et organisationnelles du Logiciel Libre. L'essai que j'ai essayé de traduire s'intitule
Towards a Standard of Freedom: Creative Commons and the Free Software Movement. La traduction,
Vers un standard de Liberté : Creative Commons et le Mouvement du Logiciel Libre, demande encore des relectures et des corrections, mais l'idée est là.
Vous trouverez d'
autres essais du même auteur, comme par exemple
Problems and Strategies in Financing Voluntary Free Software Projects.
Bonne lecture !
Quelques articles techniques d'un nouveau venu dans la blogosphère
Pour fêter la première année de son
blog (qui n'avait vu qu'un seul billet en un an),
David Decotigny publie trois petits HOWTOs techniques qui peuvent servir :
- Des notes sur la génération d'un cross-compilateur gcc
- Une documentation sur l'installation de Debian Sarge sur un iBook
- Quelques notes sur l'installation et la configuration de Software Suspens 2
Malheureusement, le blog de David utilise
WikiBlog, et ne dispose donc pas de flux RSS. En effet, je n'ai jamais eu le temps de sortir une version de
WikiBlog avec la génération de flux RSS que j'utilise sur ce site. C'est tellement un
hack ce
WikiBlog de toute façon... ;-)
Remue-ménage sur les brevets aux États-Unis
Apparemment, au
bureau des brevets et des marques des États-Unis, il y a du remue-ménage :
une nouvelle Slashdot, basée sur un
article de FCW, rapporte que de nombreux examinateurs partent, car ils estiment qu'il y a un trop grand nombre de brevets à étudier, et que cette étude ne peut plus se faire dans de bonnes conditions. Cela rejoint quelques-uns des
arguments donnés dans une dépêche LinuxFr : le problème avec le brevet logiciel ne vient pas seulement de la loi (le brevet logiciel est-il légal ou illégal), mais également des pratiques des offices de brevets. Cette affaire concernant l'office américain le montre bien. Ainsi, en Europe, il ne suffira pas de conserver l'illégalité des brevets logiciels, mais il faudrait également que l'OEB modifie ses méthodes de validation. Il y a encore du travail...
Frédéric Couchet en fait
une analyse beaucoup plus détaillée sur son blog. D'ailleurs, je vous recommande la lecture de ce blog, les billets de ces derniers jours sont particulièrement intéressants.
Paquets Debian, mise à jour... suite
Ce soir, encore un peu de travai du coté des paquets Debian :
- CamlRPC 0.4.4 a déjà été uploadé dans Debian unstable ;
- CDuce 0.3.91 devait être prochainement uploadé, mais David Mentré, développeur de demexp et moi avons trouvé un bug en essayant de compiler demexp. Le bug étant reporté, j'ai demandé à ce que CDuce ne soit pas uploadé tout de suite dans unstable ;
- CamlGz est finalement réellement nécessaire pour demexp. Contrairement à libzip-ocaml, camlgz permet de lire et d'écrire de manière transparente dans un fichier compressé projeté en mémoire. La version 0.6 de demexp en a donc besoin, et Eric Cooper, développeur d'approx, un proxy APT en Ocaml, est également intéressé par ce paquet. J'ai donc rempli un bug Intent To Package dans Debian pour signaler que j'apprêtais à packager cette bibliothèque ;
- Les paquets Debian demexp ont été renommés demexp0.4, ils serviront seulement à maintenir des paquets de l'ancienne version de demexp. Ils compilent enfin avec la nouvelle version de CDuce, et j'ai pu générer des paquets pour stable et testing. En revanche, pour unstable, ça ne passe pas en raison d'un problème de dépendance sur les bindings Ocaml Gtk2 ;
- Les paquets Debian demexp qui correspondent à la version 0.6 sont maintenant prêts et compilent. Par contre, toujours à cause du problème de dépendance sur les bindings Ocaml Gtk2, je n'ai pas pu générer les paquets ;
Bref, dès que le problème de dépendance sera résolu, je devrais pouvoir générer les paquets des deux versions de
demexp. J'espère que ça permettra à plus de gens de tester la version 0.6 du logiciel !
Paquets Debian, mise à jour
Ça y est, j'ai enfin pris un peu de temps pour me replonger dans les paquets
Debian. Au menu :
- mise à jour du paquet camlrpc en version 0.4.4, car l'auteur originel a mis à disposition cette nouvelle version. Cela n'a pas nécessité de modifications particulières au niveau du paquet ;
- mise à jour du paquet cduce en version 0.3.91, là aussi car une nouvelle version était disponible sur le site officiel de Cduce. En particulier, cette version supprime quelques binaires internes à Cduce qui posaient des petits problèmes d'empaquetage ;
- création d'un nouveau paquet de CamlGz, un binding Ocaml pour les bibliothèques de compression/décompression zlib et bzip2. Ce nouveau paquet est nécessaire car la version actuelle de demexp utilise cette bibliothèque. Peut-être aurait-il été plus simple d'utiliser libzip-ocaml qui est déjà packagée ?
Évidemment, tous ces paquets sont disponibles dans mon
petit dépôt Debian, pour les distributions
stable,
testing et
unstable (merci à
pbuilder !). À l'avenir, j'aimerais également pouvoir génerer des paquets pour Ubuntu, ce qui semble possible car
debootstrap, utilisé par
pbuilder pour créer les environnements Debian de compilation dispose de script pour
warty et
hoary. Et puis aussi, ça serait sympa d'avoir un vrai dépôt de paquets Debian, avec un
pool et un répertoire
dists ;-)
Par contre, au niveau de
demexp lui-même, pas grand chose de nouveau, car je n'arrive ni à compiler la version 0.4, ni la version 0.6 (chacune pour une raison différente). Tout cela est en discussion avec l'auteur de la bête, donc ça devrait rapidement évoluer !
Je suis un Pi approximatif ...
Derrière ce titre énigmatique se cache un truc rigolo qui m'a été rapporté par mon
frère : je suis né le jour du
Pi Approximatif, c'est à dire le 22 juillet, qui donne 22/7, soit 3.14285714285714285, une approximation de Pi, comme l'explique
cette page de
Wikipédia. Et ceux qui sont nés le 14 mars sont nés le jour Pi, parce que 03/14 en notation anglaise, c'est le début de Pi. D'ailleurs, c'est aussi le jour de l'anniversaire d'Albert Einstein.
Amusant, non ?
Esperanto et Logiciel Libre, la vidéo
Comme j'en parlais dans mon
compte-rendu des
RMLLs, une conférence intitulé
Linux, l'espéranto des logiciels, l'Espéranto, le Linux des langues a été réalisée par Tim Morley. Cette conférence a été vraiment animée de manière excellente par Tim, un anglais maîtrisant très bien le français et l'espéranto. Il a pu présenter ce qu'est l'Espérato, et surtout les points communs entre les valeurs de l'Espéranto et celles du Logiciel Libre.
Une
vidéo de cette conférence est disponible. La qualité du son n'est pas excellente, mais ça permettra tout de même à ceux qui n'étaient pas là de visionner la conférence.
D'ailleurs, dans le même
répertoire, on trouve les enregistrements audio des conférences du thème
Le Libre au delà du Logiciel, avec des thèmes comme Creative Commons, Ubuntu, Debian Women, Framasoft, etc.
Ça me fait penser qu'il faudrait que j'avance sur
la mise en ligne des résumés, des papiers, des slides et des enregistrements du thème OS de cette année. Malheureusement, tous les orateurs n'ont pas encore envoyé leurs slides et j'ai bien peur de ne jamais récupérer certains d'entre eux ;-(
Retour du Canada, et du boulot...
Je viens de rentrer aujourd'hui du Canada. Quatre jours de conférences très intéressantes, de nombreuses rencontres et discussions, ce déplacement au Linux Symposium fut vraiment intense. J'ai pris pas mal de notes sur les conférences, j'espère pouvoir en faire très prochainement un compte-rendu ici afin de faire profiter mes quelques lecteurs de mes impressions sur ce symposium.
Six jours d'absence, ça veut dire aussi plein de choses à faire au retour, mais en attendant, je vais essayer de me remettre du décalage horaire ;-)
Abonnés de Canal Plus, ça doit faire mal !
Canal Plus
a annoncé qu'ils allaient débourser 600 millions d'euros pour avoir le droit de diffuser les matchs de foot pendant les trois prochaines saisons. Les gens qui s'abonnent à Canal Plus pour voir des films vont être ravis...
C'est intéressant de voir ce que ça représente 600 millions d'euros. Si on prend un SMIC à 2000 Euros (pour l'entreprise), ça fait 300.000 SMICs. De quoi payer 25.000 personnes au SMIC pendant un an, ou une personne au SMIC pendant 25.000 ans. Rondelette somme tout de même pour voir des gugus gagnant des milliers d'euros à la seconde s'exciter derrière un balon, n'est-ce pas ?
Esprit du sport, où es-tu ?
Bernard Kouchner, un point de vue intéressant
Dans
Le Monde, Bernard Kouchner nous fait part d'un point de vue intéressant sur l'État de la France, et surtout l'état de la politique en France. Il a intitulé son texte
Cessons de nous mentir.
Après un état de la France genre film catastrophe, mais pourtant assez réaliste et une petite pique aux non-istes (
Nous avons échoué à faire aimer l'Europe), quelques réflexions que je trouve pertinentes :
«Cesser de mentir, c'est avant tout sortir d'une vision méprisante et élitiste de la politique, fondée sur l'idée que le peuple ne peut pas comprendre les enjeux de notre monde complexe. C'est instaurer une nouvelle manière collective de faire de la politique, en refusant les exclusives partisanes et les remèdes miracles. Nous en avons déjà suffisamment souffert. Brassons les idées, proposons des solutions, le choix des hommes et des femmes viendra plus tard.
Le bouillonnement qui s'est emparé de notre pays durant la campagne référendaire du printemps l'a montré : les Français sont avides de confrontations fécondes. Ils savent que nous sommes dans une période de terribles incertitudes qui exigent de profondes remises en question, mais ils refusent l'impuissance autant que le déni. Ils veulent retrouver la France dont ils sont fiers, celle qui avance, celle qui marque des points, pas celle qui accuse la fatalité de l'échec. Ils veulent construire l'Europe, à condition d'en être les acteurs et non les victimes. Et établir un nouveau partage, plus juste pour la planète des pauvres.
Ce travail d'explication et d'implication est nécessaire, mieux, il est attendu. Soyons sans crainte, les Français sont capables d'admettre qu'on ne pourra pas continuer à utiliser autant d'essence avec un baril à 60 dollars, et bientôt à 100 dollars, qu'avec un baril à 30 dollars.»
Je trouve intéressant d'entendre un politique critiquer ouvertement la façon de faire de la politique, et dire clairement sa confiance en la démocratie, en la capacité des citoyens à prendre part à la vie politique du pays. Même si l'on peut contester certaines parties du point de vue, et être sceptique sur l'application de ces jolis mots, j'ai trouvé intéressant ce point de vue qui sort un peu de l'ordinaire, et pourrait presque donner un peu d'espoir.
Une vision de la presse française au Canada
À l'hôtel où je loge à Ottawa, on reçoit tous les jours le
National Post devant la porte. Un article d'une certaine
Barbara Kay, intitulé
The French media connection a attiré mon attention.
Elle dit que de nombreux Canadiens francophones semblent trouver "justifiables" les attaques londoniennes récentes en raison de la coopération de Blair avec Bush en ce qui concerne la guerre en Irak (elle se base sur les appels à une radio pour avancer cela). D'après elle, la presse francophone du Canada est peu diversifiée, et elle est surtout reprise des journaux français de gauche. Par exemple, le journal
Le Soleil n'a pas couvert la guerre en Irak directement, mais a utilisé des articles de
Libération. Elle critique vivement la presse française :
Because national dailies are widely read in North America and in the UK, Quebecers are probably unaware that French newspapers, as their risibly low readership number attest, are not taken seriously anywhere, even in France. Son argument massue : sur 60 millions de français, seuls 400.000 lisent
Le Monde, et la somme des tirages des grands quotidiens français est deux fois inférieure au tirage du
Sun britannique. (Elle a du oublier de comparer le contenu du
Sun avec celui du
Monde ...).
Autre passage "intéressant" :
Unlike the free press of the U.S and Britain, French newspapers receive heavy governments subsidies, and are dominated by powerful, in-all-but-name communist unions. Bah voyons, les journaux français seraient manipulés par des factions communistes. Pourtant, quand on regarde la presse française, on a plutôt l'impression qu'elle est manipulée par les grands patrons (cf l'acquisition du Figaro par Serge Dassault et ses déclarations sur la relation avec la presse).
Elle accuse donc la presse française d'influencer l'opinion québecoise, car apparemment, les élites québecoises regarde la France comme
intellectual fodder.
Vers la fin de l'article, à propos de la situation en France, elle déclare
At home, the most stringent security measures are in place against terror, and the French live in a state of siege, petrified of their own unassimilated Muslim citizens...
Amusant de voir ce que pense les étrangers des français ou de la presse française, non ?
Départ pour le Canada
Aujourd'hui, je m'envole pour le
Canada, dans le cadre d'un déplacement professionnel qui m'amène à assister au
Linux Symposium 2005. Au programme, pendant quatre jours, une
quantité intéressante de conférences, sur plein de sujets autour du noyau Linux. La qualité devrait être également de la partie, avec des orateurs comme Jonathan Corbet, de
LWN, Rusty Russell, Greg Kroah-Hartman, Ian Pratt de Xen, Jeff Dike de User-Mode-Linux que j'ai déjà rencontré aux RMLLs, Rik Van Riel et au niveau des clusters des gens comme Bruce Walker ou Daniel Philipps.
Les proceedings des conférences sont déjà disponibles, sous la forme de
deux PDF.
Je ne sais pas encore si je vais pouvoir faire un compte-rendu des conférences comme je l'ai fait pour les RMLLs, mais si j'ai la possibilité, je le ferai!
Paquets Debian, ça repart
Ça fait quelques temps que je ne m'étais pas occupé des paquets Debian pour
CDuce et
DemExp. Depuis,
Sarge est sortie, la version 0.3.9 de CDuce est sortie, et la version 0.5.5 de
DemExp est sortie. De quoi donner du boulot.
Pour commencer, j'ai recréé mes environnement
pbuilder pour testing et unstable, et créé un pour stable (auparavant, je ne maintenais pas de paquets pour stable, vu que personne ne l'utilisait). Pour stable, pas de problème,
debootstrap a marché parfaitement. Par contre, pour
testing il manquait un paquet dans
usr/lib/debootstrap/scripts/etch :
libslang2. J'ai reporté un
bug avec le patch qui va bien. Ensuite, pour Sid, ça se corse. Premièrement, je tombe sur un
bug connu, mais non corrigé pour l'instant. Je corrige donc
debootstrap avec le patch trouvé dans ce bug report, et ça commence à marcher. Puis, un peu plus tard, des paquets manquent de nouveau dans
usr/lib/debootstrap/scripts/sid : tout ce qui concerne gcc-4.0 et également libslang2. J'ai hacké ce script, mais je ne suis pas sûr que ce soit la manière correcte de le faire. J'ai reporté un autre
bug concernant ce problème avec mon patch, en précisant que c'était sûrement un hack.
Une fois ces trois environnements créés (non sans mal), le travail peut commencer. Assez rapidement, CDuce 0.3.9 compile pour stable, testing et unstable. Des paquets Debian à jour sont disponibles sur mon
mirroir. Par contre, Lintian signale deux avertissements, au sujet de binaires n'ayant pas de page de manuel. C'est normal qu'ils n'aient pas de page de manuel, car ce sont des binaires internes. Donc, je dois les déplacer dans
usr/lib, et hacker le reste à partir de là. Ça risque d'être rigolo.
Ensuite, j'essaie de recompiler
DemExp? 0.4 avec CDuce 0.3.9. La compilation se bloque. Après moultes recherches, je m'aperçois que le préprocesseur CDuce à utiliser n'est plus
cdo2ml directement, mais qu'il faut utiliser
cduce --mlstub à la place. Une fois corrigé, deuxième problème :
cduce --mlstub cherche
cdo2ml dans le répertoire courant au lieu de
usr/bin. Après lecture du code Caml (auquel je ne comprends pas grand chose), je trouve une astuce pour passer à coder du bug : utiliser
usr/bin/cduce au lieu de
cduce, de manière à ce que le chemin de
cdo2ml soit construit correctement. Néanmoins, il faudra reporter ce problème au développeurs de CDuce.
Avec ça, la compilation passe, mais je me retrouve avec le cryptique message d'erreur suivant:
ocamlfind ocamlopt -linkpkg -c -package "rpc str" -package "cduce
pxp-engine pxp-lex-utf8 pcre netstring netclient ulex equeue threads
num" -I srv -I net -I lib -I bitv-0.5 -I +camlp4 -thread -I srv -I net -I lib
-I bitv-0.5 -pp "/usr/bin/cduce --mlstub" -impl srv/xml.cdo
The implementation srv/xml.cdo does not match the interface srv/xml.cmi:
The field `load' is required but not provided
The field `save' is required but not provided
The field `xml_content' is required but not provided
The field `tagid_list' is required but not provided
The field `tag' is required but not provided
The field `question' is required but not provided
The field `question_status' is required but not provided
The field `vote' is required but not provided
The field `response' is required but not provided
The field `participant' is required but not provided
The field `participant_kind' is required but not provided
make: *** [srv/xml.cmx] Erreur 2
Bref, je suis à l'arrêt coté
DemExp? 0.4. Coté
DemExp? 0.6, je n'en suis pas beaucoup plus loin : j'essaie de hacker pour faire un paquet
demexp-0.6 qui peut s'installer en parallèle du paquet
demexp. En effet, les versions 0.4 et 0.6 sont incompatibles au niveau protocole réseau, et il est important de maintenir des paquets des deux versions tant que des serveurs 0.4 tourneront. En fait, je me demande si je devrais pas renommer
demexp en
demexp-old et mettre le nouveau
DemExp? en
demexp. Ça se discute ;-)
En résumé, il y a encore du boulot pour arriver à faire fonctionner tout ça !
RMLL, réactions ici ou là
Des réactions, histoires et anecdotes autour des RMLL dans la blogosphère francophone, ici ou là :
RMLL en différé, jour 5
Samedi 9 juillet, dernier jour des Rencontres Mondiales du Logiciel Libre 2005. Le matin, dès 9 heures, je devais animer un atelier intitulé
Merveilleux voyage à l'intérieur d'un OS. C'est une expérience que j'avais tenté à Metz en 2003, sans slides, complètement improvisé, et ça avait bien marché. J'avais réitéré la chose à l'UTBM avec des
slides. Cette fois-ci, je voulais re-tenter l'expérience sans slides, car j'ai l'impression que l'interaction est meilleure. La présentation coule moins bien, on peut improviser les schémas au fur et à mesure et le public hésite donc moins à intervenir.
Ce samedi là, je pense qu'il y avait plus de 30 personnes dans la salle pour assister à l'atelier, si bien qu'à la pause il nous a fallu changer de salle. De 9h à 12h15 environ, j'ai pu parler du rôle d'un système d'exploitation, et de détailler avec beaucoup de précision le fonctionnement de la mémoire virtuelle (tables de traduction, défaut de page, Copy-on-Write, etc.), ainsi que la gestion du processeur (processus, threads, synchronisation, fork, exec). Les questions furent tellement nombreuses que je n'ai pas eu le temps d'aborder les pilotes de périphériques ou les systèmes de fichiers.
Je pense que j'ai encore beaucoup de choses à améliorer, notamment au niveau des métaphores à utiliser pour simplifier les explications, ainsi qu'au niveau des exemples. Mais globalement, les gens avaient l'air satisfait. Dans l'assistance, il y avait une documentaliste, qui connaissait à peine la programmation. Eh bien, elle est restée même après la pause, ce qui prouve sans doute que mon charabia était assez accessible.
À noter que j'ai été beaucoup aidé pendant la présentation par
David Decotigny, mon collègue de SOS, ainsi que par Sébastien Blondeel. Ce dernier, pour inciter les autres à poser des questions et pour orienter la discussion, n'a pas hésité à poser plein de questions "faussement" naïves, mais intéressantes. Et ça a bien fonctionné, puisque les autres voulaient alors en savoir plus.
En particulier, les gens étaient désireux de comprendre ce que signifait le "32 bits" dont je leur parlais par rapport aux 32 bits et 64 bits qu'ils voient dans le commerce. Il en était de même pour les
caches lorsque j'ai parlé de
TLB : ils voulaient comprendre le rapport avec les
256 Ko ou
512 Ko de cache des processeurs.
À la fin de cet atelier, petit repas au RU, puis attente jusqu'à 16h pour la plénière de cloture des RMLLs. J'ai représenté Frédéric Lehobey pour le thème
Logiciels Libres pour la Recherche Scientifique et j'ai bien sûr parlé rapidement du thème
Conception et développement des systèmes d'exploitation. Un petit bilan qui faisait notamment part de la densité des conférences cette année : près de 21 conférences, sur toute la durée des RMLLs, sans interruption. Par rapport à 2003, c'est donc beaucoup plus de conférences, mais également beaucoup plus de public. Là où en 2003, nous n'avions parfois que 5 personnes dans le public, cette année, nous avons toujours eu entre 20 et 50 personnes. C'est un bon chiffre au vu de la technicité des conférences données. Ce petit bilan public a également été l'occasion de saluer l'initiative des
off aux Tanneries, véritable espace de rencontre et de discussion.
L'année prochaine, les RMLLs auront lieu à Vandoeuvre-les-Nancy, encore dans l'Est de la France. Quand est-ce que Linux-Nantes organisera les RMLLs ? Ou Gulliver à Rennes ? Au niveau du thème OS, je ne sais pas encore si je souhaite reprendre le flambeau l'année prochaine, mais si ça devait être le cas, j'aimerais avoir plus de conférences accessible au plus grand nombre, dans l'esprit de l'atelier.
Le samedi soir, les
Tanneries proposait une soirée de cloture à sa manière :
Commodore 64 Party. De la musique de jeu vidéo, un peu disco/dance, à fond les manettes dans le hangar désaffecté, et ça a suffit à faire remuer une vingtaine de personnes jusqu'à 2 heures du matin. Là aussi, un moment sympathique, une occasion de se mélanger avec plein de monde dans une ambiance agréable et conviviale.
Au final, ces RMLLs 2005 furent vraiment un très très bon cru, à la fois en terme de rencontres que d'audience et de quantités de conférences. Il y en a effet eu pas moins de 300 conférences dans 27 thèmes, et environ 1400 visiteurs !
RMLL en différé, jour 4
Après une longue soirée aux Tanneries et peu de sommeil, j'entame le vendredi 8 juillet la dernière grosse journée du thème OS : 9 présentations en un seul jour. La matinée était consacrée à l'utilisation des langages de haut-niveau dans le développement des systèmes d'exploitation. Bien que je ne sois vraiment à l'aise qu'en langage C, je trouve stupide d'utiliser ce langage pour le développement d'applications, et je me demande à quel point d'autres langages plus évolués ou plus propres pourraient être utilisés dans le cadre du développement de systèmes d'exploitation.
On commence par une
présentation de
Jnode.org, par Ewout Prangsma. Il s'agit d'un OS réalisé entièrement en Java, pour le simple plaisir. J'ai beaucoup aimé cette présentation, en particulier l'état d'esprit derrière le développement de ce système. Ewout, le développeur principal, est conscient des limites de sa réalisation, mais le fait pour le
fun, et se fiche un peu de savoir si c'est vraiment pertinent. C'est l'esprit « Ça m'amuse, j'apprends, donc je le fais » que j'apprécie beaucoup, et qui a motivé pendant plusieurs années le projet
KOS. Après cette présentation,
Frode Vatvedt Fjeld présente Movitz, une plateforme pour le développement de petits systèmes d'exploitation en Common Lisp. La présentation n'est vraiment pas convaincante : on comprend difficilement son anglais, et surtout, les concepts abordés sont très abstraits. On a du mal à voir à quoi ça peut servir, dans quel cadre, même juste pour s'amuser. Ensuite,
Jérémy Bobbio nous présente hOp, un OS écrit en Haskell. En fait de présenter un OS, la plupart de sa présentation est consacrée à la description du langage Haskell, qui semble assez proche du langage Ocaml pour un non-connaisseur comme moi. Malheureusement, sa présentation n'aborde que trop brièvement l'aspect utilisation dans un OS, et j'ai trouvé que ses arguments pour l'utilisation d'Haskell reposent plutôt sur le sucre syntaxique de ce langage que sur des vrais concepts permettant d'améliorer la conception et l'implémentation d'un OS.
Suite à cela, David Decotigny et moi-même faisons
une courte présentation du projet
SOS. Les
slides de cette courte présentation sont disponibles. L'originalité de SOS ne reposant pas sur des critères techniques, nous avons surtout mis l'accent sur la disponibilité des articles documentant le code au fur et à mesure et de l'aspect incrémental du développement. Je me souviens de deux questions: une personne suggérant de mettre les articles SOS sous la forme d'un Wikibook, et une autre personne qui demandait à quel niveau de formation pourraient être utilisés les articles.
Après cette présentation, Xavier Grave a
présenté Toy Lovelace, une adaptation de SOS en
Ada95?. Ce fût sympathique de rencontrer pour la première fois Xavier, qui depuis plusieurs mois traduit le code de SOS en Ada 95. Il en est actuellement à l'article 6.5, et il ne s'occupe pas seulement de traduire le code, mais bien de l'adapter à la façon Ada. En particulier, dès que c'est possible, il essaie de porter les fonctionnalités du runtime Ada : orienté objet, exceptions, et bientôt les tâches Ada en se reposant sur les threads SOS. La présentation était d'un style très détendu, et l'état d'esprit de Xavier est à rapprocher de celui d'Ewout :
just for fun. Xavier montre du code C, du code Ada, nous fait part de son avis, d'une manière animée et sympathique.
Après l'ingestion rapide d'un paquet de madeleines sèches provenant du distributeur de l'université, les conférences ont repris à 14h. C'est Joshua
LeVasseur? qui démarre avec une
présentation portant sur l'utilisation de machines virtuelles pour améliorer la sûreté de fonctionnement. En gros, l'idée est surtout de pouvoir réutiliser des pilotes de périphériques (réseau et bloc notamment) de Linux en éxécutant un noyau Linux sous la forme d'un processus dans le cadre d'un système d'exploitation à base de micro-noyau. L'idée est intéressante dans la mesure où elle permet de réutiliser des drivers et donc d'avancer plus vite dans le développement de nouveaux OS, mais d'un point de vue conceptuel, je trouve ça assez laid et assez lourdingue. Il faut des wrappers de partout, c'est un peu l'artillerie lourde. À mon sens, pas de quoi exploser le temps imparti de plus de 20 minutes, nous mettant en retard pour toute l'après-midi. En plus, l'orateur avait précédemment refusé d'utiliser des outils libres pour sa présentation, prétendant que Powerpoint était
the best tool for the job, et a fait allusion pendant la présentation à plusieurs logiciels propriétaires, comme pour lancer des piques à Ludovic et moi. 'Fin bref, j'ai personnellement pas tellement apprécié son attitude.
C'est Jeff Dike qui devait prendre la suite avec une présentation sur User-Mode-Linux, mais suite à un problème de portable incompatible avec le vidéo-projecteur, nous avons choisi de placer
présentation sur THINK avant. Celle-ci étant donnée par Juraj Polakovic, qui travaille avec Jean-Philippe Fassino, l'orateur qui avait présenté THINK aux RMLLs 2003 à Metz.
THINK est une plateforme pour le développement de systèmes d'exploitation, et Kortex est un ensemble de composants pour cette plateforme permettant de réaliser de tels systèmes. Après une courte présentation de THINK, Juraj a parlé des travaux qui allait entreprendre pour permettre la reconfiguration dynamique, notamment au travers du changement à chaud de composants. J'ai trouvé la partie sur la reconfiguration dynamique un peu courte : on sentait que le travail n'en était qu'à ses débuts, et qu'il n'y avait pas encore de réponse (autres que très théoriques) sur les problèmes de transformation d'état lors du remplacement d'un composant par un autre. En effet, lorsque l'on remplace un composant
ordonnanceur qui gère des structures de données propres par un autre composant
ordonnanceur, il faut transformer les données de l'ancien ordonnanceur dans un
format compréhensible par le nouveau. Il me semble que c'est la principale difficulté de l'opération, et d'après ce que j'ai compris, la seule réponse est pour l'instant qu'un
transformer se chargera de la transformation, sans plus de détails pour l'instant. Peut-être aurait-il été intéressant de présenter un peu plus longuement THINK en lui-même qui propose tout de même des choses assez élégantes en terme de componentisation et de liens entre les composants.
Une fois cette présentation terminée, Jeff Dike a pu prendre la suite en
parlant de User-Mode-Linux. Il a brièvement présenté de quoi il s'agissait : un port du noyau Linux en mode utilisateur. Personnellement, je l'ai utilisé pour faire quelques essais de Debian sans risquer de casser mon installation. C'est assez amusant, le noyau Linux est directement un exécutable qu'on lance à partir de la ligne de commande, et hop ça boote. Il a consacré une partie de la présentation aux patchs SKAS (Separate Kernel Address Space) qui permettant d'améliorer les performances et la sécurité de User-Mode-Linux, mais qui semblent être assez bricolage. Ensuite, une grande partie de la présentation a été consacrée aux évolutions futures d'UML :
- prise en compte des optimisations matérielles disponibles dans les prochains processeurs pour la virtualisation : chez Intel, il s'agit de VT et chez AMD, il s'agit de Pacifica;
- l'amélioration des performances;
- embedded UML qui permettrait d'embarquer UML dans une application, de manière à la faire tourner dans un sous-noyau. Il donnait l'exemple de mod_perl d'Apache. L'approche me semble là aussi un peu bricolage, et même un peu violente en termes de performances. Ceci étant dit, je n'ai peut-être pas saisi toute la finesse de la chose
Globalement, j'ai été un peu déçu par cette présentation, je n'ai pas compris grand chose des orientations futures, et ce que j'ai cru comprendre ne m'a pas paru bien excitant. Toutefois, Jeff Dike parlait assez doucement, de manière assez monocorde, j'avais du mal à comprendre son anglais, et je m'endormais à moitié à cause du manque de sommeil.
La dernière présentation de la journée a été beaucoup plus dynamique. Julia Lawall a
présenté Bossa, une
plateforme pour le développement d'ordonnanceurs pour le noyau Linux. En gros, on peut décrire son ordonnanceur via un langage adapté (un
domain specific language), et il est ensuite compilé pour fonctionner comme ordonnanceur du noyau Linux. Ce dernier a été modifié pour fonctionner correctement avec de tels ordonnanceurs. Là où ça devient très intéressant, c'est que la description dans le langage spécifique dans l'ordonnanceur peut servir à vérifier que celui-ci répond à certaines contraintes imposées par le système d'exploitation. Plutôt intéressant donc. En plus, le travail sur Bossa a été libéré (sous licence LGPL) spécialement pour les Rencontres Mondiales du Logiciel Libre, ce qui est une bonne nouvelle. Ceux qui veulent en savoir plus sur les langages spécifiques peuvent aussi regarder du coté de
Devil, un langage spécifique au développement de pilotes de périphériques.
Cette dernière journée de conférences fût donc très riche, mais la fatigue commençait à se faire sentir. La densité des conférences était sans doute trop importante.
Après toutes ces présentations, nous nous sommes rendus aux Tanneries pour déguster un plat végétarien, et encore une fois discuter avec moultes autres geeks.
RMLL en différé, jour 3
Le jeudi, il n'y avait des conférences que le matin, car l'après-midi était réservée aux plénières à la mairie de Dijon, avec le discours du maire, de représentants de la région et du département, de députés, etc. Intéressant, mais pas forcément captivant pour tout le monde, en particulier pour les étrangers. J'avais à l'époque eu une discussion assez musclée avec les organisateurs des RMLLs à ce sujet. Je trouvais en effet un peu osé d'annuler toutes les conférences le jeudi après-midi, car cela revenait plus ou moins à imposer la présence de toute le monde à la mairie. Quand un orateur vient des États-Unis, d'Allemagne, ou d'Angleterre, il a peut-être plutôt envie d'assister à des conférences techniques que des discussions de représentants politiques (aussi intéressantes soit-elles). Par exemple
Harald Welte a été géné, car l'accès à Internet était coupé à l'Université le jeudi après-midi... alors que certains en avaient besoin pour leur travail. Enfin bref, c'est du passé maintenant.
Au niveau du thème OS, la matinée était consacrée aux systèmes à image unique, c'est à dire qui simulent une grosse machine SMP à partir d'un ensemble de machines en cluster. Il s'agit donc de pouvoir migrer des processus d'une machine à l'autre, de manière transparente. Tout d'abord, Christine Morin présentait
un état de l'art dans le domaine.
J'ai du m'absenter presque dès le début pour aller présenter l'
Agenda du Libre dans le thème
InterLUG?. Le public était restreint (20 personnes environ), mais attentif et intéressé. Les
slides sont disponibles. En gros, j'ai montré les besoins, les objectifs, la réalisation et les choses à venir. Dans la discussion qui a suivi, les gens ont surtout dit que pour eux la modération n'était pas nécessaire. Ils préfereraient que la modération soit automatique, en tout cas pour un certain nombre d'utilisateurs bien identifiés. Pour ma part, je ne pense pas qu'il faille faire cela. En effet, la qualité des soumissions laisse souvent à désirer, soit au niveau de l'orthographe, soit au niveau des informations qui sont incomplètes. Pour moi, la modération n'est pas une censure, mais plus un procédé qui permet d'améliorer la qualité des informations et leur cohérence. De plus, le nombre d'évènements soumis est assez restreint, donc la modération ne demande pas beaucoup de travail, surtout avec une équipe 4 (bientôt 5) modérateurs.
En dehors de cette conférence, plusieurs personnes m'ont interpellé au cours des RMLLs pour m'indiquer que cet agenda répondait vraiment à un besoin, et certains comptaient même participer à son développement par l'ajout de fonctionnalités. Sympa !
De retour dans l'amphithéatre du thème OS, un grand amphi de 300 places, la
présentation de
Kerrighed, un système à image unique développé à l'IRISA (Rennes) est déjà bien avancée. Renaud Lottiaux est en train d'expliquer les mécanismes qui permettent de faire suivre la mémoire lors de la migration d'un processus d'un noeud vers un autre. L'explication est de grande qualité, claire, se positionne à un niveau technique compréhensible par l'auditoire. Puis, Pascal Galllard prend le relai, et poursuit en décrivant les mécanismes permettant de faire suivre les fichiers et les sockets lors de la migration. Malheureusement, il reste assez peu de temps, et il est obligé d'aller assez vite. Là aussi, la présentation est de vraiment bonne qualité. D'ailleurs, la veille, David Decotigny, mon compère de KOS/SOS m'a appris que Pascal Gallard était le fondateur de
Gulliver, le LUG de Rennes, auquel j'ai participé dans la période Septembre 2004 – Février 2005.
Suite à cette présentation de Kerrighed, c'est au tour de Moshe Bar de
présenter une autre solution de système à image unique :
openMosix. Moshe est arrivé 5 minutes avant le début de sa présentation, et n'est pas resté après. Je trouve dommage de ne pas profiter des autres conférences, et de ne venir que pour présenter son projet. M'enfin bon, c'est comme ça. Il ne voulait pas non plus être filmé ni enregistré. Là aussi, je n'ai assisté qu'aux quelques premières minutes de son interventation, car j'ai du disparaître pour participer à une autre présentation.
Celle-ci conernait le
Livret du Libre et était donnée dans le cadre du thème
InterLUG? avec Lucas Nussbaum et Nicolas Bouillon. Au travers de
quelques slides nous avons présenté les objectifs du Livret, un historique des versions, les particularités du développement de celui-ci ainsi que les travaux à venir. Suite à la présentation, une discussion assez confuse, n'ayant pas fait ressortir de remarques précises concernant le Livret. L'appel à graphistes que nous avons lancé a été attendu, nous verrons bien si cela amènera un peu de participation du coté de l'illustration du Livret.
De nouveau retour dans le thème OS, pour assister à la fin de la présentation sur les
Scheduler Activations, par Vincent Danjean. D'après ce que j'ai compris, il s'agit de permettre l'implémentation d'ordonnanceur au niveau utilisateur, en réalisant depuis le noyau des
upcalls vers l'espace utilisateur pour signaler un changement d'état d'un thread. La réalisation d'ordonnanceur personnalisé en espace utilisateur doit permettre de réaliser des politiques d'ordonnancement spécifiques aux besoins de l'application.
Après cette présentation, c'est la fameuse fermeture de l'université. En fait, elle n'est pas fermée, mais la connexion Internet et coupée, et de toute façon, il n'y a rien de spécial à faire. Avec Christophe, David, Ludo, Nessie et Estelle, nous décidons donc de bouger en ville et tombons dans un petit restaurant traditionnel sympathique. Un petit rumsteack sauce roquefort et un crumble plus tard, nous étions dehors à déambuler dans le centre de Dijon. Après quelques errements, nous atterrissons dans une exposition appelée
Les génies du lieu aux musées des Beaux-Arts de Dijon. Celle-ci est une exposition d'art contemporain, au milieu d'un grand musée exposant des oeuvres plus traditionnelles. L'exposition d'art contemporain est un classique du genre : des oeuvres toutes les plus étranges les unes que les autres, avec par exemple des blocs blancs au milieu d'une pièce et c'est tout, ou encore une moquette roulée au milieu d'une pièce. Les explications associées permettent d'en savoir un peu plus... quoique : elles sont tellement alambiquées que finalement elles rajoutent à l'excentricité de la chose.
Une fois sortis du musée, nous errons de nouveau dans la ville, prenons la navette gratuite avec laquelle nous faisons le tour complet pour revenir à notre point de départ. Suite à cela, il est l'heure de chercher un autre restaurant, et nous tombons au hasard sur un restaurant polonais. Il n'y a personne, et nous disposons du sous-sol de ce restaurant pour nous seuls. Le service est très sympathique, la nourriture excellente, ce qui a permis de goûter à quelques plats traditionnels polonais. Nous testons également quelques vodkas originales : vodka aux noix, vodka au miel et vodka aux oeufs. Très sympathique !
À la sortie du restaurant, nous nous orientons (bien en retard) vers la mairie, pour la visite guidée de nuit de la ville. La visite nous permet de découvrir un peu l'histoire de la ville et de ses batiments. C'est vraiment intéressant, et je trouve très agréable de prévoir ce genre de visites dans le cadre des RMLLs. Ça avait eu lieu en 2003 aux RMLLs à Metz, et c'est à refaire !
Après cette visite, retour aux Tanneries où la quantité de personnes est vraiment impressionante. Le hangar désaffecté et squatté est rempli de geeks s'affairant autour de leurs portables, de bières et de discussions animées. Encore une excellente fin de soirée là-bas !
RMLL en direct, jour 2
Un peu en retard, mais avec beaucoup d'informations !
Aïe, premier jour, et déjà, le réveil à 7 heures fait mal, surtout pendant des vacances. La première conférence du thème OS de la journée débutait à 9h30, je devais donc être présent dès 9 heures pour mettre en place la salle, le vidéoprojecteur, etc.
La première présentation à laquelle j'ai assisté était celle de Marcus Brinkmann,
Porter le GNU/Hurd sur le micro-noyau L4. Marcus connaît bien le Hurd, c'est un des quelques développeurs de ce système, et la conférence pouvait donc être intéressante. Il a commencé par un rapide rappel sur les différentes versions disponibles du
micro-noyau L4 développé par les gens de l'université de Karlsruhe (versions Hazelnut, Pistachio, et la future version L4::
NextGen?). Après cette courte introduction, il a consacré le reste de sa présentation à l'utilisation des «capacités» dans Hurd. D'après ce que j'ai compris, une capacité est l'association entre un objet et une autorisation. Donner une capacité à un programme, c'est l'autoriser à effectuer des opérations bien précises sur un objet bien précis. Malheureusement, Marcus est resté très abstrait à mon goût, et il était difficile de voir à quoi tout cela pouvait servir en pratique. En particulier, il a passé beaucoup de temps sur les problèmes de transfert de capacité entre un client et un serveur, entre deux clients, etc. D'un autre coté, je ne suis pas du tout un spécialiste de ce genre d'idées, mais je pense que la plupart de l'audience ne l'était pas non plus, et j'ai donc malheureusement l'impression que la présentation n'a pas été utile à beaucoup.
La seconde présentation de la journée dans le thème OS était donnée par Neal Walfield,
Une approche basée sur le marché pour la gestion des ressources dans le système d'exploitation multi-serveurs GNU/Hurd. Déjà, en première approche, le titre laisse supposer une régulation par le marché, comme en économie où le marché s'auto-régulerait, d'après les libéraux. Une hypothèse contestable si il en est. Ceci étant dit, nous ne sommes pas dans l'économie, donc pourquoi pas. De toute façon, je n'ai pas pu assister à la conférence, car je voulais assister à une autre présentation.
Celle-ci était consacrée à l'Espéranto, et aux
points communs entre les valeurs du Logiciel Libre et de l'Espéranto. Nicolas Bouillon et moi-même souhaitions vraiment qu'une telle présentation ait lieu dans le cadre des RMLLs. En effet, j'ai l'impression que peu de “libristes” connaissent l'Espéranto, qui pourtant véhicule des valeurs semblables sur certains aspects, et surtout propose une alternative crédible pour la communication internationale. Nous avions donc trouvé Tim Morley comme orateur, un contributeur de la traduction Espéranto d'
OpenOffice?.org. Ni Nicolas ni moi ne le connaissions, et nous avons été très agréablement surpris. Il est extrêmement enthousiaste, sait communiquer sa motivation et cet enthousiasme, aussi bien pendant la présentation que sur le stand Espéranto qu'il a animé. En plus, c'est agréable de voir un anglais promouvoir l'Espéranto en tant qu'alternative à l'anglais comme langue de communication. Et c'est encore mieux quand cet anglais parle très bien le français, ce qui prouve qu'Espéranto ne signifie pas forcément abandon de l'apprentissage des langues étrangères.
Dans sa présentation, il donnait quelques anecdotes sur l'Espéranto, un peu d'historique de la langue, il faisait participer le public avec des petites devinettes sur le sens de quelques mots en Espéranto. Le tout de manière très dynamique, très enthousiaste. Une vidéo de la conférence a été enregistrée, j'espère pouvoir la récupérer et indiquer plus tard ici un lien vers celle-ci.
Quasiment à la fin de cette présentation, je suis revenu du coté du thème OS où Neal terminait sa présentation. Je n'ai donc rien vu de celle-ci. Tant pis, je lirai les transparents.
La dernière présentation de la matinée était donnée par Mel Gorman, au sujet de la mesure de performance dans la VMM de Linux. Mel Gorman a
notamment écrit deux PDFs énormes sur le fonctionnement de la VMM de Linux : un détaillant les différents sous-systèmes, et un autre détaillant le code source lui-même. Ce sont d'excellents documents pour comprendre ce sous-système extrêmement complexe du noyau Linux. Pour ceux qui n'aiment pas le PDF, un
livre a été publié à partir de ceux-ci dans la
collection Open Source Series lancée par Bruce Perens chez Prentice Hall.
Mel Gorman n'a pas présenté de manière générale le fonctionnement de la VMM, mais s'est focalisé sur la problématique qui l'occupe dans le cadre de son
PhD? :
la mesure des performances de la VMM. Actuellement, les performances de la VMM sont plus mesurées par ses effets de bord (par exemple en mesurant le temps de compilation d'un noyau, ou d'autres benchmarks du même genre) qu'en mesurant réellement à la source l'amélioration ou la dégradation de celles-ci. Par conséquent, il a développé un ensemble de scripts et de modules noyau qui permettent de prendre ses mesures et de les agréger pour en tirer des conclusions. Ces informations peuvent être très utiles pour les développeurs de la VMM qui pour l'instant avancent un peu à l'aveugle au niveau des changements dans la VMM. Toute amélioration dans certains cas peut entraîner des dégradations énormes des performances dans d'autres cas.
En particulier, il a évoqué trois mécanismes importants :
- le « buddy allocator » utilisé pour l'allocation des pages physiques. L'allocation d'une simple page physique est simple, mais l'allocation de plusieurs pages physiques contigues est plus difficile. En effet, il y a nécessairement des problèmes de fragmentation de la mémoire qui vont se poser. Ainsi, on peut vouloir allouer 32 Ko de mémoire physique contigue, il y a 128 Ko de mémoire disponible, mais aucun bloc de 32 Ko contigue. Il faut donc mesurer à la fois les performances en terme de vitesse de l'algorithme, mais également en terme de fragmentation.
- les régions virtuelles. Chaque espace d'adressage est découpé en régions virtuelles, chacune «mappant» en mémoire le code ou les données d'une application ou d'une bibliothèque partagée. Le Logiciel Libre réutilisant beaucoup de codes et donc de bibliothèques partagées, on se retrouve fréquemment avec plusieurs dizaines, voire centaines de régions virtuelles. Mel Gorman donnait l'exemple du simple programme mgp pour afficher des slides qui nécessite 109 régions virtuelles. Les algorithmes de manipulation de ces régions sont donc critiques en terme de performances.
- les algorithmes de remplacement de pages. Lorsque la mémoire physique devient insuffisante, il faut swapper. Pour cela, il faut choisir quelles pages physiques doivent être swappées, et ce choix est très difficile. Il faut dans la mesure du possible swapper une page qui ne sera utilisée que beaucoup plus tard. Mais savoir quand une page sera utilisée est difficile, et on se base donc en général sur les accès antérieurs à une page pour anticiper sur les accès à venir. Là aussi, il y a un algorithme et des heuristiques critiques pour les performances de la mémoire virtuelle.
Sa présentation était courte, mais mettait en avant quelques points intéressants, et donnait envie de s'intéresser à la problématique. Elle était beaucoup plus appliquée que la présentation donnée par Marcus Brinkmann, et donc à mon sens beaucoup plus accessible, malgré le fort accent irlandais de Mel Gorman.
Après une pause de midi m'ayant juste laissé le temps de manger deux gauffres, j'étais reparti pour l'après-midi de conférences dédiée à trois systèmes d'exploitation originaux.
Le premier,
Plan 9 a
été présentée par Charles Forsyth, avec un accent anglais assez marqué. D'après ce que j'ai compris, Plan 9 est un système d'exploitation distribué, mais l'orateur a surtout mis en avant le fait que Plan 9 utilise des fichiers pour tout faire. Là où Unix promeut
«tout est fichier» et ne le respecte pas entièrement, Plan 9 pousse cette abstraction beaucoup plus loin. Ainsi, pour établir des communications réseau, on manipule des fichiers dans /net/tcp, puis pour les utiliser, on utilise par exemple /net/tcp/0/data. Évidemment, des systèmes de fichiers tels que mboxfs (pour se balader dans ses courriers électroniques) ou ftpfs sont présents. Plus étonnant, même l'interface graphique se commande au travers de fichiers. Créer de nouveaux widgets implique la création de nouveaux fichiers. Les possibilités sont amusantes, mais je trouve que le design n'est pas très satisfaisant. En effet, il consiste à cacher derrière une interface simple read/write les vraies interfaces, par exemple pour les connexions réseau (on doit envoyer “host!port” pour établir une connexion réseau). Je suis plus convaincu par des interfaces spécialisées mais bien définies, approche que semble utiliser Hurd, et que nous avons tenté d'utiliser dans KOS avec une description en XML des interfaces.
Ensuite, une
conférence sur
EROS,
the Extremely Reliable Operating System. Cette conférence a été donnée par Jonathan Shapiro, qui venait des États-Unis. Il commence sa présentation par une question ouverte : « comment devrait fonctionner l'OS le plus accueillant pour les virus et les trojans ? ». La première partie de sa présentation donne les caractéristiques de cet OS, et on voit très vite où il veut en venir. Dès le départ, on reconnait par les caractéristiques listées le fonctionnement d'un Unix. Malgré l'aspect un peu caricatural de cette présentation, on ne peut que constater que certaines des remarques sont tout à fait pertinentes. Il poursuit dans sa deuxième partie en présentant EROS, un projet sur lequel il a travaillé pendant de longues années (10 ans ?). Il s'agit d'un OS basé sur les capacités, ce qui permet, d'après ce que j'ai compris, de ne donner aux programmes uniquement les autorisations dont ils ont besoin pour faire leur travail. Il donnait l'exemple du moteur de rendu HTML/
JavaScript? d'un browser : sous Unix, celui-ci est éxécuté comme un processus normal, peut ouvrir les fichiers de l'utilisateur courant, en créer, en détruire, les envoyer sur le réseau. En réalité, un tel moteur n'a besoin en entrée que du flux HTML/
JavaScript? et en sortie que de la possibilité d'afficher des choses. Rien de plus. Et d'après la présentation, EROS peut donner des capacités à ce niveau de granularité, ce qui permet une isolation importante des processus, même lancés par le même utilisateur. D'autre part, EROS est un système persistant : le système est
checkpointé toutes les cinq minutes sur le disque dur en tâche de fond. La présentation est donc intéressante, et donne lieu à quelques réflexions personnelles sur l'OS qu'on utilise tous les jours. Toutefois, le travail sur EROS n'est plus réalisé par Jonathan lui-même, mais par quelqu'un d'autre au sein du projet
CapROS.
La
deuxième présentation de Jonathan Shapiro concerne
Coyotos et BitC. Coyotos est le successeur d'EROS, il en reprend de nombreux concepts, tout en corrigeant certains de ses problèmes. Pour l'instant, Coyotos est développé en C, mais l'équipe de Jonathan travaille sur le langage
BitC? pour réimplémenter l'OS. Ce langage devrait permettre de rendre plus simples les raisonnements et les preuves formelles sur le code de l'OS. D'un point de vue syntaxique, il ressemble à du Lisp, ce qui laisse toujours un peu dubitatif, Jonathan le reconnaît lui-même. L'orateur a également parlé de quelques outils de preuves formelles :
ACL2 qui est buggé et donc difficilement utilisable d'après Jonathan, de
Isabelle et HOP, un système apparemment très complexe à utiliser et de
Twelf qui aurait une licence douteuse. Je ne me souviens pas bien de ce qu'ils comptent faire à partir de là.
Ces deux dernières présentations ont donc porté sur des projets intéressants, qui valent certainement qu'on y jette un oeil.
Le soir a eu lieu le fameux « Diner du Libre », dans une grande salle de la mairie. Comme le
raconte Harald Welte, le repas était assez cher (20 Euros) pour une qualité et une quantité très très moyenne. Dans un restaurant à 12-15 Euros, le menu aurait été bien meilleur, et il n'aurait pas fallu patienter pendant la longue queue menant au buffet. Toutefois, à la décharge des organisateurs, je reconnais qu'organiser un repas pour 300 personnes n'est certainement pas évident.
Nous avons donc quitté juste après le dessert (une simple salade de fruit...) et nous sommes partis aux Tanneries. Là-bas, pas mal de monde, des discussions, une ambiance sympathique. Bref, tout ce qu'il faut pour se coucher encore à 2 heures du matin. La personne de Fadaiat a fait une autre présentation sur les aspects techniques du projet. Je n'ai pas trop suivi la présentation, le présentateur était trop mou, et j'étais trop occupé à discuter avec Lucas, Fred, Bouil et bien d'autres.
La journée fut donc riche en conférences et riche en discussions diverses et variées. Un vrai moment de RMLLs ;-)
En direct des RMLL 2005, jour 1
Départ pour les
RMLL ce mardi 5 juillet à 8h de Toulouse. La chance a fait qu'un TGV direct Toulouse -> Dijon existait et que les horaires correspondaient. Ainsi, en 5h30 environ, j'étais à Dijon, une durée plutôt honorable au vu de la distance parcourue.
Après un petit repas dans le centre de Dijon, arrivée à l'Université à 15 heures environ... alors que la première conférence du thème OS avait lieu à 16 heures. Rapidement, il faut trouver la salle, trouver le vidéo-projecteur, le tester, etc. Dix minutes avant l'
ouverture de session du thème OS, Ludovic et moi décidons de pondre rapidement quelques slides contenant le programme du thème, afin d'avoir un petit support pour présenter celui-ci.
Suite à notre présentation du thème improvisée, et donc assez médiocre, Gaël Le Mignot a commencé sa
présentation générale de GNU/Hurd devant 40-50 personnes. Un public assez nombreux donc, pour cette première journée des RMLLs. La présentation est assez classique, très semblable à celle des années précédentes (par exemple aux RMLLs de Metz ou à Libr'East 2004). Gaël y expose les motivations du Hurd (en particulier le fait de vouloir redonner la liberté aux utilisateurs, pas seulement au travers des licences, mais également au travers du système), puis expose les différentes architectures de noyau (monolithique, micro-noyau). Au fur et à mesure de la présentation, il explique le fonctionnement des IPCs dans Hurd, les mécanismes de sécurité, le système de gestion de mémoire virtuelle, etc. La présentation est assez longue, mais plutôt complète. En fin de présentation, il n'y a malheureusement pas de questions, mais la démonstration est toujours intéressante. Ainsi, Gaël monte un serveur FTP directement dans l'arborescence grâce à ftpfs, puis depuis ce FTP, monte une archive .tar grâce à tarfs (écrit par Ludovic, au passage). Il fait également une démonstration rapide de xmlfs, qui permet de représenter via une arborescence de fichiers/répertoires un document XML. C'est amusant, c'est justement quelque chose que je voulais faire pour Hurd, pour commencer à m'imprégner du fonctionnement du système. Car, oui, j'ai toujours eu dans l'idée de développer quelque chose pour ce système, mais je n'ai jamais eu, jamais pris le temps de le faire.
La présentation de Gaël se termine donc plus tôt que prévu, ce qui permet de déambuler dans les couloirs de l'Université, et de retrouver tous les gens qu'on vient voir aux RMLLs: des anciens de Gulliver, Tim Morley, qui parlera d'Espéranto demain, les gens des Développements Durables à Biarritz, Lucas Nussbaum et Nicolas Bouillon, du Livret du Libre, Christophe, un ancien de l'UTBM. Bref, plein de rencontres qui font plaisir.
À la fermeture de l'Université vers 18h, deux choix : aller à la mairie écouter le discours du maire et manger des petits-fours, ou se rendre aux Tanneries, un espace auto-géré de Dijon. Finalement, cette dernière solution est choisie. Les gens des Tanneries ont vraiment organisé quelque chose de sympathique: les
Nocturnes des RMLL 2005. Il y a de la nourriture végétarienne à un prix libre, on peut manger dehors, et chacun doit laver son assiette, des couverts. Environ 60-80 personnes sont présentes ce soir aux Tanneries. Un accès Internet est disponible, dedans et dehors. Autour de canapés, de tables, les gens peuvent se rencontrer, discuter. Un vrai espace d'échange qui manquait dans les précédentes éditions des RMLLs. À mon sens, on retrouve l'esprit originel des RMLLs: ce n'est pas seulement des conférences en journée, mais également des rencontres entre des développeurs, des testeurs, des utilisateurs, des gens d'horizons, de cultures différentes. Mais pour que ces gens se rencontrent, il faut des lieux propices à l'échange. Les Tanneries remplissent à merveille ce rôle.
Actuellement, une présentation a lieu sur le projet
Fadaiat, qui consiste à créer un hacklab transfrontalier, entre l'Espagne et le Maroc. En particulier, ils expérimentent du streaming audio/vidéo par delà le delta de Gilbraltar, dans l'idée d'avoir des moyens de communication indépendants pour véhiculer des informations indépendantes.
J'essaierai, chaque jour, de tenir un petit journal de mes déambulations et de mes découvertes aux RMLLs. À demain !