GNU

  Screenshot eines GNU-basierten Betriebssystems
Screenshot von einem GNU-basierten Betriebssystem
Webseite: www.gnu.org
Gesellschaft/
Entwickler:
GNU-Projekt
OS-Familie: Unix-ähnlich
Quellmodell: Gratis Software
Kerneltyp: Mikrokern
Lizenz: Meistens GPL, etwas LGPL
Arbeitszustand: Funktionell, aber unfertig

GNU ( ausgesprochen /Gnu/ ) ist ein freies Betriebssystem, das aus einem Kernel, Bibliotheken, Systemdienstprogrammen, Compilern und Endbenutzeranwendungen besteht. Sein Name ist ein rekursives Akronym für ' G JETZT N ot IN nix ', das gewählt wurde, weil sein Design Unix-ähnlich ist, sich aber von Unix dadurch unterscheidet, dass es freie Software ist und keine enthält UNIX Code. Der Plan für das GNU-Betriebssystem wurde im September 1983 von angekündigt Richard Stallmann und die Softwareentwicklungsarbeit begann im Januar 1984. Seit 2006 wird GNU aktiv weiterentwickelt. Das Projekt zur Entwicklung von GNU ist als GNU-Projekt , und Programme, die unter der Schirmherrschaft des GNU-Projekts veröffentlicht wurden, werden aufgerufen GNU-Pakete oder GNU-Programme .

Bis 2006 wurde kein vollständiges GNU-System veröffentlicht. Der offizielle Kernel ist GNU Hurd. Hurd ist jedoch noch nicht fertig, sodass die meisten GNU-Benutzer den Linux-Kernel eines Drittanbieters verwenden. Während Linux nicht offiziell als Kernel von GNU übernommen wurde, enthält GNU offiziell andere Software von Drittanbietern wie das Xorg-Fenstersystem und die TeX Satzsystem.

Zu den Grundkomponenten des Systems gehören die GNU Compiler Collection (GCC), die GNU Binary Utilities (binutils), die Bash-Shell, die GNU C-Bibliothek (glibc) und Coreutils. GNU verwendet die Drittanbieterpakete X.Org und TeX für die Grundlage seiner grafischen Benutzeroberfläche bzw. seines Satzsystems. Noch arbeitet nicht alle GNU-Software mit dem GNU-Hurd-Kernel.

Versionen von GNU, die den Linux-Kernel verwenden, werden häufig genannt Linux , nach dem Kernel. Das GNU-Projekt fordert die Leute auf, diese Systeme 'GNU/Linux' zu nennen. Siehe GNU/Linux-Namenskontroverse.

Viele GNU-Programme wurden auch auf zahlreiche andere Betriebssysteme wie Windows, BSD, Solaris und Mac OS portiert.

Die GNU General Public License (GPL), die GNU Lesser General Public License (LGPL) und die GNU Free Documentation License (GFDL) wurden für GNU geschrieben, werden aber auch von vielen unabhängigen Projekten verwendet.

Geschichte

Das GNU-Projekt wurde am 27. September 1983 in den Newsgroups net.unix-wizards und net.usoft öffentlich bekannt gegeben. Die Softwareentwicklung begann am 5. Januar 1984, als Stallman seinen Job am Massachusetts Institute of Technology kündigte, damit sie keine Eigentumsrechte beanspruchen oder die Verbreitung von GNU als freie Software stören konnten. Laut Stallman wurde der Name von verschiedenen Wortspielen inspiriert, darunter das Lied The Gnu.

Das Ziel war es, ein vollständig freies Software-Betriebssystem zu schaffen. Stallman wollte, dass Computerbenutzer frei sind, wie es die meisten in den 1960er und 1970er Jahren waren; frei, den Quellcode der von ihnen verwendeten Software zu studieren, frei, das Verhalten der Software zu ändern, und frei, ihre modifizierten Versionen der Software zu veröffentlichen. Diese Philosophie wurde im März 1985 als GNU-Manifest veröffentlicht.

