Was ist Linux?

Geschichte

Der Entstehung von Linux gehen 2 ganz unterschiedliche Entwicklungen voraus: Das GNU-Projekt und die Entwicklung des Linux-Kernels.

GNU-PROJEKT

Als Ende der 1970er und Anfang der 1980er die Softwarefirmen anfingen, den für ihre Software entwickelten Quellcode geheim zuhalten und die Software nur noch mit einer stark einschränkenden Lizenz zu veröffentlichen, begann Richard Stallman (von 1971 – 1983 Angestellter beim Massachusetts Institute of Technology – MIT) damit einen neuen und gewagten Weg einzuschlagen.
Stallman wollte ein Unix-ähnliches Betriebssystem entwickeln, bei dem der Quellcode völlig frei sein sollte. Da es früher üblich war für Software, die anderer Software ähnelt, so genannte rekursive Akronyme zu verwenden, entschied sich Stallman für den Namen GNU – GNU’s not UNIX.

Warum sich Stallman für ein Unix-ähnliches Betriebssystem entschied, hatte mehrere Gründe. Zum einen konnten vorhandene Unix-Programme weiterverwendet werden, was einer Ablehnung des neuen Betriebssystems entgegen wirkte. Zum anderen bestand Unix aus vielen kleineren Programmen, was eine einfache, schnelle und voneinander unabhängige Entwicklung der Programme ermöglichte. Des Weiteren war der Quellcode für viele Unix-Programme verfügbar, so dass die Programme direkt in GNU integriert werden konnten. Fehlenden Programme wurde von Grund auf neu programmiert.

Das GNU-Projekt wurde am 27. September 1983 in den Newsgroups net.unix-wizards und net.usoft unter dem Titel new UNIX implementation bekannt gegeben. Die Arbeit am GNU-Projekt begann am 5. Januar 1984, als Stallman seinen Job beim MIT aufgab, um sich voll und ganz dem GNU-Projekt zu kümmern und zu verhindern, dass das MIT, als sein Arbeitgeber, die Rechte am Quellcode besitzt. Das wichtigste Motiv für Stallman war “den Geist der Kooperation, der in den frühen Jahren der Computergemeinschaft vorgeherrscht hatte, wiederzubeleben”. Die genauen Gründe, warum Stallman sich entschloss GNU zu erschaffen, kann im GNU Manifest nachgelesen werden. Eine ausführliche Beschreibung zur Entstehung und dem Projekt GNU selbst, gibt Stallman auf der Seite The GNU Project.

Mit der Gründung der Free Software Foundation (FSF), einer gemeinnützigen Institution, gab Stallman dem Projekt einen finanziellen, logistischen und juristischen Rahmen. Neben freiwilligen Mitarbeitern beschäftigt die FSF auch Entwickler, um die Arbeit am Projekt zu beschleunigen. Die FSF wird von namhaften Firmen, wie Google, IBM, HP oder auch die ehemalige Firma Cygnus Solutions duch Spenden unterstützt.

Da damals auch freie Software mit einer Lizenz versehen wurde und jede Software eine eigene Lizenz hatte, entwarf Stallman zusammen mit Jerry Cohan im Januar 1989 die GNU General Public License (kurz GPL), in der er alle gleichartigen Lizenzen vereinigte. Dazu gehörte die GNU Emacs Lizenz, die GNU Compiler Collection Lizenz und die Lizenz des GNU Debugger.

Bereits Mitte der 1980er Jahre war das GNU-Projekt so weit, um große Teile eines Unix-Systems zu ersetzen. Aber es fehlte immer noch ein Kernel, um aus den Programmen ein lauffähiges Betriebssystem zu machen. Darauf hin wurde der Kernel GNU/Hurd entwickelt. Da aber die Entwicklung des Kernels auch in den 1990ern nicht weiter kam, wurde der von Linus Torvalds entwickelte Linux-Kernel als vorübergehende Lösung ins Auge gefasst ….

LINUX-KERNEL
1991 entwickelte Torvalds eine Terminal-Emulation, um auf den Rechner der Universität Helsinki, an der er studierte, zugreifen zu können und um seinen eigenen Computer besser zu verstehen. Nach und nach wurde aus der Terminal-Emulation ein Betriebssystem und Torvalds kündigte es daraufhin im Usenet für das Betriebssystem Minix, comp.os.minix an. Noch im selben Jahr stellte Torvalds sein Programm, er nannte es “Freax”, auf dem Server der Universität Helsinki zum Herunterladen bereit. Doch der Administrator, der den Server betreute, war mit dem Namen nicht einverstanden und stellte es in dem Ordner “Linux” bereit. Anfangs widersetzte sich Torvalds der Namensgebung, musste aber später gestehen, dass der Namen Linux der bessere Name war.

