Was ist Linux?
Linux ist ein freies Betriebssystem. Der Begriff 'Linux' meint eigentlich den Kernel (Betriebssystemkern) eines unixähnlichen Betriebssystemes (Derivat). Häufig wird dieser Begriff für das komplette Betriebssystem (Distribution) verwendet. Neben den für ein Betriebssystem nötigen Programmen, z.B. zur Datei- und Benutzerverwaltung, werden hier auch grafische Frontends, Office-Anwendungen, Multimedia-Tools, Datenbanken, Web-Browser und andere Programme abgedeckt. Linux ist frei, d.h. die Sourcen sind offen, so dass eine Anpassung des Systems an die jeweilige Anwendung möglich ist. Es ist frei kopierbar und es entfallen keine Gebühren für Softwarelizenzen. Darüber hinaus ist Linux herstellerneutral.
Historie
- 1969 - Ken Thompson (Bell Labs) schreibt das 'Original-UNIX' in Assembler
- 1978 - UNIX Version 7 als kommerzielles Produkt (in C) Viele namhafte Hersteller lizensieren UNIX und portieren es auf ihre Hardware
- 1979 - erste offizielle AT&T-Version System III
- 1984 - AT&T-Version System V
- 1989 - AT&T-Version System V.4 (in enger Zusammenarbeit mit Sun)
- 1991 - Am 17. September 1991 veröffentlichte Linus Torvalds das Ergebnis seiner Studien zu einem Unix-verwandten Betriebssystem in der Newsgruppe 'Minix'. In der Startversion war gerade mal ein rudimentärer Kern implementiert. Linus ruft zu weiteren Codebeiträgen auf, die er wiederum verteilen würde. Der Linux-Code hat Minix bald vollständig ersetzt. Weitere freie Computerprogramme wie Apache, Samba, Python und Bind entstehen auf diese Weise.
- 1998 -IBM unterstützt den Apache Web Server. Sun Microsystems und Adaptec treten Linux International bei. Oracle und Informix portieren ihre Datenbanken nach Linux. In den Helloween-Dokumenten werden von Microsoft die Vorteile der Open Source Programme herausgestellt und als echte Konkurrenz zu den Microsoft-Produkten eingestuft.
| |
Aufgaben des Betriebssystems
Das Betriebssystem ist die 'Schnittstelle zur Hardware' und muss eine Reihe von Verwaltungs- und Steuerungsdiensten erbringen.
So kann man die Aufgaben in 7 Funktionsblöcke aufteilen. Das Betriebssystem umfasst die Datenverwaltung, die Sicherheit, die Kommunikation, sowie die Benutzerschnittstelle. Zudem werden die Entwicklungstools, das Logging und das Time Sharing dazu gezählt:
Datenverwaltung
Linux verwaltet den Zugriff auf den von der Platte zur Verfügung gestellten Speicherplatz. Die Verwaltung des Speicherplatzes wird bei Sekundärspeichern über ein Dateisystem realisiert. Linux gruppiert eine bestimmte Anzahl von Blöcken in sogenannten Cluster gemeinsam. Diese sind die kleinsten adressierbaren Speichereinheiten. Überdies stellt Linux Dateisysteme bereit. Jedes Dateisystem führt seine eigene(n) Allokationstabelle(n). Zudem ist das Betriebssystem für die(De-)Fragmentierung der Daten, also für die Bereitstellung eines zusammenhängenden Speicherbereichs verantwortlich.
|
Sicherheit
Linux ist ein Multiuser- Multitasking-Betriebssystem, das Sie auch für Einzelplatzrechner nutzen können. Multitasking ist die Fähigkeit mehrere Programme(Tasks) gleichzeitig verwalten bzw. ausführen zu können. So bietet Linux eine Reihe von Verfahren zum Schutz von Daten. Jeder Benutzer muss sich authentisieren und seine Autorisierung wird überprüft. Jeder Benutzer hat streng festgelegte Rechte. Das System speichert darüber hinaus für jede Datei eine Reihe von Verwaltungsdaten. Jeder einzelnen Datei sind Zugriffsrechte zugeordnet.
|
Kommunikation
Hierunter werden Programme zusammengefasst, die es einem Benutzer erlauben, mit anderen Rechnern bzw. Benutzern Daten auszutauschen und eventuell auch direkt auf entfernte Rechner zuzugreifen.
|
User Interface
Als User Interface werden jene Programme bezeichnet, die es einem Anwender erlauben, seine Aufträge an das Betriebssystem abzusetzen. Diese Kommandos können text- bzw grafikorientiert sein. Diese Programme sind in der Regel auch für die Ergebnisrückgabe des aufgerufenen Kommandos verantwortlich.
|
Entwicklungstools
Zu den Entwicklungswerkzeugen werden Programme gezählt, die es dem Programmierer erlauben, Anwendungen auf einem System zu erstellen. Hierzu gehören Editoren, Entwicklungsumgebungen, Compiler und Programmbinder.
|
Logging
Linux bietet die Möglichkeit die Aktivität von Benutzern zu protokollieren. So kann erfasst werden, wie lange ein Benutzer im System angemeldet war, welche Rechenzeit er benötigt hat bzw. welchen Verkehr er im Netz erzeugt hat.
|
Time Sharing
Da sich mehrere Benutzer bzw. Prozesse gemeinsame Resourcen wie z.B. die CPU teilen, wurden Mechanismen in Linux implementiert, die dafür sorgen, dass der Prozessor abwechselnd den verschiedenen Aufgaben zugeteilt wird. Die Zuteilung des Prozessors zu den Prozessen erfolgt über sogenannte Zeitscheiben. Jeder Prozess bekommt die CPU für einen festgelegten Zeitraum zugeteilt, dann wird er suspendiert und ein anderer Prozess wird bearbeitet. Die Berechnung und Zuteilung der CPU-Zeit wird vom sogenannten Scheduler-Prozess vorgenommen. Die Umschaltung der Prozesse wird vom Dispatcher übernommen.
|
Linux Architektur
In der obersten Schicht befinden sich die Anwendungsprogramme. Sie gehören streng genommen nicht zum Betriebssystem, sondern müssen als seperate Programme betrachtet werden. Darunter finden sich die Dienstprogramme des Systems. Es handelt sich um eine Sammlung von Programmen, wie z.B. Texteditoren oder Kommandointerpretern. Diese Programme sind meist in C geschrieben und sind fester Bestandteil des Betriebssystems.
Der Kernel ist der wichtigste Teil des BS. Er wird beim Starten des Rechners in den Arbeitsspeicher geladen. Er ist für die Geräteverwaltung und -ansteuerung zuständig. Die Prozesssteuerung, die Interprozesskommunikation und das Timing werden von ihm übernommen.
Die Dienst- und Anwendungsprogramme setzen ihrerseits Aufträge über Systemaufrufe an den Kernel ab. Der Kernel ist zum Großteil (über 90%) in C geschrieben. Nur die direkte Gerätesteuerung und einige zeitkritische Bereiche des Kernels sind in Assembler gehalten.
|