Webdesign - Suchmaschinenoptimierung - Wien

WebDesignReDesignSEO-on-pageSEO-off-pageBeispieleKostenKontaktHome

Betriebssystem

Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen.

Betriebssystem heißt auf Englisch operating system (OS). Dieser englische Ausdruck kennzeichnet den Sinn und Zweck: Die in den Anfängen der Computer stark mit schematischen und fehlerträchtigen Arbeiten beschäftigten Operatoren schrieben Programme, um sich die Arbeit zu erleichtern; diese wurden nach und nach zum operating system zusammengefasst.

Betriebssysteme bestehen in der Regel aus einem Kern (englisch: Kernel), der die Hardware des Computers verwaltet, sowie grundlegenden Systemprogrammen, die dem Start des Betriebssystems und dessen Konfiguration dienen. Unterschieden werden Einbenutzer- und Mehrbenutzersysteme, Einzelprogramm- und Mehrprogrammsysteme, Stapelverarbeitungs- und Dialogsysteme. Betriebssysteme finden sich in fast allen Computern: als Echtzeitbetriebssysteme auf Prozessrechnern, auf normalen PCs und als Mehrprozessorsysteme auf Hosts und Großrechnern.

Definitionen und Abgrenzung

Unterschiedliche Autoren fassen den Begriff „Betriebssystem“ unterschiedlich eng. So beschränkt Andrew S. Tanenbaum den Begriff auf den Betriebssystemkern. Er schreibt:

„Editoren, Compiler, Assembler, Binder und Kommandointerpreter sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam und nützlich sind.“

In diesem Sinn stellt das Betriebssystem selbst lediglich eine Schnittstelle für Systemfunktionen (auch Systemrufe oder Systemaufrufe genannt) bereit, die von Programmen genutzt werden können. Die meisten aktuellen Betriebssystem-Lehrbücher und Universitätsvorlesungen folgen dieser Sichtweise und behandeln daher ausschließlich die Aufgaben des Betriebssystemkerns.

Andere Autoren zählen u. a. auch eine Kommandosprache zum Betriebssystem:

„Besides managing the hardware resources [...], modern operating systems also provide numerous services, such as inter-process communication, file and directory systems, data transfer over networks, and a command language“

Eine darüber hinaus gehende Ausdehnung des Begriffes, die beispielsweise auch Editoren und Compiler umfasst, geht zum Teil auf ältere Werke des deutschen Sprachraums zurück, lässt sich aber auch in aktueller Literatur noch finden. So zählen die Autoren des Informatik-Dudens[3] auch „Übersetzungsprogramme“ und „Dienstprogramme“ zu den wesentlichen Komponenten eines Betriebssystems. In jüngerer Zeit kann der GNU/Linux-Namensstreit als Beispiel für die Abgrenzungsprobleme angesehen werden.

Ungeachtet dessen, wie weit oder wie eng man den Begriff „Betriebssystem“ fasst, enthalten Installationsmedien für Betriebssysteme für gewöhnlich zusätzliche Dienst- und Anwendungsprogramme.

Betriebssystemarten

Betriebssysteme können als das direkte Ergebnis des zugrundeliegenden Systems und den zu erfüllenden Aufgaben betrachtet werden. Deshalb ist es unerlässlich sich neben den verschiedenen Systemen ebenfalls mit den zugehörigen Systemen zu beschäftigen.

Lochkarten gehören mittlerweile der Vergangenheit an. Jedoch sind die so genannten Batch-Systeme (engl. batch systems, queued systems) ein guter Ansatz zur Betrachtung der Systementwicklung. Diese riesigen Systeme wurden von nur einer Person – dem Operator – bedient oder besser gesagt gefüttert. Programmierer fertigten Lochkarten an und übergaben den Kartenstapel dem Operator. Dieser ließ die Karten von der Maschine einlesen und händigte den Programmierern anschließend die Ergebnisse in ausgedruckter Form aus. Diese Maschinen besaßen kein konventionelles Betriebssystem, wie es heute geläufig ist. Lediglich ein Kontrollprogramm (resident monitor) wurde im Speicher gehalten und sorgte für den reibungslosen Ablauf, indem es die Kontrolle an die momentan auszuführenden Programme übergab.

