On commence en douceur avec cet article, qui a pour objectif de clarifier quelques termes. Pas très technique donc, mais il est important de comprendre de quoi on parlera dans les prochains articles.

Linux

S’il y a bien un abus de langage qu’on fait tous, c’est de dire que Linux est un système d’exploitation. Quand on liste les systèmes d’exploitation les plus répandus on parle d’ailleurs de Linux, macOS et Windows.

En vérité, Linux est un noyau de système d’exploitation, une partie du système, mais pas le système complet. Il s’inspire largement d’Unix, un système d’exploitation propriétaire développé par AT&T à la fin des années 1960. Pour faire simple on pourrait dire qu’un système d’exploitation est découpé en deux grandes parties :

  • Le noyau, qui est là pour faire fonctionner le matériel (l’écran, la carte graphique, etc), et exposer des API au userland. Son code est exécuté avec les privilèges les plus importants, il peut par exemple accéder à l’ensemble de la mémoire.
  • Le userland, qui comprend l’ensemble des programmes et bibliothèques qui ne font pas partie du noyau. Ici les privilèges sont plus restreints, par exemple un programme ne peut pas accéder à la mémoire d’un autre.

Linux est donc un noyau, et sans userland il ne sert pas à grand chose. Pour obtenir un système d’exploitation complet on le couple à un userland, comme GNU ou BusyBox, c’est pourquoi les puristes disent utiliser une distribution GNU / Linux, et pas simplement Linux.

Une distribution Linux est justement un système d’exploitation qui utilise Linux. N’importe qui ayant les compétences requises peut créer sa distribution, incluant les logiciels qu’il préfère (comme OpenRC au lieu de systemd par exemple), donc il existe beaucoup de distributions . Certaines sont pensées pour les ordinateurs, d’autres sont plus adaptées aux serveurs, et d’autres encore sont spécialement prévues pour les objets connectés, les routeurs etc.

Quelques distributions connues sont :

  • Debian, Ubuntu, Linux Mint, Fedora, Void Linux, Pop!_OS, Manjaro, Arch Linux, Red Hat Enterprise Linux, utilisant GNU comme userland.
  • Alpine Linux, OpenWRT, Android, utilisant BusyBox comme userland.

Certaines distributions sont basées sur d’autres, par exemple Linux Mint est un fork d’Ubuntu, qui est un fork de Debian. Chaque distribution fait ses propres choix, par exemple pour le gestionnaire de packages. Certaines distributions utilisent apt, d’autres préfèrent dnf, pacman etc.

Il faut alors choisir une distribution adaptée à son besoin (ordinateur portable, serveur, routeur), qui applique régulièrement les correctifs de sécurité de tous les logiciels tiers embarqués dans le système, et qui ne casse pas la compatibilité des logiciels à chaque mise à jour. Si PHP est mis à jour de la version 8.0 à 8.4 par surprise, les applications Web hébergées sur le serveur pourraient arrêter de fonctionner.

OpenBSD

OpenBSD est bien plus simple que Linux, pour commencer c’est un système d’exploitation complet, pas seulement un noyau. Cela signifie pas besoin de choisir le gestionnaire de packages, ici on utilise pkg. OpenBSD utilise init traditionnel, une alternative légère à systemd, évitant ainsi la complexité d’un daemon centralisé.

BSD signifie Berkeley Software Distribution. À la fin des années 1970, l’université de Berkeley a développé BSD, un système d’exploitation dérivé d’Unix. La version courte est que BSD a été forké et a donné vie à plusieurs systèmes d’exploitation dont NetBSD et FreeBSD .
Ces deux systèmes ont eux-mêmes été forkés et ont donné vie à OpenBSD et à macOS.

Bien que les BSD fassent moins parler d’eux que les Linux, ils sont pourtant appréciés pour leur fiabilité, leur robustesse, et leurs licences permissives : Netflix utilise FreeBSD sur ses serveurs et PlayStation s’en sert sur ses consoles de jeu.

Chaque BSD a ses priorités, un peu à l’image des distributions Linux. NetBSD met un point d’honneur à fonctionner partout, sur tous les processeurs et même les plus obscurs. Il a d’ailleurs été porté sur un grille pain .
FreeBSD s’intéresse surtout aux processeurs “classiques” tels qu’on en trouve sur les ordinateurs modernes ou les serveurs, et se concentre sur les performances.
OpenBSD a une chose en tête, la sécurité. Tous les BSD prennent la sécurité au sérieux, mais OpenBSD est vraiment proactif sur le sujet.

OpenBSD est donc un système d’exploitation qui aime la simplicité, la documentation bien faite, et la sécurité. Il est particulièrement adapté sur les serveurs, et puisque c’est un système complet il est cohérent partout, notamment dans la syntaxe de sa configuration. Le système embarque nativement un pare-feu (pf), un serveur Web (httpd), un load balancer (relayd), et puisqu’ils font partie du système ils utilisent tous les mécanismes de sécurité qu’il propose (chroot, pledge, unveil, etc). Je détaillerai ces mécanismes dans un autre article.
L’équipe OpenBSD développe aussi OpenSSH , tellement incontournable qu’on le trouve également installé sur la plupart des distributions Linux.

Curieux de voir comment je migre des serveurs ? Découvrez mon offre de migration .


Si OpenBSD vous intéresse, j’ai également un blog dédié à ce système : openbsd-desktop.rocks