# FreeBSD

FreeBSD est un système d'exploitation UNIX libre. Le nom vient de l'association d'une part de free qui signifie à la fois « libre » et « gratuit » dans l'anglais courant, et d'autre part de Berkeley Software Distribution (BSD), l'UNIX développé à l'université de Berkeley. Free prend un sens plus connoté dans ce nom : il signifie que le logiciel peut être utilisé gratuitement même pour un usage commercial, que les sources complètes sont disponibles et utilisables avec un minimum de restrictions quant à leur usage, leur distribution et leur incorporation dans un autre projet (commercial ou non), et enfin que n'importe qui est libre de soumettre son code source pour enlever un bug ou améliorer le logiciel, ce code étant incorporé aux sources après accord.
L'objectif du projet FreeBSD est de fournir un système qui puisse servir à tout, avec le moins de restrictions possibles.
Historiquement, les développeurs se sont focalisés pendant un temps sur la plate-forme i386 au sens large (x86) et les performances, c'est-à-dire les temps de réponses du système pour n'importe quelle sollicitation. En 2010, FreeBSD est utilisable et soutenu par la communauté sur un grand nombre de plates-formes : Alpha, AMD64, ARM, i386 (architecture i386 ou x86, incluant les Pentium), ia64 (la famille de processeurs Intel Itanium et Itanium 2), MIPS, PC98 (architecture NEC PC-98x1), PowerPC, SPARC (architecture UltraSPARC de Sun Microsystem) et Xbox.
FreeBSD offre des possibilités avancées en matière de réseau, de performance, de sécurité et de compatibilité. Il y a notamment une compatibilité binaire Linux et Windows NT (XP inclus). La première permet l'exécution de programmes compilés sur une plateforme GNU/Linux, la seconde permet l'utilisation des pilotes Windows NT des cartes réseau sans fil Wi-Fi. Le logiciel est un standard industriel sur le marché des serveurs. De nombreux fournisseurs d'accès, hébergeurs et organismes utilisent FreeBSD, parmi lesquels Walnut Creek CDROM, Yahoo! Inc. ou Netcraft. Le 24 mai 1999, l'équipe du serveur miroir ftp.cdrom.com a annoncé avoir battu la veille leur record de transfert de données pour un serveur : 1,33 tébioctet en 24 heures. FreeBSD est également utilisé par les géants du numérique moderne, par exemple Netflix pour diffuser ses contenus audiovisuels au travers de ses infrastructures.

## Histoire

