Linux, NetBSD, OpenBSD, the winner is...
Je tiens tout d'abord à préciser que le contenu de cet article ne représente que mon avis, s'appliquant à mon usage particulier. Mon serveur n'est pas un système critique, l'utilisation est faible, il n'y a pas de données top-secrètes, et pas de contraintes de fonctionnement sans interruption (une coupure de quelques minutes n'est pas critique).
Dans cet article je vais faire part de mes impressions concernant les différents OS que j'ai utilisés sur mon serveur. Il est toujours dur de trancher, de dire "lequel j'aime bien" car je ne souhaite absolument pas sous-entendre qu'il y a des manques ou des défauts sur les autres. Je veux juste souligner une préférence, ce qui est encore une fois un critère subjectif dépendant de l'utilisation.
Rappel
Je dispose d'un serveur chez moi, une petite boîte noire contenant une carte mère Alix, avec un AMD Geode à 500Mhz, 256MB de mémoire, et un disque de 160GB. Son avantage est sa consommation réduite (moins de 10W), on peut difficilement trouver mieux aujourd'hui (mais bientôt avec la plateforme ARM probablement). Je me suis limité à faire tourner un service SMTP (mail), avec accès IMAP, ainsi qu'une messagerie XMPP (Jabber).
J'ai volontairement fait tourner ce serveur sur plusieurs OS différents au cours de sa vie, afin de pouvoir me former sur divers environnements. Linux m'étant déjà familier, c'est sur NetBSD et OpenBSD que j'ai le plus appris.
Linux (Debian)
Côté Linux, il faut déjà savoir que CentOS ne fonctionne pas car il requiert un processeur compatible i686. Or l'AMD Geode ne l'est pas, il est i586 optimisé i486 ! Il existe des astuces consistant à changer le kernel par défaut, mais je n'ai pas voulu me lancer là dedans.
J'ai commencé avec Debian Squeeze. Le CD d'installation est la version i386, mais l'installeur ira chercher le kernel i486 sur internet. Le matériel est correctement détecté, aucun problème n'est à signaler. Pour mon serveur SMTP j'ai utilisé Postfix, dont la configuration est aisée car il y a un assistant semi-graphique, et Dovecot pour l'accès IMAP. Concernant la messagerie XMPP j'ai récupéré les DEBS de Prosody sur leur site officielle.
On parle souvent de Debian comme d'un système compliqué, or selon moi c'est au contraire fait pour les flemmards. C'est très user-friendly pour l'administrateur, il y a vraiment peu de choses à faire. C'est robuste, facile à mettre à jour, riche en logiciels proposés, très puissant.
NetBSD
C'est avec ce système que j'ai plongé dans "l'univers des BSD", phrase qui est d'ailleurs un abus de langage car chaque système xBSD ne partage que la licence mais pas les mêmes composants. Par exemple Ubuntu et SuSE utilisent tous les deux du GNU et du Linux, sous le capot c'est donc "la même chose", alors que pour FreeBSD et NetBSD ce n'est pas le cas chacun ayant son kernel et son userspace.
J'ai voulu débuter avec FreeBSD, plus gros, plus vif, plus communautaire, mais il semblait y avoir un bug avec l'installeur et ma carte réseau. En attendant que la version 9.0 sorte, je suis donc passé à NetBSD.
Ce fut un peu la douche froide par rapport à Debian, car j'ai du apprendre à utiliser vi, ce qui peut faire sourire à première vue mais ce n'est vraiment pas facile au début. J'ai du apprendre le concept des ports (pkgsrc), ainsi que leur fonctionnement. Pour me dépanner, j'ai du apprendre à lire la doc officielle, ainsi que les pages man. Autant sur Linux on peut souvent trouver sur un forum la solution à un problème, autant sur NetBSD c'est rarement le cas.
La communauté IRC anglophone est très sérieuse, on sent qu'on a pas affaire à des rigolos venus montrer leur beau archlinux+openbox aux autres. A vrai dire je me suis souvent pris des "RTFM" dans la figure, et face à cela il y a deux réactions possibles :
- Soit on s'énerve et on leur hurle dessus que de toutes façons leur système c'est nul et on claque la porte avec un "je retourne sur Linux".
- Soit on réalise qu'on est pas dans le même monde, qu'on à affaire à des gens sérieux, et qu'on ferait mieux de se mettre un peu à bosser si on veut progresser.
Bien entendu, j'ai choisi la deuxième solution. J'ai donc rapidement obtenu un système fonctionnel et souple. J'ai mis en place un second serveur NetBSD, virtualisé, pour compiler les logiciels (pkgsrc) et les distribuer sur mon serveur principal par FTP.
Ce qui m'a un peu refroidi, en revanche, ce sont les mises à jour. Il n'y a pas d'apt-get upgrade comme sur debian. La procédure standard consiste à récupérer les sources à jour de l'OS, et les compiler. Dans le cas d'une nouvelle release on peut mettre à jour automatiquement depuis un CDROM bootable. Cela me parait un peu complexe, surtout dans le cas d'un serveur où je n'ai pas de lecteur CD ni même d'écran, et sur lequel je n'ai pas envie d'installer les outils de compilation ou récupérer des sources.
NetBSD est un système léger, robuste, portable, mais peut-être réservé à certaines applications comme le matériel embarqué ou exotique et moins à une architecture standard sur laquelle Linux est plus facile. Ce n'est bien sûr qu'un avis subjectif et c'est un environnement très riche à découvrir, au moins pour se former sur l'architecture pure des UNIX-like.
A lire : mes retours d'utilisation de NetBSD postés à l'époque où je l'utilisais.
OpenBSD
Mon passage sur OpenBSD a été motivé par la sortie (récente) de la version 5.0. Lorsque le serveur a booté pour la première fois, je me suis dit que j'avais face à moi l'OS réalisé par les gourous les plus connus en matière de sécurité informatique, et que j'allais sûrement devoir réapprendre pas mal de choses pour les faire proprement. Je savais aussi qu'il y a malheureusement bien peu de développeurs et que je devais m'attendre à de fortes régressions par rapport à Linux et NetBSD sur le support matériel.
J'ai été un peu moins dépaysé grâce à mon expérience acquise sur NetBSD. Je connaissais vi, les ports, le rc.conf (bien qu'il diffère un peu) j'avais déjà une certaine assurance. J'ai même décidé de mettre Postfix de côté pour me tourner vers OpenSMTPD en raison de la simplicité de sa configuration.
J'ai commencé à rencontrer des problèmes avec les ports, bien peu à jour, avec notamment un Prosody 0.7 alors que j'avais besoin d'une version plus récente. Après m'être bagarré avec le système, avoir envoyé un message sur la mailing, j'ai tenté de mettre moi-même à jour le port jusqu'à ce que je découvre que c'était déjà fait. C'est une version "testing", mais elle fonctionne.
Un autre problème que OpenBSD m'a posé est au niveau de la virtualisation. J'utilise Linux-KVM et VMware sur mon ordinateur, mais je rencontre toujours des soucis. Sur KVM, OpenBSD est lent au point que la décompression de l'archive des ports, qui pèse 22MB, prend plus d'une heure (montre en main). Sur VMware, ce sont les protocoles réseau qui sont lents à s'initialiser (HTTP, SSH...) je me prends donc des timeout à chaque fois que le script d'un port essaie de télécharger les sources d'un logiciel (alors que le ping est bon). Le dernier candidat est VirtualBox, que je n'ai pas testé.
Concernant le processus de mise à jour, je ne m'y suis pas encore attaqué, mais visiblement c'est faisable à partir du CDROM comme pour NetBSD.
La seule chose qui m'a vraiment plu sur OpenBSD est OpenSMTPD, car pour le reste j'ai trouvé beaucoup de contraintes par rapport à mes besoins. Cet OS est conçu pour favoriser la sécurité, mais je n'en ai vraiment pas besoin.
Conclusion
On dit que les administrateurs sont des feignants, qu'ils aiment se simplifier la vie, et c'est mon cas. Debian est le système le plus pratique pour mon usage, qui répond à tous mes besoins et qui fonctionne bien. Je n'ai pas vu d'intérêt à me compliquer la vie sur NetBSD et OpenBSD.
Néanmoins, les utiliser a été très formateur pour moi, et je ne souhaite absolument pas laisser penser qu'ils sont mauvais, bien au contraire. C'est fait par des gens sérieux, qui se moquent du prestige et se concentrent sur la qualité de leur produit. Ils ont leurs avantages, leurs usages, mais parmi les raisons que j'ai détaillé je retiens plutôt Debian.
Au final on utilise les mêmes services, alors autant se faciliter la mise en place et les mises à jour. Debian is the winner !