GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was macht eine GNU-Distribution aus und gibt es Linux-Distributionen, die nicht GNU sind?

Die Free Software Foundation argumentiert, dass die Mehrheit der Linux-Distributionen tatsächlich GNU-Systeme sind, die zufällig einen Linux-Kernel verwenden. Sie stützen diese Behauptung auf die Tatsache, dass GNU ein langjähriges Projekt zur Entwicklung eines freien Betriebssystems war, bevor Linux auf den Markt kam, und dass der Kernel nur das letzte fehlende Teil war. Sie haben Recht damit, dass praktisch alle Linux-basierten Desktop- und Server-Distributionen zumindest einige GNU-Komponenten verwenden, vielleicht am wichtigsten die GNU C Library (glibc), GNU Core Utilities (coreutils) und die Bash-Shell. Darüber hinaus ist die Entwicklung des Linux-Kernels aufgrund der Verwendung von GCC-Erweiterungen von Natur aus an GCC gebunden.

Einige eingebettete Systeme, vielleicht am bemerkenswertesten Googles Android, verwenden keine GNU-Komponenten oder -Bibliotheken. In Android beispielsweise wird die GNU C Library durch Googles eigene, BSD-basierte Bionic C Library ersetzt. Die FSF stimmt zu, dass es nicht angebracht ist, solche Systeme als „GNU-Systeme“ oder „GNU/Linux“ zu bezeichnen, möchte aber andererseits auch nicht, dass diese lediglich als „Linux“-Systeme bezeichnet werden. Zumindest können wir den Schluss ziehen, dass es einen Konsens darüber zu geben scheint, dass die Verwendung von GNU-Tools zum Erstellen des Kernels nicht funktioniert ein System zu einem "GNU-System" machen.


Die Geschichte der GNU/Linux-Terminologie reicht bis in die frühen 1990er Jahre zurück.

1991 startete Linus Torvalds das Linux-Kernel-Projekt in seinem Schlafzimmer in Helsinki. Nicht lange danach gewann der Linux-Kernel erheblich an Zugkraft, unterstützt durch den Aufstieg des Internets.

Das GNU-Projekt von Richard Stallman plante damals noch, den HURD-Mikrokernel als Kernel des geplanten GNU-Betriebssystems zu verwenden. Als sich jedoch Linux-Distributionen (freie Unix-ähnliche Betriebssysteme, die auf dem Linux-Kernel basieren) um das neue Linux-Kernel-Projekt herum zu bilden begannen, interessierte sich Stallman dafür. Als das Debian-Projekt 1993 unter der Leitung von Ian Murdock begann, unterstützte die FSF das junge Projekt finanziell. Die Debian-Entwickler trennten sich jedoch schnell von Stallman und der FSF, teilweise aus technischen Gründen. Ein Problem war zum Beispiel, dass Stallman Debugging-Symbole im Programm behalten wollte, während Debian sie entfernen wollte.

Nachdem sich die Wege von Debian und der FSF getrennt hatten, forderte Stallman, dass Debian sich selbst als GNU/Linux bezeichnet. Die Anfrage wurde an Bruce Perens gerichtet, da Murdock ihm die Führung übergeben hatte. Da sich diese Organisationen im Guten getrennt hatten und gemeinsame Ziele teilten (und teilen), taten die Debian-Entwickler, was er verlangte. Natürlich ist es wahr, dass Stallman solche Namen unabhängig beworben hat, aber die Zusammenarbeit eines tatsächlichen Linux-basierten Betriebssystems, das sich selbst als solches bezeichnet, war für die Förderung der Verwendung eines solchen Namens von Bedeutung.

Die von Stallman angegebene Begründung beinhaltete, dass (a) der Kern des Systems neben dem Linux-Kernel größtenteils aus GNU-Tools bestand, (b) der Linux-Kernel in gewissem Sinne der Höhepunkt / Abschluss des GNU-Projekts war, das versucht hatte einige Zeit einen funktionierenden Kernel erhalten, also sollte es diesen Namen verwenden, um die Ideale des GNU-Projekts anzuerkennen und daran zu erinnern. Grund (a) wird tendenziell häufiger genannt, obwohl er damals nicht ganz richtig war und heute noch weniger zutrifft, obwohl offensichtlich wichtige Teile eines Linux-basierten Betriebssystems von GNU-Tools abhängen, z. bash, gcc, binutils, gdb, libc etc., diese können teilweise durch andere Tools ersetzt werden. Solche Argumente sind also zumindest umstritten und wurden in der Tat viel diskutiert.