Eine Weiterentwicklung – Multiprogrammed Batch System – konnte nun wenigstens mehrere Programme und Daten im Speicher halten und ermöglichte eine schnellere Abarbeitung der Kartenstapel (Zeit für Lesen und Schreiben war verschenkte Zeit). Hier wurden Mechanismen, wie das Spooling und die Möglichkeit des Offline-Betriebs bereits ausgiebig genutzt. Jedoch war ein Programm nötig, dass sich Aufgaben wie E/A-Verwaltung, Speicherverwaltung und vor allem CPU-Scheduling annimmt. Ab diesem Zeitpunkt konnte man von dem Beginn eines Betriebssystems reden.

Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zu Teil kamen. Folgende Systeme sind bis zum heutigen Tage entstanden und im Einsatz: Parallele Systeme, Verteilte Systeme, Personal-Computer-Systeme, Time-Sharing-Systeme, Real-Time-Systeme und in neuester Zeit auch die so genannten Handheld-Systeme.

Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von Microsoft Windows, Apple Mac OS X, Linux (GNU-Lizenz), ZETA, OS/2 bzw. eComStation, DOS (Novell-DOS, MS-DOS) mit GUIs wie zum Beispiel PC/GEOS sowie BSD-Unix. Für spezielle Anwendungen (Beispiel: industrielle Steuerung) werden auch experimentelle Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt.

Neben den klassischen Varianten gibt es noch spezielle Betriebssysteme für verteilte Systeme, bei denen zwischen dem logischen System und den physikalischen System(en) unterschieden wird. Der logische Rechner besteht aus mehreren physikalischen Rechnereinheiten. Viele Großrechner, Number-Cruncher und die legendären Systeme aus dem Hause Cray arbeiten nach diesem Prinzip. Eines der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist Amoeba.

Siehe auch: Liste der Betriebssysteme

Die Aufgaben des Betriebssystems lassen sich mit den folgenden Stichworten zusammenfassen:

* Benutzerführung
* Laden und Unterbrechung von Programmen
* Verwaltung der Prozessorzeit
* Verwaltung des Speicherplatzes für Anwendungen
* Verwaltung der angeschlossenen Geräte

Programme, Speicher- und Geräteverwaltung

Zu den Aufgaben eines Betriebssystems gehören meist:

* Speicherverwaltung
o Zuweisung und Überwachung des Betriebsmittels Speicher (Haupt- und Hintergrundspeicher).
o Führung von Tabellen der Speicherbelegung durch Benutzerjobs bzw. Prozesse (laufende Programme).
o Bedienung von Anforderungen und Freigabe von Speicher.
* Programm-(Prozess)-Verwaltung
o Betreuung sämtlicher Prozesse (im Ablauf befindlicher Programme) im Rechnersystem.
o Erzeugung von neuen Prozessen auf Anforderung des Betriebssystems bzw. anderer existierender Prozesse,
o Entfernung von Prozessen aus dem System.
o Kommunikation und Synchronisation von Prozessen untereinander (Interprozesskommunikation)
* Geräte- und Dateiverwaltung
o Effiziente Zuweisung von Ein-/Ausgabegeräten und Vermittlungseinheiten (Datenkanäle, Steuereinheiten), Vermeidung von Konflikten
o Initiierung, Überwachung der Ausführung, Terminierung von Ein-/Ausgabevorgängen.
o Verwaltung des Dateisystems. Erzeugung eines Namensraums mit zugehörigen Speicherobjekten und gegebenenfalls weiteren Objekten.
* Rechteverwaltung. Voneinander unabhängige Benutzer/Programme dürfen sich gegenseitig nicht stören.
* Abstraktion
o Verbergen der Komplexität der Maschine vor dem Anwender
o Abstraktion des Maschinenbegriffes (nach Coy):
+ Reale Maschine = Zentraleinheit + Geräte (Hardware)
+ Abstrakte Maschine = Reale Maschine + Betriebssystem
+ Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm

Als Gerät aus der Sicht eines Betriebssystems bezeichnet man aus historischen Gründen alles, was über Ein-/Ausgabekanäle angesprochen wird. Dies sind nicht nur Geräte im herkömmlichen Sinn, sondern mittlerweile auch interne Erweiterungen wie Grafikkarten, Netzwerkkarten und anderes. Die (Unter-)Programme zur Initialisierung und Ansteuerung dieser „Geräte“ bezeichnet man zusammenfassend als Gerätetreiber.

Betriebsmittelverwaltung und Abstraktion

Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Hardware eines Computers zur Verfügung gestellten Komponenten, also den Prozessor (bei Mehrprozessorsystemen die Prozessoren), den physikalischen Speicher und alle Geräte wie Festplatten-, Disketten- und CD-ROM-Laufwerke, Netzwerk- und Schnittstellenadapter und andere. Die Hardware Compatibility List enthält alle Hardware-Produkte, die im Zusammenhang mit einem bestimmten Betriebssystem auf ihre Funktionalität hin getestet wurden.

Einführendes Beispiel: Zeitgeberbausteine

Moderne Rechnersysteme besitzen Zeitgeberbausteine (Timer). In frühen PCs wurde z. B. der Baustein 8284 der Firma Intel eingesetzt. Dieser Baustein muss zunächst initialisiert werden. Er kann dann nach Ablauf einer Zeitspanne oder periodisch den Prozessor unterbrechen und ihn zur Abarbeitung einer eigenen Routine veranlassen. Neben der Initialisierung ist eine Unterbrechungsroutine zu erstellen, deren Aufruf in einer dafür geeigneten Sprache (meist Assembler) programmiert werden muss. Da Unterbrechungen asynchron auftreten, sind komplexe Verhältnisse hinsichtlich der Datenstrukturen zu berücksichtigen. Genaue Kenntnisse des Bausteins (Datenblatt), der Computerhardware (Unterbrechungsbehandlung) und des Prozessors sind erforderlich. Die einzelnen Komponenten, die an diesem Prozess beteiligt sind, fasst man unter dem Begriff Rechnerarchitektur zusammen.