FreeBSD tire ses origines de l'UNIX de Berkeley. Beaucoup de l'organisation humaine, de l'idéologie et des événements du Computer Systems Research Group (en) (CSRG) sont restés dans FreeBSD et se transmettent.
Le projet est lancé en 1993 sur la base de 386BSD, et la version 1.0 est disponible en production dès novembre 1993. L'équipe de Yahoo! cherche alors un système d'exploitation stable et performant. Ils le trouvent avec FreeBSD 2, qu'ils installent sur un Pentium 100 puis sur l'ensemble de leurs ordinateurs, comme le raconte David Filo, cofondateur de Yahoo!
Depuis, l'hébergeur met à disposition plusieurs serveurs pour la communauté FreeBSD.
FreeBSD 3 importe du code de 4.4BSD-Lite release 2, qui est la dernière publication faite par l'université de Californie à Berkeley (UCB). FreeBSD devient particulièrement mûr et performant avec les versions 4, jusqu'à la dernière (4.11) parue en janvier 2005.
Une grande quantité de nouveautés apparaît avec les versions 5, mais Matthew Dillon, en désaccord avec d'autres membres de la core team (les développeurs dirigeants) décide de continuer la version 4 avec une nouvelle équipe sous le nom de DragonFly BSD. Parmi ces nouveautés, on compte : une architecture multiprocesseurs nouvelle génération (SMPng, Symmetrical Multi-Processor scheduler next generation) avec des temps de latences plus courts, la possibilité d'exécuter en mode kernel plusieurs programmes, le système de fichiers UFS2, un système de politiques de sécurité en provenance de Trusted BSD.
Les versions 6 apparaissent en novembre 2005. Elles continuent entre autres le travail sur le système SMP (Symmetrical Multi-Processor scheduler), les threads, et la sécurité. Le système de fichiers est maintenant multi-threadé, et les processeurs 386 ne sont plus gérés. Il y a trois releases (publications) en 2006 et une en 2007.
La version 7.0 sort le 27 février 2008 et la 8.0 en novembre 2009. Parmi les nouveautés importantes figure le nouvel ordonnanceur, SCHED_ULE, optimisé pour les machines multiprocesseurs sans diminution des performances en monoprocesseur. Cette version a néanmoins été critiquée pour l'intégration tardive de la propolice au sein du kernel.
La version 8.0 sort en juillet 2010. Elle sera supporté jusqu'en juin 2015 avec la version 8.4. En 2013, la version 8.4 proposait de nouvelles fonctionnalités sur le domaine matériel avec le support de l'USB 3.0 et l'accélération d'AES sur les processeurs Intel. FreeBSD 8.4 apportait du nouveau dans le domaine de la virtualisation avec notamment l'appui de DomU Xen et la virtualisation des couches réseau.
Le 12 janvier 2012, la version 9.0 est marquée par le nouvel installeur bsdinstall et l'arrivée de FreeBSD sur la console Playstation 3. Par la suite, Sony Interactive Entertainment réutilisera FreeBSD 9.0 pour l'OS de la Playstation 4.
La version 10.0 de FreeBSD (20 janvier 2014) a vu la dépréciation de GCC remplacée par celle de Clang ainsi que d'autres changements mineurs.
FreeBSD 11.0 sort le 10 octobre 2016 et apporte quelques modifications dont la prise en charge plus large pour les pilotes de réseaux sans fil et la prise en charge de l'architecture arm64.
En décembre 2018 la version 12.0 de FreeBSD fut publiée, cette version apporte l'ajout du pilote netdump et quelques améliorations du support graphique.
La version 13.0 de FreeBSD est annoncée le 13 avril 2021. Les principaux changements sont la mise à jour de la chaîne de compilation vers CLANG V11.0 ainsi que la suppression de GCC et GDB de l'arborescence système.
Le 20 novembre 2023, la version 14.0 de FreeBSD sort, où des améliorations sont apportées aux chargeurs d'amorçage. Les pilotes de cartes son sur le bus ISA sont retirés.

## Développement

Beaucoup est resté de l'époque Berkeley Software Distribution et du CSRG avec, entre autres, de grandes parties des sources, des sources publiées avec le système, des décisions prises par un groupe réduit de développeurs. Les développeurs sont dispersés dans le monde entier. Les sources de toutes les branches depuis la version 2.2 jusqu'aux dernières expérimentations de CURRENT sont en permanence disponibles sur les serveurs. Il est même possible de télécharger les sources d'une branche telles qu'elles étaient à une date précise.

### L'équipe

