FLASH INFORMATIQUE FI



Vingt ans pour FreeBSD


Aperçu du chemin parcouru par FreeBSD depuis vingt ans.


An overview of the progress made by FreeBSD over the last twenty years.


Pascal FABBRI




diagramme historique BSD tiré d’une histoire simple d’Unix

Introduction

Alors que NetBSD fêtait ses 20 ans au mois d’avril et que Linux soufflait ses 20 bougies il y a deux ans, FreeBSD 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 [1], 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 [2] qui avec la FSF (Free Software Fondation) 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.
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. 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 :

  • système d’exploitation très bien structuré (systèmes de fichiers, noyau, documentation, ...) et cohérent ;
  • 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 [3] et dbus [4]) ;
  • contrairement à la croyance en vogue, la licence libérale BSD a permis des développements de qualité au sein de FreeBSD ;
  • la communauté se focalise plus sur l’aspect technique que sur les licences et l’activisme idéologique ;
  • il est reconnu dans sa capacité à soutenir un trafic réseau intense en maintenant ses performances ;
  • sa communauté n’est pas fragmentée comme Linux à travers plusieurs distributions différentes possédant chacune sa communauté individuelle ;
  • du côté coupe-feux, son Packet Filtering est meilleur que ceux qui se succèdent sous Linux ;

et continuer avec les arguments en sa défaveur :

  • dans le domaine des machines portables, FreeBSD n’excelle pas vraiment (pas de mise en veille ou d’hibernation) ;
  • les pilotes pour les cartes graphiques arrivent tardivement et péniblement (à l’exception de ceux propriétaires de Nvidia)
  • beaucoup moins de systèmes de fichiers disponibles intrinsèquement par le noyau, ou au niveau utilisateur à travers un outil comme FUSE [5] ;
  • la licence BSD n’offre pas la même protection sur le logiciel que la licence GNU GPL ou GNU 30th qui impose d’importantes restrictions contre la réutilisation du code source dans un logiciel propriétaire ;
  • pas suffisamment agile dans la prise en charge de nouveaux matériels ;
  • OS X [6] est plus facile à utiliser que FreeBSD ;
  • 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 [7], 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 [8]) 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 [9] de recherche et de développement sur le protocole IPv6, en servant d’implémentation de référence. Deux ans plus tard, en 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 [10] 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 [11], é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. 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 :

  • plusieurs milliers de contributeurs,
  • plus de 340 commiters,
  • la 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 [12] 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.

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.

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 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.


 
  Article du FI-EPFL 2013 sous licence CC BY-SA 3.0 /P. Fabbri

[1] (Berkeley Software Distribution) : famille de systèmes d’exploitation composée principalement de NetBSD, FreeBSD et OpenBSD.

[2] Le premier portage BSD sur processeur iNTEL 386.

[3] fournit un gestionnaire dynamique de périphérique sous Linux.

[4] logiciel de communication inter-processus.

[5] 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)

[6] 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.

[7] système de chiffrement symétrique des données, la même clé de 56 bits est utilisée pour le chiffrement et le déchiffrement. Aujourd’hui, on lui préférera Triple DES.

[8] (Zettabyte File System) : développé par Sun Microsystems et mis en production en 2006 avec Solaris 10 1/06.

[9] KAME n’est pas un acronyme. Il signifie tortue en Japonais, mascotte du projet.

[10] (Dynamic Tracing) : développé par Sun Microsystems et mis en production en 2005 avec Solaris 10 3/05.

[11] On pourrait presque parler d’une bonne mise en oeuvre du processus de changement.

[12] logiciel permettant la création et la gestion de machine virtuelle.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.