GNU/Linux >> Tutoriels Linux >  >> Linux

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

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

Contexte

J'ai récemment découvert qu'Unix était bien plus que Linux. J'utilise Solaris au travail, ça m'a ouvert les yeux. Maintenant, je suis intéressé par les nouvelles unices, je veux en essayer une nouvelle et je suis naturellement curieux de connaître les BSD.

Le problème

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

Si vous avez de la chance, 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 également portable et sécurisé …)

Si vous n'avez pas de chance, vous êtes pris dans l'une de ces légendes inévitables d'Unix sur le fractionnement de projets, le forking, le changement de marque 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 instructif, 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 (peut-on utiliser ce terme ?). Si vous présentez votre réponse sous une 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 des packages/sources ?
  • Utilisent-ils 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 courant le développement est commun ?
  • Quelles sont les principales incompatibilités entre eux ?

Je ne sais pas à quel point il est facile de répondre à ces questions et à quel point cette question est pertinente pour le format StackExchange. Je ne suis tout simplement jamais tombé sur un document simple énumérant les différences entre les BSD de manière claire, utile pour que les utilisateurs assez expérimentés puissent consulter et faire un choix facilement.

Réponse acceptée :

Je ne pense pas que je vous fournirai, à 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 que je peux vous donner un aperçu utile du monde BSD.
Je n'ai jamais utiliser NetBSD, je n'en parlerai pas beaucoup.

Utilisent-ils le même noyau ?

Non, bien qu'il y ait des similitudes dues aux fourches 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 la même fonctionnalité entre *BSD.
Il est également courant de voir 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 packages/source ?

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

Utilisent-ils le même shell par défaut ?

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

Les binaires sont-ils portables entre eux ?

Non :

([email protected] 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 prennent pas vraiment en charge une émulation binaire stable et rapide. Ne vous y fiez pas.

Les sources sont-elles portables entre elles ?

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

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

Non, ils sont très similaires à Linux ici.
Cependant, FreeBSD préconise l'utilisation de /usr/local/etc pour les fichiers de configuration des logiciels tiers. OpenBSD met tout dans /etc…
Ils mettent tous les tiers dans /usr/local, tandis que la distribution Linux fera ce qu'elle veut.
En général, vous pouvez dire que *BSD est très conservateur à ce sujet, les choses appartiennent à leur place, et ce n'est pas quelque chose à inventer.

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

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

En relation :Pourquoi la commande suivante tue-t-elle un système ?

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. Ils n'aiment pas vraiment faire du support utilisateur de base ou de la publicité . Ils s'attendent à ce que chacun soit un utilisateur avancé d'Unix et soit capable de lire la documentation avant de demander quoi que ce soit.

Dans quelle mesure le développement actuel est-il commun ?

En raison des licences vraiment libres, le code peut circuler entre les projets, OpenBSD corrige souvent son code suivant NetBSD (car leurs sources ont beaucoup en commun), FreeBSD prend et intègre le filtre de paquets d'OpenBSD, etc. C'est évidemment plus difficile en ce qui concerne les pilotes et autres choses du noyau.

Quelles sont les principales incompatibilités entre eux ?

Ils ne sont pas compatibles sous une forme binaire, mais ils sont principalement compatibles dans la syntaxe et le code. Vous pouvez compter sur cela pour assurer la portabilité de votre code. Il se compilera et/ou s'exécutera facilement sur toutes les versions de BSD, sauf si vous vous rapprochez trop du noyau (ifconfig, pfctl…).

Voici comment vous pouvez profiter de l'apprentissage du monde BSD :

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

Bien qu'ils soient différents, chacun d'eux essaie d'être un bon système d'exploitation, et il correspondra plus aux utilisateurs qu'aux situations. En tant qu'expérience d'apprentissage, essayez-les tous (Net/Open/Free), mais plus tard, vous pourriez vous retrouver à n'en utiliser qu'un pour la plupart des situations (puisque vous êtes plus compétent dans un système spécifique ou que vous vous adaptez davantage à la communauté).

Les autres BSD sont des hybrides ou des versions légèrement modifiées, je trouve préférable de rester proche de la source du développement logiciel (utiliser le filtre de paquets sur OpenBSD, configurer soi-même son bureau sur FreeBSD, …).

En relation :Linux – la valeur appropriée de vm.swappiness lors de l'utilisation de zram ?

Personnellement, 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, il s'agit d'aimer Unix.


Linux
  1. Quelle est la différence entre arm64 et armhf ?

  2. Quelle est la différence entre fsck et e2fsck ?

  3. Pourquoi avons-nous 3 types de sélections X dans LINUX ?

  4. Quelle est la différence entre root et sudo ?

  5. Quelle est la différence entre ls et l ?

Quelle est la différence entre Linux et Unix ?

Lignes communes entre deux fichiers ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

quelle est la différence entre remonter et démonter/monter ?

Quelle est la différence entre unlink et rm ?