Ein Großteil der benötigten Software musste von Grund auf neu geschrieben werden, aber es wurden vorhandene kompatible freie Softwarekomponenten verwendet. Zwei Beispiele waren die TeX Satzsystem und das X Window-System . Der größte Teil von GNU wurde von Freiwilligen geschrieben; einige in ihrer Freizeit, andere bezahlt von Unternehmen, Bildungseinrichtungen und anderen gemeinnützigen Organisationen. Im Oktober 1985 gründete Stallman die Free Software Foundation (FSF). In den späten 1980er und 1990er Jahren stellte die FSF Softwareentwickler ein, um die für GNU benötigte Software zu schreiben. Zu Spitzenzeiten waren 15 Mitarbeiter beschäftigt. FSF hält auch die Urheberrechte für einige GNU-Softwarepakete. Die meisten GNU-Pakete sind unter der GNU General Public License (GNU GPL) lizenziert, während einige wenige die GNU Lesser General Public License (GNU LGPL) verwenden und eine noch geringere Menge andere freie Softwarelizenzen verwendet.

Damit es für die Leute bequemer wäre, zu GNU zu wechseln, wurde entschieden, dass GNU größtenteils mit GNU kompatibel sein würde Unix . Damals war Unix ein beliebtes proprietäres Betriebssystem. Das Design von Unix hatte sich als solide erwiesen, und es war modular aufgebaut, sodass es Stück für Stück neu implementiert werden konnte.

Als GNU an Bedeutung gewann, begannen interessierte Unternehmen, zur Entwicklung oder zum Verkauf von GNU-Software und technischem Support beizutragen. Das bekannteste und erfolgreichste davon war Cygnus Solutions, jetzt Teil von Red Hat.

Lizenzierung

Um sicherzustellen, dass GNU-Software frei bleibt, veröffentlichte das Projekt 1989 die erste Version der GNU General Public License (GNU GPL). Diese Lizenz wird heute von den meisten GNU-Programmen sowie einer großen Anzahl freier Softwareprogramme verwendet sind nicht Teil des GNU-Projekts; es ist die am häufigsten verwendete kostenlose Softwarelizenz. Es gibt allen Empfängern eines Programms das Recht, es auszuführen, zu kopieren, zu modifizieren und zu verbreiten, während es ihnen gleichzeitig verbietet, weitere Beschränkungen für von ihnen verbreitete Kopien aufzuerlegen. Diese Idee wird als Copyleft bezeichnet.

1991 wurde die GNU Lesser General Public License für bestimmte Bibliotheken geschrieben.

Im Jahr 2000 wurde die GNU Free Documentation License für technische Handbücher geschrieben.

Konzeption und Umsetzung

Der ursprüngliche Plan für GNU war, größtenteils Unix-kompatibel zu sein, während Verbesserungen hinzugefügt wurden, wo sie nützlich waren. Das Design des Kernels war GNUs größte Abweichung von 'traditionellem' Unix. Der Kernel von GNU sollte ein Mikrokernel für mehrere Server sein.

GNU Hurd läuft auf einem Mikrokernel (derzeit Mach) und besteht aus einer Reihe von Programmen namens Server, die die gleiche Funktionalität wie die traditionellen bieten Unix Kernel (oder Linux).

GNU (mit Hurd) kann mit einer Live-CD ausprobiert werden. (Sehen Distributionen von GNU ).

Bis 1990 hatte das GNU-System einen erweiterbaren Texteditor ( Emacs ), ein sehr erfolgreicher optimierender Compiler ( GCC) und die meisten Kernbibliotheken und Dienstprogramme einer Standard-Unix-Distribution. Die Hauptkomponente, die noch fehlte, war der Kernel. Im GNU-Manifest hatte Stallman erwähnt, dass 'ein anfänglicher Kernel existiert, aber viele weitere Funktionen benötigt werden, um Unix zu emulieren'. Er bezog sich auf TRIX, einen vom Massachusetts Institute of Technology entwickelten Remote Procedure Call-Kernel, dessen Autoren beschlossen hatten, ihn kostenlos zu verteilen, und der mit Version 7 von Unix kompatibel war. Im Dezember 1986 hatte die Arbeit begonnen, diesen Kernel zu modifizieren. Die Entwickler entschieden jedoch schließlich, dass es als Ausgangspunkt unbrauchbar war, vor allem, weil es nur auf 'einer obskuren, teuren 68000-Box' lief und daher auf andere Architekturen portiert werden musste, bevor es verwendet werden konnte. Bis 1988 wurde stattdessen der Message-Passing-Kernel von Mach in Betracht gezogen, der an der Carnegie Mellon University entwickelt wurde, obwohl seine Veröffentlichung als freie Software bis 1990 verzögert wurde, während seine Entwickler daran arbeiteten, Code zu entfernen, der Eigentum von war AT&T .