Le développement se fait d'une manière assez hiérarchisée. La core team rassemble des développeurs élus qui décident de l'évolution générale de FreeBSD. Ils sont actuellement neuf, et on compte 29 anciens (depuis 1992) qui continuent à contribuer. Les élections se tiennent tous les deux ans.
Les autres équipes sont responsables de :
* la sécurité (sept membres) ;
* des releases (une équipe principale et autant d'équipes que de plates-formes) ;
* de la documentation ;
* de la gestion des ports ;
* des dons.
Certains développeurs font partie de plusieurs équipes, par exemple core team et release engineering team.
FreeBSD compte en novembre 2006 :
* environ 370 développeurs (dont les membres de la core team) qui ont accès en écriture aux sources officielles ; ce sont les FreeBSD committers, terme venant de la commande commit du programme CVS (Concurrent Version System), qui permet de transmettre les modifications sur le serveur central ;
* 1905 contributeurs sans privilège ;
* un certain nombre d'utilisateurs et testeurs, parmi lesquels des individus, des organismes, des fournisseurs d'accès et des hébergeurs en général.
Il y a régulièrement des importations et exportations de code entre les systèmes BSD (FreeBSD, NetBSD, OpenBSD, DragonFly BSD). Par conséquent, les développeurs BSD en général participent au code des BSD. Il y a plusieurs raisons à cela : tous ont pour ancêtre commun 4.4BSDLite et ont une architecture proche - en moyenne bien plus que deux distributions GNU/Linux, et tous ont la même licence BSD.
D'autres licences proches comme celle de Solaris permettent également des flux de code. Dtrace, un outil Solaris qui permet de voir d'une manière arbitraire tout ce qui se passe dans le système, est ainsi en train d'être porté sur FreeBSD :
* Devon O'Dell a commencé une grande partie du travail ;
* John Birrell principalement le continue :
** l’avancement peut être suivi sur la page du projet,
** fin mai 2006, 793 sur 1 039 tests que DTrace réalise sous Solaris, réussissent sous FreeBSD.
Apple a utilisé une grande partie du système version 5, et a participé en retour à l'ajout de fonctionnalités. Il y a donc une communauté de développeurs FreeBSD – au sens large – très importante.

### L'organisation

FreeBSD a trois étiquettes pour les sources :
* HEAD, version en développement sans restriction (version 7 jusqu'à l'été 2007) ;
* RELENG_x, version en développement mais à l'architecture fixée ;
* RELENG_x_y, version de production mise à jour.
Au numéro x correspond donc une architecture ou une branche. Au numéro y correspond une release. Tous les quatre à six mois, les sources d'une branche sont gelées pour préparer une release, étiquetée RELEASE.
Pour un système compilé :
* HEAD devient CURRENT ;
* RELENG_x devient FreeBSD-x-STABLE ;
* RELENG_x_y devient FreeBSD-x.y-RELEASE au moment de la release, et FreeBSD-x.y-RELEASE-p1, puis p2, etc. avec les mises à jour.
Pour un système FreeBSD de production, les FreeBSD-x.y-RELEASE-pz sont les mieux indiqués. FreeBSD-CURRENT est tout à fait expérimental et contient des fonctionnalités qui ne sont que susceptibles d'être présentes dans la prochaine branche.
Les personnes qui utilisent FreeBSD-CURRENT sont :
* les développeurs actifs qui travaillent de manière spécialisée sur les sources ;
* les testeurs de la communauté qui participent à l'assainissement de FreeBSD-CURRENT, qui proposent aussi des directions d'évolution de FreeBSD, ainsi que des patches (portions de code source) ;
* les personnes qui plutôt suivent l'évolution de FreeBSD, ce qui peut être une activité à plein temps, et éventuellement proposent des patches.
L'organisation du développement et de la communauté fait que le support de FreeBSD est très réactif, notamment en matière de sécurité. Quelques minutes ou heures en général séparent la découverte d'une faille dans la sécurité et le moment où les sources sont corrigées sur le serveur principal.

## Le système

FreeBSD est un système d'exploitation à part entière qui comprend le noyau, une partie utilisateur, et les sources. Les programmes ne faisant pas partie de FreeBSD comme Apache et Firefox sont dans le système de ports. Les logiciels importants comme le serveur graphique X11, les gestionnaires de fenêtres comme FluxBox et les environnements de bureau tel que KDE sont intégrés comme packages (port précompilé) dans les cédéroms de publication de FreeBSD.
FreeBSD est publié en grande majorité sous licence BSD, et sous licence GPL (GNU General Public Licence). Les sources protégées par la licence GPL sont dans un répertoire séparé.

### Les « ports »

Il s'agit d'une des grandes forces de FreeBSD. Chaque port est un ensemble de fichiers informatifs précisant où trouver les sources d'une application, éventuellement quelles corrections apporter, comment compiler, et quels sont les programmes ou bibliothèques dont l'application dépend (ces programmes et bibliothèques sont simplement appelées dépendances). Par extension, un port est une application portée sur FreeBSD. À l'été 2013, il y a plus de 24 000 ports.
Chaque port peut être installé sous forme binaire ou package (système équivalent aux fichiers .rpm, .deb, etc. des distributions GNU/Linux) ou compilé depuis les dernières sources (équivalent des pkgsrc de NetBSD). Le système est fait de telle manière qu'avec une seule commande, les sources de l'application et des dépendances sont téléchargées, compilées et installées sur le système d'exploitation.
Depuis 2008, l'environnement Java de Sun Microsystems est disponible pour les plates-formes i386 et AMD64 (Java Runtime Environment/JRE et Java Development Kit/JDK) en version 1.6. La fondation FreeBSD a négocié une licence auprès de Sun Microsystems pour une distribution précompilée de cet environnement.

### Chiffrement

À partir de la version 6.0 de FreeBSD, un système de chiffrement de disque, Geli, est intégré dans FreeBSD. Cette nouvelle classe du module GEOM a été développée par Paweł Jakub Dawidek.
Geli permet entre autres :
* l'utilisation, grâce au framework crypto, du matériel destiné au chiffrement ;
* l'utilisation de nombreux algorithmes de chiffrement (AES-XTS, AES-CBC, Blowfish-CBC, Camellia-CBC et 3DES-CBC) ;
* l'utilisation d'une clé utilisateur composée de plusieurs éléments (mot de passe, clé de déchiffrement composée d'un ou plusieurs fichiers) ;
* l'utilisation de deux clés indépendantes (utilisateur et entreprise par exemple) ;
* la sauvegarde de la restauration des clés de l'utilisateur ;
* l'attachement d'un disque avec une clé aléatoire à usage unique (ce qui peut être utilisé pour le swap ou pour les systèmes de fichiers temporaires) ;
* la validation de l'intégrité des données.

### Projets associés et adaptations de FreeBSD
#### Actifs

| Nom | Usage | Objectif et informations | Initié | Première version | Dernière version |
| GhostBSD | Ordinateur personnel | Fourni par défaut avec MATE et compatible avec d'autres environnements | | 2010 | 2024 |
| HelloSystem | Ordinateur personnel | initié en 2020, est un système de bureau basé sur FreeBSD destiné aux créateurs axé sur la simplicité, l'élégance et la convivialité. Il est né d'une exaspération des pratiques d'Apple et d'une expérience utilisateurs de macOS jugée décevanteavec le temps, et se spécialise pour la transition des utilisateurs de macOS vers FreeBSD. | 2020 | 2021 | 2023 |
| MidnightBSD | Ordinateur personnel | Projet allemand visant à adapter Free-BSD à l'usage bureau | | 2007 | 2023 |
| OPNsense | Serveurs ou équipements réseau | Adaptation de FreeBSD pour les pare-feux et équipements réseau | | 2015 | 2024 |
| pfSense | Serveurs ou équipements réseau | Orienté pare-feu et divers rôles dans un réseau | 2004 | 2006 | 2023 |
| TrueNAS | Serveurs ou équipements réseau | pour NAS et services de stockage | 2015 | 2016 | 2024 |
| XigmaNAS | Serveurs ou équipements réseau | pour NAS et services de stockage | 2011 | 2012 | 2023 |

#### Abandonnés

* PC-BSD s'orientait vers un projet FreeBSD pour un usage de bureau ; Il n'obtint pas le succès recherché, et l'équipe se réorienta vers l'usage NAS et serveurs, devenant TrueNAS
* DesktopBSD était une autre personnalisation de FreeBSD qui se focalise sur une utilisation de bureau, opposée à une utilisation comme serveur. Son développement est abandonné depuis 2015.

#### Développements complémentaires

* TrustedBSD est créé en 2000 par Robert Watson, membre de la core team. Il s'agit d'un ensemble d'extensions de FreeBSD qui a pour tâche de développer des services de sécurité et d'audit du code source. Régulièrement des éléments de TrustedBSD sont intégrés à FreeBSD.
* NanoBSD fait partie de FreeBSD. C'est un outil qui permet de créer une image de FreeBSD de taille très réduite pour un usage spécialisé.

#### Adaptés à des produits spécifiques

* les Playstation 3 (en), 4 (en) et Vita (en) fonctionnent sur un FreeBSD adapté
* NS-BSD, adaptation de FreeBSD pour les équipements réseaux UTM (Unified Threat Management) de la société Stormshield.
* Un régiment d'autres équipements industriels ou professionnels, ou développements spécifiques variés, fonctionnent (en) sur une adaptation de FreeBSD
Trois cédéroms avec système utilisable sans installation sur disque dur (live CD) existent : FreeSBIE (du groupe italien GUFI), Frenzy BSD (un projet russe documenté en français) et GhostBSD.

## Pénétration des marchés

FreeBSD est considéré comme un standard industriel dans le marché des serveurs. Il n'y a pas de données maintenues sur les utilisateurs du système d'exploitation, mais des organismes d'observation comme Netcraft (qui a tous ses serveurs sous FreeBSD) permettent d'effectuer des évaluations qualitatives.
De grandes parties d'internet (Netblock owners) sont sous FreeBSD :
* Yahoo!, qui comprend HotJobs.com Ltd, Altavista ou Geocities ;
* Rackspace.com ;
* Isle, Inc ;
* Bayerischer Rundfunk ;
* Japan Network Information Center ;
* ViaNet Communications ;
* Hopemoon Co, Ltd ;
* Full Internet Provider ;
* T. Tilignac Full Ops ;
* Netflix
D'anciens utilisateurs (ou actuels mais non confirmés) de FreeBSD sur serveurs sont :
* Microsoft (hotmail)$^,$.
* Whatsapp, cependant le rachat par Facebook et son intégration ont entrainé sa migration vers Linux (RHEL/Centos), sur les infrastructures de Meta (Facebook, instagram..).
FreeBSD est également très utilisé par des fabricants de matériel. La liste des matériels utilisant FreeBSD (en) inclus:
* Nintendo Switch
* Sony Playstation 3, 4 et 5
L'utilisation de FreeBSD pour un usage domestique, sans être confidentielle, est bien plus modérée auprès du grand public que le système GNU/Linux.
Pourtant, FreeBSD fait fonctionner les logiciels qui ont largement aidé à populariser les systèmes GNU/Linux, parmi lesquels le serveur graphique X associé à l'espace bureautique et de fenêtrage KDE, les suites bureautiques OpenOffice.org et LibreOffice, le navigateur web Firefox.
De plus, FreeBSD est une alternative populaire à Linux pour servir de système d'exploitation à Raspberry Pi. Il se distingue par la rapidité et la stabilité de son réseau, mais demande des connaissances en programmation plus approfondies.
D'autres facteurs entrent en jeu. Sans prétention d'exhaustivité, de hiérarchie quant à l'impact, il y a vraisemblablement :
* la médiatisation, à laquelle ont participé de grandes entreprises comme IBM, Microsoft, Novell ou RedHat, des organismes d'État et les différents médias qui relayent les sujets sélectionnés ;
* une synergie entre des mouvements : logiciel-libre, un contre-courant par rapport à Microsoft et aux solutions propriétaires ;
* la licence : parfois jugée trop libre, elle permet à des entreprises comme Apple ou Microsoft d'intégrer du code FreeBSD à leur système d'exploitation.

## Le daemon BSD (beastie)

Le personnage rouge et souriant est le daemon BSD. Dans le contexte des systèmes UNIX, les daemons — d(isk) a(nd) e(xecution) mon(itor) — sont des programmes de maintenance travaillant en arrière-plan et ne nécessitant pas d'intervention humaine. Si daemon était entre le milieu du XVIe siècle et le XIXe siècle l'orthographe d'usage pour demon, aujourd'hui ces deux termes diffèrent. Dans les anciennes croyances grecques, daemon (daimôn) désignait une divinité, un être surnaturel, un génie ou ange gardien. En revanche demon (démon en français) a une connotation diabolique. Le terme daemon est réapparu dans les années 1980 avec les débuts d'UNIX, ce avec la même ancienne connotation grecque. Le daemon BSD à la fois revêt l'apparence d'un démon (avec les cornes, et la queue pointue) et incarne un daemon par son apparence bienveillante.
Le daemon BSD s'appelle officiellement beastie, ce qui se prononce comme BSD en anglais. Le nom erroné de Chuck a été employé pendant un temps, à l'origine par Walnut Creek CD-ROM. John Lasseter (figuree majeure de Pixar, réalisateur et producteur de Toy Story et 1 001 Pattes) créé le premier l'image de beastie. Depuis 1988 les droits sur le daemon BSD sont détenus par Marshall Kirk McKusick, ancien développeur à l'UC Berkeley Computer Systems Research Group (CSRG). L'image de beastie ci-contre a été créée par Poul-Henning Kamp, ancien membre de la core team.

## Comparaison avec GNU/Linux

FreeBSD et GNU/Linux sont deux systèmes de type Unix. Alors que FreeBSD tend à être entièrement conçu par une seule équipe, chaque composant de GNU/Linux est développé par une équipe différente. De cette manière la cohésion de ces composants est assurée d'office dans le cas de FreeBSD tandis que sous GNU/Linux elle se révèle très complexe, c'est pourquoi il existe des distributions GNU/Linux, qui sont des systèmes préassemblés dans le but d'être plus rapidement fonctionnels pour l'utilisateur.
Entre les deux systèmes, la nomenclature des périphériques diffère, de même que quelques commandes, ou encore l'arborescence du système de fichiers. C'est typiquement le même genre de différences que l'on peut trouver entre deux distributions GNU/Linux très différentes.
L'ensemble des distributions GNU/Linux étant très hétérogène, il est extrêmement difficile de le comparer à une seule entité. Cependant tout comme quelques distributions GNU/Linux, FreeBSD entend fournir un système simple, rapide, stable, sûr, à destination des utilisateurs qui ont déjà une bonne connaissance des systèmes informatiques (par exemple si lors de l'installation l'utilisateur a choisi d'installer un environnement graphique, il ne sera pas configuré automatiquement ni lancé au démarrage par défaut). À ce titre, FreeBSD se rapproche de Gentoo par exemple.
FreeBSD est très loin de l'installation en quelques clics d'Ubuntu, qui est parfaitement fonctionnel fraîchement installé et déjà équipé de tous les logiciels de base pour une utilisation domestique. C'est ce que propose TrueOS, un système FreeBSD pré-installé pour une utilisation bureautique, à l'image d'une distribution GNU/Linux.
De nombreux débats ont lieu sur la sécurité, les performances et diverses qualités de ces systèmes.
FreeBSD possède quelques atouts face aux distributions GNU/Linux :
* La séparation de la base du système et des applications tierces permet en quelque sorte de bénéficier des avantages d'une distribution en publication continue pour ce qui est des applications, tout en maintenant un système de base particulièrement stable. En quelque sorte, les avantages conjoints d'une Debian et d'une Arch Linux.
* Le système des jails, intégré au système de base, est activable instantanément.
* le système de fichiers ZFS, qui est actuellement l'un des plus puissants disponibles, est intégré à FreeBSD depuis 2008.
Cependant, les distributions GNU/Linux sont en train de rattraper ces quelques retards :
* Les conteneurs LXC sont devenus moins difficiles à mettre en œuvre, grâce aux Dockers
* L'utilisation de ZFS sur un noyau Linux est possible à travers ZFS on Linux. De plus, Btrfs le prochain système de fichiers natif pour noyau Linux reprend une grande partie des fonctionnalités de ZFS, mais n'est pas encore considéré comme stable pour la production.
Inversement, FreeBSD essaie de rattraper le retard qu'il avait sur GNU/Linux concernant les hyperviseurs avec le tout récent bhyve (en), la gestion des paquets binaires avec pkgng et le support des cartes graphiques avec l'intégration du Kernel-mode Setting.