Qu'est-ce que les différents BSD ont en commun?

62

... et quelles sont les différences entre eux? J'ai formulé ma question comme ceci pour préciser que je ne m'intéressais pas à une guerre des opinions, mais plutôt à une comparaison objective des différentes versions de BSD Unix. Idéalement, je pourrais recevoir les commentaires d'utilisateurs qui ont de l'expérience dans chacun d'entre eux.

Contexte

J'ai récemment découvert qu'il y avait beaucoup plus à Unix que simplement Linux. J'utilise Solaris au travail, cela m'a ouvert les yeux. Maintenant, je suis intéressé par les nouvelles unités, je veux en essayer une nouvelle et je suis naturellement curieux des BSD.

Le problème

Je ne demande pas d'avis ou d'opinions sur ce que BSD doit installer ; Je veux connaître les différences (et les points communs) entre elles afin de pouvoir me faire ma propre idée. Le problème est qu’il est difficile d’obtenir des comparaisons appropriées entre eux.

Si vous êtes chanceux, vous obtenez une définition hâtive comme celle-ci:

FreeBSD = Popular all-rounder.
NetBSD = Portable (runs on a lot of platforms, including a toaster)
OpenBSD = Security above anything else.

(C'est peut-être vrai, mais ce n'est pas vraiment utile. Je suis sûr que FreeBSD est portable et sécurisé aussi ...)

Si vous êtes malchanceux, vous tombez dans l'une de ces légendaires légendes Unix inévitables sur la scission, le bricolage, le rebranding pour des raisons intellectuelles / morales, comment Theo de Raadt est un extrémiste et comment MacOS X et FreeBSD avaient un ancêtre commun il y a plus de 20 ans.

Fascinant, mais pas vraiment informatif, n'est-ce pas?

Les BSD

Les BSD qui m'intéressent sont:

  • FreeBSD
  • OpenBSD
  • NetBSD

et éventuellement

  • Libellule
  • Darwin
  • ...

Mes questions

Afin de mieux comprendre les différences, voici une liste de questions quelque peu liées sur les différentes distributions (pouvons-nous utiliser ce terme?). Si vous présentez votre réponse sous forme de données tabulaires, vous êtes mon héros de tous les temps!

  • Utilisent-ils le même noyau?
  • Utilisent-ils les mêmes outils utilisateur? (quelles sont les différences, le cas échéant?)
  • Utilisent-ils le même système de gestion de paquet / source?
  • Est-ce qu'ils utilisent le même shell par défaut?
  • Les binaires sont-ils portables entre eux?
  • Les sources sont-elles portables entre elles?
  • Utilisent-ils des arborescences de répertoires différentes?
  • Quelle est la taille de leurs communautés respectives? Sont-ils du même ordre de grandeur?
  • Quelle part du développement actuel est commune?
  • Quelles sont les principales incompatibilités entre eux?

Je ne sais pas à quel point il est facile de répondre à ces questions et quelle est leur pertinence par rapport au format StackExchange. Je n'ai jamais trouvé un simple document énumérant les différences entre les BSD de manière claire, utile pour les utilisateurs assez expérimentés à regarder et à faire un choix facilement.

Rahmu
la source
13
C'est une excellente question, +1
n0pe
4
J'étais à 100% sûr que le grille-pain était une blague ... embeddedarm.com/software/arm-netbsd-toaster.php
tkbx
haha bien c'était juste une démo. J'aime le fait que le niveau de combustion semble être supérieur à 200% sur l'écran d'affichage.
Aki

Réponses:

50

Je ne pense pas que je vais vous donner, à vous et à tout le monde, la réponse parfaite. Cependant, en utilisant un système BSD tous les jours pour le travail, je suis sûr de pouvoir vous donner un aperçu utile du monde BSD. Je n'ai jamais utilisé NetBSD, je n'en parlerai pas beaucoup.

Utilisent-ils le même noyau?

Non, bien qu'il existe des similitudes dues aux fourchettes historiques. Chaque projet a évolué séparément.

Utilisent-ils les mêmes outils utilisateur? (quelles sont les différences, le cas échéant?)

Ils suivent tous POSIX. Vous pouvez vous attendre à ce qu'un ensemble d'outils ait les mêmes fonctionnalités entre * BSD. Il est également courant de constater des différences évidentes dans les outils de gestion de processus / réseau au sein des BSD.

