Quelle est la différence entre Unix, Linux, BSD et GNU? [fermé]

27

Quelle est la différence fondamentale entre Unix, Linux, BSD et GNU? Unix était le premier système d'exploitation, donc le terme «Unix like» est compréhensible, car ils ont le noyau, la structure du système de fichiers, la plupart des commandes, les utilisateurs, etc. sont les mêmes que Unix. Mais pourquoi sont-ils différents? Qu'est-ce qui les a mis à part? Est-ce le noyau?

Kapish M
la source
2
Cette question est probablement répondue par la réponse à Toutes les commandes Unix ont-elles été réécrites sous Linux? .
un CVn

Réponses:

31

C'est une question difficile à répondre.

Le premier "Unix Like" ou "* nix" signifie généralement POSIX. Tous les systèmes que vous avez répertoriés sont des systèmes POSIX. POSIX est un ensemble de normes à implémenter.

Maintenant pour les questions les plus difficiles.

GNU n'est pas vraiment un OS. Il s'agit plutôt d'un ensemble de règles ou de philosophies qui régissent les logiciels libres, qui ont en même temps donné naissance à un tas d'outils tout en essayant de créer un système d'exploitation. Les outils GNU sont donc essentiellement des versions ouvertes d'outils qui existaient déjà mais qui ont été refaites pour se conformer aux principes des logiciels ouverts. GNU / Linux est un maillage de ces outils et du noyau Linux pour former un système d'exploitation complet, mais il existe d'autres "GNU". GNU / Hurd par exemple.

Unix et BSD sont des implémentations "plus anciennes" de POSIX qui sont différents niveaux de "source fermée". Unix est généralement une source totalement fermée, mais il existe autant de versions d'Unix que de Linux sinon plus. BSD n'est généralement pas considéré comme «ouvert» par certaines personnes, mais en vérité, il est beaucoup plus ouvert que tout ce qui existait. Ses licences sont également autorisées pour une utilisation commerciale avec beaucoup moins de restrictions que les licences plus «ouvertes» autorisées.

Linux est le nouveau venu. Strictement parlant, c'est "juste un noyau", cependant, en général, il est considéré comme un système d'exploitation complet lorsqu'il est combiné avec les outils GNU et un tas d'autres choses.

La principale différence de gouvernance réside dans les idéaux. Unix, Linux et BSD ont des idéaux différents qu'ils implémentent. Ils sont tous POSIX et sont tous fondamentalement interchangeables. Ils résolvent certains des mêmes problèmes de différentes manières. Donc, à part les idéaux et la façon dont ils choisissent de mettre en œuvre les normes POSIX, il y a peu de différence.

Pour plus d'informations, je vous suggère de lire un bref article sur la création de GNU, OSS, Linux, BSD et UNIX. Ils seront orientés vers leurs idées individuelles, mais lorsque vous lirez, vous aurez une bonne idée des différences.

Ce diagramme de généalogie Unix montre clairement l'histoire d'Unix, BSD, GNU et Linux ( de Wikimedia ):

Diagramme de généalogie Unix

coteyr
la source
note: tout n'est pas POSIX. voir par exemple man unimplemented(IIRC, il se peut man security) sur un système GNU / Linux.
strugee
Strugee a raison. Ils ne sont pas entièrement conformes, mais ils essaient de l'être. Je ne sais pas comment intégrer cela dans la réponse. Unix-Like est également techniquement différent de POSIX, mais en général, lorsque les gens disent Unix-Like, ils signifient généralement POSIX.
coteyr
1
Quelques informations complémentaires dans ce Q&R .
non, les développeurs du noyau Linux n'ont jamais l'intention d'être conformes à POSIX. J'oublie où j'ai lu ceci (j'ai regardé dans les pages de manuel mais je n'ai pas pu le trouver) mais il y a certains appels système qui ne seront jamais implémentés pour des raisons de sécurité.
strugee
Je crois que GNU était à l'origine destiné à être un OS.
Faheem Mitha
14

Linux n'est pas un OS, c'est un noyau. Linux en lui-même n'a pas d'environnement 'userland' (pas d'applications, pas de commandes, pas ... etc ...).

Si vous voulez avoir un OS complet, vous devez ajouter un espace utilisateur à votre noyau. Historiquement, pour Linux, c'est GNU. Toutes les distributions (?) Linux ne sont pas des distributions «Linux réel». Ce sont des distributions GNU / Linux (GNU + Linux).

BSD est un système d'exploitation complet «unix-like», avec son propre noyau et son propre espace utilisateur (pas de noyau Linux ni GNU).

GNU / Linux et la famille * BSD (FreeBSD, OpenBSD et NetBSD) sont des systèmes d'exploitation «de type Unix», ils se comportent comme Unix.

Voici une comparaison entre (GNU) / Linux et * BSD: http://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html

dirtyvader
la source
votre lien ne fonctionne pas
Anthon
@Anthon ça fonctionne
Prvt_Yadav