Da der Mach-Mikrokernel konstruktionsbedingt nur die Low-Level-Kernel-Funktionalität bereitstellte, musste das GNU-Projekt die übergeordneten Teile des Kernels als Sammlung von Benutzerprogrammen entwickeln. Ursprünglich sollte diese Sammlung Alix heißen, aber Entwickler Michael (jetzt Thomas) Bushnell bevorzugte später den Namen Hurd, sodass der Name Alix in ein Subsystem verschoben und schließlich ganz fallen gelassen wurde. Schließlich kam die Entwicklung des Hurd aus technischen Gründen und Persönlichkeitskonflikten ins Stocken.

1991, Linus Torvalds schrieb den Unix-kompatiblen Linux-Kernel. Obwohl die ursprüngliche Lizenz für Linux Beschränkungen für den kommerziellen Vertrieb aufwies und daher keine Software war, die im wahrsten Sinne des Wortes frei war, änderte Torvalds die Lizenz 1992 schnell in die GNU GPL, was er später als die beste Entscheidung bezeichnete, die er je getroffen hatte. Linux wurde von verschiedenen Programmierern über die weiterentwickelt Internet . 1992 wurde es mit dem GNU-System kombiniert, was zu einem funktionsfreien Betriebssystem führte. Das GNU-System ist am häufigsten in dieser Form anzutreffen, die normalerweise als „Linux-Distribution“ bezeichnet wird (siehe jedoch den Abschnitt über Namenskontroversen weiter unten). Ab 2005 befindet sich Hurd in einer langsamen Entwicklung und ist nun der offizielle Kernel des GNU-Systems. Es gibt auch ein Projekt, das daran arbeitet, das GNU-System auf die Kernel von FreeBSD und NetBSD zu portieren.

Wir

GNU, GNU Hurd und GNU/Hurd

GNU/Hurd bezieht sich auf a GNU OS-Distribution, die GNU Hurd als Kern verwendet . GNU Hurd ist eine Reihe von Programmen oder Servern, die auf einem Mikrokernel laufen, der die gleichen Dienste wie ein traditioneller monolithischer Unix-Kernel bereitstellt. (GNU verwendet derzeit den GNU Mach-Mikrokernel, aber Bemühungen, Hurd auf den L4-Mikrokernel zu portieren, sind derzeit im Gange.) Das 'GNU' in GNU Hurd zeigt an, dass es ein Teil von ist GNU-Projekt , während „GNU/Hurd“ es als eines der beiden derzeit verfügbaren GNU-Systeme unterscheidet – Hurd-basierte GNU-Systeme („GNU/Hurd“) oder Linux-basierte GNU-Systeme („GNU/Linux“). Nur 'GNU' bezieht sich auf GNU/Hurd.

GNU/Linux-Namenskontroverse

Ein System mit einem Linux-Kernel und einem überwiegend GNU-Benutzerland wird normalerweise als 'Linux-System' bezeichnet. Die FSF besteht jedoch darauf, dass das GNU-Projekt den größten Beitrag leistete und 'mindestens gleichberechtigt erwähnt werden sollte'.

„GNU/Linux“ wird „GNU-Slash-Linux“ ausgesprochen, oder häufiger nur „GNU Linux“. Die FSF bestreitet jedoch, dass sich „GNU Linux“ nach den Regeln der englischen Sprache auf eine Distribution des Kernel-Linux durch das GNU-Projekt oder dessen Version des GNU-Projekts bezieht; 'GNU/Linux', sagen sie, macht deutlich, dass eine Person sich auf die Kombination des Linux-Kernels und der GNU-Userland-Binärdateien bezieht, die ein vollständiges GNU-Betriebssystem bilden. Linus Torvalds , ursprünglicher Autor von Linux, billigt den Begriff 'GNU/Linux' nicht; er bevorzugt „GNU Linux“, wenn das GNU-Projekt „eine eigene Distribution will“.

GNU-Software

Zu den herausragenden Komponenten des GNU-Systems gehören die GNU Compiler Collection (GCC), die GNU C Library (glibc), die GNU-Emacs Texteditor und die Gnom Desktop-Umgebung.

