WEB LEXIKON: Ein Blick zurück
Hauptseite | Aktueller Wikipedia-Artikel

Betriebssystem



Ein Betriebssystem (BS) ist 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.

Der englische Begriff "operating system" kennzeichnet den Sinn und Zweck: die in den Anfängen der Computer stark mit schematischen und fehlerträchtigen Arbeiten beschäftigte Operator-Mannschaft schrieb sich Programme, um sich die Arbeit zu erleichtern; diese wurden nach und nach zum operating system zusammen gefasst.

Betriebssysteme bestehen in der Regel aus einem Kernel, der die Hardware des Computers verwaltet, sowie Programmenen und Programmierbibliotheken zur Nutzung bzw. Programmierung des Computers.

Unterschieden werden Einbenutzer- und Mehrbenutzersysteme, Einzelprogramm- und Mehrprogrammsysteme, Stapelverarbeitungs- und Dialogsysteme. Betriebssysteme finden sich praktisch überall: als Echtzeitbetriebssysteme auf Prozessrechnern, auf normalen PCs und als Mehrprozessorsysteme auf Servern und Großrechnern.

Table of contents
1 Betriebssystemarten
2 Programme, Speicher- und Geräteverwaltung
3 Dienstprogramme und Anwendungsprogramme
4 Betriebsmittelverwaltung und Abstraktion
5 Siehe auch
6 Weblinks
7 Literatur

Betriebssystemarten

Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von Microsoft Windows sowie Apple Mac OS X (kommerziell), die Varianten von Linux (GNU-Lizenz, frei kopierbar) sowie BSD-Unix. Diese stellen Systeme für mittelgroße Rechner dar. Insbesondere Linux wird aber auch für kleinere und größere Systeme zunehmend eingesetzt.

Daneben existieren weitere Systeme für Klein- und Kleinstrechner sowie Systeme speziell für Großrechner. In Universitäten werden häufig zusätzlich noch eine ganze Reihe experimenteller Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt.

Als das am häufigsten eingesetzte Betriebssystem gilt zur Zeit ITRON, ein japanisches Echtzeitbetriebssystem, das auf etwa 3 Milliarden Installationen, hauptsächlich in embedded Anwendungen wie Haushalts- oder Unterhaltungsgeräten, geschätzt wird. Konkurrent mit ähnlichen Einsatzbereichen ist das skalierbare Echtzeitbetriebssystem QNX, das in den meisten Geldautomaten residiert.

Siehe auch: Liste der Betriebssysteme

Programme, Speicher- und Geräteverwaltung

Zu den Aufgaben eines Betriebssytems gehören meist:

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.

Dienstprogramme und Anwendungsprogramme

Die meisten Betriebssysteme enthalten Dienstprogramme, auch Utilities oder Werkzeuge (Tools) genannt. Sie ermöglichen dem Benutzer bzw. Systemverwalter die Bearbeitung allgemeiner sowie systemnaher Aufgaben. Dazu gehören unter anderem Editoren, Kopierprogramme, Benutzerverwaltungsprogramme, Systemüberwachungsprogramme und Werkzeuge zur Datensicherung.

Anwendungsprogramme zählen in der Regel nicht zum eigentlichen Betriebssystem. Sie stammen entweder vom Hersteller des Systems oder von anderen Anbietern. Anwendungsprogramme können auch mit dem Betriebssystem ausgeliefert werden (Beispiele: Viele Programme in Linux-Distributionen oder der Internet-Explorer als Teil von Microsoft Windows).

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 natürlich die Prozessoren), den physikalischen Speicher und alle Geräte wie Festplatten-, Disketten- und CDROM-Laufwerke, Netzwerk- und Schnittstellenadapter und andere.

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, z. B. 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 Bereich zur Verfügung gestellt. Dieser Speicher ist physikalisch nicht kontinuierlich, 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 Graphische Benutzeroberfläche (grafisches Benutzerinterface) 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 Bildschrim 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.

Beispiele

Der C64, ein Heimcomputer der 1980er Jahre