Utilisent-ils le même système de gestion de paquet / source?

Ils fournissent un système de conditionnement différent pour chaque système d'exploitation.

Est-ce qu'ils utilisent le même shell par défaut?

Non, par exemple FreeBSD utilise csh, OpenBSD utilise ksh.

Les binaires sont-ils portables entre eux?

Non:

(XXXX@freebsd-6 101)file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.5, dynamically linked (uses shared libs), stripped

Ils ne supportent pas vraiment l'émulation binaire stable et rapide. Ne comptez pas dessus.

Les sources sont-elles portables entre elles?

Certains oui, tant que vous n'utilisez pas de code du noyau ou de code libc (qui est étroitement lié au système d'exploitation) par exemple.

Utilisent-ils des arborescences de répertoires différentes?

Non, ils ressemblent beaucoup à Linux ici. Cependant, FreeBSD recommande l’utilisation de / usr / local / etc pour les fichiers de configuration de logiciels tiers. OpenBSD met tout dans / etc ... Ils placent tous les tiers dans / usr / local, alors que la distribution Linux fera ce qu’ils jugent utile. En général, vous pouvez dire que * BSD est très conservateur à ce sujet, les choses appartiennent à la place qui leur revient, et ce n'est pas une chose à inventer.

Quelle est la taille de leurs communautés respectives? Sont-ils du même ordre de grandeur?

FreeBSD est le plus important et le plus actif, vous pouvez y accéder à travers de nombreux forums, listes de diffusion, canaux IRC et autres ... OpenBSD a une bonne communauté, mais surtout visible à travers IRC et les listes de diffusion.

En fait, si vous pensez avoir besoin d’une bonne communauté, FreeBSD est la voie à suivre. Les communautés NetBSD et OpenBSD sont centrées sur le développement, parlent de nouvelles améliorations, etc. Elles n'aiment pas vraiment faire du support utilisateur ou de la publicité de base. Ils s'attendent à ce que tout le monde soit un utilisateur avancé sous Unix et capable de lire la documentation avant de demander quoi que ce soit.

Quelle part du développement actuel est commune?

Du fait que les licences sont vraiment libres, le code peut circuler entre les projets, OpenBSD corrige souvent leur code après NetBSD (leurs sources ont beaucoup en commun), FreeBSD prend et intègre le filtre de paquets d'OpenBSD, etc. C'est évidemment plus difficile pour les pilotes et autres les choses du noyau.

Quelles sont les principales incompatibilités entre eux?

Ils ne sont pas compatibles sous une forme binaire, mais ils sont surtout compatibles en syntaxe et en code. Vous pouvez compter sur cela pour obtenir la portabilité dans votre code. Il construira ou / et s'exécutera facilement sur toutes les versions de BSD, sauf si vous vous approchez trop près du noyau (ifconfig, pfctl ...).

Voici comment vous pouvez apprendre du monde BSD:

Essayez de remplacer votre routeur domestique par un boîtier openbsd, jouez avec pf et le réseau. Vous verrez comme il est facile de faire ce que vous voulez. C'est propre, fiable et sécurisé. Utilisez FreeBSD comme bureau, ils supportent beaucoup de GPU, vous pouvez utiliser flash dans une certaine mesure, il existe une certaine compatibilité avec les binaires Linux. Vous pouvez construire en toute sécurité votre noyau personnalisé (en fait, cela est recommandé). C'est globalement une bonne expérience d'apprentissage. Essayez NetBSD sur du très vieux matériel ou même des grille - pain .

Bien qu’ils soient différents, chacun d’entre eux essaie d’être un bon système d’exploitation, ce qui correspond davantage aux utilisateurs qu’aux situations. En tant qu’apprentissage, essayez-les tous (Net / Open / Free), mais vous pourriez ne plus en utiliser que 1 dans la plupart des situations (puisque vous maîtrisez mieux un système spécifique ou que vous vous intégrez davantage à la communauté).

Les autres BSD sont des versions hybrides ou juste des versions légèrement modifiées, il est préférable de rester proche de la source du développement du logiciel (utilisez le filtre de paquets sur OpenBSD, configurez vous-même votre bureau sur FreeBSD, ...).

En guise de note personnelle, je suis heureux de voir un passionné comme vous et j'espère que vous trouverez beaucoup de bonnes choses dans le monde BSD. BSD ne consiste pas à détester Windows ou d’autres systèmes d’exploitation, mais à aimer Unix.