Torvalds veröffentlichte Linux anfänglich unter einer eigenen Lizenz, die eine kommerzielle Nutzung ausschloss. Er merkte jedoch, dass es hinderlich bei der Entwicklung war und entschloss sich, den Entwicklern deutlich mehr Freiraum zu geben. 1992 beschlossen er und seine Mitautoren Linux unter die GNU GPL zu stellen und so jedem die Mitarbeit zu ermöglichen.

TUX – Das Linux Maskottchen
Tux ist wohl der glücklichste rundliche und wohlgenährte Pinguin den es gibt.
1996 kündigte Torvalds an, dass er einen Pinguin als Maskottchen für Linux haben wolle. Grund war ein Aquariumsbesuch in Canberra während einer Auslandsreise nach Australien 1993, bei dem er große Sympathie für die sehr kleinen Fairy-Pinguine (Zwergpinguine) empfand. Als Linus einen Wettbewerb ausschrieb, um ein Logo für Linux zu finden, kam er gleich auf die Pinguine zurück. Tux wurde von Larry Ewing ins Leben gerufen und in der freien Bildbearbeitungssoftware GIMP erstellt.

Linus Torvalds schreibt in seiner Biografie Just for Fun:
Aber Linus wollte keinen x-beliebigen Pinguin. Sein Pinguin sollte glücklich aussehen, so als hätte er gerade eine Maß Bier genossen und den besten Sex seines Lebens gehabt. […] Er sollte unverwechselbar sein. Deshalb […] hat das Linux-Maskottchen einen orangefarbenen Schnabel und orangefarbene Füße, so dass es wie ein Pinguin aussieht, dessen Mutter eine Ente war. Als hätte Daisy Duck sich auf einer Antarktis-Kreuzfahrt vergessen und einen wilden One-Night-Stand mit einem einheimischen Federvieh gehabt. (aus: Torvalds, Linus: Just for Fun, S. 151)

GNU/LINUX

Nach dem man sich entschied den Linux-Kernel in GNU zu integrieren, musste der Code des Linux-Kernel noch an GNU angepasst werden und die Lizenz geändert werden. Später gab Linus Torvalds bekannt, seinen Linux-Kernel unter die GPL zu stellen, die beste Idee war, die er je hatte.

Das Ergebnis war das erste komplett freie Betriebssystem!

Details zum Linux-Kernel

Hier möchte ich einige technische Details auszeigen, die den Linux-Kernel ausmachen.
Der Linux-Kernel stellt der auf dieser Basis aufsetzenden Software eine einheitliche Schnittstelle (API) zur Verfügung, die unabhängig von der Rechnerarchitektur ist. Die Software kann so immer auf die Schnittstelle zugreifen und braucht die Hardware selbst, die sie nutzt, nicht genauer zu kennen. Linux ist fast ausschließlich in der Programmiersprache C geschrieben, wobei einige GNU-C-Erweiterungen benutzt werden. Eine Ausnahme bilden die architekturabhängigen Teile des Codes wie zum Beispiel der Beginn des Systemstarts (Bootvorgang), der in Assemblersprache geschrieben ist.
Bei einem strikt monolithischen Kernel wird der gesamte Quellcode inklusive aller Treiber in das Kernel-Image (den ausführbaren Kernel) kompiliert. Im Gegensatz dazu kann Linux Module benutzen, die während des Betriebs geladen und wieder entfernt werden können. Damit wird die Flexibilität erreicht, um unterschiedlichste Hardware ansprechen zu können, ohne sämtliche (auch nicht benötigte) Treiber und andere Systemteile im Arbeitsspeicher halten zu müssen. Der Kernel ist ein Betriebssystemkern und darf nicht als das eigentliche Betriebssystem verstanden werden.
Obwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einen portierbaren Kernel zu schreiben, hat sich Linux dank des GNU Compilers GCC weitreichend in diese Richtung entwickelt. Es ist inzwischen eines der am häufigsten portierten Systeme (nur noch NetBSD läuft auf etwa gleich vielen Architekturen). Das Repertoire reicht dabei von eher selten anzutreffenden Betriebsumgebungen wie dem iPAQ-Handheld-Computer, Digitalkameras oder Großrechnern wie IBMs System z bis hin zu normalen PCs. Ursprünglich hatte Torvalds eine ganz andere Art von Portierbarkeit für sein System angestrebt, nämlich die Möglichkeit, freie GPL- und andere quelloffene Software leicht unter Linux kompilieren zu können. Dieses Ziel wurde bereits sehr früh erreicht und macht sicherlich einen guten Teil des Erfolges von Linux aus, da es jedem eine einfache Möglichkeit bietet, auf einem freien System freie Software laufen zu lassen.
Die ersten Prozessor-Architekturen auf denen Linux lief, waren IA-32 (ab dem i386 x86) und DEC Alpha, ein sehr frühes 64-bit-System. Kurz darauf folgten SPARC, Motorola 68000, und der PowerPC von Apple, IBM und Motorola. Zur Jahrtausendwende kamen Intels Itanium (IA-64), S/390 von IBM oder MIPS hinzu. Aktuell ist Linux auf einer Vielzahl von Architekturen lauffähig, darunter die oben genannten und zusätzlich verschiedene RISC-System, z Systems von IBM, Motorola 68020 (Atari, Amiga, Apple Mac II), SuperH (Hitachi, CPU der SEGA Dreamcast) sowie Atmel AVR32. Hinzu kommt zudem die ARM-Architektur.
Es existieren immer 3 Varianten einer Linuxkernels, die Entwicklerversion, die LTS-Version mit längerem Support und den Standard-Kernel, der mit jeder neuen Distributionsversion mit aktualisiert wird. Die älteste noch unterstütze Version ist von 2017 (Endet 01/2024). Version die 2022 veröffentlicht wurden werden bis Ende 12/2026 unterstützt.

