Après une première interview avec Soren Jacobsen, release engineer de NetBSD-5.0, c’est maintenant au tour d’Adam Hamsik, haad@, développeur connu entre autres pour son travail considérable de portage de LVM sous NetBSD ainsi que le GSoC 2009 sur ZFS, d’être interviewé par NetBSDfr.
NetBSDfr: Tout d’abord, merci à toi de prendre le temps de nous répondre.
haad: Pas de problèmes. J’apprécie cet effort.
NetBSDfr: Pour nos lecteurs qui ne te connaissent pas, peux-tu te présenter rapidement ?
haad: Je m’appelle Adam Hamsik, j’ai 24 ans. Le mois dernier, j’ai fini
mes études d’informatique à l’Université Technique de Slovaquie.
Je suis développeur NetBSD depuis environ 2 ans. Mon premier projet
d’envergure a été l’implémentation de LVM dans NetBSD, qui a été mon
sujet lors du Google Summer of Code l’été dernier.
NetBSDfr: Quelles sont les raisons qui t’ont amené à
choisir NetBSD ? Depuis combien de temps utilises-tu ce système ?
haad: J’utilise NetBSD depuis environ 4 ans. J’ai commencé avec
NetBSD 2.0. Avant cela, j’avais essayé plusieurs distributions Linux,
ainsi que FreeBSD, mais aucun d’entre eux ne me convenait.
Au cours d’un dîner avec un de mes vieux amis, celui-ci m’a conseillé
NetBSD. J’ai essayé, et j’ai été convaincu que c’était l’OS qu’il me
fallait. Son design est clair, et c’est presque Unix.
NetBSDfr: As-tu une idée du temps que tu consacres au
projet NetBSD chaque jour ? chaque semaine ? chaque mois ?
haad: Ces temps-ci, durant le GSoC 2009, je travaille sur le portage de
ZFS entre 4 et 8 heures par jour, parfois plus.
Comme tous les autres volontaires, je suis souvent interrompu par mes
obligations de la vie réelle, mais j’essaie de faire tout ce que je peux
sur ce projet durant cet été.
NetBSDfr: En plus de la maintenance de ton code issu
des GSoCs, es-tu également impliqué dans d’autres parties du code ?
haad: J’ai produit quelques petits patches pour le système de base et
proplib, mais la majeure partie de mon travail consiste à maintenir le
code issu de mes projets GSoC passé et actuel.
L’année dernière, j’ai effectué le portage de LVM (Logical Volume
Manager) pour NetBSD, et j’ai fait fonctionner les outils LVM Linux avec
notre device-mapper. Pour les lecteurs ne connaissant pas LVM, il s’agit
d’une méthode de management d’espace disque (NDLR: on pourra
utilement se référer à la page Wikipedia: http://fr.wikipedia.org/wiki/LVM).
Pour cette année, dans le cadre du Summer of Code, je travaille sur le
portage de ZFS vers NetBSD. Je dois dire qu’avec l’aide d’Andrew
Doran, j’ai déjà pas mal progressé. Hier – NDLR: le 20 Juin – j’ai pu
monter un dataset ZFS, créer et travailler avec des zpools et des zvols.
NetBSDfr: Comment es-tu devenu développeur NetBSD
? J’imagine que c’est à la suite du GSoC 2008 ?
haad: Je suis devenu développeur NetBSD après avoir passé du temps à
chercher un projet auquel contribuer. Bill Stouder-Studenmund m’a alors
proposé de participer au projet NetBSD. Un peu plus tard, j’ai commencé
mon travail sur LVM, qui est devenu par la suite mon projet pour le Google Summer of Code 2008.
Le portage de LVM était commencé avant le Summer of Code 2008 ?
haad: Oui. La plus grosse partie du pilote device-mapper était déjà
écrite avant que ne commence le GSoC.
NetBSDfr: Combien de temps a pris le portage de LVM
vers NetBSD, de bout en bout ?
haad: Ce n’est toujours pas fini. Mais je dirais environ 1 an et demi.
NetBSDfr: Je suis curieux de savoir comment tu as
appris à connaître le code source du noyau de NetBSD ? Seul ? A l’université ?
haad: Oh, je suis toujours un nouveau venu dans le monde du
développement noyau NetBSD. Je connais les morceaux du noyau sur
lesquels je m’appuie pour mon travail, tels que les pilotes de périphériques, le
device-mapper..
J’ai eu la chance de rencontrer plusieurs développeurs au cours de mon
travail, qui ont eu la patience de me guider à travers le code source du
noyau, et qui m’ont aidé à chaque fois que je rencontrais un problème.
Je dois aussi admettre qu’il y a toujours des parties du noyau dont
j’ignore tout, les appels bas-niveau, les pilotes, l’ACPI, la gestion de la
mémoire… Mais j’ai déjà beaucoup appris en ce qui concerne les
mécanismes de locking, le virtual filesystem et les systèmes de fichiers.
NetBSDfr: Peux-tu nous donner des détails sur le
déroulement du Google Summer of Code ? Comment sont choisis les
étudiants ? Quels sont les critères de succès, s’ils sont prédéfinis à
l’avance ? Est-ce que tous les étudiants ont l’accès en écriture au dépôt CVS du projet ?
haad: GSoC est un programme lancé par Google, dans lequel Google
paye des étudiants pour travailler sur des projets Open Source comme
NetBSD. Tout étudiant peut postuler pendant la période des inscriptions.
A la fin de cette période, les différentes propositions sont analysées par
les mentors du projet (les personnes qui vont guider les étudiants
pendant toute la durée du GSoC), puis un certain nombre sont retenues.
A l’issue du GSoC, tous les étudiants n’obtiennent pas le « commit bit » (le
droit d’écriture dans le dépôt CVS du projet), mais les étudiants ayant
mené leurs projets à bien l’obtiennent souvent.
Pour plus d’infos sur le Google Summer of Code, on pourra consulter le
site http://code.google.com/soc/
NetBSDfr: Quels sont les critères d’évaluation ? La portabilité du code ?
haad: Chaque étudiant qui postule doit définir les objectifs à atteindre
absolument au cours de son projet, ainsi que les objectifs secondaires
(« nice to have »). Les étudiants sont évalués par leurs mentors.
Il n’y a pas vraiment de critères pré-établis. Il faut montrer qu’on a
travaillé sur le sujet, et qu’on a atteint un certain nombre d’objectifs,
qu’on a fait quelque chose. Bien sûr, si, durant l’été, on estime que les
objectifs définis en début de projet sont inatteignables, on peut toujours
les revoir en cours de route. Mais il faut absolument produire quelque
chose :).
NetBSDfr: Comment se passe ton travail avec Andrew
Doran (ad@), ton mentor sur le projet ZFS ? Revoit-il ton code
régulièrement ? Est-ce toi qui sollicite les revues ?
haad: Nous avons des meetings hebdomadaires par Skype / VoIP, au
cours desquels nous discutons des principaux problèmes. Et dès que j’ai
besoin, je peux discuter avec lui par IRC.
A chaque fois que j’implémente un changement important, je demande à
Andrew de jeter un oeil sur mon code.
NetBSDfr: J’allais te demander un point sur
l’avancement du portage de ZFS, mais tu en as déjà parlé en début
l’interview. Penses-tu être en mesure d’atteindre les objectifs fixés au
début du projet ?
haad: Honnêtement, je n’en suis pas certain. ZFS est un gros projet, et il
faudra bien plus qu’un GSoC pour avoir un ZFS pleinement fonctionnel
dans NetBSD. Je pense avoir les bases fonctionnelles à la fin du GSoC. Je
ferai de mon mieux pour atteindre nos objectifs :).
NetBSDfr: En guise de conclusion, peux-tu nous dire
comment tu imagines le futur de NetBSD ?
haad: Le projet NetBSD a fait un bond avec la release de NetBSD 5.0.
Andrew Doran a fait un énorme travail sur cette release. De nombreuses
parties du kernel sont maintenant parfaitement multi-threadées. Sur les
machines multi-cores / multi-CPUs, les performances sont très bonnes
dans de nombreux cas d’utilisation.
Un autre point où nous devons travailler concerne la portabilité vers le
matériel embarqué. De nombreux appareils embarquent NetBSD, et
personne ne le sait!
Nous devons travailler dur pour supporter les systèmes de fichiers pour
mémoire Flash, ainsi que les nombreuses fonctionnalités qu’on trouve
dans ce type de matériel, afin d’attirer de nouveaux développeurs et
porter NetBSD sur de nouveaux matériels.
NetBSDfr: J’ai atteint la fin de ma liste de questions.
Merci mille fois Adam pour ta disponibilité.
haad: np 🙂
Rendez-vous dans quelques semaines pour la prochaine interview. D’ici là, toutes suggestions (questions, personnes à interviewer…) sont les bienvenues.
Edit: Hasard ou coincidence, le jour de la publication de l’interview, Adam a posté un statut sur l’avancement de son travail dans ZFS sur le blog du projet.
Edit 2: Mark Weinem a posé 4 autres questions à Adam dans les commentaires du blog.
Je salue le dévouement des développeurs NetBSD (et des autres projets open source en général).
La lecture de ces interviews me conforte dans le choix d’utiliser cet OS et de m’investir un peu plus que de l’utiliser ! N’hésitez pas à votre tour à y participer, il n’y pas qu’au niveau du code qu’on peut participer, il y a la doc, la contribution à pkgsrc….