Detaillierte Erklärung der Beziehung zwischen Linux- und GNU-Systemen

Detaillierte Erklärung der Beziehung zwischen Linux- und GNU-Systemen

Welches Linux-System verwenden wir täglich?

Die heute weit verbreitete Version von GNU wird oft als „Linux“ bezeichnet und vielen Benutzern ist nicht bewusst, dass es sich dabei im Wesentlichen um das vom GNU-Projekt entwickelte GNU-System handelt.

Einführung in den Linux-Kernel und das GNU-System

Es gibt tatsächlich ein Linux, und diese Leute verwenden es, aber es ist nur ein Teil des Systems, das sie verwenden. Linux ist der Kernel: das Programm in Ihrem System, das die Ressourcen des Computers den anderen von Ihnen ausgeführten Programmen zuweist. Der Kernel ist eine wesentliche Komponente eines Betriebssystems, für sich genommen jedoch nutzlos; er kann nur im Kontext eines vollständigen Betriebssystems ausgeführt werden. Linux wird oft in Verbindung mit dem GNU-Betriebssystem verwendet: Das gesamte System ist im Grunde GNU plus Linux oder GNU/Linux. Alle sogenannten „Linux“-Distributionen sind eigentlich Distributionen von GNU/Linux.

Viele Benutzer verstehen den Unterschied zwischen dem Kernel (Linux) und dem gesamten System (das sie auch „Linux“ nennen) nicht. Die vage Verwendung von Namen trägt nicht zum Verständnis bei. Diese Benutzer neigen dazu zu denken, dass Linus Torvalds 1991 mit ein wenig Hilfe das gesamte Betriebssystem entwickelt hat.

Detaillierte Erklärung der Beziehung zwischen dem Linux-Kernel und dem GNU-System

Programmierer wissen im Allgemeinen, dass Linux ein Kernel ist. Da sie jedoch häufig gehört haben, dass das gesamte System auch als „Linux“ bezeichnet wird, stellen sie sich oft eine Geschichte vor, die es rechtfertigt, das gesamte System nach dem Kernel zu benennen. Viele gehen beispielsweise davon aus, dass sich die Benutzer von Linux, nachdem Linus Torvalds mit der Entwicklung des Linux-Kernels fertig war, nach anderer kostenloser Software umsehen und (ohne besonderen Grund) feststellen würden, dass das meiste, was sie zur Erstellung eines Unix-ähnlichen Systems benötigten, bereits verfügbar war.

Was sie fanden, war kein Zufall – es war ein unvollständiges GNU-System. Die verfügbare kostenlose Software ergänzt ein komplettes System, an dessen Erstellung das GNU-Projekt bereits seit 1984 arbeitet. Im GNU-Manifest haben wir uns das Ziel gesetzt, ein freies Unix-ähnliches System namens GNU zu entwickeln. In der ersten Ankündigung des GNU-Projekts wurden auch einige der ursprünglichen Pläne für das GNU-System skizziert. Als Linux auf den Markt kam, war GNU fast fertig.

Das Ziel der meisten Open-Source-Projekte besteht darin, ein bestimmtes Programm für eine bestimmte Aufgabe zu entwickeln. Beispielsweise machte sich Linus Torvalds daran, einen Unix-ähnlichen Kernel (Linux) zu schreiben; Donald Knuth machte sich daran, einen Textformatierer (TeX) zu schreiben; und Bob Scheifler machte sich daran, ein Fenstersystem (das X Window System) zu entwickeln. Es ist naheliegend, den Beitrag eines solchen Projekts anhand der spezifischen Verfahren zu messen, die sich daraus ergeben.