In den 1980er Jahren wurden Heimcomputer populär. Diese konnten neben nützlichen Aufgaben auch Spiele ausführen. Die Hardware bestand aus einem 8-Bit-Prozessor mit bis zu 64KB RAM, einer Tastatur und einem Monitor- bzw. HF-Ausgang. Einer der populärsten dieser Computer war der Commodore C64 mit dem Mikroprozessor 6510. Dieser Computer hatte ein 8KB-ROM-BIOS, das die Geräte Bildschirm, Tastatur, serielle IEC-Schnittstelle für Diskettenlaufwerke bzw. Drucker, Kassetteninterface initialisierte und über ein Kanalkonzept teilweise abstrahierte. Über ein 8KB-ROM-BASIC, das auf die Funktionen des BIOS aufsetzte, konnte das System bedient und programmiert werden. Das Betriebssystem dieses Computers kann auf der Ebene des BASIC-Interpreters als gute Hardwareabstraktion angesehen werden. Natürlich sind weder Kernel, Speicher- oder sonstiger Hardwareschutz vorhanden. Viele Programme, vor allem auch Spiele, setzten sich über das BIOS hinweg und griffen direkt auf entsprechende Hardware zu.

Abstraktionsschichten im Betriebssystem des Heimcomputers C64

DOS, ein Diskettenbetriebssystem

Die ersten IBM-PCs waren ganz ähnlich wie der C64 aufgebaut. Auch sie verfügten über ein eingebautes BIOS zur Initialisierung und Abstraktion der Hardware. Sogar ein BASIC-Interpreter war vorhanden. Im Gegensatz zum BIOS wurde auf BASIC jedoch in den kompatiblen Rechnern anderer Firmen verzichtet.

Der PC konnte mit seinem Intel 8088-Prozessor (16-Bit-Register) bis zu 1MB Speicher adressieren, die ersten Modelle waren jedoch nur mit 64KB ausgestattet. Diskettenlaufwerke lösten die alten Kassettenrekorder als Speichermedium ab. Diese erlauben vielfaches Schreiben und Lesen einzeln adressierbarer 512-Byte-Blöcke. Die Benutzung wird durch ein ’’Diskettenbetriebssystem (Disk Operating System, DOS)’’ vereinfacht, das ein abstraktes Dateikonzept bereitstellt. Blöcke können zu beliebig großen Clustern (Zuordnungseinheit, kleinste für das BS ansprechbare Einheit) zusammengefasst werden. Dateien (logische Informationseinheiten) belegen einen oder mehrere (verkettete) dieser Cluster. Eine Diskette kann viele Dateien enthalten, die über Namen erreichbar sind. Das DOS der Firma Microsoft, auch MS-DOS (Microsoft Disk Operating System) genannt, ist ein solches System. Es setzt auf das BIOS auf und stellt Dateisystemoperationen zur Verfügung.

Auf den ersten PCs war kein Speicherschutz realisiert, die Programme konnten daher an DOS vorbei direkt auf BIOS und sogar auf die Hardware zugreifen. Erst spätere PCs wurden mit dem Intel 80286-Prozessor ausgestattet, der Speicherschutz ermöglichte. MS-DOS stellte auch keinen für alle Zwecke ausreichenden Abstraktionsgrad zur Verfügung. Es ließ sich nur ein Programm gleichzeitig starten, die Speicherverwaltung war eher rudimentär. Ein Teil der Hardware wurde nicht unterstützt und musste von Programmen direkt angesprochen werden, was dazu führte, dass beispielsweise für jedes Spiel die Soundkarte neu konfiguriert werden musste. Die Performance einiger Routinen, speziell zur Textausgabe, war verbesserungswürdig. Viele Programme setzten sich daher zwangsläufig über das Betriebssystem hinweg und schrieben z. B. direkt in den Bildschirmspeicher. MS-DOS wurde mit einem Satz von Programmen (so genannten Werkzeugen) und einem Kommandointerpreter (COMMAND.COM) ausgeliefert.

Abstraktionsschichten eines PC unter DOS

Linux (GNU/Linux), ein modernes Mehrprogrammsystem

