Linux vs *BSD

Beaucoup de personnes s’imaginent que dans le monde des PCs, il n’y a que deux systèmes d’exploitations rivaux : Windows d’une part, et Linux d’autre part.

Il ne faut pas cependant oublier que le choix d’un Unix libre et gratuit ne se limite pas aux différentes distributions GNU/Linux : il y a aussi les trois distributions dérivées de BSD : FreeBSD, NetBSD et OpenBSD, qui tentent de se faire une place au soleil.

Les fanas des BSD font souvent valoir que seul les systèmes BSDs sont de vrais Unix, que le code qui date de plus de 20 ans est pérénisé, que les BSD sont plus fiables, plus sécurisés… et plus performants. En gros, certains tentent de nous faire avaler que GNU/Linux n’est qu’une pâle copie d’un vrai Unix, et donc de dévaloriser cette petite merveille technologique qu’est le noyau Linux.

Il est temps de rendre justice, de remplacer les arguments foireux par des chiffres et des beaux graphes. Voici un excellent comparatif datant de fin 2003, qui compare les performances systèmes (système de fichiers, mémoire et couche réseau) des différents noyaux :

  • Linux 2.4 (version pérénisée)
  • Linux 2.6 (version stable, même si elle est encore trop jeune pour certains)
  • FreeBSD 5.1 (considéré comme le plus facile et le plus performant des BSD)
  • NetBSD 1.6.1 (considéré comme étant le plus portable – attention, une version 2.0 est sortie dernièrement, ça peut avoir changé la donne depuis)
  • OpenBSD 3.4 (considéré comme étant la version la plus sécurisée des Unix libres)

Après le blabla, le lien : http://bulk.fefe.de/scalability/
(anglophobes et non-techniciens s’abstenir)

Si vous n’avez pas le courage de lire cet article jusqu’au bout (bien que vous manquiez quelque chose), on y apprend que Linux 2.6 est le grand vainqueur : il montre dans la majorité des tests des temps de réponses constant « O(1) » quelque soit le nombre de demandes. FreeBSD 5.x et NetBSD sont derrières, avec néanmoins d’excellents résultats, tandis qu’OpenBSD est bon dernier : comme quoi, conserver les vieilles versions pour des raisons de sécurité se paye cher au niveau des performances.

Longue vie à Linux donc, mais aussi aux BSDs, car il est bien d’avoir le choix, et cette concurrence ne peut qu’être saine, du moment que l’utilisateur s’y retrouve.

PS: Non, les performances de Windows ne sont pas testées. Dommage, diront peut-être certains à la recherche d’un beau troll ;)

5 réflexions au sujet de « Linux vs *BSD »

  1. Avatar de PRomu@ldPRomu@ld

    Oui, des questions très interressantes. Je regarde surtout aussi le mode de développement du noyau.

    Je ne veux pas lancer un troll mais juste dire mon expérience personnelle qui est toute subjective et sans benchmark très précis, mais j’avais trouvé OpenBSD plus rapide pour l’exécution de nouvelles taches.

    Un truc simple : on lance un X avec un fluxbox, sous OpenBSD, c’était très rapide, plus lent sous Linux et FreeBSD (c’est équivalent).

    Je pense que celà était du à la consommation minime du noyau qui ne faisait pas de cache disque (à l’époque où je l’ai utilisé il s’agissait de la version 3.6).

    D’un point de vue sécurité et propreté de codage du noyau, je n’aurai qu’un mot, un grand bravo à OpenBSD, tout ce que j’ai pu voir était vraiement coder très proprement.

    Je pense également que les performances ne doivent pas être un critère ultra décisif. En effet, la stabilité et la facilité de développement sont pour moi très importants.

  2. Avatar de AnomalyAnomaly Auteur de l’article

    Effectivement, ce sont des questions bien plus intéressantes que ce simple comparatif de performances. Ceci n’était qu’un début :)

    Je n’en connais pas encore les réponses, mais j’ai bien l’intention, quand j’aurai un peu plus de temps, d’approfondir mes tests afin d’apporter ces réponses techniques qui sont du plus grand intérêt pour un développeur Unix.

  3. Patrick (plefebv@free.fr)

    Les benchmarks c’est bien, mais c’est bien pauvre au plan qualitatif.
    Linux ou BSD ou autre, j’imagine que la conformité posix est assurée, ainsi que la compatibilité binaire.
    Ce qui pour moi est déterminant dans le choix d’un système d’exploitation, c’est la manière dont son noyau fonctionne.

    Micro-noyau, ou macro-noyau, les drivers sont ils compilés dans le noyau ou associés dans un répertoire (ou autre), faut-il les déclarer pour les activer, sont-ils potentiellement tous démontables ?

    Le noyau associe t-il un environnement à chaque tâche ?
    Est-il possible d’affecter ou restreindre des ressources (périphériques, mémoire, temps CPU) aux tâches ?
    Dispose t-on d’un système de quotas ?

    Le noyau est-il multitâche, préemptif, réentrant ?

    Quelles sont les protections contre les pointeurs balladeurs? Et contre les boucles sans fin ?
    Y a t-il une librairie implémentant un ramasse-miettes dans l’environnement d’un process ou dans l’environnement global ? Comment l’emploie t-on ?

    Merci de vos réponses sur ce forum !

Laisser un commentaire