Zu welchem ​​Schluss würden wir kommen, wenn wir versuchten, die Beiträge des GNU-Projekts auf diese Weise zu messen? Ein CD-ROM-Anbieter stellte fest, dass die GNU-Software in seiner „Linux-Distribution“ die größte Einzelkomponente darstellte und etwa 28 % des gesamten Quellcodes ausmachte, darunter mehrere wichtige Komponenten, ohne die kein System existieren könnte. Auf Linux selbst entfallen etwa 3 %. (Die Anteile waren 2008 ähnlich: 1,5 % Linux- und 15 % GNU-Pakete im „Haupt“-Repository von gNewSense.) Wenn Sie also einen Namen für Ihr System basierend darauf wählen müssten, wer die Programme darin schreibt, wäre „GNU“ die passendste Wahl.

Aber das ist nicht die tiefgründigste Art, darüber nachzudenken. Das GNU-Projekt ist und war kein Projekt zur Entwicklung spezifischer Softwarepakete. Dies ist kein Projekt zur Entwicklung eines C-Compilers, obwohl wir das tun. Obwohl wir einen Texteditor entwickelt haben, handelt es sich nicht um ein Projekt zur Entwicklung eines Texteditors. Das Ziel des GNU-Projekts bestand darin, ein vollständiges, freies Unix-ähnliches System zu entwickeln: GNU.

Viele Menschen haben wichtige Beiträge zur freien Software auf dem System geleistet und ihre Software verdient Lob. Der Grund dafür, dass es sich um ein integriertes System handelt – und nicht nur um eine Sammlung nützlicher Programme – liegt darin, dass das GNU-Projekt sich zum Ziel gesetzt hat, daraus ein System zu machen. Wir haben eine Liste der Programme erstellt, die wir für ein komplettes freies System brauchten, und wir haben systematisch alles auf der Liste gesucht, geschrieben oder von jemandem schreiben lassen. Wir haben über die wesentlichen, aber langweiligen [1] Komponenten geschrieben, weil ohne sie kein System funktionieren kann. Einige unserer Systemkomponenten, nämlich Programmierwerkzeuge, wurden unter den Programmierern selbst beliebt, aber wir schrieben viele Komponenten, die keine Werkzeuge waren [2]. Wir entwickelten sogar ein Schachspiel, GNU Chess, weil ein vollständiges System auch ein Spiel brauchte.

Anfang der 1990er Jahre hatten wir das gesamte System bis auf den Kernel zusammengesetzt. Wir haben auch einen Kernel gebootet, den GNU Hurd, der auf Mach läuft. Die Entwicklung dieses Kernels erwies sich als viel schwieriger als erwartet. GNU Hurd funktionierte bereits seit 2001 zuverlässig, war aber noch weit davon entfernt, allgemein nutzbar zu sein.

Glücklicherweise müssen wir dank Linux nicht auf Hurd warten. Torvalds veröffentlichte 1992 Linux, das die letzte große Lücke im GNU-System schloss. Benutzer können dann Linux mit dem GNU-System kombinieren, um ein komplettes freies System zu bilden – eine Version des GNU-Systems, die auch Linux enthält. Mit anderen Worten, ein GNU/Linux-System.

Es ist keine leichte Aufgabe, sie dazu zu bringen, gut zusammenzuarbeiten. Einige GNU-Komponenten [3] erfordern erhebliche Änderungen, um mit Linux zu funktionieren. Auch die Integration eines kompletten Systems in eine „Out-of-the-Box“-Distribution ist eine schwierige Aufgabe. Dazu muss das Problem der Installation und des Bootens des Systems gelöst werden. Dieses Problem haben wir noch nicht gelöst, da wir diesen Punkt noch nicht erreicht haben. Daher leisten die Entwickler verschiedener Systemdistributionen einen Großteil der wesentlichen Arbeit. Aber es liegt in der Natur der Sache, dass es sich dabei um eine Aufgabe handelt, die sicherlich von irgendjemandem erledigt wird.

Das GNU-Projekt unterstützt das GNU/Linux-System sowie das GNU-System. Die FSF finanzierte eine Neufassung der GNU C-Bibliothek mit Linux-bezogenen Erweiterungen, sodass diese nun vollständig und ohne Änderungen in die neuesten GNU/Linux-Systeme integriert sind, die die aktuellen Versionen der Bibliothek verwenden. Die FSF finanzierte auch die frühen Entwicklungsphasen von Debian GNU/Linux.

