Sans système d’exploitation, impossible pour n’importe quel appareil informatique de fonctionner ! À la fois cerveau et colonne vertébrale de vos ordinateurs, smartphones et autres consoles de jeu, ces « Operating Systems » (OS) sont justement au cœur de l’expertise de l’Équipe Systèmes de l’EPITA dont fait partie Marc Espie, un enseignant-chercheur considéré comme l’un des spécialistes mondiaux d’OpenBSD, un OS libre de droit.
En marge du nouvel épisode vidéo de la série « Recherche en cours, EPITA Laboratoire d’innovation » produite par l’école, Marc Espie revient sur la grande histoire de ce pendant à macOS, Windows et autre Linux. Une histoire qui s’écrit toujours aujourd’hui et s’écrira encore demain grâce au travail d’une communauté internationale de passionnés ainsi qu’aux contributions d’étudiants et de chercheurs de l’EPITA !
Comment est né ce projet OpenBSD ?
Marc Espie : OpenBSD est un logiciel qui se rapproche beaucoup de Linux dans le sens où il remplit un petit peu les mêmes objectifs : c’est quelque chose que l’on met sur son ordinateur pour le faire fonctionner, tout simplement. Évidemment, il se rapproche aussi de systèmes d’exploitation comme macOS ou Windows, mais dans un autre registre. En effet, il faut savoir que les origines du projet OpenBSD remontent à la fin des années 1980, quand l’ensemble de logiciels BSD de l’Université de Berkeley (d’où BSD qui signifie « Berkeley Software Distribution ») décide de passer en logiciel libre. Les ordinateurs personnels de cette époque commençant à être assez puissants pour que des personnes décident de créer leur propre système d’exploitation depuis leur garage, un projet plus global, nommé alors NetBSD, voit le jour, dirigé par une poignée de personnes parmi lesquels se trouvait le Canadien Theo de Raadt. Parce qu’il ne mâche pas ses mots et qu’il est doté d’une forte personnalité, Theo de Raadt se fâche un jour avec le reste de l’équipe et décide de quitter le projet pour monter le sien, OpenBSD. Dans l’idée, c’est du logiciel libre : tout le monde a accès au code source, peut « jouer » avec et contribuer…
Quel est le principe d’un système d’exploitation ?
Si vous prenez un ordinateur, vous avez la partie matériel – celle-là, on ne la touche pas – et la partie système-logicielle, celle où il va falloir mettre du code afin de pouvoir faire des choses avec cet ordinateur, y compris des trucs très basiques. Par exemple, enregistrer un fichier sur un disque dur ne se fait pas naturellement : il faut du code et du logiciel au préalable pour faire des fichiers, des répertoires, etc. Tout cela fait partie du système d’exploitation. Et derrière, il y a aussi toute la partie liée à la gestion du réseau, qui n’est pas forcément un truc très simple, mais aussi la gestion du matériel – souris, clavier, carte audio, carte graphique, tablette…
Il y a énormément de petits morceaux d’OpenBSD que vous utilisez dans la vie de tous les jours sans même vous en rendre compte.
Qui utilise OpenBSD ?
En soi, très peu de monde ! Par contre, bien plus de personnes utilisent des « cousins » d’OpenBSD. Prenons Netflix par exemple : l’entreprise a toute son infrastructure de distribution de contenus qui tournent sous FreeBSD… ce qui, l’air de rien, représente tout de même près de 25 % du trafic Internet nord-américain ! Cela concerne aussi plusieurs sous-projets d’OpenBSD, comme OpenSSH ou OpenSMTPD : comme c’est du logiciel libre, on a tendance à les retrouver ensuite essaimés chez des « voisins » – parce que c’est libre, la copie est justement autorisée ! Si vous faites de l’informatique et que, sur l’un de ces projets, vous trouvez un truc bien fait, vous pouvez l’adopter tel quel au lieu de tout refaire de votre côté. De ce fait, il y a énormément de petits morceaux d’OpenBSD que vous utilisez dans la vie de tous les jours sans même vous en rendre compte. Ainsi, le « backbone d’Internet », son infrastructure, repose sur des technologies nées avec ce projet, qui viennent de nos recherches et nos travaux.
Depuis quand travaillez-vous sur OpenBSD ?
Je suis rentré dans le projet en 1998, alors que j’étais encore en train de finir mes études. Fondamentalement, 20 ans après, ce projet n’a pas tellement grossi, dans le sens où, aujourd’hui, quelques dizaines de personnes seulement travaillent actuellement dessus. Cela présente un avantage pour les participants : ils peuvent toucher à tout et s’intéresser à différentes parties du développement.
Quel est l’intérêt de travailler sur un tel projet ?
Pour les chercheurs comme les étudiants, travailler sur OpenBSD permet d’abord de mieux savoir comment marche un ordinateur. D’ailleurs, chez les personnes qui font du système, on retrouve souvent celles qui, enfants, démontaient déjà leurs jouets pour comprendre leur fonctionnement ! Au-delà de cet aspect, ce projet est aussi particulièrement intéressant pour les acteurs de l’industrie, en particulier à l’heure où l’on entend de plus en plus parler de souveraineté numérique et de cloud souverain. Ce dernier sujet nourrit de nombreux débats : peut-on faire confiance à une entreprise française qui récolte les données sensibles de nos concitoyens quand cette même entreprise utilise des technologies cloud étrangères comme celles de Microsoft ou d’Amazon ? Cela peut être sujet à débat car on connaît les possibilités d’espionnage industrielle et les problématiques liées à la législation actuelle – lorsque nos données se retrouvent hébergées aux États-Unis par exemple, elles ne sont plus protégées par le droit européen. Pour éviter cela, il faut donc bénéficier d’une réelle expertise pour savoir comment marche un ordinateur de fond en comble et être capable de tout refaire en partant de rien.
Un autre avantage lié au projet est qu’il y a toujours des choses à faire, parce que l’ordinateur évolue constamment, parce que le milieu dans lequel on fait tourner ces machines change lui-aussi, notamment en matière de sécurité, avec de plus en plus de menaces. OpenBSD sert ainsi régulièrement de laboratoire d’expérimentation pour mettre en place de nouvelles technologies afin d’éviter certains problèmes de sécurité ou limiter leur impact. Nous avons été leaders sur pas mal de sujets en lien avec la sécurité justement, comme sur la protection de la pile, la séparation de droits avancée, l’implémentation d’aléatoire pour rendre plus ardue la tâche des pirates… Des sujets très techniques qui ont d’abord vu le jour via OpenBSD avant d’être utilisés par d’autres systèmes.
La sécurité et la fiabilité sont des notions essentielles du projet, non ?
L’idée quand on développe un sujet technique, c’est qu’il faut absolument que tout fonctionne lorsqu’on le déploie – on ne peut pas se permettre qu’il casse une seule composante. Par exemple, quand on a travaillé sur la randomisation pour OpenBSD, on a un peu tout cassé au départ – nos navigateurs webs ne fonctionnaient plus, notre système Java non plus… Il a donc fallu tout réparer derrière. Cela permet de voir quelles parties ne sont pas assez propres ou adaptées pour fonctionner avec nos technologies. C’est du concret et c’est incontournable pour faire de la sécurité.
Notre défi est de pouvoir amener nos étudiants à grandir à nos côtés, même si cela se fait sur une période assez courte.
Qui sont ces gens qui font évoluer et grandir OpenBSD ?
La démographie d’OpenBSD est plutôt particulière. D’un côté, il y a près de 200 à 250 « sympathisants » – c’est-à-dire des personnes qui gravitent autour – et de l’autre, on a un noyau dur d’environ 70/80 développeurs qui font directement des contributions. Bien sûr, ce chiffre évolue selon les années : certaines personnes travaillent parfois beaucoup dessus et ont moins le temps par la suite, à l’image des étudiants qui n’ont pas toujours la possibilité de s’impliquer autant dans le projet après le début de leur carrière professionnelle. Malgré cela, certains participants sont actifs depuis longtemps. Par exemple, une quinzaine de personnes déjà impliquées sur le projet à mes débuts continuent de l’être aujourd’hui ! C’est aussi ça, l’intérêt d’OpenBSD. Sur un projet comme celui-là, à taille humaine, on peut se permettre d’investir du temps à l’amélioration de divers outils sur la durée. Par exemple, j’ai des lignes de code dans OpenBSD qui ont 15, 20 ans et qui sont maintenues ! Cela permet d’apprendre énormément de choses au fil du temps. Pour les étudiants, c’est aussi un formidable moyen d’apprendre à comment manager un projet sur le long terme, d’autant plus que l’on n’a pas le choix dans le cas d’OpenBSD : il faut continuer à le faire vivre ! J’ai d’ailleurs une « to do list » qui devrait encore me tenir occupé pendant une à deux décennies ! (rires) Et d’ici là, j’aurais sans doute aussi trouvé d’autres choses à faire. Enfin, il est impossible de ne pas aborder la dimension internationale du projet. Dans son noyau dur, on retrouve forcément quelques Canadiens, mais beaucoup d’Européens, notamment en France et dans les pays de l’Est. Avant la pandémie, il n’était d’ailleurs pas rare pour nous, les développeurs, de participer de temps en temps à un séminaire durant une semaine dans l’un de ces pays pour trouver de nouvelles choses intéressantes au niveau du code et renforcer nos liens. Depuis que je travaille sur OpenBSD, j’ai pu me faire pas mal d’amis en Hongrie, en Roumanie, etc. C’est une autre vision de l’Europe !
Quelles compétences acquièrent les étudiants de l’EPITA qui viennent justement rejoindre votre équipe durant leurs études ?
Notre défi est de pouvoir amener nos étudiants à grandir à nos côtés, même si cela se fait sur une période assez courte. De fait, comme il est difficile de pouvoir leur confier de grands projets, ils travaillent en général sur de petits bouts de projets. C’est une façon pour eux de contribuer à un projet vivant en se confrontant à de petites complexités qu’ils n’ont pas l’habitude de gérer et en interagissant avec des gens extérieurs qui ne sont pas forcément prédisposés au contact avec des étudiants – si vous ne faites pas du bon boulot, ils ne prendront pas de pincettes pour vous le signaler. En travaillant sur OpenBSD, les EPITéens doivent donc faire preuve d’encore plus de rigueur ! De mon côté, je suis aussi là pour les accompagner et leur apporter mon expertise car travailler sur un projet libre n’est pas forcément évident. Il y a une méthodologie à acquérir, une manière de savoir comment formater et expliquer sa contribution au projet afin qu’elle soit prise au sérieux par les autres participants. Sans cet accompagnement, on pourrait se sentir un peu perdu au début. Cependant, les nouveaux étudiants arrivant sur le projet peuvent désormais également compter sur le travail des promotions antérieures : comme des contributions honnêtes d’EPITéens ont, au fil des années, été apportées, les participants d’OpenBSD savent que l’EPITA ne fait pas n’importe quoi avec ses étudiants ! Et ces EPITéens peuvent évidemment s’en servir pour leur CV afin de faire valoir leurs compétences.
Qu’est-ce que ce rôle d’enseignant-chercheur représente pour vous ?
Chez moi, c’est une question quasi philosophique, dans le sens où je suis partisan du logiciel libre depuis plus d’une vingtaine d’années. Or, cette notion de logiciel libre s’accompagne de responsabilités particulièrement importantes à inculquer aux futurs ingénieurs qui, souvent après leurs études, partent ensuite travailler dans l’industrie avec en tête des notions assez confuses sur le droit d’auteur en matière d’informatique. Mon rôle comme celui de la recherche est de leur donner des clés, des axes de réflexion. Prenons le cas de la sécurité : à titre personnel, je suis persuadé qu’à terme, elle nécessitera tôt ou tard de « passer sur du libre », pour la simple et bonne raison qu’on ne peut pas tout éternellement cacher sous le tapis. En effet, une meilleure sécurité nécessite de la transparence et, aujourd’hui encore, certains vendeurs refusent de donner les spécifications de leur matériel, ce qui ouvre la porte à de potentielles failles. Or, quand on travaille sur OpenBSD, on apprend à faire du code proprement, pas juste du code qui marche, car on sait que d’autres personnes pourront éventuellement passer derrière. Il faut faire dès le départ du bon travail !
On cherche constamment à pouvoir faire des choses qui n’ont encore jamais été faites ! Nous ne sommes dans de la recherche académique, ni de la recherche déjà en partie défrichée.
Enfin, en quoi la recherche est indispensable à vos yeux ?
Elle représente justement l’un des points les plus attractifs d’OpenBSD : on cherche constamment à pouvoir faire des choses qui n’ont encore jamais été faites ! Nous ne sommes dans de la recherche académique, ni de la recherche déjà en partie défrichée. On ne va pas trouver de nouveaux théorèmes mathématiques ni mettre en place de nouvelles technologies que personne n’a encore jamais essayées de faire. Par contre, on va essayer de déployer de nouvelles choses sur un système sans le casser, pour éventuellement l’améliorer, tout en garantissant des performances décentes. Il y a une grande part d’intuition, de créativité et, finalement, on se retrouve véritablement à cheval entre la technique et l’artistique. Et de cette recherche découle tout le temps de nouvelles découvertes, de nouvelles idées, et donc de nouveaux territoires à explorer !