Une différence fondamentale entre Unix et Linux dans la conception et d'autres aspects? [fermé]

24

Je continue de lire cette phrase:

Linux est un système de type Unix, mais ce n'est pas Unix.

Je ne sais pas quelle est la vraie différence entre les deux. Je sais que Linux a eu beaucoup d'idées d'Unix et les licences des deux sont différentes. En dehors de cela, comme je ne suis expert dans aucun d'entre eux, je veux savoir s'il existe des différences fondamentales entre eux dans la conception ou d'autres aspects importants.

Gnijuohz
la source
2
Pourriez-vous préciser où avez-vous lu cela? la recherche sur le Web me montre Linux Kernel Development (3rd Edition) par Robert Love, c'est ça?
moucher

Réponses:

30

Un système "semblable à Unix" peut être entièrement conforme à la spécification UNIX unique , le nom collectif de normes pour ce qui est considéré comme un système Unix, mais en même temps, Unix est une marque déposée de The Open Group et les fournisseurs de systèmes de type Unix ont besoin pour que leurs systèmes soient enregistrés pour se qualifier officiellement comme Unix. Actuellement, les systèmes UNIX 03 enregistrés sont:

  • Apple Inc.: Mac OS X version 10.5 Leopard sur les ordinateurs Macintosh à processeur Intel
  • Apple Inc.: Mac OS X version 10.6 Snow Leopard sur les ordinateurs Macintosh à processeur Intel
  • Fujitsu Limited: système d'exploitation Solaris ™ 10 sur les plates-formes Fujitsu PRIMEPOWER® 64 bits SPARC®
  • Hewlett-Packard Company: HP-UX 11i V3 version B.11.31 ou ultérieure sur les serveurs HP Integrity
  • IBM Corporation: AIX 5L pour POWER V5.2 datée du 8-2004 ou version ultérieure avec APAR: IY59610, IY60869, IY61405 avec VAC 6.0.0.8 ou version ultérieure sur les systèmes pSeries CHRP
  • IBM Corporation: AIX 5L pour POWER V5.3 datée du 7-2006 ou ultérieur sur les systèmes utilisant une architecture système CHRP avec des processeurs POWER ™
  • IBM Corporation: Système d'exploitation AIX 6 V6.1.2 avec SP1 ou version ultérieure Systèmes utilisant une architecture système CHRP avec processeurs POWER ™ et cartes asynchrones à 2, 8 ou 128 ports
  • Oracle Corporation: Oracle Solaris 11 FCS et versions ultérieures sur les plates-formes SPARC, 32 bits et 64 bits et sur les plates-formes X86, 32 bits et 64 bits
  • Oracle Corporation: système d'exploitation Solaris 10 plus correctif 118844-06 pour X86 et versions ultérieures, sur les systèmes X86 64 bits
  • Oracle Corporation: système d'exploitation Solaris 10 et versions ultérieures, sur les systèmes SPARC 32 bits et 64 bits
  • Oracle Corporation: système d'exploitation Solaris 10 et versions ultérieures, sur les systèmes X86 32 bits

Les fournisseurs de systèmes open source de type Unix (principalement Linux et FreeBSD) ne s'inscrivent généralement pas auprès de The Open Group, soit pour éviter les coûts de certification, soit parce qu'ils n'y trouvent pas beaucoup de valeur. En théorie, il est tout à fait possible qu'un système de type Unix soit techniquement Unix, et il ne manque que la certification.

La Linux Foundation, d'autre part, a créé la Linux Standard Base , une norme ISO , dans le but de normaliser Linux. La conformité avec POSIX est au cœur du SUS et du LSB, maintenant en quelque sorte le lien entre Unix et Linux.