Distributionen

Verschiedene Gruppen von Entwicklern adaptierten den Linux-Kernel und machten Anpassung, schrieben Treiber, zusätzliche Programme und Werkzeuge, um ein vollständiges Betriebssystem zu ermöglichen. Die erste kommerziell auf CD erhältliche Distribution war 1992 das von Adam J. Richters entwickelte Yggdrasil Linux. 1993 veröffentlichte Patrick Volkerding die Distribution Slackware, die auf SLS basiert. Sie ist die älteste heute noch aktive Linux-Distribution. Ebenfalls 1993, ungefähr einen Monat nach der Veröffentlichung von Slackware, wurde das Debian-Projekt ins Leben gerufen, das im Gegensatz zu Slackware gemeinschaftlich entwickelt wird. Die erste stabile Version kam 1996 heraus. 2004 wurde von Canonical das auf Debian basierende, später sehr populäre Ubuntu herausgebracht. unter Distribution versteht man also eine Auswahl aufeinander abgestimmt Softwaresammlung um den Linux-Kernel herum, die von den Herausgebern der Distribution selber gepflegt und zusammengestellt werden. Zu den Hauptbestandteilen gehört neben der Linux-Kernel zumeist auch die GNU-Software-Sammlung, in der die klassischen Konsolen Befehle wie ls um Dateien und Ordner anzuzeigen, oder rm um Dateien zu löschen, sowie die Systemdienst (Daemons). Zudem können sich die Distributionen auch in der verwendeten Desktopumgebung unterscheiden, was neben der Softwarezusammenstellung ein bedeutender Unterschied zu Windows oder macOS ist, bei denen nur eine Desktopumgebung Verwendung findet und nur eine sehr kleine Auswahl an Software mitgeliefert wird.
Zu Auswahl an Programmen, die mitgeliefert werden scheint bei Linux nahezu unendlich zu sein und umfasst Programme aus den Kategorien Office-Pakete, Multimediasoftware, wie Audio, Video und Grafikprogramme, Editoren, E-Mail-Programme, verschiedene Browser, aber auch Server-Dienste. Daneben finden sich meist Softwareentwicklungswerkzeuge wie Compiler bzw. Interpreter sowie Editoren.
Es existieren neben den Distributionen für PCs auch Distributionen für Smartphones (auch Android basiert auf Linux), Linux-Systeme für den Industriebereich, meist als Echtzeitbetriebssystem, was mit einem normalen PC-Betriebssystem nur noch sehr wenig gemeinsam hat oder sogenannte Live-Systeme, die von einem USB-Strick oder einer CD/DVD gestartet werden können. Die meisten heutzutage erhältlichen Distributionen entsprechen diesen Live-Systemen, um das Distribution ausprobieren zu können und danach direkt zu installieren.
Linux-Distributionen die speziell für Unternehmen erstellt werden, enthalten meistens auch Support und sind deshalb nicht kostenlose erhältlich, darunter fallen z.N, RHEL (Red Hat Enterprise Linux) oder SLES (Suse Linux Enterprise Server).

Kompatibilität der Linux-Distributionen untereinander

