Vingt ans pour FreeBSD - Flash informatique
Transcription
Vingt ans pour FreeBSD - Flash informatique
Logiciel libre Vingt ans pour FreeBSD Pascal.Fabbri@epfl.ch, Domaine-IT, Responsable Unix au Domaine IT An overview of the progress made by FreeBSD over the last twenty years. Aperçu du chemin parcouru par FreeBSD depuis vingt ans. Introduction Alors que NetBSD [1] fêtait ses 20 ans au mois d’avril et que Linux soufflait ses 20 bougies il y a deux ans, FreeBSD [2] quant à lui célébrera sa 20ème année d’existence en novembre prochain concomitant de la libération prévue, le même mois, de FreeBSD 10. Sa première version officielle fut présentée en décembre 1993. Cet article se penche sur le parcours de FreeBSD et met en évidence les caractéristiques qui en font un excellent système d'exploitation. Il apporte aussi une compréhension de la structure de son organisation ainsi qu’une sensibilisation à un modèle de développement particulier distribuant ses sources librement au public. Le monde du libre, bien qu’il soit universellement identifié à travers le noyau Linux et le panorama de distributions et logiciels qui l’enrobe, a, parmi les membres de sa lignée les moins connus des systèmes d’exploitation de la famille BSD &, tous héritiers directs de la variante Unix qui vit le jour à l’Université de Berkeley en 1977, dont le plus célèbre est FreeBSD. Présentation On ne peut pas parler des débuts de FreeBSD sans évoquer également NetBSD, tant leurs origines sont étroitement liées. Ces deux systèmes d’exploitation ont démarré en 1993, mais leur histoire est encore plus ancienne que celle de Linux. NetBSD est un système d’exploitation dérivé d’Unix, libre, très portable et disponible sur un grand nombre de plates-formes. Le développement d’Unix débuta au sein des laboratoires Bell (Bell Labs AT&T) dans les années 1960. Le terme BSD fait référence à une famille de systèmes d’exploitation, dérivés des travaux de l’Université de Berkeley et qui partagent des idées communes comme, la façon de compiler le noyau et celle de distribuer le système comprenant le noyau, le système de base et ses outils. À l’opposé de Linux, qui n’est pas un authentique dérivé Unix, BSD prit racine dans le système Unix fourni par AT&T dont découlent, à partir de 1990, respectivement 4.3BSD-Lite et 386BSD & qui avec la FSF [3] permirent de constituer FreeBSD 1.0 en décembre 1993. L’année suivante le cofondateur de NetBSD, Theo de Raadt, quitte le projet pour fonder en octobre 1995 le projet OpenBSD [4]. Les systèmes d’exploitation de la famille BSD partagent la même architecture monolithique du noyau, les mêmes approches d’implémentation des fonctionnalités ainsi que la même philosophie. Chaque système de la famille est un système d’exploitation distribué dans un ensemble fonctionnel complet avec un noyau prêt à l’emploi comprenant le code source – recompilable au besoin, le système de base, sans avoir recours à des paquetages supplémentaires, eux-mêmes intégrés au système de base comportant quelquefois d’autres types de licences que celle de BSD [5]. D’un point de vue strict, Linux est un noyau, et pour en faire un système d’exploitation complet il faut lui ajouter un système de base. Ce sont les ensembliers (agrégateurs) comme Fedora ou Ubuntu qui, par leur travail d’agencement réunissant des librairies et un système de paquetages, forment un système d’exploitation appelé distribution Linux. Que se soit pour NetBSD ou FreeBSD, le développement du logiciel – noyau et système de base – est contenu dans un seul ensemble, tandis qu’une distribution Linux peut se passer de développeurs participatifs au noyau Linux, au profit d’agrégateurs en mesure de réunir des logiciels travaillant ensemble pour former une distribution Linux organisée autour d’un système de paquet. Les distributions connaissent trois grands types de système (archives) de paquets, RPM pour Fedora (Red Hat), DEB pour Debian (Ubuntu) et TGZ. FreeBSD face à Linux En parcourant les différents forums de discussions sur FreeBSD recueillant des commentaires à caractère technique ou des moqueries plus ou moins voilées face à Linux et les distributions qui l’embarquent, on peut relever quelques arguments en sa faveur: z système d’exploitation très bien structuré (systèmes de fichiers, noyau, documentation, ...) et cohérent; z FreeBSD n’est pas Linux, il est digne de confiance, stable, simple (on n’y trouve pas d’outils laborieux et compliqués (comme udev & et dbus &); z contrairement à la croyance en vogue, la licence libérale BSD a permis des développements de qualité au sein de FreeBSD; z la communauté se focalise plus sur l’aspect technique que sur les licences et l’activisme idéologique; z il est reconnu dans sa capacité à soutenir un trafic réseau intense en maintenant ses performances; z sa communauté n’est pas fragmentée comme Linux à travers plusieurs distributions différentes possédant chacune sa communauté individuelle; z du côté coupe-feux, son Packet Filtering est meilleur que ceux qui se succèdent sous Linux; 29 OCTOBRE 2013 - N° 6 7 Vingt ans pour FreeBSD et continuer avec les arguments en sa défaveur: z dans le domaine des machines portables, FreeBSD n’excelle pas vraiment (pas de mise en veille ou d’hibernation); z les pilotes pour les cartes graphiques arrivent tardivement et péniblement (à l’exception de ceux propriétaires de Nvidia) z beaucoup moins de systèmes de fichiers disponibles intrinsèquement par le noyau, ou au niveau utilisateur à travers un outil comme FUSE &; z la licence BSD n’offre pas la même protection sur le logiciel que la licence GNU GPL [6-7] qui impose d’importantes restrictions contre la réutilisation du code source dans un logiciel propriétaire; z pas suffisamment agile dans la prise en charge de nouveaux matériels; z OS X &est plus facile à utiliser que FreeBSD; z les logiciels sont moins nombreux que pour la distribution Debian et ses dérivées. Quelquefois il devient nécessaire de passer par la couche d’émulation Linux pour exécuter un logiciel qui n’existe que pour Linux. Faits marquants Dans sa première version, FreeBSD précise que son noyau ne contient pas de code permettant le chiffrement DES &, ce qui empêcherait son exportation en dehors des États-Unis, puisqu’il est illégal d'exporter des États-Unis l'algorithme de chiffrement DES. Cependant, le système de base met à disposition un paquet logiciel regroupant tous les logiciels faisant appel au chiffrement DES exploitables uniquement aux États-Unis. Sans ironie, la documentation propose une librairie basée sur du code source écrit par l'Australien David Burren permettant de contourner cette limitation sans devoir modifier les programmes existants disponibles sur les sites FTP d'Afrique du Sud, du Brésil et de Finlande. Depuis ses débuts, le système de fichiers natif de FreeBSD fut Unix File System (UFS), qui par la suite se modernisa largement pour devenir UFS2, ajoutant la possibilité de sauvegardes instantanées (snapshot) et permettant une grande volumétrie dans les systèmes de fichiers (16 TB par système). Depuis 2008 avec FreeBSD 7.0, Z File System (ZFS &) est aussi disponible comme système de fichiers natif. En 2000, le mécanisme Jails fait son introduction afin de permettre le confinement d’environnement d’exploitation. Les processus ainsi isolés ne peuvent pas communiquer avec les processus existant en dehors du confinement. Chaque environnement confiné possède, entre autres, son propre plan d’adressage réseau. FreeBSD 4.0 fut salué pour sa stabilité et était le système d’exploitation préféré des fournisseurs d’accès Internet et d’hébergement Web. Cette version fut supportée par le projet pendant plus de six ans, en terminant sa vie au début de l’année 2007 avec le numéro 4.11. Le réseau a toujours été au coeur de FreeBSD, et c'est ainsi que naturellement il prit part dès son lancement en 1998 au projet KAME 1 de recherche et de développement sur le protocole IPv6, en servant d'implémentation de référence. Deux ans plus tard, en KAME n'est pas un acronyme. Il signifie tortue en Japonais, mascotte du projet. 1 8 flash informatique 2000 avec la version 4.0, un ensemble fonctionnel complet fut rendu disponible avec notamment la pile du protocole incluse au noyau, des outils dédiés et des applications modifiées pour prendre en charge IPv6. FreeBSD 7.1 introduit DTrace & fin 2008, l’outil d’analyse du noyau et des applications en temps réel permettant d’obtenir des informations détaillées sur les événements et opérations du système d’exploitation. Non seulement DTrace est un outil d’analyse de performance, mais il est aussi un véritable langage de type script. Son utilisation n’introduit aucune pénalité sur les performances du système en production. ZFS est devenu un des systèmes de fichiers naturels qui combine un gestionnaire de volumes avec un système de fichiers. ZFS protège toutes les données avec des sommes de contrôle 64 bits qui détectent et corrigent la corruption silencieuse des données. Licences FreeBSD ou NetBSD sont des systèmes d’exploitation open source au même titre que Linux, mais couvrant des horizons différents. Cependant, en raison de leur licence BSD, tout un chacun, un particulier comme une société de petite comme de grande importance, peut se saisir de son code source distribué librement, le modifier pour ses besoins spécifiques sans jamais le dévoiler pour en faire profiter la communauté. Cette façon de faire, sans doute, heurtera une partie des adeptes du libre, mais laissera une chance à de petites entreprises de pouvoir grandir à leur rythme sans être prises de cours par d’autres concurrentes dont les moyens sont plus importants, leur permettant aussi de réduire le temps, les risques et les coûts liés au développement, et sans doute d’améliorer la qualité de leurs produits sur le long terme. Cette souplesse reste impossible face à la licence GNU GPL très dogmatique en terme de liberté. La liberté ne peut être accaparée et il est mal venu de l’enfermer dans une pensée unique. On entend souvent dire que la liberté s’arrête là où commence celle des autres. Ainsi, en gardant une attitude conservatrice et intransigeante, même lorsque l’on cherche à défendre la liberté, on se rend néfaste à la liberté. Les petites entreprises, les organisations comme les personnes ont le droit d’exister. Structure organisationnelle FreeBSD est un système d’exploitation complet et bien conçu, possédant une communauté de développement forte et active, en parallèle à celle des utilisateurs, en mesure de suivre le fil d’avancement des technologies permettant de garder un système puissant avec des fonctionnalités récentes s’intégrant sans bouleversement avec celles déjà en place. La cohérence du système est probablement une de ses grandes forces, facilitant son apprentissage et le maintien des connaissances à travers le temps, car les modifications significatives restent inexistantes 2, évitant ainsi la rupture avec ses acquis. FreeBSD est développé et géré par ses contributeurs autour d'une organisation de projet divisée en trois niveaux non hiérarchiques. On pourrait presque parler d’une bonne mise en œuvre du processus de changement. 2 Vingt ans pour FreeBSD 1969 Unics 1971 to 1973 UnixTSS 1 to 4 1974 to 1975 UnixTSS 5 to 6 Open Source Mixed/Shared Source Closed Source 1978 BSD 1.0 to 2.0 1979 UnixTSS 7 Unix 32v 1980 BSD 3.0 to 4.1 1981 1982 BSD 4.2 1983 Sun OS 1 to 1.1 1984 1985 UnixTSS 8 BSD 4.3 1986 1987 1988 1989 1990 1991 UnixTSS (Time Sharing System) 9 to 10 Sun OS 1.2 to 3.0 BSD 4.3 Tahoe BSD 4.3 Reno BSD NET/2 Sun OS 4 1992 1993 1994 1995 1996 1997 1998 386BSD FreeBSD 1.0 to 2.2.x BSD 4.4 to 4.4 lite2 FreeBSD 3.0 to 3.2 NetBSD 0.8 to 1.0 NetBSD 1.1 to 1.2 OpenBSD 1.0 to 2.2 NetBSD 1.3 1999 2000 2005 OpenBSD 2.3 to 5.x FreeBSD 3.3 to 9.x NetBSD 1.3 to 6.x 2008 2009 2010 2011 diagramme historique BSD tiré d'une histoire simple d'Unix [8] 29 OCTOBRE 2013 - N° 6 9 Vingt ans pour FreeBSD Comme la ressource principale de la communauté FreeBSD est formée des développeurs catégorisés en deux groupes: les commiters qui ont les droits d’écriture permettant de modifier les dépôts des sources, et les contributeurs sans ce privilège. Les commiters sont les développeurs les plus actifs contribuant au projet de manière récurrente qui passent leur temps non seulement à l'intégration de leur code source, mais aussi, et surtout, à celui soumis par les contributeurs qui constituent plus de 75 % des changements apportés à l'ensemble du code source. La Core Team constitue une sorte de conseil d'administration responsable de décider des objectifs et des directions générales du projet. Cette équipe de base, formée de stakhanoviste, est élue tous les deux ans par le groupe de commiters. Elle promeut les contributeurs actifs à la fonction de commiters et leur assigne un rôle au sein du projet. En résumé, il y a: z plusieurs milliers de contributeurs, z plus de 340 commiters, zla Core Team se constitue de neuf membres. Version 10 Avec FreeBSD 10 s’ajoutera le VPS (Virtual Private System), une nouvelle technologie de virtualisation native au système, qui offrira une vraie virtualisation des ressources du noyau allant jusqu’à permettre la migration à chaud entre machines physiques. L’hyperviseur & BSD aussi prévu, exécutera FreeBSD dans un hyperviseur de type 2 – comme QEMU ou VirtualBox. Des deux points de vue technique et philosophique un élément important reste à souligner, c’est la suppression de la licence GNU GPL du système de base. Cette décision est l'apanage de la FreeBSD Core Team qui considère important pour le projet d'accompagner des environnements naissants n'appréciant pas ou simplement n'acceptant pas la licence GPL. Conclusion Si votre parcours informatique n’a que rarement croisé la culture Unix, songez à FreeBSD qui s’avérera un excellent choix pour vos besoins en services d’infrastructure nécessitant une stratégie à long terme. Pour des besoins plus modestes ou simplement pour en mesurer ses caractéristiques, un ordinateur personnel fera l’affaire que ce soit avec FreeBSD lui-même ou avec son dérivatif PC-BSD [9] facilitant son expérience. Comme pour toute nouvelle matière, son apprentissage peut prendre du temps, mais une fois ces connaissances acquises, vous les trouverez certainement bien plus pérennes que celles obtenues sur d’autres systèmes d’exploitation. Puis, à relativement court terme, FreeBSD vous apportera beaucoup de satisfaction tout en vous libérant énormément de temps pour poursuivre dans d’autres activités essentielles. Références [1] Projet NetBSD, netbsd.org [2] Projet FreeBSD, www.freebsd.org [3]FSF (Free Software Fondation), www.fsf.org/about/ [4] Projet OpenBSD, openbsd.org [5] Licence BSD, eng.anarchopedia.org/index.php/BSD_license [6] Licence GNU GPL, https://www.gnu.org/licenses/gpl.html [7] GNU 30th, https://gnu.org/gnu30 [8] Diagramme historique BSD, https://en.wikipedia.org/wiki/ File:Unix_history-simple.svg [9]PC-BSD, www.pcbsd.org/fr/about/. Article du FI-EPFL 2013 sous licence CC BY-SA 3.0 / P. Fabbri Autre anniversaire Autre anniversaire marquant cette année: celui des 30 ans du projet GNU de Richard Stallman, fondé en septembre 1983 dans le but de créer un système d'exploitation libre. Les outils de développement furent en premier lieu produits avec en particulier le compilateur qui participa généreusement au lancement du noyau Linux en 1991 ainsi qu'au lancement des systèmes d'exploitation FreeBSD et NetBSD en 1993. GLOSSAIRE & 386BSD: Le premier portage BSD sur processeur iNTEL 386. BSD (Berkeley Software Distribution): famille de systèmes d'exploitation composée principalement de NetBSD, FreeBSD et OpenBSD. dbus: logiciel de communication interprocessus. DES: système de chiffrement symétrique des données, la même clé de 56 bits 10 flash informatique est utilisée pour le chiffrement et le déchiffrement. Aujourd’hui, on lui préférera Triple DES. DTrace (Dynamic Tracing): développé par Sun Microsystems et mis en production en 2005 avec Solaris 10 3/05. DTRT (Do The Right Thing): souvent rencontré dans les fils de discussions pour dire: faites les choses correctement. FUSE: ce projet est spécialisé dans la mise en place de systèmes de fichiers virtuels dans l’espace de travail utilisateur (userspace, en dehors du noyau) Hyperviseur: logiciel permettant la création et la gestion de machine virtuelle. OS X:Système d’exploitation d’Apple Inc., plus connu par l’acronyme Mac OS X. OS X prend ses origines dans la famille BSD et NexTSTEP. udev: fournit un gestionnaire dynamique de périphérique sous Linux. ZFS (Zettabyte File System): développé par Sun Microsystems et mis en production en 2006 avec Solaris 10 1/06.