Aki
la source
5
En descendant, j'étais sûr que c'était une réponse de Gilles. Merci pour une bonne réponse si Aki!
n0pe
2
@MaxMackie - Je sais ce que vous voulez dire, je pensais la même chose! :-)
Chris Down
2
Haha, je ne suis pas très actif ici, donc je ne sais pas qui est Gilles, mais j'ai hâte de lire sa réponse!
Aki
1
Un grand merci pour une bonne réponse! J'ai particulièrement apprécié la dernière partie. Je viens d'installer FreeBSD sur une machine virtuelle. Voyons voir comment ça se passe ...
rahmu
6
+1 pour la dernière phrase. Mais je voudrais pouvoir +2 pour l'ensemble
Shiplu Mokaddim
16

(Je ne peux pas donner une réponse complète, mais je ne peux pas non plus me détourner de cette question, alors ... je vais juste aborder quelques points ... FreeBSD était le BSD le plus utilisé (en 2005) , alors j'essaie d'offrir des indices concernant "les autres".)

  • Tout d'abord, vous avez raison de rejeter les explications d'une ligne , la devise d'OpenBSD est "libre, fonctionnelle et sécurisée" et les développeurs de NetBSD s'efforcent également de créer un système fonctionnel.
  • Compatibilité binaire : Vous pouvez apparemment exécuter des fichiers binaires FreeBSD sur NetBSD (ce que je n’ai jamais essayé). C'est la seule forme de compatibilité binaire entre les BSD que je connaisse (à part la compatibilité binaire Linux de NetBSD et FreeBSD (limitée)).
  • ports : utilisation des ports de NetBSD et DragonFlyBSD pkgsrc, OpenBSD est ici , FreeBSD est ici . Vous pouvez vous y référer pour comparer les packages disponibles. Les écosystèmes respectifs sont similaires mais non identiques.
    • pkgsrcse distingue par sa conception portable, c’est-à-dire que vous pouvez également l’utiliser avec Minix 3 ou Linux. Par conséquent, il n’ya pas d’intérêt pour BSD et (peut-être en conséquence) il ya plus de ports. pkgsrc-wipil est facile de contribuer.
  • NetBSD a récemment introduit un framework de test automatique complet (voir aussi kyua) lui permettant d'exécuter des tests automatisés (et rumppermettant ainsi de tester le code du noyau dans l'espace utilisateur). Je pense que c'est aussi le support XEN le plus complet. S'écartant un peu de la quête de "portabilité", ils ont introduit trois niveaux: "Focus", "Organique" et "Soutien à la vie" . Ils ont également introduit Lua dans le système de base.
  • Pour capter la dérive d' OpenBSD , ces "articles" (la plupart du temps de belles diapositives) constituent une ressource précieuse et vous donnent un aperçu des récents développements d'OpenBSD.
  • DragonFlyBSD a développé son propre concurrent ZFS, HAMMER , qui est apparemment beaucoup moins gourmand en mémoire (probablement pas aussi complet, je ne peux pas le dire).
  • Je ne suis pas d'accord avec @Aki sur le manque de support d'OpenBSD ou de NetBSD. L'examen des listes de diffusion offre des communautés utiles - jetez un œil sur vous - même - le fait d'être dirigé vers une page de manuel ne constitue pas un délit.

Ligne de fond? Regardez autour de vous et essayez-les. L'utilisation de packages binaires (généralement proposés avec une version binaire, c'est-à-dire non pour les instantanés à partir de -current), obtenir un système BSD utilisable ne demande pas beaucoup de travail.

Edit Vous pourriez être intéressé par leurs planètes: undeadly.orgpour OpenBSD, blogs.FreeBSDish.org pour FreeBSD et planet.netbsd.sepour toutes ( vers le bas pour le moment (?))

sr_
la source
5
Bonne réponse. Je pense qu'il y a tellement de choses à dire que ça mériterait d'écrire un papier. Je ne voulais pas dire que la communauté OpenBSD n'est pas utile. J'ai fait des recherches sur la compatibilité binaire, il y a plus: netbsd.org/docs/compat.html et compat_linux sur OpenBSD. Apparemment Open avait l'habitude de disposer de compat binaire freebsd: nixdoc.net/man-pages/OpenBSD/man8/compat_freebsd.8.html . Comme vous l'avez dit, c'est limité et je ne m'appuierais pas dessus.
Aki