web-dev-qa-db-fra.com

Quelles sont les principales différences entre BSD et GNU / Linux Userland?

J'ai lu beaucoup sur Unix & Linux à propos de BSDS et de GNU, etc. Mais je ne comprends toujours pas quelles sont des différences réelles et pratiques entre BSD et GNU Userlands, malgré le fait que ils sont souvent mentionnés. Quelqu'un peut-il élaborer?

Lorsque vous répondez, veuillez expliquer complètement les connexions historiques, gardant à l'esprit que je n'ai pas été vivant assez longtemps pour avoir connu un temps où GNU/Linux n'était pas le Mainstream Unix (à l'exception du système d'exploitation X).

40
strugee

Le terme "Userland" peut faire référence à de nombreuses choses dans différents contextes, mais j'interprète ici "GNU Userland" VS "BSD Userland" comme défaut, ensemble minimum de programmes qui viennent avec une distribution.

La grande différence principale est que les deux zones utilles commencent par un code source complètement différent. code source de cat gncode source NetBSD CAT . Juste de ce programme simple in-concept, vous pouvez voir que le chat de Netbsd utilise des drapeaux de ligne de commande traditionnels et de lettres à une lettre. GNU Les programmes ont tendance à avoir des drapeaux à une seule lettre, mais aussi le --something-long options de type. GNU Les programmes tendent également à la compatibilité de POSIX.

Cette différence de code source donnera aux deux zones userlands différents comportements dans certains cas.

Il ressemble également à NetBSD (au moins) utilise sa propre version de libc, la bibliothèque C standard C. Je vais dans ma tête ici, mais la liaison libc et dynamique sont étrangement intermédiaires. Encore une fois, un code source différent entraînera un comportement différent.

Je pense qu'en tant qu'utilisateur Shell, vous constateriez que ps _ agirait différent et ls peut vous donner une sortie légèrement différente de celle que vous êtes habitué. Vous devriez trouver des drapeaux de ligne de commande équivalents pour certains programmes, si vous utilisez le --long-option Type de drapeaux de ligne de commande.

Historiquement, ma compréhension est que BSD Userland descend plus directement auprès de V6 et V7 Bell Labs Unix, via le port 32V vers le matériel Vax. GNU Userland est plus récent, écrit au moins quelque peu en réaction aux tentatives d'AT & T de maintenir le code un secret de près du début des années 80. Après la cession du système de Bell 1983, AT & T a essayé de "monétiser" UNIX. Une partie de cela consistait à licencier le code source d'une manière qui empêchait la plupart des gens de la voir jamais. Richard Stallman et d'autres ont eu des problèmes avec cela. Leur GNU existait spécifiquement pour créer une version librement Système de type UNIX.

Entre-temps, en 1993, AT & T a poursuivi la poursuite du système de l'Université de Californie sur la BSD ('B' est Berkeley, où se trouve l'Université de Californie) Systèmes. Les personnes de Berkeley avaient remplacé toute la source originale de AT & T avec un nouveau code et que le nouveau code est devenu l'ancêtre de l'Useland d'au moins Netbsd. AT & T et UCB sont arrivés à un règlement en 1994, révélé au public en 2004.

Naturellement, au moins des idées multiples pollinisent, il existe donc une similitude au moins conceptuelle entre GNU et BSD Winderland, mais les cas d'angle différent différent.

29
Bruce Ediger