Linux läuft als portables Betriebssystem auf verschiedenen Rechnerarchitekturen, wurde aber zunächst für PCs mit Intel-Architektur 80386-Prozessor entwickelt. Das in diesen Rechnern eingebaute BIOS dient nur noch zum Initialisieren der Hardware und zum Hochfahren des Betriebssystem-Kernels. Die Routinen des BIOS sind jedoch für Mehrprogrammsysteme wie Linux ungeeignet, insbesondere weil der Prozessor durch Warten belastet wird anstatt durch eine – in der Hardware durchaus vorhandene – geschickte Unterbrechungsverwaltung (interrupt handling) auf Ereignisse (sog. events) zu reagieren.

Linux verwendet daher nach dem Starten des Systems eigene Gerätetreiber. Es verteilt die Prozessorzeit auf verschiedene Programme (Prozesse). Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen. Die Programme laufen im Benutzermodus (user mode), während der Kernel im Kernel-Modus (kernel mode) arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind nahezu vollkommen, ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Kein Programm kann so das Gesamtsystem gefährden. Linux stellt wie sein Vorbild Unix eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (virtueller Speicher, Illusion eines eigenen Prozessors etc.).

Fast vollständige Abstraktion unter Linux

Viele Benutzer greifen zu den sogenannten Linux-Distributionen, die von verschiedenen Firmen, die auch den Support übernehmen, verkauft werden. Diese Distributionen beinhalten nicht nur das Betriebssystem, sondern auch eine große Auswahl weiterer Software zur vereinfachten Handhabung. Erwähnenswert ist hier die grafische Benutzeroberfläche X11. Programmbibliotheken und ein großer Satz von Werkzeugen (meist Kommandos des GNU-Projekts) sowie Entwicklungsumgebungen, unter anderem für die Sprache C, runden das System ab.

Windows (MS-DOS Erweiterung)


Bildschirmfoto von Windows 1.03
1983 begann die Firma Microsoft mit der Entwicklung eines grafikfähigen Betriebssystemaufsatzes für MS-DOS namens Windows. Das Dateisystem von DOS und die Gerätetreiber des BIOS wurden um Ansteuerung und Elemente einer Benutzeroberfläche sowie weitere Treiber unter anderem für eine Computermaus ergänzt.

Eine Warteschlange für die Ereignisse ermöglichte auch kooperatives Multitasking. Die erste Version von Windows, die in größeren Mengen verkauft werden konnte, war das 1990 erschienene Windows 3.0, das überlappende Fenster und eine fast vollständige Grafikkarten-unabhängige Programmumgebung bot, bei der schon damals verfügbaren Anzahl unterschiedlicher Grafikkarten eine nicht zu unterschätzende Leistung.


Bildschirmfoto von Windows 3.x
Aber erst Windows 3.1, das im April 1992 erschien, lief auch auf den meisten PCs einigermaßen stabil und wurde nicht zuletzt durch die Unterstützung vieler anderer Softwarehersteller und Programmierer auch zum ersten kommerziellen Erfolg. Damit setzte sich Windows auch gegen das Konkurrenzprodukt OS/2 aus dem Hause IBM durch.

Das System wurde noch im Oktober 1992 um Netzwerkfähigkeiten erweitert, die neue Version hieß Windows für Workgroups. Im Jahre 1995 erschien das sehr erfolgreiche Windows 95, das die alten 16-Bit Schnittstellen (jetzt Win16 benannt) um 32-Bit Schnittstellen (Win32c) erweiterte und auch sonst Verbesserungen bot. Es setzte immer noch auf MS-DOS auf und konnte sowohl DOS-Programme, ältere Win16-Anwendungen als auch neue Win32c-Anwendungen ausführen. Zugriffsschutz und Speicherverwaltung waren größtenteils nicht vorhanden bzw. sehr rudimentär implementiert. Fehlerhafte Anwendungen oder Gerätetreiber konnten so das System gefährden. Die explosionsartige Verbreitung neuer Erweiterungskarten (Stichwort Plug-and-Play) kombiniert mit dem recht einfachen Design sorgte darüber hinaus für Inkompatibilitäten. Insgesamt brachte dies dem System den Ruf der Instabilität ein.

Trotzdem war das System sehr erfolgreich. Insbesondere von der Möglichkeit direkt auf die Hardware zuzugreifen machten Anwendungen wie Spiele Gebrauch. Die Leistungsfähigkeit der verfügbaren Grafikhardware wurde mit der Zeit beachtlich.

