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.

Documents pareils