Viele GNU-Programme wurden auf andere Betriebssysteme portiert und werden oft auf proprietären installiert UNIX Systeme, um die proprietären Dienstprogramme zu ersetzen. Diese GNU - Programme wurden in umstrittenen Fällen als zuverlässiger als ihre proprietären Unix - Gegenstücke getestet . Der Ruf von GNU-Software ist unter Linux-Benutzern besonders gut für ihre Software-Entwicklungswerkzeuge - die manchmal zusammenfassend als das bezeichnet werden GNU-Toolset . Diese GNU-Versionen machen nur einen kleinen Teil des GNU-Systems als Ganzes aus und sind nicht POSIX-kompatibel. Mit der Popularität von GNU/Linux-Systemen installieren viele Entwickler das GNU-Toolset auf anderen Systemen, um die Kompatibilität zu gewährleisten oder ein einheitliches Verhalten auf allen Plattformen zu erfassen. Viele GNU-Programme wurden auch portiert Microsoft Windows , Mac OS X und verschiedenen anderen proprietären Plattformen ist dies jedoch oft ein heißes Thema unter Enthusiasten, da das Motiv für die Entwicklung dieser Programme darin bestand, diese Systeme durch freie Software zu ersetzen, nicht, sie zu verbessern.

Eine Liste von Paketen, die in der Gemeinschaft freier Software bekannt sind, umfasst:

  • Systemsoftware
    • Bison – Parser-Generator, der yacc ersetzen soll
    • Bash – Unix-Shell
    • BFD – Objektdateibibliothek
    • Classpath – Bibliotheken für Java
    • Coreutils – grundlegende Unix-Dienstprogramme wie cat, ls und rm
    • Emacs – erweiterbarer, selbstdokumentierender Texteditor
    • GNU-C-Bibliothek – Standard-POSIX-C-Bibliothek plus zusätzliche Funktionalität
    • gzip – eine Bibliothek und ein Programm zur Datenkomprimierung
    • Die GNU-Toolchain für die Softwareentwicklung:
      • GNU Binary Utilities – Assembler, Linker und verwandte Tools
      • GNU-Build-System – Autoconf, Automake, Libtool
      • GCC – optimierender Compiler für viele Programmiersprachen , einschließlich C, C++ , Fortran, Ada und Java
      • GDB – Debugger
    • Screen – ein Terminal-Multiplexer
    • Texinfo – Dokumentationssystem zur Erstellung von Online- und gedruckten Handbüchern
    • Wget – erweitertes Abrufen von Dateien aus Netzwerken und dem Internet
    • GNUnet – dezentralisiertes Peer-to-Peer-Kommunikationsnetzwerk, das so konzipiert ist, dass es gegen Zensur resistent ist
    • GNU Hurd – ein Mikrokernel-basierter Satz von Servern, die die gleiche Funktion wie ein Unix-Kernel ausführen
  • Anwendungssoftware
    • GIMP – GNU-Bildbearbeitungsprogramm
    • Gnash – Player für Filme im Adobe Flash-Format.
    • GMP – Programmierbibliothek für numerische Berechnungen mit beliebiger Genauigkeit
    • Gnom – grafische Desktop-Umgebung
    • GNU LilyPond – Notensatzprogramm
    • GNU Octave – Programm für numerische Berechnungen ähnlich MATLAB
    • GNU Privacy Guard (GnuPG) – kostenloses Verschlüsselungstool, das PGP ersetzen kann
    • GNU Robots – kleines, aber süchtig machendes Spiel für Computerprogrammierer
    • Wissenschaftliche GNU-Bibliothek
    • GNUstep – Implementierung des OpenStep-Standards für eine Reihe von Bibliotheken und Entwicklungstools für grafische Anwendungen
    • GNU Guile – integrierbar Planen Dolmetscher

Seit Januar 2005 gibt es insgesamt 288 GNU-Pakete, die auf der GNU-Hosting-Site gehostet werden. Andere werden woanders gehostet.

Distributionen von GNU

  • Biene GNU/Hurd
  • Debian GNU/Hurd
  • GNUAB
  • Superunprivileged.org Hurd Live-CD
  • Inoffizielles Gentoo/Hurd-Projekt

Betriebssysteme, die auf GNU basieren, aber Hurd nicht verwenden

  • GNU/kFreeBSD
  • GNU/Linux , die mit Abstand beliebteste Variante von GNU.
  • GNU/NetBSD
  • GNU/Solaris