Windows NT

Das MS-DOS und BIOS-Design der PCs erlaubten keine Weiterentwicklung in Richtung moderner Serverbetriebssysteme. Microsoft begann Anfang der 1990er ein solches Betriebssystem zu entwickeln, das zunächst als Weiterentwicklung von OS/2 geplant war. Letztendlich erschien es aber unter dem Namen Windows NT (NT für New Technology).

Das System sollte portabel und zuverlässig und damit den damaligen Serverbetriebssystemen mindestens ebenbürtig sein. Über die Hardware wurde eine Abstraktionsschicht, der Hardware Abstraction Layer (HAL) gelegt, auf den der Kernel aufsetzte. Verschiedene Gerätetreiber waren als Kernmodule ausgeführt und liefen wie der Kernel im privilegierten Kernel Mode. Sie stellten Möglichkeiten der E/A-Verwaltung, Dateisystem, Netzwerk, Sicherheitsmechanismen, virtuellen Speicher usw. zur Verfügung. Systemdienste (System Services) ergänzten das Konzept; wie ihre UNIX-Pendents, die daemons, waren sie in Form von Prozessen im User-Mode ausgeführt.

Abstraktionsschichten unter Windows NT (etwas vereinfacht)

Über so genannte Personalities wurden dann die Schnittstellen bestehender Systeme nachgebildet, zunächst für Microsofts eigenes, neues Win32-System, aber auch für OS/2 (ohne Grafik) und POSIX.1, also einer Norm, die eigentlich Unix-Systeme vereinheitlichen sollte. Personalities liefen wie Anwenderprogramme im unprivilegierten User-Mode. Das DOS-Subsystem war in Form von Prozessen implementiert, die jeweils einen kompletten PC mit MS-DOS als virtuelle Maschine darstellten; darauf konnte mit einer besonderen Version von Windows 3.1, dem Windows-on-Windows, auch Win16-Programme ausgeführt werden. Windows-on-Windows blendete dazu die Fenster der Win16-Programme in das Win32-Subsystem ein, das die Grafikausgabe verwaltete. Das System erlaubte daher die Ausführung von Programmen sowohl für MS-DOS wie für die älteren Windows-Betriebssysteme, allerdings unter vollkommener Kontrolle des Betriebssystems. Dies galt aber nur für die Implementierung für Intel 80386 Prozessoren und dessen Nachfolger.

Programme, die direkt auf die Hardware zugriffen, blieben aber außen vor. Insbesondere viele Spiele konnten daher nicht unter Windows NT ausgeführt werden, zumindest bis zur Vorstellung von WinG, das später in DirectX umgetauft wurde. Ohne die Möglichkeit eines direkten Zugriffs auf die Grafikhardware bzw. -treiber war die Programmierung von leistungsfähigen Actionspielen zunächst auf die älteren Windows-Versionen beschränkt.

Windows NT erschien in den Versionen 3.1, 3.5, 3.51 und 4.0. Windows 2000 stellte eine Weiterentwicklung von Windows NT dar. Auch Windows XP, Windows Server 2003 und Windows Codename Longhorn bauen auf der Struktur von Windows NT auf.

Siehe auch

Weblinks

Literatur




     
Das Web Lexikon "Ein Blick zurück" bietet die Moeglichkeit auf einfache Art und Weise in den "alten" Wikipedia-Beiträgen zu blättern. Das Lexikon spiegelt den Stand der freien Wikipedia-Enzyklopädie vom August 2004 wider. Sie finden hier in rund 120.000 Artikel aus dieser Zeit Informationen, Erklärungen, Definitionen, Empfehlungen, Beschreibungen, Auskünfte und Bilder. Ebenso kommen Begriffserklärung, Zusammenfassung, Theorie, Information, Beschreibung, Erklärung, Definition und Geschichte nicht zu kurz. Ein Lexikon das Auskunft, Bericht, Hinweis, Bedeutung, Bild, Aufklärung, Darstellung und Schilderung zu unterschiedlichsten Themen kompakt auf einer Seite bietet.
Impressum ^ nach oben ^