FreeBSD est un système d’exploitation libre et gratuit de type UNIX, né en novembre 1993 et étroitement apparenté à Mac OS X. Il est surtout réputé pour sa fiabilité comme
serveur web ou tous autres types de serveurs. On notera que la
pile TCP/IP qu'utilisent tous les systèmes d'exploitation actuels pour communiquer selon ce protocole a d'abord été développée sous BSD UNIX, puis sous FreeBSD.

FreeBSD c'est aussi la « distribution » d'un système complet : noyau et outils en espace utilisateur, à savoir un
shell, les programmes tels que
cat et d'autres,
openssh et ainsi de suite. Concernant son développement, une nouvelle branche fait son apparition tous les deux ans environ et des versions mineures peuvent sortir entre-temps. Ces dernières correspondent souvent à des correctifs de sécurité importants. À ce propos, un système installé dans la branche RELEASE est parfaitement adapté pour une utilisation en production et les mises à jour reçues ne concernent
que la sécurité. Utiliser la branche STABLE est considéré comme un peu aventureux mais viable, tandis que passer dans la branche CURRENT est considéré comme suicidaire pour ce type d'exploitation.
Le monde universitaire continue à jouer un rôle non négligeable dans le développement de FreeBSD : BSD UNIX venait de l’Université de Californie et, pour cette nouvelle édition, c’est à l’Université d’Illinois que l’on doit LLVM, tandis que celle de Cambridge a développé Capsicum, deux éléments dont nous parlerons au cours de cet article.
Aujourd'hui, l'équipe de quelque trois cents développeurs officiellement acceptés au sein du projet FreeBSD nous présente la dernière version :
FreeBSD 9.0.
Il existe essentiellement deux versions de FreeBSD :
- FreeBSD proprement dit : destiné d’une part aux serveurs et d’autre part à ceux qui veulent construire eux-mêmes leur système, brique par brique (même pour l'embarqué grâce à nanoBSD), en personnalisant noyau et système de base, en l'adaptant exactement à leurs besoins. Cette version ne pré-installe aucune interface graphique, ni d’ailleurs rien d’autre que le système de base.
- PC-BSD : un FreeBSD pré-configuré, pour ceux qui veulent un système « clé en main », immédiatement utilisable sur leur ordinateur personnel.

D'autres dérivés de FreeBSD existent, se référer à
ce wiki.
Nouveaux programmes d'installation
Les précédentes versions de PC-BSD pré-installaient d’office un bureau KDE. Avec l’édition 9.0, baptisée
Isotope, le programme d’installation vous propose de choisir votre interface graphique : KDE, GNOME, etc. L'installateur natif de FreeBSD a été revu, lui aussi, et s'est grandement simplifié, ce qui ne manquera pas de soulager les nouveaux installateurs de ce système ! J'ai rectifié le tutoriel
À la découverte d'UNIX (FreeBSD) pour expliquer la nouvelle procédure. Les deux versions proposent maintenant un
live mode, pour dépanner votre ordinateur ou pour tester FreeBSD (ou PC-BSD) avant de l’installer, et vérifier par exemple sa compatibilité avec votre matériel.
Capture d'écran tirée d'une version bêta. Dans la version définitive, on peut tout mettre en Français
USB 3
Qui dit mise à jour dit bien sûr nouveaux pilotes pour toutes sortes de nouveaux périphériques. En particulier, les systèmes de type USB 3, à l'instar des disques durs externes, sont maintenant supportés.
LLVM et Clang
L’édition 9.0 marque l'intronisation de
Clang, un nouveau compilateur pour les langages C, C++ et Objective-C. Clang est basé sur
LLVM. Le temps de compilation d'un programme écrit en Objective-C avec Clang serait trois fois plus court qu'avec
GCC, l’ancien compilateur. Un autre avantage est que les fichiers provisoires que génère Clang pendant une compilation occupent beaucoup moins de place sur le disque. C'est important quand on compile un très gros programme. En effet, sous FreeBSD, l'une des manières d'installer un programme consiste à télécharger son code-source via les
ports et à le compiler directement sur sa machine. Et quand on lance un
make buildworld pour recompiler l'espace utilisateur en prévision de l'ouverture d'une
prison, il faut conserver ces fichiers provisoires. Il est donc essentiel qu’ils ne soient pas trop volumineux.
Pour les développeurs, sachez que
Clang est
par défaut plus exigeant que
GCC, comme le montre cet exemple :

Là où GCC ne trouve rien à redire, Clang met deux warnings. Il recopie la ligne incriminée et souligne en vert ce qui le dérange, avec même une proposition de remplacement dans le second cas. Toutefois, ces warnings sont parfaitement affichables avec GCC en paramétrant la ligne de commande de compilation.
LLVM apporte aussi à FreeBSD la bibliothèque libc++ (pour le C++), déjà utilisée par Apple. Or, la libc de Mac OS X (pour le C) est depuis le début une version à peine modifiée de celle de FreeBSD. On se dirige donc vers une compatibilité binaire entre ces deux systèmes d’exploitation : porter sur FreeBSD des applications Mac va devenir un jeu d’enfant.
Accessoirement, GCC est depuis quelque temps sous GPLv3, une licence qui ne fait pas l'unanimité dans la communauté du logiciel libre (Linus Torvalds, par exemple, a préféré laisser Linux sous GPLv2) et freine parfois l’adoption de logiciels libres par certaines entreprises. Le choix de Clang et de LLVM, dont la licence est de type BSD (proche de la mise dans le domaine public), règle ce problème. Dans le même état d’esprit, les commandes UNIX sous GPLv3 (comme grep) ont été ré-implémentées et sont maintenant sous licence BSD.
Il faudra du temps avant que chaque port soit modifié et fasse appel à Clang plutôt qu'à GCC, mais on peut déjà forcer manuellement le recours à Clang en tapant make CC=clang CXX=clang++. Cependant, on notera que tous les ports ne compilent pas encore avec Clang ou sont inutilisables si la compilation s'opère avec un niveau d'optimisation (-Ox) trop élevé.
Sécurité
Les
prisons de FreeBSD, permettent depuis bien longtemps d'exécuter certains processus dans un environnement confiné, depuis lequel ils ne peuvent absolument pas affecter le reste du système. Ce système est très sécurisé mais un peu radical. Pour permettre un réglage plus fin de ce que les processus ont le droit de faire ou pas, il y a donc maintenant
Capsicum : un système basé sur la notion de
capacités. Contrairement aux permissions, qui définissent les droits des utilisateurs, les capacités définissent ceux des programmes. Cet
article paru en avril détaille le principe de Capsicum.
L'équivalent approximatif de Capsicum sous Linux est SELinux, installé et configuré par défaut dans la distribution Fedora. Mais SELinux utilise un
contrôle d'accès obligatoire plutôt que des capacités.
Toujours à propos de sécurité, le pare-feu
Packet Filter et le canal sécurisé
OpenSSH, importés d’OpenBSD il y a quelques années, sont mis à jour :
- Packet Filter : importé d'OpenBSD 4.5
- OpenSSH : version 5.8p2 de mai 2011
DTrace
OpenSolaris n’est plus, mais le développement de cette technologie se poursuit sous FreeBSD.
DTrace permet à un administrateur d’écrire des scripts pour analyser l’état du noyau (déjà dans FreeBSD 8) et désormais du système d’exploitation en général, afin de corriger d’éventuels dysfonctionnements. C'est aussi très pratique pour déboguer des programmes. L’exécution de ces scripts n’affecte pas les performances du système, même si on en lance beaucoup à la fois.
ZFS
Autre legs d’OpenSolaris, le système de fichiers
ZFS (une manière d’organiser les données sur le disque dur), introduit à titre expérimental sous FreeBSD 7, est maintenant bien intégré et se perfectionne chaque jour.
Il permet notamment :
- De compresser systématiquement les données.
- De contrôler leur intégrité (checksum automatique).
- De cloner l’ensemble du système de fichiers sur plusieurs disques (mirroring, RAID).
- De prendre régulièrement des clichés du système de fichiers, et donc, en cas de besoin, de remonter le temps pour restaurer vos fichiers dans l'état où ils étaient avant que vous n'en effaciez la moitié par erreur, sans pour autant consommer beaucoup d’espace disque, ni même avoir besoin d’un second disque ou d’une onéreuse « Time capsule ».
Ce système d'instantanés, contrairement à ce qu'on pourrait penser, ne consomme pas tant d'espace disque que cela. Entre un instantané et votre système actuel, 99% des données sont communes et un système de pointeurs permet de ne les enregistrer qu'une fois. Donc seules les nouveautés prennent de la place.
Une autre solution, s'il reste de l'espace libre sur votre disque, consiste à laisser la partition FreeBSD au format UFS et à créer une partition ZFS à côté pour vos données les plus précieuses. Plusieurs
utilitaires sont maintenant disponibles pour profiter des fonctionnalités de ZFS plus simplement qu'avec les commandes UNIX. L'un d'eux propose même un script intégrable directement dans
Nautilus (le gestionnaire de fichiers de GNOME). Pour en savoir plus sur ZFS, consultez
ce wiki.
Nouveaux utilitaires spécifiques à PC-BSD
Tous les réglages du système sont maintenant centralisés dans un unique
panneau de configuration indépendant du type de bureau que vous avez choisi.
Et si vous avez sous la main une vieille unité centrale sans écran ni clavier dont vous ne savez plus quoi faire, il est possible de la transformer en un serveur
FreeNAS grâce auquel vous pourrez archiver des fichiers ou les échanger entre vos divers ordinateurs. Même si l'espace disque de votre vieille unité centrale est limité, l'emploi du système de fichiers ZFS vous permettra d'y stocker pas mal de données. La petite bouée sur le tableau de bord de PC-BSD ouvre un utilitaire spécial pour communiquer avec votre serveur FreeNAS. Mais vous pouvez aussi y accéder depuis un autre système d'exploitation, via une interface web.
Logiciels disponibles
La sortie d’une nouvelle version de FreeBSD n’est pas, comme avec la distribution Linux Ubuntu par exemple, le moment tant attendu qui permet enfin d’accéder à de nouveaux dépôts de logiciels tiers. Les trois dépôts de FreeBSD (les ports, les paquets classiques et les paquets PBI) sont mis à jour en permanence et accessibles aussi bien depuis FreeBSD 7 que depuis FreeBSD 8 ou 9.
On peut quand même faire le point sur les numéros de version de quelques logiciels disponibles aujourd’hui dans ces trois dépôts. Mais j'insiste sur le fait qu'ils ne resteront pas figés pendant six mois.
- Firefox 9.0.1 (sauf le paquet classique, qui reste en 3.6.22)
- KDE 4.7.3
- GNOME 2.32.1
- Xfce 4.8.3
- LibreOffice 3.4.4
- VLC 1.1.13
- Apache 2.2.21
- nginx 1.0.11
Pour récupérer le catalogue des ports et des paquets classiques, utilisez la commande
portsnap fetch extract (puis
portsnap fetch update quand vous voulez les mettre à jour). Sous PC-BSD, les paquets PBI sont disponibles dans l'
AppCafé (Café des Applications). Pour y accéder sous FreeBSD, installez d'abord
pbi-manager.
Sachez également que les principales anciennes versions d'un même logiciel restent souvent disponibles dans les ports, comme
Apache 1.3 ou
Thunderbird 3. Pensez à consulter
FreshPorts, et n'oubliez surtout pas le fichier
UPDATING à consulter avant la mise à jour de vos ports.
Conclusion
Alors que FreeBSD 9 apporte son lot de nouveautés concernant les compilateurs, un objectif de la
feuille de route de FreeBSD 10 est de se séparer complètement des outils GNU dans le système de base. Ils étaient jusque-là nécessaires pour GCC. Enfin, n'hésitez pas à venir poser vos questions sur
le forum du Site du Zéro ou, pour ceux qui parlent la langue de Shakespeare, sur
les forums officiels de FreeBSD. Mais, avant tout, n'oubliez pas la
bible de FreeBSD.
Liens et sources
81 Participations
Connectez-vous !
Connectez-vous !
Revenir à la liste des news
Lire aussi