GNU/Linux >> Tutoriels Linux >  >> Linux

Linux – Toutes les commandes Unix ont-elles été réécrites sous Linux ?

J'aimerais savoir quelles commandes ont été réécrites pour Linux et lesquelles ont été conservées pour Unix ?

Réponse acceptée :

Il semble que vous confondiez deux parties très différentes du système d'exploitation. C'est compréhensible, car ils sont souvent appelés de manière interchangeable, mais c'est techniquement incorrect, donc votre question est basée sur une prémisse erronée. Afin d'explorer pleinement et, espérons-le, de répondre à la question que vous souhaitez probablement poser, une courte leçon d'histoire est nécessaire.

Tout d'abord, il y avait UNIX. Fondamentalement, à l'époque, UNIX signifiait le système AT&T UNIX, qui venait en premier. Mais AT&T UNIX est devenu non libre, alors Richard Stallman a lancé le projet GNU pour écrire un système Unix qui était libre. D'où le nom Gnu n'est pas Unix , abrégé GNU. Les plans pour GNU ont été rendus publics en 1983 et le développement a commencé en 1984.

Au début des années 1990, GNU avait réimplémenté la plupart des utilitaires UNIX à partir de zéro. Wikipédia répertorie quelques composants du système global qui n'ont pas été réécrits (TeX, le système X Window et le micro-noyau Mach sont mentionnés comme exemples de composants qui n'ont pas été réécrits) mais la plupart du temps, les outils de l'espace utilisateur ont été réécrits à partir de zéro afin de répondre l'objectif d'éviter la réutilisation de tout code AT&T (ou plutôt, non libre), ainsi que d'étendre leurs capacités en ajoutant des options de ligne de commande. De ce fait, les utilitaires GNU étaient régulièrement plus puissants que les outils dont ils s'inspiraient à l'origine.

À ce stade, il manquait encore à GNU un composant vital :un noyau de système d'exploitation , ce qui permettrait à tout de fonctionner ensemble sur un ordinateur réel n'exécutant pas un autre système d'exploitation. En 1991, Linus Torvalds a commencé à travailler sur un projet de jouet qui est finalement devenu connu sous le nom de Linux. Il s'agissait essentiellement d'un projet scolaire pour en savoir plus sur le nouveau processeur Intel 80386 32 bits, et a commencé extrêmement simple, mais a finalement commencé à se transformer en un noyau de système d'exploitation réellement utilisable. Mais il n'avait aucun logiciel utilisateur; Linux seul ne fournit aucun shell, aucune fonctionnalité de démarrage du système au-delà de l'initialisation du noyau, aucun éditeur de texte, aucune interface graphique, rien . Le noyau est comme un moteur de voiture; indispensable pour faire une voiture utile, mais inutile en soi (pour une voiture utile, il faut des choses comme des roues, une transmission, une direction, un endroit où s'asseoir pour le conducteur, un réservoir de carburant ou autre réserve d'énergie, etc.). Le noyau Linux a finalement été distribué sous la licence publique générale GNU, le même que le logiciel GNU .

Alors les gens ont commencé à associer les deux. Vous obtiendriez un espace utilisateur de type Unix, ainsi qu'un noyau basé sur des idées d'Unix (y compris une ressemblance proche avec POSIX), avec un code source que vous pourriez pirater autant que vous le vouliez, et cela ne coûte rien . Surtout avant les distributions Linux est devenu courant, il a fallu un peu de bricolage pour que les choses fonctionnent, mais c'était assez fini pour être quelque peu utilisable par ceux qui étaient prêts à y consacrer du temps.

Connexe :Linux – Installer Java sur Ubuntu/Linux ?

De nos jours, GNU fournit son propre noyau. Vous n'en avez probablement pas entendu parler, mais il s'appelle GNU Hurd. Mais Hurd n'existait pas au début des années 1990, lorsque Linux a commencé à gagner du terrain parmi les amateurs et les bricoleurs, c'est donc la combinaison du noyau Linux et d'un espace utilisateur principalement GNU qui a retenu le plus l'attention des développeurs.

De plus, de nos jours, de nombreux systèmes Unix installent, ou permettent à l'administrateur d'installer facilement, des parties de l'espace utilisateur GNU. Vous pouvez voir des éléments tels que GNU bash, la collection de compilateurs GNU, la bibliothèque GNU C (vanille ou corrigée), etc., sur un système autrement non GNU.

Pour aggraver les choses, certains systèmes utilisent le noyau Linux mais pas du tout l'espace utilisateur GNU. Pour un exemple largement utilisé, considérons le système d'exploitation Android, qui est essentiellement le noyau Linux couplé à un espace utilisateur personnalisé.

C'est important parce qu'il brouille considérablement la frontière entre GNU, Linux et les différents Unix (il n'y a qu'un seul UNIX, mais il y a beaucoup d'Unix et encore plus de systèmes d'exploitation de type Unix). Lorsque vous posez des questions sur Linux, vous posez très souvent des questions sur le système GNU/Linux. Mais considérez Debian GNU/kFreeBSD, qui exécute un espace utilisateur GNU au-dessus du noyau FreeBSD, n'utilisant pas du tout Linux. Ou par exemple Solaris, sur lequel vous pouvez facilement installer divers packages GNU, y compris par ex. coreutils. Je pense que Mac OS X est également livré avec des parties de l'espace utilisateur GNU. Ou considérez l'Android mentionné ci-dessus.

Au final, un système GNU utilisable peut exécuter du code non-GNU, et un système non-GNU peut exécuter du code GNU, mais les utilitaires GNU ne contiennent pas de code non-GNU.


Linux
  1. 5 commandes de dépannage du réseau Linux

  2. Mes 8 commandes Linux pratiques préférées

  3. Comment trouver tous les fichiers appartenant à un utilisateur spécifique sous Unix/Linux ?

  4. Commande Linux pour lister toutes les commandes et alias disponibles

  5. Linux est-il un Unix ?

Comment exécuter les commandes de fichier .sh tout en une fois sous Linux

Commande mkdir sous Linux/Unix

Linux contre Unix

Commande Grep sous Linux/UNIX

Commandes Zip et Unzip sous Linux/Unix

Comment créer des commandes personnalisées sous Unix/Linux ?