Sprache: English | Deutsch 

Linux

Geschichte (Multics/Unix):

1965-1969 arbeiteten die Bell Telephone Laboratories gemeinsam mit der General Electric Company am Betriebssystem Multics. Ziel war es, ein Multitasking-Betriebssystem für Minicomputer und Großrechner zu entwickeln. Es sollte ermöglichen, eine große Anzahl Benutzer parallel auf einem Rechner mit begrenzten Ressourcen wie z.B. Speicher arbeiten zu lassen.

1969-1971 zogen sich die Bell Laboratories aus dem Projekt zurück, da - abgesehen von einer einfachen laufenden Version - ein Erfolg nicht abzusehen war. Viele Mitarbeiter begannen bald darauf mit der Implementierung eines neuen Filesystems für eine verbesserte Programmierumgebung. Es war allerdings nötig, zusätzliche Subsysteme und Werkzeuge herzustellen. Das neue Betriebssystem wurde 'Unix' getauft, um den Gegensatz zu Multics zu betonen.

1971 begann die Weiterentwicklung von Unix. Vor allem die Entscheidung, das Betriebssystem in C neu zu schreiben, sowie seine Nutzung an Universitäten zu Lehrzwecken erhöhten seine Popularität erheblich. Sukzessiv entstanden unterschiedliche Weiterentwicklungen des Systems, um den Bedürfnissen der Entwickler gerecht zu werden. Schliesslich boten 1987 AT&T kommerziellen Support für ihr System V an.G

Geschichte (Linux):

1987 entwickelte der Informatik-Professor Andrew S. Tanenbaum an der Universität Amsterdem ein Unix-ähnliches Lehrbetriebssystem namens Minix. Mit ihm wollte er den Studenten die inneren Abläufe des Betriebssystems vermitteln sowie seinen Funktionaumfang für 386er PC's verfügbar machen. Allerdings baute er verschiedene Einschränkungen ein, z.B. ein Verbot der Erweiterung des Kernels. Eine effektive Weiterentwicklung an Minix wurde so verhindert.

1991 benutzte der finnische Student Linus Torvalds den Minix-Programmcode als Grundlage für eine eigene weiterentwickelte Version. Zunächst war eine Terminal-Emulation das Ziel, aber es entstand letztendlich ein eigenes Unix-ähnliches System. Durch die vielen Verbesserungen und Erweiterungen waren bald nur noch wenige Minix-Elemente vorhanden. Das neue System wurde zunächst intern "Freax" und anschließend offiziell "Linux" nach seinem Schöpfer benannt. Torvalds suchte fortwährend Hilfe bei weiteren Interessenten und stellte den Quelltext offen zur Verfügung. Es war jedem erlaubt, den Sourcecode zu nutzen und weiterzuentwickeln,solange er dies anderen ebenfalls erlaubte. Die Entwicklung des Open-Source-Projekts Linux hatte begonnen.

1994 hielt Torvald die zentrale Komponente, den Kernel, für ausgreift und vollständig genug, um im März die Version 1.0 zu veröffentlichen (GNU General Public License). Das System war bereits netzwerkfähig und enthielt eine graphische Oberfläche.

Linux heute:

Heute ist Linux ein vollständiges Unixsystem und in der Lage, mit allen neueren Komponenten und Ideen zu arbeiten. Die meisten freien Softwarepakete sind für Linux erhältlich und fast jede erdenkliche Funktion ist im Kernel integriert oder lässt sich ergänzen. Viele Firmen erstellen auf der Grundlage von Linux eigene Komplettpakete, sogenannte 'Distributionen', und bieten Support an. Vor allem im Serverbereich ist ein Unixsystem aufgrund seiner Sicherheit und Stabilität sehr beliebt. Auf Desktoprechnern wird Linux dank der vielen Weiterentwicklungen im Bereich Ergonomie und Kompatibilität zu einer guten Alternative zum Windows-System. Ein Problem stellt allerdings die Hardwarekompatibilität dar. Oftmals vergehen Jahre, bis ein Linuxtreiber für bestimmte, selten genutzte Hardware zur Verfügung steht. Viele Hersteller veröffentlichen nur Windowstreiberversionen, die dann umständlich portiert werden müssen.

Linux - Aufbau des Systems:

Die zentrale Komponente des Linux-Systems ist der sogenannte Kernel. Er verwaltet die Hardware und stellt mehrere Dienste zur Verfügung. Die Aufgaben des Kernels beinhalten:

  • Prozeßerwaltung (nötig für ein pseudoparalleles Arbeiten)
  • Speicherverwaltung
  • Dateisystem
  • Netzwerk/Netzwerktreiber
  • Geräte/Blocktreiber

Der Kernel ist erst mit sogenannten Init-SKripten vernünftig lauffähig. Diese SKripte, die vor allem beim Booten des Systems ausgeführt werden, sorgen für das Initialisieren aller Dienste und der Hardware. Vorteile des statischen Systemkerns liegen in der Stabilität und der geringeren Komplexität. Weiterhin kann man je nach Bedarf den Kernel austauschen oder auf einfache Art und Weise modifizieren.

Die Softwarestruktur besteht aus einem modularen Abhängigkeitssystem. Ein Programm benötigt andere vorher installierte Pakete bzw. Bibliotheken, um lauffähig zu sein. Es ist nötig, mehrere Pakete zu installieren, bevor man die eigentliche benötigte Applikation nutzen kann. Dass die vielzähligen Pakete in verschiedenen Versionen vorkommen, kann für Verwirrung sorgen. Hier helfen Installationttools, die zentrale Bestandteile der Distribtionen sind. Sie laden aus definierten Internetquellen (repositorys) die Anwendungen sowie alle benötigten Module herunter und installieren sie, ohne dass der Benutzer sich um Versionen oder Inkompatibilitäten kümmern muss.

Häufige Anwendungsgebiete:

Server: Ein Server bietet von anderen Applikationen benötigte Dienste an, sowohl lokal, als auch für entfernte angebundene Rechner. Die Serversoftware muss eine Vielzahl an Anfragen bearbeiten und verwalten. Es muss dabei auf die Sicherheit, Performance und Stabilität geachtet werden. Linux mit seinen Mehrbenutzermöglichkeiten und Stabilität ist dafür ideal geeignet. Häufig benötigte Server sind: Web-Server, FTP, Mail-Server, Proxy.

Arbeitsplatz-Rechner: Die verschiedenen Distributionen liefern inzwischen genug Bürosoftware, um die meisten Aufgaben erledigen zu können. Die Konsole ist zwar in vielen Fällen noch nötig, viele graphische Oberflächen bieten aber einen guten Windowsersatz und könnten bald eine konsolenlose Lösung liefern.

Embedded Linux: Eine Linuxversion kann auf Geräten wie MP3-Playern oder Handys genutzt werden. Der speziell angepasste Kernel verwaltet die Hardware und stellt ein minimales Betriebssystem dar. Die im Kernel eingebundenen Netzwerkfunktionen sowie der geringe Speicherplatzverbrauch machen Linux zu einer guten Lösung für eingebettete (embedded) systeme.

Literatur:

http://www.heller-web.net/specials/linux/index.html
http://www.selflinux.org/selflinux-devel/index.html