Différence conceptuelle entre Linux et le noyau BSD (gratuit)

19

(J'ai déjà remarqué que cette question a été posée auparavant, mais je pense qu'elle n'a pas été répondue d'une manière que j'aimerais comprendre le sujet.)

Quelles sont les différences conceptuelles et structurelles entre un

  • Noyau Linux
  • Noyau BSD (disons FreeBSD)

Bien qu'à la fin de la journée, ils soient tous deux des noyaux - je suppose qu'il pourrait y avoir des différences de structure, de fonctionnalité et de spécialisation. Dans quels scénarios un type de noyau aurait-il un avantage sur l'autre? (Serveur Web, base de données, informatique, etc.)

Y a-t-il des efforts conjoints pour concentrer les forces pour un noyau commun ou certains modules ou serait-ce inutile de toute façon?

PS: Différents types de licences ou approches d'expédition / d'emballage / de maintenance ne sont pas importants dans ce contexte. Je suis vraiment intéressé à comprendre comment ils diffèrent au niveau structurel, fonctionnel / fonctionnel et de spécialisation.

anomalie binaire
la source
Y a-t-il des efforts conjoints pour concentrer les forces pour un noyau commun ou certains modules ou serait-ce inutile de toute façon? Ma première pensée est quel point cela pourrait-il éventuellement avoir ... pour créer un troisième noyau "basé entièrement sur un mélange de linux et de freeBSD"?
goldilocks
Non, pas du tout, plutôt l'inverse - établissez une coopération pour des pièces identiques pour les deux. Je pense que pour certains pilotes, c'est déjà le cas si je ne me trompe pas.
anomalie binaire
1
@binaryanomaly: différentes licences sont très importantes pour les deux parties. Dans une certaine mesure, on pourrait même appeler cela une idéologie de chaque côté de l'allée. Par exemple, GCC était un point sensible dans les BSD et FreeBSD est maintenant passé à Clang par défaut pour cette raison: des problèmes de licence.
0xC0000022L
1
@ 0xC0000022L: Vous avez certainement raison et je ne voulais pas dire que les questions de licence ne sont pas importantes - je voulais juste que cela ne devienne pas l'objectif principal de cette discussion particulière.
anomalie binaire
Vraiment @goldilocks, vous ne pouvez pas voir l'avantage d'une troisième chose qui n'est ni trop linuxy, ni trop BSDish, mais juste ?
Josh Rumbut

Réponses:

22

1. Quelles sont les différences conceptuelles et structurelles entre un noyau Linux et un noyau BSD?

Concernant l'architecture et les structures internes, il y a bien sûr des différences sur la façon dont les choses sont faites (ex: lvm vs geom , fonction de prison précoce et complexe pour FreeBSD, ...), mais dans l'ensemble il n'y a pas beaucoup de différences entre les deux:

  • Le noyau BSD * et le noyau Linux sont tous deux passés d'une approche purement monolithique à quelque chose d'hybride / modulaire.

Pourtant, il existe des différences fondamentales dans leur approche et leur histoire:

  • Le noyau BSD utilise la licence BSD et le noyau Linux utilise les licences GPL .
  • BSD-kernel ne sont pas des noyaux autonomes mais sont développés comme faisant partie d'un ensemble . Bien sûr, ce n'est qu'un point de vue philosophique et non technique, mais cela donne une cohérence au système .
  • Le noyau BSD est développé avec un point de vue plus conservateur et plus soucieux de rester cohérent avec leur approche que d'avoir des fonctionnalités sophistiquées.
  • Le noyau Linux concerne davantage les pilotes, les fonctionnalités, ... (le plus sera le mieux).

Aussi grandement énoncé ailleurs :

C'est la conception et l'ordre intelligents (BSD *) contre la sélection naturelle et le chaos (GNU / Linux).

2. Dans quels scénarios un type de noyau aurait-il un avantage sur l'autre?

A propos de leur structure et de leur concept global, tout en comparant un noyau Linux presque vanille et un noyau FreeBSD, ils sont plus ou moins du même niveau d'utilisation général , c'est-à-dire sans spécialisation particulière (pas en temps réel, pas très parallélisé, pas orienté jeu, non embarqué, ...).

Bien sûr, il y a quelques différences ici et là, telles que la prise en charge native de ZFS ou l'architecture géom pour FreeBSD par rapport aux nombreux pilotes ou divers systèmes de fichiers pour Linux. Mais rien de ce que certains logiciels généraux tels que les serveurs Web ou les bases de données utiliseraient vraiment pour faire une réelle différence. Les comparaisons dans ces cas se termineraient très probablement par une bataille de réglage entre les deux, rien de majeur.

Mais, certains diront qu'OpenBSD a une approche approfondie et cohérente de la sécurité, tandis que les distributions Linux renforcées ne sont "que" des versions modifiées du noyau Linux vanille. Cela pourrait être vrai pour un système aussi spécialisé, tout comme Steam-OS. serait le numéro un pour jouer à des jeux.

3. Existe-t-il des efforts conjoints pour concentrer les forces sur un noyau commun ou certains modules?

Il n'y a pas effort conjoint pour concentrer les forces sur un noyau commun, car il y a des problèmes majeurs de licence, de philosophie ou d'approche.

S'il existe de réels efforts communs tels qu'OpenZFS , il s'agit la plupart du temps de pilotes et de concepts pris ou inspirés les uns des autres.

Ouki
la source
Les généralisations de Glib sur les BSD sont généralement fausses. Notez ici, par exemple, que DragonFly BSD existe parce qu'être conservateur n'est pas une généralisation que l'on peut appliquer au monde BSD.
JdeBP
5

Réponse partielle abordant quelques points

Les nombreuses options sont souvent perçues comme une mauvaise chose quand on regarde de l'extérieur dans le développement open source mais pensez-y comme dans la nature, il existe de nombreuses espèces (souvent) d'un type d'animal, disent les pingouins. Il y en a 17 . Chacun est spécialisé dans un ensemble d'exigences particulier, tout comme les projets open source (généralement). La sélection naturelle se chargera d'éliminer l'open source qui est moins apte au fil du temps.

Y a-t-il des efforts conjoints pour concentrer les forces pour un noyau commun ou certains modules ou serait-ce inutile de toute façon?

Ce serait inutile, c'est parfois une duplication des efforts, mais les gens qui travaillent sur ces composants ne le font pas dans le vide non plus. Ils vont regarder ce que font les autres et s'il y a une approche ou un algorithme, ils l'intègrent quand il est logique de le faire.

Je ne peux pas parler des différences de structure concernant vos autres balles mais j'ai pensé que j'en aborderais au moins 2.

slm
la source
Vous avez certainement raison là-dessus avec la spécialisation. D'autre part, je parierais également que l'ADN des pingouins est à un pourcentage très élevé exactement le même (comme pour les singes et les humains) et qu'il ne diffère que dans de minuscules zones. La nature est assez bonne pour éviter les efforts redondants mais ne différencie que quand et où cela est nécessaire. Des milliards d'itérations naturelles (reproduction) décident ensuite (sélection) lequel des modèles est le mieux adapté aux conditions environnementales données. (Ça devient philosophique;)
anomalie binaire
@binaryanomaly - c'est le problème avec les analogies 8-). Je ne le prendrais probablement pas à ce niveau car la corrélation des langages de programmation / code est plus délicate à corréler à l'ADN.
slm
Belle réponse et une bonne comparaison en utilisant des pingouins. Trop souvent, nous oublions que la duplication des efforts n'est pas toujours mauvaise et qu'un fork d'un projet n'est pas toujours la fin. C'est vraiment plus un processus évolutif qui doit se produire et pourrait créer de nouvelles idées ou échouer lamentablement.
Raphael Ahrens