Les systèmes Unix et Unix similaires ont tendance à être plus similaires que différents, en théorie, toutes les saveurs Unix populaires, enregistrées ou non, sont conformes à POSIX (complètes ou principalement), donc elles partagent une interface de programmation, des shells et des utilitaires de base (et beaucoup d'autres) des trucs). IEEE et The Open Group maintiennent une copie disponible gratuitement de la dernière version, POSIX.1-2008 , où vous pouvez trouver plus d'informations sur ce que signifie réellement la conformité POSIX.

Maintenant, en dehors des raisons juridiques et techniques, Linux a hérité du mantra "not Unix" de son association avec GNU , un système d'exploitation de type Unix initié par Richard Stallman. GNU signifie "GNU's not Unix", car les intentions de Stallman étaient de construire un système compatible Unix qui serait gratuit, et pour ce faire, il ne devrait contenir aucun code Unix, car Unix est propriétaire.

Les premiers développeurs Linux ont commencé à porter des outils GNU vers Linux, et le système résultant a été appelé GNU / Linux dès 1992 . Il existe une controverse de longue date sur la question de savoir si Linux doit être appelé Linux ou GNU / Linux (car il intègre plusieurs parties de GNU), mais cela n'est pas pertinent pour votre question, ce qui est pertinent, c'est que "pas Unix" peut simplement faire référence à l'association avec GNU et ont peu à voir avec sa conception, selon le contexte.

L'article "Histoire de Linux" sur Wikipédia explique les origines de Linux et sa relation avec Unix (via Minix et GNU) en détail, et vous devriez également prendre le temps de lire les références de l'article, si vous êtes intéressé par Apprendre plus.

yannis
la source
bonne réponse, j'attendrai et verrai si je choisis la vôtre comme réponse :)
Gnijuohz
8
@Gnijuohz Ne vous précipitez pas pour accepter des réponses, laissez toujours votre question mûrir pendant un jour ou deux (ou plus, si vous le souhaitez), vous obtiendrez peut-être d'excellentes réponses de personnes qui ne prendraient pas la peine de répondre si elles voyaient que vous aviez déjà accepté un répondre. Accepter une réponse dépend entièrement de vous, vous n'avez même pas à accepter si aucune des réponses ne vous a été utile, quelle que soit la façon dont la communauté y a répondu.
yannis
1
Intéressant, apparemment la dernière version d'OS X n'est pas "officiellement" UNIX.
Kris Harper
@ root45 C'est normal, car il faut un certain temps pour vérifier la conformité d'une version.
yannis
@YannisRizos Ah d'accord. Ça a du sens. Merci pour l'information.
Kris Harper
4

UNIX est une famille de systèmes d'exploitation et de nos jours UNIX est plus une marque appartenant à The Open Group. Pour qu'un système d'exploitation soit marqué UNIX, il doit subir un test de conformité, et pour Linux, cela signifierait que chaque distribution (Ubuntu, Debian, Fedora, Red Hat, etc.) devrait subir séparément ce test de conformité pour chaque version. . C'est donc l'une des principales raisons pour lesquelles Linux est un système de type Unix et non UNIX.

Ce test que j'ai mentionné vise à garantir la conformité du système d'exploitation avec la spécification Single Unix, qui est actuellement à la version 4 SUSv4 (Single Unix Specification version 4). Cette spécification définit un ensemble d'API qui doivent être disponibles pour les applications pour qu'un système soit qualifié pour le nom UNIX.

Raphael
la source
Est-ce un bon standard à suivre? Les auteurs Linux essaient-ils?
Job
1
C'est une bonne norme cependant incomplète. Les contributeurs du noyau Linux essaient de suivre cette norme et Linux peut être officieusement considéré comme un système UNIX. Si vous développez une application par rapport aux normes Unix, elle sera probablement compilée et exécutée sur un système Linux. Malheureusement, comme je l'ai déjà dit, l'UNIX est assez incomplet à certains égards, donc les systèmes d'exploitation fournissent des API supplémentaires pour certaines tâches et c'est ce qui rend certaines applications tributaires de la plate-forme car ces API supplémentaires ont tendance à varier.
Raphael
Il y avait une distribution appelée Linux-FT qui a commencé le processus de certification POSIX, mais sans surprise les sponsors ont manqué d'argent. ukuug.org/newsletter/linux-newsletter/linux@uk12/ftinfo.shtml
Merci pour cette info! Je me suis toujours demandé si quelqu'un avait déjà essayé de certifier une distribution.
Raphael
3

Les réponses existantes mentionnent déjà certaines des différences que vous recherchez. Sans être l'expert du noyau Linux, j'ajouterais également que de nombreuses différences de conception / implémentation entre GNU / Linux et les divers Unices sont couvertes dans la série des modèles de conception du noyau Linux .

sakisk
la source
2

"UNIX" est une chose compliquée à cerner. En termes de conformité aux normes, Solaris et Mac OS X sont "officiellement" UNIX mais vous n'avez pas besoin de passer beaucoup de temps avant de trouver des différences assez importantes entre les deux. Il y a un grand diagramme qui documente la sortie de différentes versions de systèmes d'exploitation UNIX ou UNIX et comment ils s'influencent et divergent les uns des autres.

Dans le grand schéma des choses qui ressemblent, marchent et charlatanent comme UNIX, un système Linux [*] est l'une des versions les plus conventionnelles. Il est assez courant que les gens se réfèrent à Unices ou * nix et signifient "tout ce qui ressemble à UNIX", ce qui inclut probablement Linux. Cependant UNIX est une marque déposée avec des limitations sur la façon dont il peut être appliqué commercialement; aucune distribution Linux n'est conforme à ces limitations.

[*] Parce que cette question invite à un niveau de séparation des cheveux sémantique, je pense que c'est le sujet dans ce cas de souligner que Linux lui-même n'est qu'un noyau sur lequel un système d'exploitation peut être construit. Il est courant de construire un système de type UNIX au-dessus de Linux, ce pour quoi il a été conçu, et ce système est généralement construit à partir de composants de projet GNU. Dans la réponse ci-dessus, "Linux" pourrait être interprété comme un raccourci pour "un système d'exploitation qui incorpore le noyau Linux".


la source
@YannisRizos J'ajouterai une référence à la réponse, elle est définitivement certifiée.
Oui, vous avez absolument raison, à partir de Leopard et au-delà, Mac OS est certifié UNIX 03, et voici une autre référence .
yannis
2

J'ai lu une fois que Linux est ce que vous obtenez lorsque vous prenez un développeur PC et lui demandez d'écrire un OS Unix, tandis que FreeBSD est ce que vous obtenez lorsque vous prenez un développeur Unix et lui demandez de faire un PC OS .... don ' N'oubliez pas les BSD dans votre comparaison!

Les différences sont principalement dans le noyau car les applications de l'espace utilisateur (y compris des choses comme ls) font toutes partie du projet GNU. Cela signifie que Unix, FreeBSD et Linux semblent tous être à peu près la même chose.

Cependant, il existe des différences une fois que vous regardez de près. La disposition du répertoire sera différente (mais de nombreuses distributions Linux utilisent leurs propres dispositions principalement compatibles mais toujours différentes de toute façon), les systèmes de fichiers sont différents (Unix utilise UFS, FreeBSD utilise FFS, Linux utilise Ext3 pour être simpliste - tous peuvent utiliser des ports de FS communs, par exemple ZFS)

Ensuite, il y a des différences dans les API principales, Linux vous donnera l' API inotify pour vous dire quand les fichiers changent, Mac OSX vous donne FSEvents et FreeBSD vous donne kqueue .

Ils peuvent donc être considérés comme la même famille - comparer un système Windows avec des outils GNU qui y sont portés avec un système Linux avec les mêmes outils. Ils n'apparaîtront que superficiellement les mêmes, mais un système Unix ou FreeBSD semblera toujours comparable. En y regardant de plus près, vous trouverez le portage d'applications entre FreeBSD, Unix et Linux relativement facile par rapport au portage vers d'autres systèmes d'exploitation tels que Windows.

gbjbaanb
la source
1

Unix n'est plus un système d'exploitation unique. Auparavant, c'était une implémentation de Bell Labs / AT&T, mais maintenant c'est une norme.

Techniquement, Linux n'est qu'un noyau. Ce noyau peut être trouvé dans des systèmes d'exploitation non Unix, le plus populaire étant Android. D'un autre côté, il existe de nombreux systèmes d'exploitation basés sur Linux qui ressemblent à Unix. La plupart (sinon tous) utilisent les bibliothèques et les utilitaires Gnu. Cette combinaison fournit aux distributions Linux l'API Unix et la conformité (ou la non-conformité) aux normes.

La norme Unix n'exige pas qu'un système conforme soit propriétaire ou ait une licence particulière. BSD, OpenSolaris / Illumos, darwin sont des exemples d'implémentations Unix non Linux encore libres.

Les systèmes conformes sont généralement, mais pas toujours, un mélange de composants propriétaires et open source, tandis que Gnu / Linux peut être entièrement Open Source ou inclure des éléments propriétaires.

En ce qui concerne la conformité Unix, il n'y a pas beaucoup de différences. La plupart des distributions Linux et des implémentations Unix partagent le même ensemble de commandes en utilisant le même ensemble d'options. Cependant, vous trouverez de nombreuses extensions des commandes standard, en particulier du côté Gnu où elles sont appelées Gnuismes, et de nombreuses commandes qui ne sont pas définies par les normes en premier lieu (compilateurs, commandes administratives, installation, packaging, environnement graphique). C'est un domaine où vous pouvez trouver beaucoup de divergences, d'incompatibilités et parfois de guerres saintes.

Le modèle de développement Gnu / Linux est généralement considéré comme plus "organique" et "bazar", tandis que d'autres systèmes de type Unix sont plus "conçus" et "cathédrale". Selon les sous-systèmes, la différence n'est pas très nette et dépend des individus et / ou des entreprises qui les soutiennent.

jlliagre
la source
1

Linux est livré avec de nombreux outils tels que:

  • Système GUI
  • Utilitaires GNU (tels que cp, mv, ls, date, bash, etc.)
  • outils d'installation et de gestion
  • Compilateurs GNU C / C ++
  • Rédacteurs (vi)
  • et diverses applications (comme OpenOffice, Firefox).

Cependant, la plupart des systèmes d'exploitation UNIX sont considérés comme un système d'exploitation complet car tout provient d'une seule source ou d'un seul fournisseur.

Certaines choses qu'ils partagent:

  • GUI, gestionnaires de fichiers et de fenêtres (KDE, Gnome)
  • Coquilles (ksh, csh, bash)
  • Diverses applications bureautiques telles que OpenOffice.org
  • Outils de développement (perl, php, python, compilateurs GNU C / C ++)
  • Interface POSIX
Billjk
la source
Linux développe également la philosophie Unix ...
Job
2
Linux n'est pas seulement un noyau, le noyau Linux est, eh bien, le noyau. Linux fait généralement référence à un système complet construit autour du noyau Linux.
yannis
@Anonymous - Parfois, si vous modifiez et corrigez votre réponse, les downvoters peuvent supprimer le downvote. Ce n'est pas garanti, mais cela aide parfois. (Je n'ai pas downvote, j'essaie juste d'être utile) :) Le reste de votre réponse est correct, à mon humble avis, donc se débarrasser de l'écart peut vous aider à obtenir des upvotes / éviter plus de downvotes.
jmort253
-7