Soweit ich weiß, bezeichnen sich nur Debian und (einige) seiner Derivate (in Anlehnung an seine Eltern) selbst als GNU/Linux. Die anderen sogenannten Linux-Distributionen wie Fedora, Gentoo usw. unterscheiden sich jedoch im Wesentlichen nicht von Debian - es handelt sich meistens um die gleiche Software. Man hat also einen ebenso guten Grund, sie als GNU/Linux zu bezeichnen.

Es gibt nicht viele Systeme, die den Linux-Kernel ohne das GNU-Userland verwenden, da sich beide weitgehend zusammen entwickelt haben und auf verschiedene Weise miteinander verflochten sind. (Zum Beispiel ist der Linux-Kernel im erweiterten (GNU) C von gcc geschrieben und lässt sich nicht mit einem Standard-C-Compiler erstellen.) Wie Thomas sagte, ist das offensichtliche Beispiel Android, aber da es von Google so stark gegabelt wurde Es ist fraglich, ob es richtig ist, den Android-Kernel noch als Linux zu bezeichnen, obwohl von einer Zusammenführung/Versöhnung in der Zukunft die Rede ist.

Nebenbei bemerkt ist es bedauerlich festzustellen, dass Stallman und die FSF die GNU/Linux-Terminologie anscheinend ziemlich stark vorantreiben. Zum Beispiel schrieb Jonathan Corbet in einem LWN-Kommentar, dass die FSF sich weigere, mit ihm zu sprechen, es sei denn, er verwende den Begriff GNU/Linux. Jon ist nicht nur LWN-Gründer, sondern auch ein hochrangiger und angesehener Kernel-Entwickler. In seiner Gesamtheit lautet der Kommentar:

Nur um das klarzustellen:Wir haben vor vielen Jahren aufgehört, die FSF um Kommentare zu bitten, weil die FSF sich geweigert hat, ohne vorherige Zusagen von uns darüber zu sprechen, was wir sagen und welche Begriffe wir verwenden würden. Wir sind nicht bereit, solche Versprechungen zu machen. Wenn sich die Politik der FSF in solchen Dingen geändert hat, würden wir uns freuen, davon zu erfahren.

Dies ist unter anderem ein eindeutiger Hinweis auf das Beharren auf der GNU/Linux-Terminologie.

Die obige Geschichte wird ausführlich in Kapitel 6 ("Boot Then Root") von "Rebel Code" von Glyn Moody behandelt.


Ein Betriebssystem ist eine Kombination aus Kernel und Userland. Grundsätzlich verwaltet der Kernel die Hardware, während das Userland den Benutzern eine umfassende Schnittstelle bietet.

In einer gängigen GNU/Linux-Distribution stellt Linux den Kernel bereit, während das GNU-Projekt die Userland-Tools bereitstellt. GNU wurde lange vor Linux gestartet und bietet eine große Menge an Dienstprogrammen, um ein vollständiges Betriebssystem zu erstellen.

Allerdings fehlte ihnen ein Kernel. Obwohl sie den Hurd-Kernel hatten, dauerte es zu lange, bis er fertig war. Und dann kam Linux mit Hilfe einer großen Begeisterung, es hat sich schneller entwickelt als Hurd.

Sie haben jetzt ein Userland und einen Kernel aus zwei verschiedenen Projekten. Und da jedes für ein Betriebssystem unerlässlich ist, warum nicht die Assoziation GNU/Linux nennen, damit jedes Projekt seinen Anteil an der Anerkennung erhält?

Sie haben andere Userlands wie die BSD-Dienstprogramme oder BusyBox. Sie sind jedoch im Vergleich zu den GNU-Hilfsprogrammen mehr oder weniger vollständig, und einige Software funktioniert nur mit einem GNU-Benutzerland. Beispielsweise verwenden die meisten BSD-Betriebssysteme GCC als Compiler, während LLVM diese Situation bald ändern wird.

Und als universelles Betriebssystem können Sie Debian mit einem FreeBSD-Kernel und einem GNU-Userland ausführen.


Linux
  1. Linux – Was sind High Memory und Low Memory unter Linux?

  2. Was sind die Hauptunterschiede zwischen Bsd und Gnu/Linux Userland?

  3. Linux – Was macht Osx-Programme unter Linux nicht lauffähig?

  4. Wie überprüfe ich PHP- und Apache-Module, die auf einem Linux installiert sind?

  5. In welchen Sprachen sind Windows, Mac OS X und Linux geschrieben?

6 Linux-Distributionen, die vom Look and Feel von macOS

Beste Linux-Distributionen, die am besten für Anfänger geeignet sind

Was sind Snaps und wie wird es auf verschiedenen Linux-Distributionen installiert?

Was sind Linux-Protokolle und wo sind sie zu finden?

Die schlechtesten Linux-Distributionen für Anfänger [und was zu wählen]

So installieren und verwenden Sie GNU Emacs auf Linux-Distributionen