Virtuelle Prozessoren

Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein, um den normalerweise einzigen Prozessor periodisch (normalerweise im Millisekundenbereich) zu unterbrechen und eventuell mit einem anderen Programm fortzufahren (so genanntes präemptives Multitasking). Die Initialisierung und die Unterbrechungsroutine werden dabei vom Betriebssystem implementiert. Auch wenn nur ein einzelner Prozessor zur Verfügung steht, können mehrere Programme ausgeführt werden, jedes Programm erhält einen Teil der Prozessorzeit (Scheduling). Jedes Programm verhält sich, bis auf die verlangsamte Ausführungszeit, so, als hätte es einen eigenen virtuellen Prozessor.

Virtuelle Zeitgeber

Über einen Systemruf, zum Beispiel alarm, wird jedem Programm darüber hinaus ein eigener virtueller Zeitgeber zur Verfügung gestellt. Das Betriebssystem zählt die Unterbrechungen des Original-Zeitgebers und informiert Programme, die den alarm-Systemruf verwendeten. Die einzelnen Zeitpunkte werden über eine Warteschlange verwaltet.

Abstraktion

Die Hardware des Zeitgebers ist damit vor den Programmen verborgen. Ein System mit Speicherschutz erlaubt den Zugriff auf den Zeitgeberbaustein nur über den Kernel und nur über exakt definierte Schnittstellen (meist Systemrufe genannt, die über spezielle Prozessorbefehle wie TRAP, BRK, INT realisiert werden). Kein Programm kann somit das System gefährden, die Verwendung des virtuellen Zeitgebers ist einfach und portabel. Der Anwender oder Programmierer braucht sich nicht um die (komplexen) Details zu kümmern.

Virtualisierung weiterer Betriebsmittel

So wie Prozessoren und Zeitgeber virtualisiert werden, ist dies auch für alle anderen Betriebsmittel möglich. Dabei werden einige Abstraktionen teilweise nur als Software implementiert, andere erfordern spezielle Hardware.

Dateisysteme

Über Dateisysteme werden die Details der externen Speichersysteme (Festplatten-, Disketten- oder CD-ROM-Laufwerke) verborgen. Dateinamen und Verzeichnisse erlauben den bequemen Zugriff, die eigentlich vorhandene Blockstruktur und die Geräteunterschiede sind vollkommen unsichtbar.

Interner Speicher

Der interne Speicher (RAM) wird in Blöcke (Kacheln) aufgeteilt und den entsprechenden Programmen zur Verfügung gestellt. Über virtuellen Speicher wird bei vielen Systemen jedem Programm ein kontinuierlicher (zusammenhängender) Bereich zur Verfügung gestellt. Dieser Speicher ist physikalisch nicht zusammenhängend, es können sogar unbenutzte Teile auf den externen Speicher ausgelagert sein. Der virtuelle Speicher eines Programms kann sogar größer als der reale Speicher sein.

Netzwerk

Die Details der Netzwerkzugriffe werden verborgen, indem auf die eigentliche Hardware (Netzwerkkarte) ein Protokollstapel aufgesetzt wird. Die Netzwerksoftware erlaubt beliebig viele virtuelle Kanäle. Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen unsichtbar, das Netzwerk hat viele neue Fähigkeiten (bidirektionale, zuverlässige Datenströme, Adressierung, Routing) bekommen.

Bildschirm

Als Grafische Benutzeroberfläche (GUI, Abk. für engl. Graphical User Interface) wird generell eine Bildschirmausgabe beschrieben, wenn sie über einen Prompt hinausgeht. Mit den richtigen Grafikkarten und Bildschirmen ist die Darstellung von geometrischen Objekten (Linien, Kreisen, Ellipsen, aber auch Schriftattributen und Farben) auf dem Bildschirm möglich, aus denen sich komplexere geometrische Elemente wie Knöpfe, Menüs, etc. Benutzeroberflächen zum einfachen Steuern von Programmen erstellen lassen.

Die Grafikkarte als Hardware ist für den Programmierer und Anwender vollkommen verborgen.

Geschichte und Beispiele der Betriebsmittelverwaltung

Artikel Betriebssystem. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 25. Januar 2007, 20:55 UTC. URL: http://de.wikipedia.org/w/index.php?title=Betriebssystem&oldid=26921600 (Abgerufen: 3. Februar 2007, 09:12 UTC)

Spenden für Nachbar in Not