Heutzutage sind viele verschiedene GNU/Linux-Systemvarianten (oft „Distributionen“ genannt) verfügbar. Die meisten von ihnen enthalten unfreie Programme – ihre Entwickler folgen der mit Linux verbundenen „Open Source“-Philosophie und nicht der „Freie Software“-Philosophie von GNU. Es gibt aber auch völlig freie GNU/Linux-Distributionen. Die FSF unterstützt an einigen dieser Standorte Computereinrichtungen.

Bei der Erstellung einer freien GNU/Linux-Distribution geht es nicht nur darum, verschiedene unfreie Programme zu eliminieren. Heutzutage enthalten reguläre Linux-Distributionen auch nicht-freie Programme. Diese Programme sind so konzipiert, dass sie beim Systemstart in E/A-Geräte geladen werden und sind als lange Zahlenfolge im Linux-Quellcode enthalten. Deshalb ist für die Pflege einer freien GNU/Linux-Distribution mittlerweile auch die Pflege einer freien Linux-Version erforderlich.

Unabhängig davon, ob Sie GNU/Linux verwenden oder nicht, verwirren Sie die Öffentlichkeit bitte nicht durch die Verwendung des Namens „Linux“. Linux ist der Kernel, eine der Hauptkomponenten, die für das System unverzichtbar ist. Das gesamte System ist im Grunde ein GNU-System mit hinzugefügtem Linux. Wenn Sie über diese Kombination sprechen, nennen Sie sie „GNU/Linux“.

Zusammenfassen

Damit ist dieser Artikel mit der ausführlichen Erklärung der Beziehung zwischen Linux- und GNU-Systemen abgeschlossen. Weitere relevante Inhalte zu Linux- und GNU-Systemen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie eine Multi-Core-CPU, um Ihre Linux-Befehle zu beschleunigen (GNU Parallel)

<<:  So verwenden Sie React zur Implementierung einer Bilderkennungs-App

>>:  Verwenden Sie CSS, um 3D-konvexe und konkave Effekte auf Bildern zu erzielen (konvex aus dem Rahmen heraus oder konkav im Rahmen).

Artikel empfehlen

Erfahrungsaustausch durch einen Frontend-Supervisor mit 7 Jahren Praxiserfahrung

Heute teile ich die wertvollen Erfahrungen eines ...

Informationen zu UDP in Linux

Inhaltsverzeichnis 1. Einführung in UDP und Linux...

So optimieren Sie die langsame Like-Fuzzy-Abfrage in MySQL

Inhaltsverzeichnis 1. Einleitung: 2. Die erste Id...

Ausführliche Erläuterung der Standortpriorität von Nginx

Standortausdruckstyp ~ bedeutet, dass ein regulär...

Detaillierte Erklärung zur Verwendung der Funktion find_in_set() in MySQL

Betrachten wir zunächst ein Beispiel: In der Arti...

Docker5 - Vollfunktionaler Hafenlager-Bauprozess

Harbor ist ein Registry-Server auf Unternehmenseb...

Fassen Sie die häufigsten Anwendungsprobleme von XHTML-Code zusammen

<br />Ich habe festgestellt, dass viele Leut...

Detaillierte Beispiele zur Verwendung der Box-Shadow-Eigenschaft in CSS3

CSS enthält viele Attribute. Manche Attribute wer...

Floaten und Floaten löschen in der Übersichtsseite

1. Float: Der Hauptzweck besteht darin, den Effek...

Detaillierte Erklärung der Destrukturierungszuweisungssyntax in Javascript

Vorwort Die erstmals in ES6 eingeführte „Destruct...

CSS-Animation kombiniert mit SVG zur Erzeugung eines Energieflusseffekts

Der endgültige Effekt ist wie folgt: Die Animatio...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...