Der Hauptunterschied zwischen den Distributionen ist die Art und Weise wie die Softwarepakete installiert werden. Dies begann schon sehr früh, da jede Distribution versuchte eine für sich perfekte Möglichkeit zu finden, um diese Paket zu installieren und eine Möglichkeit schafften die Abhängigkeiten und Voraussetzungen zu prüfen. So entstanden als prominentestes Beispiel RPM und dpkg, oder es werden bereits fertige Softwarepakete ausgeliefert (flatpak, Snap), die ohne einen zusätzlichen Installer nicht installiert werden können. Eine wichtige Norm ist POSIX oder die LSB, die ein weiteres auseinander entwickeln der Distributionen zu verhindern versucht und einheitliche Standards schafft. Alle auf Debian basierenden Distributionen nutzen um Normalfall das dpkg-Format und sind untereinander kompatibel, genauso sind alle Distributionen, die auf RHEL, OpenUSE oder Mandriva basieren mit dem RPM-Format kompatibel.

Einsatzbereiche

Es gibt unzählige Einsatzmöglichkeiten für Linux, was vor Allem der offenen Lizenz zu verdanken ist. So ist Linux für Unternehmen, Privatanwender oder öffentliche Einrichtungen geeignet. Zudem können, auf Grund es offenen Quellcodes schnell Sicherheitsrisiken, Programmierfehler finden und korrigieren.
Fangen wir wie mit den größten Einsatzgebieten an: Desktop und Server. Für beide Bereiche gibt es Vielzahl von Distributionen, die sich auf bestimmte Benutzergruppen spezialisiert haben. Ubuntu, Linux Mint, oder Manjaro sind bestens geeignet für den Privatanwender im Desktopbereich. Die Distributionen kommen mit sehr viel Software im Bereich Grafik, Video und Audio, Computerspiele, sowie klassische Programme wie E-Mail-Programme, Browser oder Office-Programme.
Im Serverbereich lassen sich Debian, CentOS oder Rocky Linux nennen. Diese sind speziell für den Servereinsatz zusammen gestellt und so lassen sich Serverdienste bereitstellen. Der bekannteste ist LAMP (Linux, Apache, MySQL, PHP) und stellt einen Webserver zum ausliefern von Webseiten Zur Verfügung. Ebenso gehören Mail-Server oder auch Wiki-Dienste dazu, sowie Dateidienste wie File- und (S)FTP-Server. Diese Server könne auch in ein Windows-Netzwerk integriert werden und so bestimmte Windows-Server-Dienste ersetzen. Die meisten Online-Game-Server werden mit Linux betrieben, auch wenn das Spiel nicht unter Linux erhältlich ist.
Ein weiteres Gebiet ist “Schule und Lernen”, so gibt her hier speziell für Schulen entwickelte Linux-System, die besonders auf Sicherheit, Jugendschutz, z.b. durch Internetfilter, und einfache Bedienung ausgelegt sind. Zu nenne ist hier Skolelinix, Open School Server oder peadML des Landes Baden-Württemberg. paedML stell eine vorkonfigurierte Netzwerklösung als Musterlösung bereit.
Zusätzlich gibt es Distributionen, die speziell für die Unterstützung von Windows- und macOS-Anwendungen ausgelegt sind. “Wine” und “CrossOver” sind hier die bekanntesten für Windows.
Auch in Sachen Barrierefreiheit hat sich einiges getan, so existiert die Distribution “Stormux”, die sich speziell an Blinde und Menschen mit Sehbehinderung richtet. Zudem bieten die Desktopoberflächen Gnome und KDE, Tools wie Bildschirmlupe oder die Unterstützung einer Braillezeile.
Als nächstes gibt es noch sogenannte Embedded-Systeme. Diese Systeme werden in der Industrie eingesetzt oder den “Bastelrechnern” wie Raspberry Pi oder Arduino, aber auch in WLAN-Router wie die Fritz-Box, Festplattenrekordern, Satellitenreceiver oder DVD- und BluRay-Playern.
Ein weiterer wichtiger Einsatzbereich ist der Sicherheitsbereiche, was Firewalls, Gateways und Router einschließt. Versicherungen, Banken und Konzerne setzen auf Linux auf deren Großrechner, da Linux an jeden Anwendungszweck angepasst werden kann somit für Anforderungen wie Zuverlässigkeit oder Datendurchsatz optiert werden. Im Bereich der Supercomputer laufen alle in der Top 500 der schnellsten Supercomputer vertretenen Supercomputer mit Linux.

Quelle: Wikipedia.de

 Letztes Update: Fr, 01. Sep. 2023
Ursprünglich veröffentlicht:  Mo, 26. Jun. 2023

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert