GNU/Linux >> Tutoriels Linux >  >> Linux

Quelles sont les principales différences entre Bsd et Gnu/linux Userland ?

J'ai beaucoup lu sur Unix et Linux sur BSD et GNU, etc. Mais je ne comprends toujours pas quelles sont les différences réelles et pratiques entre les espaces utilisateurs BSD et GNU, malgré le fait qu'elles soient souvent mentionnées. Quelqu'un peut-il élaborer ?

Lorsque vous répondez, veuillez expliquer en détail les liens historiques, en gardant à l'esprit que je n'ai pas vécu assez longtemps pour avoir connu une époque où GNU/Linux n'était pas l'UNIX grand public (à l'exception d'OS X).

Réponse acceptée :

Le terme "userland" peut faire référence à beaucoup de choses dans différents contextes, mais ici j'interprète "GNU userland" vs "BSD userland" comme l'ensemble minimum par défaut de programmes fournis avec une distribution.

La grande différence principale est que les deux userlands commencent avec un code source complètement différent. Code source du chat GNU Code source du chat NetBSD. Rien qu'à partir de ce programme au concept simple, vous pouvez voir que le chat de NetBSD utilise des drapeaux de ligne de commande traditionnels à une seule lettre. Les programmes GNU ont tendance à avoir des drapeaux à une seule lettre, mais aussi le --something-long options de type. Les programmes GNU tendent également vers la compatibilité POSIX.

Cette différence de code source donnera aux deux zones utilisateur un comportement différent dans certains cas.

Il semble également que NetBSD (au moins) utilise sa propre version de libc, la bibliothèque C standard. Je m'embrouille ici, mais la libc et la liaison dynamique sont étrangement liées entre elles. Encore une fois, un code source différent conduira à un comportement différent.

Je pense qu'en tant qu'utilisateur de shell, vous trouveriez que ps agirait différemment, et ls peut vous donner un résultat légèrement différent de celui auquel vous êtes habitué. Vous devrez trouver des drapeaux de ligne de commande équivalents pour certains programmes, si vous utilisez le --long-option type d'indicateurs de ligne de commande.

Historiquement, ma compréhension est que l'espace utilisateur BSD descend plus directement de V6 et V7 Bell Labs Unix, via le port 32V vers le matériel VAX. L'espace utilisateur GNU est plus récent, écrit au moins quelque peu en réaction aux tentatives d'AT&T de garder le code secret bien gardé au début des années 80. Après la cession de Bell System en 1983, AT&T a essayé de « monétiser » Unix. Une partie de cela consistait à autoriser le code source d'une manière qui empêchait la plupart des gens de le voir. Richard Stallman et d'autres avaient des problèmes avec cela. Leur projet GNU existait spécifiquement pour créer un système de type Unix librement partageable.

En relation :Commutateur - Commutateur de transfert connecté au neutre et à la terre dans le sous-panneau au lieu du panneau principal ?

Entre-temps, en 1993, AT&T a poursuivi le système de l'Université de Californie au sujet des systèmes BSD ("B" est Berkeley, où se trouve l'Université de Californie). Les gens de Berkeley avaient remplacé toutes les sources originales d'AT&T par un nouveau code, et ce nouveau code est devenu l'ancêtre d'au moins l'espace utilisateur de NetBSD. AT&T et UCB sont parvenus à un accord en 1994, révélé au public en 2004.

Naturellement, au moins les idées se croisent, il y a donc au moins une similitude conceptuelle entre les utilisateurs GNU et BSD, mais les cas particuliers diffèrent définitivement.


Linux
  1. Quelle est la différence entre la mémoire tampon et la mémoire cache sous Linux ?

  2. Quelles sont les différences entre lsof et netstat sous Linux ?

  3. Quelle est la différence entre "localiser" et "trouver" sous Linux ?

  4. Quelles sont les différences entre les fichiers Linux et Windows .txt (encodage Unicode)

  5. Quelle est la différence entre Unix, Linux, BSD et GNU ?

Quelle est la différence entre les noyaux macOS et Linux

Quelle est la différence entre Linux et Unix ?

Quelles sont les différences entre cPanel et WHM ?

Quelle est la différence entre env et set (sur Mac OS X ou Linux) ?

Quelles sont les différences entre les principales distributions Linux ? Vais-je remarquer ?

Quelles sont les différences entre rdesktop et xfreerdp ?