Je voudrais savoir quelles commandes ont été ré-écrites pour Linux et lesquelles ont été retenues sous Unix?
Je voudrais savoir quelles commandes ont été ré-écrites pour Linux et lesquelles ont été retenues sous Unix?
Réponses:
Il semble que vous confondiez deux parties très différentes du système d’exploitation. C'est compréhensible, car ils sont souvent interchangeables, mais c'est techniquement incorrect, votre question est donc basée sur une prémisse erronée. Afin d'explorer pleinement et, espérons-le, de répondre à la question que vous voudrez probablement poser, une courte leçon d'histoire est nécessaire.
D'abord, il y avait UNIX. À l'époque, à l'époque, UNIX désignait le système UNIX d'AT & T , qui est arrivé en premier. Mais AT & T UNIX étant devenu non-libre, Richard Stallman a donc lancé le projet GNU pour écrire un système Unix qui était libre . D'où le nom Gnu n'est pas Unix , en 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. Wikipedia 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 de Mach sont cités comme exemples de composants non réécrits), mais la plupart du temps, les outils utilisateur ont été réécrits à partir de rien afin de respecter l’objectif d’éviter la réutilisation de tout code AT & T (ou plutôt non codé), ainsi que de développer leurs capacités en ajoutant des options de ligne de commande. En conséquence, les utilitaires GNU étaient régulièrement plus puissants que les outils dont ils s'inspiraient.
À ce stade, il manquait encore à GNU un composant essentiel: un noyau de système d’exploitation , qui permettrait à tout de fonctionner ensemble sur un ordinateur réel ne fonctionnant pas sous un autre système d’exploitation. En 1991, Linus Torvalds a commencé à travailler sur un projet de jouet qui a fini par devenir connu sous le nom de Linux. Il s'agissait essentiellement d'un projet scolaire visant à découvrir le nouveau processeur Intel 80386 32 bits d'alors , et qui a débuté de manière extrêmement simple, mais a finalement commencé à se transformer en un noyau de système d'exploitation réellement utilisable. Mais il n'avait pas de logiciel utilisateur; Linux seul ne fournit aucun shell, aucune installation de démarrage 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; essentiel pour fabriquer une voiture utile, mais inutile par lui-même (pour une voiture utile, vous avez besoin de choses comme des roues, une transmission, une direction, un endroit où le conducteur peut s'asseoir, un réservoir de carburant ou une autre réserve d'énergie, etc.). Le noyau Linux a finalement été distribué sous la licence GNU General Public License, identique au logiciel GNU .
Alors les gens ont commencé à jumeler les deux. Vous obtiendrez un environnement utilisateur de type Unix, avec un noyau basé sur les idées d’Unix (y compris une ressemblance proche de POSIX ), avec un code source que vous pourriez modifier si vous le vouliez, et cela ne coûtait rien. . Avant que les distributions Linux ne deviennent courantes, il fallait un peu de bricolage pour que les choses fonctionnent, mais elles étaient suffisamment finies pour être utilisables par ceux qui étaient disposés à passer du temps dessus.
De nos jours, GNU fournit son propre noyau. Vous n'en avez probablement pas entendu parler, mais cela s'appelle GNU Hurd . Mais Hurd n'était pas là au début des années 1990, lorsque Linux a commencé à gagner du terrain auprès des amateurs et des bricoleurs. C'est donc la combinaison du noyau Linux et d'un environnement utilisateur principalement GNU qui a attiré 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 du domaine utilisateur GNU. Vous verrez peut-être des objets tels que GNU bash, la collection de compilateurs GNU, la bibliothèque GNU C (vanille ou corrigée), etc., sur un système qui n’est par ailleurs pas GNU.
Pour aggraver les choses, certains systèmes utilisent le noyau Linux, mais pas du tout le monde utilisateur GNU. Pour un exemple largement utilisé, considérons Android OS , qui est essentiellement le noyau Linux associé à un environnement utilisateur personnalisé.
Ceci est important car cela brouille considérablement la ligne de démarcation entre GNU, Linux et les divers Unix ( il n’existe qu’un seul UNIX , mais il existe de nombreux Unix et d’autres OS similaires à Unix ). Lorsque vous parlez de Linux, vous parlez très souvent du système GNU / Linux. Mais considérons Debian GNU / kFreeBSD , qui exécute un environnement 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, notamment Coreutils . Je pense que Mac OS X est également livré avec des éléments de l’utilisateur GNU. Ou considérez l'Android mentionné ci-dessus.
En fin de compte, 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.