Pas vraiment, Linux était une ingénierie inverse pavée d'Unix après tout, donc la conception du noyau suivait la philosophie de Ken Thompson. La manière Linux semble être d'imiter la philosophie Unix aussi près que possible sans jamais se surcharger avec une pensée originale.

samual johnson
la source
@YannisRizos Que voulez-vous dire par "mais ce n'était pas vraiment utilisable". AFAIK, il était entièrement utilisable, mais parce qu'il était écrit dans un assemblage PDP, il était difficile de le porter dans d'autres architectures.
sakisk
@ samual-johnson -1 Parce que vous ne sauvegardez pas vos déclarations avec des références. C'est la première fois que j'entends parler de la "philosophie de Ken Thompson" (et c'est Thompson, pas Thomson).
sakisk
1
@faif En vérifiant mes références, le noyau rudimentaire auquel je faisais référence a été écrit pour le GE-645 et non pour le PDP, il était donc difficile de l'appeler un noyau Unix. J'ai supprimé le commentaire, car le principal point concernait le manque de références de toute façon et votre commentaire suffit pour transmettre ce message. - samual veuillez prendre le temps de sauvegarder vos revendications avec des références solides ou de les réviser en quelque chose de moins basé sur l'opinion.
yannis
@YannisRizos Intéressant. Je n'ai pas entendu parler du GE-645, qui, selon Wikipedia, était une version améliorée de Multics. Merci pour l'info.
sakisk