Betriebssystem: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 2: | Zeile 2: | ||
== Beschreibung == | == Beschreibung == | ||
[[Datei:Operating system placement-de.svg|mini|Zusammenhang zwischen Betriebssystem, Hardware, Anwendungssoftware und dem Benutzer]] | [[Datei:Operating system placement-de.svg|mini|300px|Zusammenhang zwischen Betriebssystem, Hardware, Anwendungssoftware und dem Benutzer]] | ||
[[Datei:PC Betriebssysteme Marktanteil.png|mini|PC Betriebssysteme Marktanteile in Deutschland | [[Datei:PC Betriebssysteme Marktanteil.png|mini|200px|PC Betriebssysteme Marktanteile in Deutschland ]] | ||
Ein '''Betriebssystem''', auch '''OS''' (von {{enS|operating system}}) genannt, ist eine Zusammenstellung von [[Computerprogramm]]en, die die [[Systemressourcen]] eines [[Computer]]s wie [[Arbeitsspeicher]], [[Massenspeicher|Festplatten]], Ein- und Ausgabegeräte verwaltet und diese [[Anwendungsprogramm]]en zur Verfügung stellt. | Ein '''Betriebssystem''', auch '''OS''' (von {{enS|operating system}}) genannt, ist eine Zusammenstellung von [[Computerprogramm]]en, die die [[Systemressourcen]] eines [[Computer]]s wie [[Arbeitsspeicher]], [[Massenspeicher|Festplatten]], Ein- und Ausgabegeräte verwaltet und diese [[Anwendungsprogramm]]en zur Verfügung stellt. | ||
Das Betriebssystem bildet dadurch die [[Schnittstelle]] zwischen den [[Hardware]]-Komponenten und der Anwendungssoftware des Benutzers. | Das Betriebssystem bildet dadurch die [[Schnittstelle]] zwischen den [[Hardware]]-Komponenten und der Anwendungssoftware des Benutzers. | ||
* Betriebssysteme bestehen in der Regel aus einem [[Kernel (Betriebssystem)|Kernel]] (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start unterschiedliche Aufgaben übernehmen. | |||
* Zu diesen Aufgaben gehört unter anderem das Laden von [[Gerätetreiber]]n. | |||
* Betriebssysteme finden sich in fast allen Arten von Computern: Als [[Echtzeitbetriebssystem]]e auf [[Prozessrechner]]n und [[Eingebettetes System|eingebetteten Systemen]], auf [[Personal Computer]]n, [[Tabletcomputer]]n, [[Smartphone]]s und auf größeren [[Mehrprozessorsystem]]en wie z. B. [[Hostrechner|Servern]] und [[Großrechner]]n. | |||
Die [[#Aufgaben|Aufgaben eines Betriebssystems]] lassen sich wie folgt zusammenfassen: | Die [[#Aufgaben|Aufgaben eines Betriebssystems]] lassen sich wie folgt zusammenfassen: | ||
Benutzerkommunikation; Laden, Ausführen, Unterbrechen und Beenden von Programmen; Verwaltung und Zuteilung der Prozessorzeit; Verwaltung des internen Speicherplatzes für Anwendungen; Verwaltung und Betrieb der angeschlossenen Geräte; Schutzfunktionen z. B. durch [[Zugriffskontrolle|Zugriffsbeschränkungen]]. Die Gewichtung zwischen diesen Aufgaben wandelte sich im Laufe der Zeit, insbesondere wird Schutzfunktionen wie dem [[Speicherschutz]] oder begrenzten [[Zugriffsrecht|Benutzerrechten]] heute eine höhere Bedeutung zugemessen als noch in den 1990er Jahren. Dies macht Systeme allgemein robuster, reduziert z. B. die Zahl der Programm- und [[Absturz (Computer)|Systemabstürze]] und macht das System auch stabiler gegen Angriffe von außen, etwa durch [[Computervirus|Computerviren]]. | Benutzerkommunikation; Laden, Ausführen, Unterbrechen und Beenden von Programmen; Verwaltung und Zuteilung der Prozessorzeit; Verwaltung des internen Speicherplatzes für Anwendungen; Verwaltung und Betrieb der angeschlossenen Geräte; Schutzfunktionen z. B. durch [[Zugriffskontrolle|Zugriffsbeschränkungen]]. | ||
* Die Gewichtung zwischen diesen Aufgaben wandelte sich im Laufe der Zeit, insbesondere wird Schutzfunktionen wie dem [[Speicherschutz]] oder begrenzten [[Zugriffsrecht|Benutzerrechten]] heute eine höhere Bedeutung zugemessen als noch in den 1990er Jahren. | |||
* Dies macht Systeme allgemein robuster, reduziert z. B. die Zahl der Programm- und [[Absturz (Computer)|Systemabstürze]] und macht das System auch stabiler gegen Angriffe von außen, etwa durch [[Computervirus|Computerviren]]. | |||
''Dieser'' Artikel behandelt den Begriff „Betriebssystem“ hauptsächlich im Kontext „allgemein zur Informationsverarbeitung verwendete Computersysteme“. Daneben sind Betriebssysteme (mit ggf. spezialisierter Funktionalität) grundsätzlich in nahezu allen Geräten im Einsatz, in denen [[Software]] betrieben wird (wie [[Computerspiel#Plattformen|Spielecomputer]], [[Mobiltelefon]]e, [[Navigationssystem]]e, Maschinen der [[Maschinenbau]]branchen u. v. a.). Auch viele Steuerungssysteme (eingebettetes System) die z. B. in Flugzeugen, Autos, Zügen, oder in Satelliten zu finden sind, besitzen spezialisierte Betriebssysteme. | ''Dieser'' Artikel behandelt den Begriff „Betriebssystem“ hauptsächlich im Kontext „allgemein zur Informationsverarbeitung verwendete Computersysteme“. | ||
* Daneben sind Betriebssysteme (mit ggf. spezialisierter Funktionalität) grundsätzlich in nahezu allen Geräten im Einsatz, in denen [[Software]] betrieben wird (wie [[Computerspiel#Plattformen|Spielecomputer]], [[Mobiltelefon]]e, [[Navigationssystem]]e, Maschinen der [[Maschinenbau]]branchen u. v. a.). | |||
* Auch viele Steuerungssysteme (eingebettetes System) die z. B. in Flugzeugen, Autos, Zügen, oder in Satelliten zu finden sind, besitzen spezialisierte Betriebssysteme. | |||
== Definitionen und Abgrenzung == | == Definitionen und Abgrenzung == | ||
Ein Betriebssystem übernimmt zwei wesentliche Aufgaben, die im Grunde in keinem direkten Zusammenhang zueinander stehen | Ein Betriebssystem übernimmt zwei wesentliche Aufgaben, die im Grunde in keinem direkten Zusammenhang zueinander stehen: | ||
* Die eine Aufgabe besteht darin, dem [[Anwendungsprogrammierer]] saubere Abstraktionen der [[Betriebsmittel (Informatik)|Betriebsmittel]] zur Verfügung zu stellen (anstelle der unschönen Hardware). Das Betriebssystem bietet somit eine leichter verständliche und besser handhabbare [[Schnittstelle]] zur eigentlichen Maschine an und „versteckt“ die Komplexität der darunterliegenden Maschine: „Der Ansprechpartner für den Programmierer ist also nicht mehr die wirkliche Maschine, sondern eine [[virtuelle Maschine]] (Betriebssystem), welche wesentlich einfacher zu verstehen und zu programmieren ist.“ | * Die eine Aufgabe besteht darin, dem [[Anwendungsprogrammierer]] saubere Abstraktionen der [[Betriebsmittel (Informatik)|Betriebsmittel]] zur Verfügung zu stellen (anstelle der unschönen Hardware). | ||
* Die andere Aufgabe besteht darin, die Hardwareressourcen zu verwalten: „Ein Betriebssystem muss eine geordnete und kontrollierte Zuteilung von Prozessoren, Speichereinheiten und Peripheriegeräten unter den verschiedenen Programmen, welche darum konkurrieren, sicherstellen.“ | * Das Betriebssystem bietet somit eine leichter verständliche und besser handhabbare [[Schnittstelle]] zur eigentlichen Maschine an und „versteckt“ die Komplexität der darunterliegenden Maschine: „Der Ansprechpartner für den Programmierer ist also nicht mehr die wirkliche Maschine, sondern eine [[virtuelle Maschine]] (Betriebssystem), welche wesentlich einfacher zu verstehen und zu programmieren ist.“ | ||
Das Betriebssystem erzeugt abstrakte Objekte, um die Komplexität beherrschbar zu machen. | |||
* Ein Beispiel für eine solche Abstraktion ist die [[Datei]]. | |||
* Diese kann beispielsweise in Form eines [[Digitalfotografie|Digitalfotos]], einer gespeicherten [[E-Mail]]-Nachricht oder einer [[Website]] vorliegen. | |||
* Es ist auf jeden Fall einfacher, sich damit zu beschäftigen, als mit den Details von [[Plattenspeicher|Festplattenspeichern]]. | |||
* Die andere Aufgabe besteht darin, die Hardwareressourcen zu verwalten: „Ein Betriebssystem muss eine geordnete und kontrollierte Zuteilung von Prozessoren, Speichereinheiten und Peripheriegeräten unter den verschiedenen Programmen, welche darum konkurrieren, sicherstellen.“ | |||
Das Betriebssystem ordnet und kontrolliert die [[Allokation (Informatik)|Allokation]] der Prozessoren, Speicher und Ein-/Ausgabegeräte und überwacht, welches Programm gerade welches Betriebsmittel nutzt. | |||
* Liegen beispielsweise mehrere Aufträge für einen [[Drucker (Gerät)|Drucker]] vor, so muss festgelegt werden, wie diese abgearbeitet werden. | |||
* Auf einem modernen Betriebssystem können dadurch auch mehrere Programme gleichzeitig ausgeführt werden. | |||
* Benutzen mehrere Anwender einen Computer oder ein Netzwerk, dann gewinnen Maßnahmen zur Verwaltung und zum Schutz von Speicher, Ein-/Ausgabegeräten und anderen Betriebsmitteln noch an Bedeutung. | |||
* Die Benutzer würden sich sonst gegenseitig stören. | |||
Die Gesamtheit aller Programme und Dateien, die sämtliche Abläufe bei Betrieb eines Rechners steuern, wird [[Systemsoftware]] genannt. Dazu gehören Betriebssysteme, aber auch systemnahe Software wie [[Compiler]], [[Interpreter]] und [[Editor (Software)|Editoren]]. Anwendungssoftware wie beispielsweise [[Browser]] oder Buchhaltungssoftware benutzen die Systemsoftware für einen ordnungsgemäßen Ablauf. | Die Gesamtheit aller Programme und Dateien, die sämtliche Abläufe bei Betrieb eines Rechners steuern, wird [[Systemsoftware]] genannt. | ||
* Dazu gehören Betriebssysteme, aber auch systemnahe Software wie [[Compiler]], [[Interpreter]] und [[Editor (Software)|Editoren]]. | |||
* Anwendungssoftware wie beispielsweise [[Browser]] oder Buchhaltungssoftware benutzen die Systemsoftware für einen ordnungsgemäßen Ablauf. | |||
* In der Literatur wird der Begriff „Betriebssystem“ innerhalb der Systemsoftware unterschiedlich breit interpretiert. | |||
In der DIN-Sammlung 44300 (veraltet, ersetzt durch ISO/IEC 2382:2015 siehe: [[Liste der DIN-Normen/DIN 1–49999]] unter DIN 44300) geht die Definition von seiner Aufgabe und Stellung in einer Programmhierarchie aus: | In der DIN-Sammlung 44300 (veraltet, ersetzt durch ISO/IEC 2382:2015 siehe: [[Liste der DIN-Normen/DIN 1–49999]] unter DIN 44300) geht die Definition von seiner Aufgabe und Stellung in einer Programmhierarchie aus: | ||
;Zitat | |||
|Text=Das Betriebssystem wird gebildet durch die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Ausführung von Programmen steuern und überwachen. | |Text=Das Betriebssystem wird gebildet durch die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Ausführung von Programmen steuern und überwachen. | ||
|Autor=DIN 44300 | |Autor=DIN 44300 | ||
Für [[Andrew S. Tanenbaum]] beschränkt sich der Begriff Betriebssystem im Wesentlichen auf den [[Kernel (Betriebssystem)|Kernel]]: „Editoren, Compiler, [[Assembler (Informatik)|Assembler]], [[Linker (Computerprogramm)|Binder]] und [[Kommandointerpreter]] sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam und nützlich sind.“ | Für [[Andrew S. | ||
* Tanenbaum]] beschränkt sich der Begriff Betriebssystem im Wesentlichen auf den [[Kernel (Betriebssystem)|Kernel]]: „Editoren, Compiler, [[Assembler (Informatik)|Assembler]], [[Linker (Computerprogramm)|Binder]] und [[Kommandointerpreter]] sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam und nützlich sind.“ | |||
Der Begriff des Betriebssystems ist in Artikel 3 der Richtlinie (EU) 2019/882 | Viele Lehrbücher folgen dieser engeren Sichtweise. | ||
* Andere Autoren zählen unter anderem auch eine Kommandosprache zum Betriebssystem: „Außer die Hardware zu verwalten […], bieten moderne Betriebssysteme zahlreiche Dienste an, etwa zur Verständigung der Prozesse untereinander, Datei- und Verzeichnissysteme, Datenübertragung über Netzwerke und eine Befehlssprache.“ | |||
Eine noch weitere Fassung 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 auch Übersetzungsprogramme und [[Dienstprogramm]]e zu den wesentlichen Komponenten eines Betriebssystems. | |||
* In jüngerer Zeit kann der [[GNU/Linux-Namensstreit]] als Beispiel für die Abgrenzungsprobleme angesehen werden. | |||
Der Begriff des Betriebssystems ist in Artikel 3 der Richtlinie (EU) 2019/882 [[Legaldefinition|legal definiert]]. | |||
Ungeachtet dessen, wie weit oder wie eng man den Begriff „Betriebssystem“ fasst, enthalten die Installationsmedien für Betriebssysteme für gewöhnlich zusätzliche Dienst- und Anwendungsprogramme. | Ungeachtet dessen, wie weit oder wie eng man den Begriff „Betriebssystem“ fasst, enthalten die Installationsmedien für Betriebssysteme für gewöhnlich zusätzliche Dienst- und Anwendungsprogramme. | ||
== Entwicklungsstufen == | == Entwicklungsstufen == | ||
Die Entwicklung von Computer-Betriebssystemen verlief und verläuft parallel zur Entwicklung und Leistungsfähigkeit verfügbarer Hardware: Beide Linien bedingten sich gegenseitig und ermöglichten bzw. erforderten Weiterentwicklungen auf der ‚anderen‘ Seite. Die Entwicklung verlief zum Teil in kleinen, manchmal in größeren Sprüngen: | Die Entwicklung von Computer-Betriebssystemen verlief und verläuft parallel zur Entwicklung und Leistungsfähigkeit verfügbarer Hardware: Beide Linien bedingten sich gegenseitig und ermöglichten bzw. | ||
* erforderten Weiterentwicklungen auf der ‚anderen‘ Seite. | |||
* Die Entwicklung verlief zum Teil in kleinen, manchmal in größeren Sprüngen: | |||
[[Lochkarte]]n verarbeitende Systeme (gilt sinngemäß auch für Lochstreifen) gehören mittlerweile (seit Anfang der 1970er Jahre) der Vergangenheit an. Jedoch sind sie ein guter Ansatz zur Betrachtung der Systementwicklung: In diesen räumlich relativ großen Systemen gab es noch keine externen elektronischen Speichermedien. Die Programme lagen (in [[Maschinensprache]]) in Form von Lochkartenstapeln vor und wurden durch den [[Systemadministrator|Operator]] über den Lochkartenleser in den internen Speicher ‚eingelesen‘. Nach der „Ende-Karte“ wurde das [[Anwendungsprogramm]] gestartet, das seine Eingabedaten je nach Aufgabenstellung ebenfalls über den Kartenleser lesen (deshalb der Begriff [[Stapelverarbeitung]], engl. ''batch processing'', ''queued systems'') und seine Ergebnisse direkt über einen Drucker und/oder über den Kartenstanzer ausgeben musste. Vor- und nachgelagert waren, mithilfe elektro-mechanischer Geräte (Kartenlocher, Mischer, Sortierer) ausgeführt, Erfassungs-, Misch- und Sortiervorgänge erforderlich. Bereits zu diesem Zeitpunkt war die interne Verarbeitung deutlich schneller als die [[Eingabe und Ausgabe|Ein-/Ausgabegeräte]]; das Lesen eines Lochkartenstapels (Karton mit 2000 Karten) dauerte ca. 5–10 Minuten, die Arbeitsspeichergrößen [[System/360|solcher Rechner]] lagen bei ca. 16 bis 64 kB (Beispiel siehe [[System/360]]).<br /> | [[Lochkarte]]n verarbeitende Systeme (gilt sinngemäß auch für Lochstreifen) gehören mittlerweile (seit Anfang der 1970er Jahre) der Vergangenheit an. | ||
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. Der Rechner konnte stets nur ein Programm nach dem anderen ausführen. | * Jedoch sind sie ein guter Ansatz zur Betrachtung der Systementwicklung: In diesen räumlich relativ großen Systemen gab es noch keine externen elektronischen Speichermedien. | ||
* Die Programme lagen (in [[Maschinensprache]]) in Form von Lochkartenstapeln vor und wurden durch den [[Systemadministrator|Operator]] über den Lochkartenleser in den internen Speicher ‚eingelesen‘. | |||
* Nach der „Ende-Karte“ wurde das [[Anwendungsprogramm]] gestartet, das seine Eingabedaten je nach Aufgabenstellung ebenfalls über den Kartenleser lesen (deshalb der Begriff [[Stapelverarbeitung]], engl. ''batch processing'', ''queued systems'') und seine Ergebnisse direkt über einen Drucker und/oder über den Kartenstanzer ausgeben musste. | |||
* Vor- und nachgelagert waren, mithilfe elektro-mechanischer Geräte (Kartenlocher, Mischer, Sortierer) ausgeführt, Erfassungs-, Misch- und Sortiervorgänge erforderlich. | |||
* Bereits zu diesem Zeitpunkt war die interne Verarbeitung deutlich schneller als die [[Eingabe und Ausgabe|Ein-/Ausgabegeräte]]; das Lesen eines Lochkartenstapels (Karton mit 2000 Karten) dauerte ca. 5–10 Minuten, die Arbeitsspeichergrößen [[System/360|solcher Rechner]] lagen bei ca. 16 bis 64 kB (Beispiel siehe [[System/360]]).<br /> | |||
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. | |||
* Der Rechner konnte stets nur ein Programm nach dem anderen ausführen. | |||
Eine Weiterentwicklung – [[Multitasking|Multiprogrammed Batch Systems]] – konnte zusätzliche Geräte unterstützen ([[Magnetband]]einheiten, erste [[Wechselplattenlaufwerk|Magnetplatten]] mit z. B. 7,25 MB Speichervolumen), mehrere Programme gleichzeitig ausführen (z. B. in 3 [[Partition (Datenträger)|'Partitionen']]) sowie Programme und Daten auf externen Speichern halten. Eine schnellere Abarbeitung war möglich, da die Zeit für das Lesen und Ausgeben der Kartenstapel entfiel – und die Prozessoren schneller wurden. Hier wurden Mechanismen wie das [[Spooling]] (Zwischenausgabe von Druckerdaten auf Magnetband mit verzögertem, parallel möglichem Drucken) und die Möglichkeit des [[Offline]]-Betriebs bereits ausgiebig genutzt. Jedoch war ein Programm nötig, welches sich der Aufgaben E/A-Verwaltung, Speicherverwaltung und vor allem [[Prozess-Scheduler|CPU-Scheduling]] etc. annimmt. Ab diesem Zeitpunkt konnte man von ersten Betriebssystemen reden. | Eine Weiterentwicklung – [[Multitasking|Multiprogrammed Batch Systems]] – konnte zusätzliche Geräte unterstützen ([[Magnetband]]einheiten, erste [[Wechselplattenlaufwerk|Magnetplatten]] mit z. B. 7,25 MB Speichervolumen), mehrere Programme gleichzeitig ausführen (z. B. in 3 [[Partition (Datenträger)|'Partitionen']]) sowie Programme und Daten auf externen Speichern halten. | ||
* Eine schnellere Abarbeitung war möglich, da die Zeit für das Lesen und Ausgeben der Kartenstapel entfiel – und die Prozessoren schneller wurden. | |||
* Hier wurden Mechanismen wie das [[Spooling]] (Zwischenausgabe von Druckerdaten auf Magnetband mit verzögertem, parallel möglichem Drucken) und die Möglichkeit des [[Offline]]-Betriebs bereits ausgiebig genutzt. | |||
* Jedoch war ein Programm nötig, welches sich der Aufgaben E/A-Verwaltung, Speicherverwaltung und vor allem [[Prozess-Scheduler|CPU-Scheduling]] etc. | |||
* annimmt. | |||
* Ab diesem Zeitpunkt konnte man von ersten Betriebssystemen reden. | |||
Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zukamen. Folgende Systeme sind entstanden und bis zum heutigen Tage im Einsatz: [[Parallele Systeme]], [[Verteilte Systeme]], [[Personal Computer|Personal-Computer]]-Systeme, [[Time-Sharing (Informatik)|Time-Sharing-Systeme]], [[Echtzeitsystem|Real-Time-Systeme]] und in neuester Zeit auch die [[Personal Digital Assistant]]s und [[Smartphone]]s. | Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zukamen. | ||
* Folgende Systeme sind entstanden und bis zum heutigen Tage im Einsatz: [[Parallele Systeme]], [[Verteilte Systeme]], [[Personal Computer|Personal-Computer]]-Systeme, [[Time-Sharing (Informatik)|Time-Sharing-Systeme]], [[Echtzeitsystem|Real-Time-Systeme]] und in neuester Zeit auch die [[Personal Digital Assistant]]s und [[Smartphone]]s. | |||
Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von [[Microsoft Windows|Windows]] von [[Microsoft]] (führend bei Systemen mit [[GUI]]), [[Berkeley Software Distribution|BSD]] inkl. [[macOS]] von [[Apple]] (am weitesten verbreitetes Desktop-Unix) und [[GNU-Projekt|GNU]]/[[Linux]] (führend bei Servern). Für spezielle Anwendungen (Beispiel: industrielle [[Steuerungstechnik|Steuerung]]) werden auch experimentelle Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt. | Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von [[Microsoft Windows|Windows]] von [[Microsoft]] (führend bei Systemen mit [[GUI]]), [[Berkeley Software Distribution|BSD]] inkl. [[macOS]] von [[Apple]] (am weitesten verbreitetes Desktop-Unix) und [[GNU-Projekt|GNU]]/[[Linux]] (führend bei Servern). | ||
* Für spezielle Anwendungen (Beispiel: industrielle [[Steuerungstechnik|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 physischen System(en) unterschieden wird. Der logische Rechner besteht aus mehreren physischen Rechnereinheiten. Viele Großrechner, Number-Cruncher und die Systeme aus dem Hause [[Cray]] arbeiten nach diesem Prinzip. Eines der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist [[Amoeba (Betriebssystem)|Amoeba]]. | Neben den klassischen Varianten gibt es noch spezielle Betriebssysteme für verteilte Systeme, bei denen zwischen dem logischen System und den physischen System(en) unterschieden wird. | ||
* Der logische Rechner besteht aus mehreren physischen Rechnereinheiten. | |||
* Viele Großrechner, Number-Cruncher und die Systeme aus dem Hause [[Cray]] arbeiten nach diesem Prinzip. | |||
* Eines der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist [[Amoeba (Betriebssystem)|Amoeba]]. | |||
{{Siehe auch|Liste von Betriebssystemen}} | {{Siehe auch|Liste von Betriebssystemen}} | ||
== Aufgaben == | == Aufgaben == | ||
; Aufgaben von Betriebssystemen | |||
{| class="wikitable big options" | |||
|- | |- | ||
! Option !! Beschreibung | |||
|- | |- | ||
| [[Speicherverwaltung]] || | |||
| | * Verwaltung der Systemressource Hauptspeicher. | ||
* Protokollierung der Speichernutzung. | |||
* Reservierung und Freigabe von Speicher. | |||
|- | |- | ||
| | | ([[Prozess (Informatik)|Prozess]])-Verwaltung || | ||
| | * Überwachung der Speicherzugriffe und gegebenenfalls Beenden von Prozessen bei einer [[Schutzverletzung]]. | ||
* Erzeugung neuer Prozesse (entweder auf Anforderung des Betriebssystems oder auf Aufforderung anderer schon existierender Prozesse) und Reservierung des von den Prozessen benötigten Speichers. | |||
* Kommunikation und Synchronisation von Prozessen untereinander ([[Interprozesskommunikation]]) | |||
|- | |- | ||
| [[Hardware|Geräte]]- und [[Datei]]verwaltung || | |||
* Effiziente Zuweisung von Ein-/Ausgabegeräten und Vermittlungseinheiten (Datenkanäle, Steuereinheiten), Vermeidung von Konflikten | |||
* Initiierung, Überwachung der Ausführung, Terminierung von Ein-/Ausgabevorgängen. | |||
* Verwaltung des [[Dateisystem]]s. | |||
* 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 || | ||
Verbergen der Komplexität der Maschine vor dem Anwender | |||
* Abstraktion des Maschinenbegriffes (nach [[Wolfgang Coy|Coy]]): | |||
* Reale Maschine = Zentraleinheit + Geräte (Hardware) | |||
* Abstrakte Maschine = Reale Maschine + Betriebssystem | |||
* Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm | |||
|} | |} | ||
<noinclude> | <noinclude> | ||
Zeile 325: | Zeile 140: | ||
==== Links ==== | ==== Links ==== | ||
===== Weblinks ===== | ===== Weblinks ===== | ||
# https://de.wikipedia.org/wiki/Betriebssystem | |||
# Commonscat|Operating systems|Betriebssystem | # Commonscat|Operating systems|Betriebssystem | ||
# Wiktionary | # Wiktionary | ||
Zeile 330: | Zeile 146: | ||
# [http://www.operating-system.org/betriebssystem/_german/os-uebersicht.htm Informationen zu allen Betriebssystemen] | # [http://www.operating-system.org/betriebssystem/_german/os-uebersicht.htm Informationen zu allen Betriebssystemen] | ||
# [http://lowlevel.eu/ Lowlevel – Wiki und Forum zur Betriebssystementwicklung (Online)] | # [http://lowlevel.eu/ Lowlevel – Wiki und Forum zur Betriebssystementwicklung (Online)] | ||
[[Kategorie:Betriebssystem]] | [[Kategorie:Betriebssystem]] | ||
Zeile 337: | Zeile 151: | ||
</noinclude> | </noinclude> | ||
[[Kategorie:Tmp]] |
Version vom 14. Januar 2024, 10:18 Uhr
topic - Kurzbeschreibung
Beschreibung
Ein Betriebssystem, auch OS (von ) genannt, ist eine Zusammenstellung von Computerprogrammen, die die Systemressourcen eines Computers wie Arbeitsspeicher, Festplatten, Ein- und Ausgabegeräte verwaltet und diese Anwendungsprogrammen zur Verfügung stellt. Das Betriebssystem bildet dadurch die Schnittstelle zwischen den Hardware-Komponenten und der Anwendungssoftware des Benutzers.
- Betriebssysteme bestehen in der Regel aus einem Kernel (deutsch: Kern), der die Hardware des Computers verwaltet, sowie speziellen Programmen, die beim Start unterschiedliche Aufgaben übernehmen.
- Zu diesen Aufgaben gehört unter anderem das Laden von Gerätetreibern.
- Betriebssysteme finden sich in fast allen Arten von Computern: Als Echtzeitbetriebssysteme auf Prozessrechnern und eingebetteten Systemen, auf Personal Computern, Tabletcomputern, Smartphones und auf größeren Mehrprozessorsystemen wie z. B. Servern und Großrechnern.
Die Aufgaben eines Betriebssystems lassen sich wie folgt zusammenfassen: Benutzerkommunikation; Laden, Ausführen, Unterbrechen und Beenden von Programmen; Verwaltung und Zuteilung der Prozessorzeit; Verwaltung des internen Speicherplatzes für Anwendungen; Verwaltung und Betrieb der angeschlossenen Geräte; Schutzfunktionen z. B. durch Zugriffsbeschränkungen.
- Die Gewichtung zwischen diesen Aufgaben wandelte sich im Laufe der Zeit, insbesondere wird Schutzfunktionen wie dem Speicherschutz oder begrenzten Benutzerrechten heute eine höhere Bedeutung zugemessen als noch in den 1990er Jahren.
- Dies macht Systeme allgemein robuster, reduziert z. B. die Zahl der Programm- und Systemabstürze und macht das System auch stabiler gegen Angriffe von außen, etwa durch Computerviren.
Dieser Artikel behandelt den Begriff „Betriebssystem“ hauptsächlich im Kontext „allgemein zur Informationsverarbeitung verwendete Computersysteme“.
- Daneben sind Betriebssysteme (mit ggf. spezialisierter Funktionalität) grundsätzlich in nahezu allen Geräten im Einsatz, in denen Software betrieben wird (wie Spielecomputer, Mobiltelefone, Navigationssysteme, Maschinen der Maschinenbaubranchen u. v. a.).
- Auch viele Steuerungssysteme (eingebettetes System) die z. B. in Flugzeugen, Autos, Zügen, oder in Satelliten zu finden sind, besitzen spezialisierte Betriebssysteme.
Definitionen und Abgrenzung
Ein Betriebssystem übernimmt zwei wesentliche Aufgaben, die im Grunde in keinem direkten Zusammenhang zueinander stehen:
- Die eine Aufgabe besteht darin, dem Anwendungsprogrammierer saubere Abstraktionen der Betriebsmittel zur Verfügung zu stellen (anstelle der unschönen Hardware).
- Das Betriebssystem bietet somit eine leichter verständliche und besser handhabbare Schnittstelle zur eigentlichen Maschine an und „versteckt“ die Komplexität der darunterliegenden Maschine: „Der Ansprechpartner für den Programmierer ist also nicht mehr die wirkliche Maschine, sondern eine virtuelle Maschine (Betriebssystem), welche wesentlich einfacher zu verstehen und zu programmieren ist.“
Das Betriebssystem erzeugt abstrakte Objekte, um die Komplexität beherrschbar zu machen.
- Ein Beispiel für eine solche Abstraktion ist die Datei.
- Diese kann beispielsweise in Form eines Digitalfotos, einer gespeicherten E-Mail-Nachricht oder einer Website vorliegen.
- Es ist auf jeden Fall einfacher, sich damit zu beschäftigen, als mit den Details von Festplattenspeichern.
- Die andere Aufgabe besteht darin, die Hardwareressourcen zu verwalten: „Ein Betriebssystem muss eine geordnete und kontrollierte Zuteilung von Prozessoren, Speichereinheiten und Peripheriegeräten unter den verschiedenen Programmen, welche darum konkurrieren, sicherstellen.“
Das Betriebssystem ordnet und kontrolliert die Allokation der Prozessoren, Speicher und Ein-/Ausgabegeräte und überwacht, welches Programm gerade welches Betriebsmittel nutzt.
- Liegen beispielsweise mehrere Aufträge für einen Drucker vor, so muss festgelegt werden, wie diese abgearbeitet werden.
- Auf einem modernen Betriebssystem können dadurch auch mehrere Programme gleichzeitig ausgeführt werden.
- Benutzen mehrere Anwender einen Computer oder ein Netzwerk, dann gewinnen Maßnahmen zur Verwaltung und zum Schutz von Speicher, Ein-/Ausgabegeräten und anderen Betriebsmitteln noch an Bedeutung.
- Die Benutzer würden sich sonst gegenseitig stören.
Die Gesamtheit aller Programme und Dateien, die sämtliche Abläufe bei Betrieb eines Rechners steuern, wird Systemsoftware genannt.
- Dazu gehören Betriebssysteme, aber auch systemnahe Software wie Compiler, Interpreter und Editoren.
- Anwendungssoftware wie beispielsweise Browser oder Buchhaltungssoftware benutzen die Systemsoftware für einen ordnungsgemäßen Ablauf.
- In der Literatur wird der Begriff „Betriebssystem“ innerhalb der Systemsoftware unterschiedlich breit interpretiert.
In der DIN-Sammlung 44300 (veraltet, ersetzt durch ISO/IEC 2382:2015 siehe: Liste der DIN-Normen/DIN 1–49999 unter DIN 44300) geht die Definition von seiner Aufgabe und Stellung in einer Programmhierarchie aus:
- Zitat
|Text=Das Betriebssystem wird gebildet durch die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften der Rechenanlage die Grundlage der möglichen Betriebsarten des digitalen Rechensystems bilden und insbesondere die Ausführung von Programmen steuern und überwachen. |Autor=DIN 44300
Für [[Andrew S.
- Tanenbaum]] beschränkt sich der Begriff Betriebssystem im Wesentlichen auf den Kernel: „Editoren, Compiler, Assembler, Binder und Kommandointerpreter sind definitiv nicht Teil des Betriebssystems, auch wenn sie bedeutsam und nützlich sind.“
Viele Lehrbücher folgen dieser engeren Sichtweise.
- Andere Autoren zählen unter anderem auch eine Kommandosprache zum Betriebssystem: „Außer die Hardware zu verwalten […], bieten moderne Betriebssysteme zahlreiche Dienste an, etwa zur Verständigung der Prozesse untereinander, Datei- und Verzeichnissysteme, Datenübertragung über Netzwerke und eine Befehlssprache.“
Eine noch weitere Fassung 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 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.
Der Begriff des Betriebssystems ist in Artikel 3 der Richtlinie (EU) 2019/882 legal definiert.
Ungeachtet dessen, wie weit oder wie eng man den Begriff „Betriebssystem“ fasst, enthalten die Installationsmedien für Betriebssysteme für gewöhnlich zusätzliche Dienst- und Anwendungsprogramme.
Entwicklungsstufen
Die Entwicklung von Computer-Betriebssystemen verlief und verläuft parallel zur Entwicklung und Leistungsfähigkeit verfügbarer Hardware: Beide Linien bedingten sich gegenseitig und ermöglichten bzw.
- erforderten Weiterentwicklungen auf der ‚anderen‘ Seite.
- Die Entwicklung verlief zum Teil in kleinen, manchmal in größeren Sprüngen:
Lochkarten verarbeitende Systeme (gilt sinngemäß auch für Lochstreifen) gehören mittlerweile (seit Anfang der 1970er Jahre) der Vergangenheit an.
- Jedoch sind sie ein guter Ansatz zur Betrachtung der Systementwicklung: In diesen räumlich relativ großen Systemen gab es noch keine externen elektronischen Speichermedien.
- Die Programme lagen (in Maschinensprache) in Form von Lochkartenstapeln vor und wurden durch den Operator über den Lochkartenleser in den internen Speicher ‚eingelesen‘.
- Nach der „Ende-Karte“ wurde das Anwendungsprogramm gestartet, das seine Eingabedaten je nach Aufgabenstellung ebenfalls über den Kartenleser lesen (deshalb der Begriff Stapelverarbeitung, engl. batch processing, queued systems) und seine Ergebnisse direkt über einen Drucker und/oder über den Kartenstanzer ausgeben musste.
- Vor- und nachgelagert waren, mithilfe elektro-mechanischer Geräte (Kartenlocher, Mischer, Sortierer) ausgeführt, Erfassungs-, Misch- und Sortiervorgänge erforderlich.
- Bereits zu diesem Zeitpunkt war die interne Verarbeitung deutlich schneller als die Ein-/Ausgabegeräte; das Lesen eines Lochkartenstapels (Karton mit 2000 Karten) dauerte ca. 5–10 Minuten, die Arbeitsspeichergrößen solcher Rechner lagen bei ca. 16 bis 64 kB (Beispiel siehe System/360).
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.
- Der Rechner konnte stets nur ein Programm nach dem anderen ausführen.
Eine Weiterentwicklung – Multiprogrammed Batch Systems – konnte zusätzliche Geräte unterstützen (Magnetbandeinheiten, erste Magnetplatten mit z. B. 7,25 MB Speichervolumen), mehrere Programme gleichzeitig ausführen (z. B. in 3 'Partitionen') sowie Programme und Daten auf externen Speichern halten.
- Eine schnellere Abarbeitung war möglich, da die Zeit für das Lesen und Ausgeben der Kartenstapel entfiel – und die Prozessoren schneller wurden.
- Hier wurden Mechanismen wie das Spooling (Zwischenausgabe von Druckerdaten auf Magnetband mit verzögertem, parallel möglichem Drucken) und die Möglichkeit des Offline-Betriebs bereits ausgiebig genutzt.
- Jedoch war ein Programm nötig, welches sich der Aufgaben E/A-Verwaltung, Speicherverwaltung und vor allem CPU-Scheduling etc.
- annimmt.
- Ab diesem Zeitpunkt konnte man von ersten Betriebssystemen reden.
Die nächsten Schritte waren dann Folgen der jeweiligen Aufgabenbereiche, die den Systemen zukamen.
- Folgende Systeme sind entstanden und bis zum heutigen Tage im Einsatz: Parallele Systeme, Verteilte Systeme, Personal-Computer-Systeme, Time-Sharing-Systeme, Real-Time-Systeme und in neuester Zeit auch die Personal Digital Assistants und Smartphones.
Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von Windows von Microsoft (führend bei Systemen mit GUI), BSD inkl. macOS von Apple (am weitesten verbreitetes Desktop-Unix) und GNU/Linux (führend bei Servern).
- 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 physischen System(en) unterschieden wird.
- Der logische Rechner besteht aus mehreren physischen Rechnereinheiten.
- Viele Großrechner, Number-Cruncher und die Systeme aus dem Hause Cray arbeiten nach diesem Prinzip.
- Eines der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist Amoeba.
Aufgaben
- Aufgaben von Betriebssystemen
Option | Beschreibung |
---|---|
Speicherverwaltung |
|
(Prozess)-Verwaltung |
|
Geräte- und Dateiverwaltung |
|
Abstraktion |
Verbergen der Komplexität der Maschine vor dem Anwender
|
Anhang
Siehe auch
Links
Weblinks
- https://de.wikipedia.org/wiki/Betriebssystem
- Commonscat|Operating systems|Betriebssystem
- Wiktionary
- dmoz|World/Deutsch/Computer/Software/Betriebssysteme/|Betriebssysteme
- Informationen zu allen Betriebssystemen
- Lowlevel – Wiki und Forum zur Betriebssystementwicklung (Online)