Betriebssystem

Ein Betriebssystem (OS) ist Systemsoftware das schafft Computerhardware, Software Ressourcen und bietet gemeinsam Dienstleistungen zum Computerprogramme.

Zeitteilung Betriebssysteme Aufgaben planen Für eine effiziente Verwendung des Systems und möglicherweise auch die Buchhaltungssoftware zur Kostenverteilung von enthalten Prozessorzeit, Massenspeicher, Druck und andere Ressourcen.

Für Hardwarefunktionen wie z. Eingang und Ausgabe und SpeicherzuweisungDas Betriebssystem fungiert als Vermittler zwischen Programmen und Computerhardware.[1][2] Obwohl der Anwendungscode normalerweise direkt von der Hardware ausgeführt wird und häufig macht Systemaufrufe zu einer Betriebssystemfunktion oder ist unterbrochen danach. Betriebssysteme finden Sie auf vielen Geräten, die einen Computer enthalten - von Mobiltelefonen und Videospielkonsolen bis hin Webserver und Supercomputer.

Der dominierende allgemeine Purpose persönlicher Computer Betriebssystem ist Microsoft Windows mit einem Marktanteil von rund 76,45%. Mac OS durch Apple Inc. ist auf dem zweiten Platz (17,72%) und die Sorten von Linux sind zusammen den dritten Platz (1,73%).[3] In dem Handy, Mobiltelefon Sektor (einschließlich Smartphones und Tablets), Androids Der Aktie beträgt bis zu 72% im Jahr 2020.[4] Laut Daten im dritten Quartal 2016 dominiert der Anteil von Android an Smartphones mit 87,5 Prozent mit einer Wachstumsrate von 10,3 Prozent pro Jahr, gefolgt von Apple's iOS Mit 12,1 Prozent mit einem Rückgang des Marktanteils pro Jahr von 5,2 Prozent, während andere Betriebssysteme nur 0,3 Prozent beträgt.[5] Linux -Verteilungen sind im Server- und Supercomputing -Sektor dominieren. Andere spezielle Klassen von Betriebssystemen (Spezialbetriebssysteme),[6][7] wie zum Beispiel eingebettet und Echtzeitsysteme existieren für viele Anwendungen. Sicherheitsorientierte Betriebssysteme existieren auch. Einige Betriebssysteme haben niedrige Systemanforderungen (z. Leichte Linux-Verteilung). Andere haben möglicherweise höhere Systemanforderungen.

Einige Betriebssysteme erfordern eine Installation oder können mit gekauften Computern vorinstalliert werden (OEM-installation), während andere direkt aus den Medien ausgehen (d.h. Live -CD) oder Flash -Speicher (d.h. USB Stock).

Arten von Betriebssystemen

Single-Tasking und Multitasking

Ein Einzel-Tasking-System kann jeweils nur ein Programm ausführen, während a Multitasking Das Betriebssystem ermöglicht es, mehr als ein Programm auszuführen gleichzeitig. Dies wird durch erreicht Zeitteilung, wo die verfügbare Prozessorzeit zwischen mehreren Prozessen aufgeteilt wird. Diese Prozesse werden jeweils wiederholt unterbrochen time slices durch ein aufgabenplanendes Subsystem des Betriebssystems. Multitasking kann an präventiven und kooperativen Typen charakterisiert werden. Im Präventiv Multitasking, das Betriebssystem, schneidet die Zentralprozessor Zeit und widmet jedem der Programme einen Slot. Unix-artig Betriebssysteme wie z. Linux-und nicht ungewöhnlich, wie z. Amigaos- Support präventive Multitasking. Kooperatives Multitasking wird erreicht, indem sich auf jeden Prozess stützt, um den anderen Prozessen auf definierte Weise Zeit zu liefern. 16-Bit Versionen von Microsoft Windows verwendeten kooperative Multitasking; 32-Bit Versionen von Windows NT und Win9x verwendeten präventive Multitasking.

Einzel- und Mehrbenutzer

Ein-Benutzer-Betriebssysteme haben keine Einrichtungen, um Benutzer zu unterscheiden, es können jedoch mehrere Programme ermöglichen Tandem.[8] A Multi-User Das Betriebssystem erweitert das grundlegende Konzept des Multitaskings mit Einrichtungen, die Prozesse und Ressourcen identifizieren, wie z. B. Speicherplatz, gehörend zu mehreren Benutzern, und das System ermöglicht es mehreren Benutzern, gleichzeitig mit dem System zu interagieren. Time-Sharing-Betriebssysteme planen Aufgaben für die effiziente Nutzung des Systems und können auch Buchhaltungssoftware für die Kostenzuweisung von Prozessorzeit, Massenspeicherung, Druck und anderen Ressourcen für mehrere Benutzer enthalten.

Verteilt

A verteiltes Betriebssystem verwaltet eine Gruppe verschiedener, vernetzt Computer und lässt sie ein einzelner Computer zu sein, wie alle Berechnungen sind verteilt (geteilt in die konstituierenden Computer).[9]

Vorlagen

Im verteilten und Cloud Computing Kontext eines Betriebssystems, Vorlagen bezieht sich auf die Erstellung einer einzigen Virtuales Maschinenbild Als Gastbetriebssystem speichern Sie es dann als Werkzeug für mehrere Laufen virtuelle Maschinen. Die Technik wird beide in verwendet Virtualisierung und Cloud Computing -Verwaltung und ist in großen Serverlagern üblich.[10]

Eingebettet

Eingebettete Betriebssysteme sind so konzipiert, dass sie verwendet werden können eingebettete Computersysteme. Sie sind für kleine Maschinen mit weniger Autonomie ausgelegt (z. PDAs). Sie sind sehr kompakt und extrem effizient durch Design und können mit einer begrenzten Menge an Ressourcen arbeiten. Windows CE und Minix 3 sind einige Beispiele für eingebettete Betriebssysteme.

Echtzeit

A Echtzeit-Betriebssystem ist ein Betriebssystem, das den Prozess garantiert Veranstaltungen oder Daten nach einem bestimmten Zeitpunkt. Ein Echtzeit-Betriebssystem ist möglicherweise Single- oder Multitasking, aber beim Multitasking verwendet es spezielle Planungsalgorithmen, damit a deterministisch Die Art des Verhaltens wird erreicht. Ein solches ereignisgesteuerte System wechselt zwischen Aufgaben, die auf ihren Prioritäten oder externen Ereignissen basieren, während die Time-Sharing-Betriebssystemaufgaben basierend auf der Uhr schalten Interrupts.

Bibliothek

Ein Bibliotheksbetriebssystem ist eines, bei dem die Dienste, die ein typisches Betriebssystem erbringt, wie z. Bibliotheken und mit dem Anwendungs- und Konfigurationscode komponiert, um a zu konstruieren Unikernel: eine spezialisierte, einzelner Adressraum, Maschinenbild, das in Cloud- oder eingebetteten Umgebungen bereitgestellt werden kann[Weitere Erklärung erforderlich].

Geschichte

Frühe Computer wurden entwickelt, um eine Reihe von einzelnen Aufgaben wie ein Taschenrechner auszuführen. Grundlegende Betriebssystemmerkmale wurden in den 1950er Jahren entwickelt, wie z. Resident Monitor Funktionen, die automatisch verschiedene Programme ausführen könnten, um die Verarbeitung zu beschleunigen. Betriebssysteme existierten erst in den frühen 1960er Jahren in ihren modernen und komplexeren Formen.[11] Es wurden Hardwarefunktionen hinzugefügt, die die Verwendung von der Verwendung von aktiviert haben Laufzeitbibliotheken, Interrupts, und Parallelverarbeitung. Wann persönliche Computer In den 1980er Jahren wurden Betriebssysteme für sie im Konzept wie auf größeren Computern ein ähnlichem Konzept gemacht.

In den 1940er Jahren hatten die frühesten elektronischen digitalen Systeme keine Betriebssysteme. Die elektronischen Systeme dieser Zeit wurden auf Reihen mechanischer Schalter oder durch Springdrähte an programmiert Plugboards. Dies waren Sondersysteme, die beispielsweise Ballistiktabellen für das Militär erzeugten oder den Druck von Gehaltsabrechnungskontrollen aus Daten auf Stanzpapierkarten kontrollierten. Nach programmierbarem Allgemeinen wurden Computer erfunden, Maschinensprachen(bestehend aus Saiten der binären Ziffern 0 und 1 auf gestanztem Papierband) wurden eingeführt, die den Programmierungsprozess beschleunigt (Stern, 1981).[Vollständiges Zitat benötigt]

OS/360 wurde am meisten verwendet IBM Mainframe -Computer ab 1966, einschließlich Computern, die von der verwendet werden Apollo -Programm.

In den frühen 1950er Jahren konnte ein Computer jeweils nur ein Programm ausführen. Jeder Benutzer hatte den Computer für einen begrenzten Zeitraum die alleinige Verwendung und würde zu einer geplanten Zeit mit seinem Programm und seinen Daten auf Stanzpapierkarten oder gelangen Stempelband. Das Programm würde in die Maschine geladen, und die Maschine würde so lange eingestellt, bis das Programm abgeschlossen ist oder abgestürzt. Programme können im Allgemeinen über eine Frontplatte mit Kippschalter und Panellichtern debuggen werden. Es wurde gesagt, dass Alan Turing war ein Meister davon frühzeitig Manchester Mark 1 Maschine, und er leitete bereits die primitive Konzeption eines Betriebssystems aus den Prinzipien der Universelle Turing -Maschine.[11]

Spätere Maschinen wurden mit Bibliotheken von Programmen geliefert, die mit dem Programm eines Benutzers in Verbindung gebracht werden, um Operationen wie Eingabe und Ausgabe zu unterstützen und Kompilieren (Generieren von Maschinencode von menschlichem Lesbar generieren Symbolischer Code). Dies war die Entstehung des modernen Betriebssystems. Maschinen lieferten jedoch immer noch einen einzigen Job. An der Cambridge University in England stand die Jobwarteschlange einst eine Wäschelinie (Wäscheleine), von der Bänder mit verschiedenen farbigen Kleiderpegs aufgehängt wurden, um die Priorität der Arbeitsplätze anzuzeigen.

In den späten 1950er Jahren begannen Programme, die man als Betriebssystem erkennen würde. Oft darauf hingewiesen, wie das früheste erkennbare Beispiel ist Gm-naa i/o, veröffentlicht 1956 auf der IBM 704. Das erste bekannte Beispiel, das sich tatsächlich auf sich selbst bezog, war das Aktienbetriebssystem, Eine Entwicklung von GM-NAA I/O, die 1959 veröffentlicht wurde. In einem Papier im Mai 1960, in dem das System beschrieben wurde, bemerkte George Ryckman:

Die Entwicklung von Computerbetriebssystemen hat das Problem der Erlangung eines Programms oder einer Reihe von Programmen effizient gestellt.[12]

Eines der berühmteren Beispiele, die häufig in Diskussionen von frühen Systemen zu finden sind, ist die Atlas Supervisorauf der Atlas 1962.[13] Es wurde in einem Artikel im Dezember 1961 als solcher bezeichnet, in dem das System beschrieben wurde, aber der Kontext des "Betriebssystems" ist mehr in die Richtung des "Systems funktioniert in der Mode". Das Atlas -Team selbst verwendete den Begriff "Supervisor",[14] das wurde zusammen mit "Monitor" weit verbreitet. Brinch Hansen bezeichnete es als "den bedeutendsten Durchbruch in der Geschichte der Betriebssysteme".[15]

Mainframes

Bis in die 1950er Jahre wurden viele wichtige Merkmale im Bereich der Betriebssysteme eingeleitet Mainframe -Computer, einschließlich Stapelverarbeitung, Input-Output Unterbrechung, Pufferung, Multitasking, Spulen, Laufzeitbibliotheken, Linkladung, und Programme für Sortierung Datensätze in Dateien. Diese Funktionen wurden in Anwendungssoftware zur Option von Anwendungsprogrammierern enthalten oder nicht in einem separaten Betriebssystem, das von allen Anwendungen verwendet wird.

In den 1960er Jahren ist IBMs OS/360 stellte das Konzept eines einzelnen Betriebssystems ein, das eine gesamte Produktlinie umfasst, was für den Erfolg des Systems/360 -Maschinen von entscheidender Bedeutung war. Die aktuellen Mainframe -Betriebssysteme von IBM sind entfernte Nachkommen Von diesem ursprünglichen System und modernen Maschinen sind rückwärtskompatibel mit Anwendungen für OS/360.

OS/360 war außerdem Pionier des Konzepts, dass das Betriebssystem alle verwendeten Systemressourcen verfolgt, einschließlich Programm- und Datenraumzuweisung im Hauptspeicher und Dateiraum im Sekundärspeicher und Dateisperrung Während Updates. Wenn ein Prozess aus irgendeinem Grund gekündigt wird, werden alle diese Ressourcen vom Betriebssystem zurückgeführt.

Die Alternative CP-67 System für die S/360-67 startete eine ganze Reihe von IBM -Betriebssystemen, die sich auf das Konzept von konzentrierten virtuelle Maschinen. Weitere Betriebssysteme, die für Mainframes der IBM S/360 -Serie verwendet werden, umfassten Systeme, die von IBM entwickelt wurden: DOS/360[a] (Festplattenbetriebssystem), TSS/360 (Zeitfreigabesystem), TOS/360 (Bandbetriebssystem), BOS/360 (Grundlegendes Betriebssystem) und ACP (Airline-Steuerungsprogramm) sowie einige Nicht-IBM-Systeme: MTS (Michigan Terminalsystem), MUSIK (Multi-Benutzer-System für interaktives Computer) und Orvyl (Stanford Timesharing -System).

Steuerungsdatengesellschaft entwickelte die UMFANG Betriebssystem in den 1960er Jahren für Stapelverarbeitung. In Zusammenarbeit mit der Universität von Minnesota die Kronos und später die Nr In den 1970er Jahren wurden Betriebssysteme entwickelt, die die gleichzeitige Stapel- und Timesharing -Verwendung unterstützten. Wie viele kommerzielle Timesharing -Systeme war die Schnittstelle eine Erweiterung des Dartmouth BASIC Betriebssysteme, eine der Pionierbemühungen bei Timesharing- und Programmiersprachen. In den späten 1970er Jahren entwickelten Kontrolldaten und die Universität von Illinois die PLATO Betriebssystem, bei dem das Plasma-Panel angezeigt wird, und die Langstreckenzeitnetzwerke. Platon war für seine Zeit bemerkenswert innovativ und hatte Echtzeit-Chat und grafische Spiele mit mehreren Nutzern.

1961,, Burroughs Corporation stellte die vor B5000 mit dem MCP (Master Control Program) Betriebssystem. Der B5000 war a Stapelmaschine Entwickelt, um hochrangige Sprachen ohne Assembler zu unterstützen;[b] In der Tat war das MCP das erste Betriebssystem, das ausschließlich in einer hochrangigen Sprache geschrieben wurde (Espol, ein Dialekt von Algol). MCP führte auch viele andere bahnbrechende Innovationen ein, wie die erste kommerzielle Umsetzung von virtueller Speicher. Während der Entwicklung der AS/400, IBM hat Burroughs angewendet, MCP für die Ausführung der AS/400 -Hardware zu lizenzieren. Dieser Vorschlag wurde von Burroughs Management abgenommen, um seine bestehende Hardwareproduktion zu schützen. MCP ist noch heute in der Verwendung in der Verwendung Unisys Firmen MCP/ClearPath Computerlinie.

UnivacDer erste kommerzielle Computerhersteller produzierte eine Reihe von Exec -Betriebssystemen.[16][17][18] Wie bei allen frühen Hauptrahmensystemen verwaltete dieses batchorientierte System Magnettrommeln, Scheiben, Kartenleser und Liniendrucker. In den 1970er Jahren produzierte Univac das RTB-System (Basic) in Echtzeit, um eine groß angelegte Zeit zu unterstützen, die auch nach dem Dartmouth BC-System strukturiert wurde.

General Electric Entwickelte General Electric Comprehensive Operating Supervisor (GECOS), die hauptsächlich die Batch -Verarbeitung unterstützte. Nach seiner Übernahme von Honeywell, es wurde umbenannt Allgemeines umfassendes Betriebssystem (GCOS).

Bell Labs,[c] General Electric und MIT entwickelte Multiplex -Informationen und Computerdienst (Mehrheit), die das Konzept der Ring -Sicherheits Privilegien einführte.

Die Digital Equipment Corporation entwickelte viele Betriebssysteme für ihre verschiedenen Computerleitungen, einschließlich Tops-10 und Tops-20 Time-Sharing-Systeme für die 36-Bit-PDP-10-Klasse-Systeme. Vor dem weit verbreiteten Einsatz von UNIX war TOPS-10 ein besonders beliebtes System an Universitäten und frühzeitig Arpanet Gemeinschaft. RT-11 war ein Echtzeit-OS für Einzelbenutzer für die PDP-11 Klassenminicomputer und RSX-11 war das entsprechende Multi-Benutzer-Betriebssystem.

Von den späten 1960er bis Ende der 1970er Jahre entwickelten sich mehrere Hardwarefunktionen, die es ähnliche oder portierte Software ermöglichten, auf mehr als einem System auszuführen. Frühe Systeme hatten verwendet Mikroprogrammierung Funktionen auf ihren Systemen implementieren, um eine andere zugrunde liegende zu ermöglichen Computerarchitekturen dasselbe wie andere in einer Serie zu sein. Tatsächlich waren die meisten 360S nach dem 360/40 (mit Ausnahme des 360/44, 360/75, 360/91, 360/95 und 360/195) mikroprogrammierte Implementierungen.

Die enorme Investition in Software für diese Systeme seit den 1960er Jahren führte dazu, dass die meisten ursprünglichen Computerhersteller zusammen mit der Hardware weiterhin kompatible Betriebssysteme entwickelten. Bemerkenswerte unterstützte Mainframe -Betriebssysteme umfassen:

Mikrocomputer

PC DOS war ein frühes PC-Betriebssystem mit einer Befehlszeilenschnittstelle.
Mac OS von Apple Computer wurde das erste weit verbreitete Betriebssystem mit a grafische Benutzeroberfläche. Viele seiner Funktionen wie Fenster und Symbole würden später in der GUIs alltäglich werden.

Der Erste Mikrocomputer hatte nicht die Kapazität oder Notwendigkeit der aufwändigen Betriebssysteme, die für Mainframes und Minis entwickelt wurden; Es wurden minimalistische Betriebssysteme entwickelt, oft geladen von Rom und bekannt als Monitore. Eine bemerkenswerte früh Festplattenbetriebssystem war CP/m, was bei vielen frühen Mikrocomputern unterstützt wurde und von eng nachgeahmt wurde von Microsoft's MS-DOS, was weithin beliebt wurde, als das für die ausgewählte Betriebssystem für die ausgewählt wurde IBM PC (IBMs Version davon hieß IBM DOS oder PC dos). In den 1980er Jahren, Apple Computer Inc. (jetzt Apple Inc.) hat seine beliebte aufgegeben Apple II Reihe von Mikrocomputern zur Einführung der Apple Macintosh Computer mit einem innovativen grafische Benutzeroberfläche (GUI) an die Mac OS.

Die Einführung der Intel 80386 CPU -Chip im Oktober 1985,[19] mit 32-Bit Architektur und Paging Funktionen, die PCs mit der Fähigkeit zum Laufen versehen Multitasking Betriebssysteme wie die von früher Minicomputer und Mainframes. Microsoft reagierte auf diesen Fortschritt durch Einstellung Dave Cutler, der das entwickelt hatte VMs Betriebssystem für Digital Equipment Corporation. Er würde die Entwicklung der leiten Windows NT Betriebssystem, das weiterhin als Grundlage für die Betriebssystemlinie von Microsoft dient. Steve Jobsein Mitbegründer von Apple Inc., gestartet Nächste Computer Inc., der die entwickelte NÄCHSTER SCHRITT Betriebssystem. Nextstep würde später von erworben von Apple Inc. und verwendet, zusammen mit Code von Freebsd als Kern von Mac OS X (macOS nach dem letzten Namen ändern).

Das GNU -Projekt wurde vom Aktivisten und Programmierer begonnen Richard Stallman mit dem Ziel, eine vollständige Schaffung zu schaffen gratis Software Ersatz an den Eigentum Unix Betriebssystem. Während das Projekt sehr erfolgreich war, um die Funktionalität verschiedener Teile von UNIX zu duplizieren, entwickelte die Entwicklung der Gnu Hurd Kernel erwies sich als unproduktiv. 1991 der finnische Informatikstudent Linus TorvaldsMit der Zusammenarbeit von Freiwilligen, die über das Internet zusammenarbeiten, veröffentlichte die erste Version der Linux Kernel. Es wurde bald mit dem GNU zusammengeführt Benutzerraum Komponenten und Systemsoftware zum Bildung eines vollständigen Betriebssystems. Seitdem wurde die Kombination der beiden Hauptkomponenten normalerweise von der Softwareindustrie als "Linux" bezeichnet, eine Namenskonvention, die Stallman und die Kostenlose Software -Stiftung Bleiben Sie dagegen und bevorzugen den Namen GNU/Linux. Die Berkeley Software Distribution, bekannt als BSD, ist das von der University of California in Berkeley verteilte Unix -Derivat ab den 1970er Jahren. Frei verteilt und portiert Für viele Minicomputer erhielt es schließlich auch eine Anhängerschaft für die Verwendung auf PCs, hauptsächlich als Freebsd, Netbsd und OpenBSD.

Beispiele

UNIX- und UNIX-ähnliche Betriebssysteme

Evolution von Unix Systeme

Unix wurde ursprünglich geschrieben in Montagesprache.[20] Ken Thompson schrieb Bhauptsächlich basierend auf BCPL, basierend auf seiner Erfahrung in der Mehrheit Projekt. B wurde durch ersetzt durch C, und Unix, umgeschrieben in C neu, entwickelte sich zu einer großen, komplexen Familie miteinander verbundener Betriebssysteme, die in jedem modernen Betriebssystem einflussreich waren (siehe Geschichte).

Das Unix-artig Die Familie ist eine vielfältige Gruppe von Betriebssystemen mit mehreren wichtigen Unterkategorien, einschließlich System v, BSD, und Linux. Der Name "Unix"Ist ein Markenzeichen von Die offene Gruppe Welche Lizenzen für die Verwendung mit jedem Betriebssystem lizenziert, von dem gezeigt wurde, dass er ihren Definitionen entspricht. "Unix-artig" wird üblicherweise verwendet, um sich auf die großen Reihe von Betriebssystemen zu beziehen, die der ursprünglichen Unix ähneln.

Unix-ähnliche Systeme laufen auf einer Vielzahl von einer Vielzahl von Computerarchitekturen. Sie werden stark für verwendet Server im Geschäft und sowohl im Geschäft " Arbeitsstationen in akademischen und technischen Umgebungen. Frei UNIX -Varianten wie z. Linux und BSD, sind in diesen Bereichen beliebt.

Fünf Betriebssysteme sind zertifiziert von Die offene Gruppe (Inhaber der Unix -Marke) als Unix. HPs HP-UX und IBMs AIX sind beide Nachkommen des ursprünglichen Systems V UNIX und sind so konzipiert, dass sie nur auf der Hardware ihres jeweiligen Anbieters ausgeführt werden. Im Gegensatz, Sun Microsystems's Solaris kann auf mehreren Hardware -Arten ausgeführt werden, einschließlich x86 und Sparc Server und PCs. Äpfel Mac OS, ein Ersatz für das frühere Mac OS von Apple (Nichtunix) ist a Hybridkern-basierte BSD -Variante abgeleitet von Nächster Schritt, Mach, und Freebsd. IBM Z/OS UNIX -Systemdienste beinhaltet eine Hülle und Dienstprogramme basierend auf Mörtelkern ' Interopen -Produkte.

Die Unix -Interoperabilität wurde gesucht, indem die festgelegt wurde Posix Standard. Der POSIX -Standard kann auf jedes Betriebssystem angewendet werden, obwohl er ursprünglich für verschiedene Unix -Varianten erstellt wurde.

BSD und seine Nachkommen

Das Erster Server für die Weltweites Netz lief auf Nextstep, basierend auf BSD.

Eine Untergruppe der Unix -Familie ist die Berkeley Software Distribution Familie, einschließlich Freebsd, Netbsd, und OpenBSD. Diese Betriebssysteme sind am häufigsten auf Webserver, obwohl sie auch als Personalcomputer -Betriebssystem fungieren können. Das Internet verdankt einen Großteil seiner Existenz BSD, da viele der Protokolle, die heute üblicherweise von Computern verwendet werden, um Daten über ein Netzwerk zu verbinden, zu senden und zu empfangen, in BSD weit verbreitet und verfeinert wurden. Das Weltweites Netz wurde auch zunächst auf einer Reihe von Computern demonstriert, die ein Betriebssystem basierend auf BSD genannt haben Nächster Schritt.

1974,, Universität von Kalifornien, Berkeley installierte sein erstes Unix -System. Im Laufe der Zeit begannen Studenten und Mitarbeiter in der Informatikabteilung neue Programme hinzuzufügen, um die Dinge zu erleichtern, wie z. B. Textredakteure. Als Berkeley neu erhielt Vax Computers 1978 mit installierten UNIX modifizierten die Studenten der Schule UNIX noch mehr, um die Hardware -Möglichkeiten des Computers zu nutzen. Das Verteidigung Advanced Research Projects Agency von den USA Verteidigungsministerium interessierte sich und beschloss, das Projekt zu finanzieren. Viele Schulen, Unternehmen und Regierungsorganisationen nahmen es zur Kenntnis und nutzten Berkeleys Version von UNIX anstelle des von AT & T verteilten offiziellen.

Steve JobsNach dem Verlassen von Apple Inc. im Jahr 1985 gebildet, gebildet NEXT INC., ein Unternehmen, das High-End-Computer herstellte, die mit einer Variation von BSD ausgeführt wurden Nächster Schritt. Einer dieser Computer wurde von verwendet von Tim Berners-Lee als erster Webserver, der das World Wide Web erstellt.

Entwickler mögen Keith Bostic ermutigte das Projekt, nicht freie Code zu ersetzen, die mit Bell Labs stammen. Sobald dies jedoch erledigt war, verklagte AT & T. Nach zwei Jahren rechtlicher Streitigkeiten brachte das BSD -Projekt eine Reihe freier Derivate hervor, wie z. Netbsd und Freebsd (beide im Jahr 1993) und OpenBSD (von netbsd im Jahr 1995).

Mac OS

Mac OS (ehemals "Mac OS X" und später "OS X") ist eine Linie von offener Kern Grafische Betriebssysteme entwickelt, vermarktet und verkauft von Apple Inc.Das Neueste davon wird auf allen derzeit Versand vorinstalliert Macintosh Computers. MacOS ist der Nachfolger des Originals Klassischer Mac OS, das seit 1984 das primäre Betriebssystem von Apple war. Im Gegensatz zu seinem Vorgänger ist MacOS a Unix Betriebssystem, das auf Technologie basiert, die bei entwickelt worden waren Nächste In der zweiten Hälfte der 1980er Jahre, bis Apple das Unternehmen Anfang 1997 kaufte Mac OS X Server 1.0, gefolgt im März 2001 von einer Client -Version (Mac OS X v10.0 "Cheetah"). Seitdem sechs weitere "Client" und ""Server"Ausgaben von macOS wurden veröffentlicht, bis die beiden zusammengeführt wurden OS X 10.7 "Löwe".

Vor seiner Verschmelzung mit macOS, der Server Edition - MacOS -Server- war architektonisch identisch mit seinem Desktop -Gegenstück und lief normalerweise auf Apples Macintosh -Linie Server Hardware. In MacOS -Server wurden Tools für Arbeitsgruppenverwaltungs- und Verwaltungssoftware -Tools enthalten, die einen vereinfachten Zugriff auf den Schlüssel ermöglichen Netzwerkdienste, einschließlich eines Mail Transfer Agent, a Samba -Server, ein LDAP Server, a Domainnamenserver, und andere. Mit Mac OS X v10.7 LöweAlle Serveraspekte des Mac OS X Servers wurden in die Client-Version und das Produkt als "OS X" integriert (abgeben "Mac" aus dem Namen). Die Server -Tools werden jetzt als Anwendung angeboten.[21]

Z/OS UNIX -Systemdienste

Zuerst als Upgrade des Openedition -Upgrades auf MVS/ESA Systemproduktversion 4 Release 3, angekündigt[22] Februar 1993 mit Unterstützung für Posix und andere Standards.[23][24][25] Z/OS UNIX -Systemdienste ist oben aufgebaut MVS Dienstleistungen und kann nicht unabhängig laufen. Während IBM zunächst Openedition einführte, um zufrieden zu stellen FIPS Anforderungen, mehrere Z/OS -Komponente erfordern jetzt UNIX -Dienste, z. B. TCP/IP.

Linux

Linux, a Unix-artig Das Betriebssystem wurde zum ersten Mal am 17. September 1991 veröffentlicht von Linus Torvalds.[26][27][28] Bild von Smoking das PinguinMaskottchen von Linux.[29]

Der Linux -Kernel entstand 1991 als Projekt von Linus Torvalds, während ein Universitätsstudent in Finnland. Er veröffentlichte Informationen über sein Projekt in einer Newsgroup für Computerstudenten und Programmierer und erhielt Unterstützung und Unterstützung von Freiwilligen, denen es gelang, einen vollständigen und funktionalen Kernel zu erstellen.

Linux ist Unix-artig, wurde aber im Gegensatz zu BSD und seinen Varianten ohne Unix -Code entwickelt. Aufgrund seines offenen Lizenzmodells die Linux Kernel Code steht für Studien und Modifikation zur Verfügung, was zu einer Vielzahl von Computermaschinen von Supercomputern bis zu Smartwatches geführt hat. Obwohl Schätzungen darauf hindeuten, dass Linux ist benutzt auf Nur 1,82% aller "Desktop" (oder Laptop) PCs,[30] Es wurde weithin für die Verwendung auf Servern eingesetzt[31] und eingebettete Systeme[32] wie Mobiltelefone. Linux hat Unix auf vielen Plattformen ersetzt und wird für die meisten Supercomputer, einschließlich der Top 385, verwendet.[33] Viele der gleichen Computer sind ebenfalls an Green500 (aber in unterschiedlicher Reihenfolge) und Linux läuft unter den Top 10. Linux wird auch häufig auf anderen kleinen energieeffizienten Computern verwendet, wie z. Smartphones und smarte Uhren. Der Linux -Kernel wird in einigen beliebten Verteilungen verwendet, wie z. roter Hut, Debian, Ubuntu, Linux Mint und Google's Android, Chrome OS, und Chrom os.

Microsoft Windows

Microsoft Windows ist eine Familie von proprietär Betriebssysteme entwickelt von von Microsoft Corporation und hauptsächlich auf Intel Architekturbasierte Computer ausgerichtet, mit geschätzten 88,9 -prozentigen Gesamtnutzungsanteil auf Web -Connected -Computern.[30][34][35][36] Die neueste Version ist Windows 11.

Im Jahr 2011 überholte Windows 7 Windows XP als die am häufigsten verwendete Version.[37][38][39]

Microsoft Windows wurde erstmals 1985 als als veröffentlicht Betriebsumgebung Laufen auf MS-DOSDas Standardbetriebssystem, das zu dieser Zeit auf den meisten Personalcomputern der Intel Architecture versandt wurde. Im Jahr 1995, Windows 95 wurde veröffentlicht, die nur MS-DOS als Bootstrap verwendeten. Für die Rückwärtskompatibilität könnte Win9x Real-Mode MS-DOS ausführen[40][41] und 16-Bit Windows 3.x[42] Treiber. Fenster mich, im Jahr 2000 veröffentlicht, war die letzte Version in der Familie Win9x. Spätere Versionen basieren alle auf dem Windows NT Kernel. Aktuelle Clientversionen von Windows laufen auf IA-32, x86-64 und ARM Mikroprozessoren.[43] Zusätzlich Itanium wird immer noch in älterer Serverversion unterstützt Windows Server 2008 R2. In der Vergangenheit unterstützte Windows NT zusätzliche Architekturen.

Server -Editionen von Windows werden jedoch weit verbreitet. Windows 'Verwendung auf Servern ist jedoch nicht so weit verbreitet wie auf PCs wie Windows gegen Linux und BSD für den Server -Marktanteil konkurriert.[44][45]

Reactos ist ein Windows-Alternativ-Betriebssystem, das nach den Prinzipien von Windows entwickelt wird-ohne den Code von Microsoft zu verwenden.

Sonstiges

Es gab viele Betriebssysteme, die zu ihrer Zeit erheblich waren, aber nicht mehr so, wie z. Amigaos; OS/2 von IBM und Microsoft; Klassischer Mac OS, der Nicht-Unix-Vorläufer von Apples MacOS; Beos; XTS-300; RISC OS; Morphos; Haiku; Rohmetall und Freimaurer. Einige werden immer noch in Nischenmärkten verwendet und werden weiterhin als Minderheitsplattformen für begeisterte Gemeinden und Fachanwendungen entwickelt. OpenVMS, früher von Dez, ist immer noch aktiv entwickelt von VMS Software Inc. Noch andere Betriebssysteme werden fast ausschließlich in der Wissenschaft, zur Ausbildung von Betriebssystemen oder zur Erforschung von Betriebssystemkonzepten verwendet. Ein typisches Beispiel für ein System, das beide Rollen erfüllt Minixwährend zum Beispiel Singularität wird nur für die Forschung verwendet. Ein anderes Beispiel ist das Oberon -System entworfen bei Eth Zürich durch Niklaus Wirth, Jürg Gutknecht und eine Gruppe von Studenten am ehemaligen Computersysteminstitut in den 1980er Jahren. Es wurde hauptsächlich für Forschung, Lehre und tägliche Arbeit in Wirth's Group verwendet.

Andere Betriebssysteme haben keinen erheblichen Marktanteil gewonnen, aber Innovationen eingeführt, die die Mainstream -Betriebssysteme beeinflusst haben, nicht zuletzt Bell Labs. Plan 9.

Komponenten

Die Komponenten eines Betriebssystems bestehen alle, um die verschiedenen Teile eines Computers zusammenzuarbeiten. Alle Benutzersoftware müssen das Betriebssystem durchlaufen, um eine der Hardware zu verwenden, sei es so einfach wie eine Maus oder Tastatur oder so komplex wie eine Internetkomponente.

Kernel

Ein Kernel verbindet die Anwendungssoftware mit der Hardware eines Computers.

Mit Hilfe von Firmware und GerätetreiberDer Kernel bietet die grundlegendste Kontrolle über alle Hardware -Geräte des Computers. Es verwaltet Speicherzugriff für Programme in der RAMEs wird festgelegt, welche Programme Zugriff erhalten, auf welche Hardware-Ressourcen die Betriebszustände der CPU jederzeit für einen optimalen Betrieb eingerichtet oder zurückgesetzt werden. Sie organisiert die Daten für langfristig Nichtflüchtiger Speicher mit Dateisysteme Auf Medien wie Datenträgern, Bändern, Flash -Speicher usw.

Programmausführung

Das Betriebssystem bietet eine Schnittstelle zwischen einem Anwendungsprogramm und der Computerhardware, sodass ein Anwendungsprogramm nur mit der Hardware interagieren kann, indem Regeln und Verfahren im Betriebssystem programmiert werden. Das Betriebssystem ist auch eine Reihe von Diensten, die die Entwicklung und Ausführung von Anwendungsprogrammen vereinfachen. Die Ausführung eines Anwendungsprogramms beinhaltet in der Regel die Erstellung von a Prozess durch das Betriebssystem Kernel, der Speicherplatz und andere Ressourcen zuweist, eine Priorität für den Prozess in Multitasking-Systemen festlegt, das Programm Binärcode in Speicher lädt und die Ausführung des Anwendungsprogramms initiiert, das dann mit dem Benutzer und mit Hardware-Geräten interagiert. In einigen Systemen kann eine Anwendung jedoch anfordern, dass das Betriebssystem eine andere Anwendung innerhalb desselben Prozesses ausführt, entweder als Unterprogramm oder in einem separaten Thread, z. B. der VERKNÜPFUNG und ANFÜGEN Einrichtungen von OS/360 und Nachfolger..

Interrupts

Ein unterbrechen (auch bekannt als abbrechen, Ausnahme, Fehler, Signal[46] und fangen)[47] bietet den meisten Betriebssystemen eine effiziente Möglichkeit, auf die Umwelt zu reagieren. Interrupts verursachen die Zentrale Verarbeitungseinheit (CPU), um a zu haben Steuerfluss Wechseln Sie vom aktuell laufenden Programm zu einem ab Interrupt Handlerauch als Interrupt Service Routine (ISR) bekannt.[48][49] Eine Interrupt -Service -Routine kann die verursachen Zentrale Verarbeitungseinheit (CPU), um a zu haben Kontextschalter[50] [d]. Die Details, wie ein Computer eine Interrupt verarbeitet, variieren von Architektur bis Architektur, und die Details, wie sich Interrupt -Service -Routinen von Betriebssystem zu Betriebssystem verhalten.[51] Mehrere Interrupt -Funktionen sind jedoch häufig.[51] Das Architektur- und Betriebssystem muss:[51]

  1. Übertragen Sie die Kontrolle auf eine Interrupt -Service -Routine.
  2. Speichern Sie den Status des aktuell laufenden Prozesses.
  3. Stellen Sie den Staat wieder her, nachdem der Interrupt gewartet wurde.
Software Interrupt

Ein Software -Interrupt ist eine Nachricht an a Prozess dass ein Ereignis aufgetreten ist.[46] Dies steht im Gegensatz zu a Hardware -Interrupt - Welches ist eine Nachricht an die Zentrale Verarbeitungseinheit (CPU), dass ein Ereignis aufgetreten ist.[52] Software -Interrupts ähneln Hardware -Interrupts - es gibt eine Änderung des aktuell laufenden Prozesses.[53] In ähnlicher Weise führen sowohl Hardware- als auch Software -Interrupts eine aus Service Routine unterbrechen.

Software -Interrupts können normalerweise Ereignisse sein. Es wird erwartet, dass a Zeitscheibe wird auftreten, so dass der Kernel a durchführen muss Kontextschalter.[54] A Computer Programm Möge ein Timer nach wenigen Sekunden ein Timer einstellen, falls zu viele Daten dazu führen, dass ein Algorithmus zu lange dauert.[55]

Software -Interrupts können Fehlerbedingungen sein, z. Maschinenanweisung.[55] Die häufigsten Fehlerbedingungen sind jedoch Durch Null teilen und Zugriff auf eine ungültige Speicheradresse.[55]

Benutzer Kann Nachrichten an den Kernel senden, um das Verhalten eines aktuell ausgeführten Prozesses zu ändern.[55] Zum Beispiel in der Befehlszeilenumgebung, drücken Interrupt Charakter (normalerweise Kontrolle-C) kann den aktuell laufenden Prozess beenden.[55]

Generieren Software unterbricht zum x86 CPUs, die Int Montagesprache Der Anweisungen ist verfügbar.[56] Die Syntax ist Int x, wo X ist die Offsetnummer (in hexadezimal Format) zum Vektortabelle unterbrechen.

Signal

Generieren Software unterbricht in Unix-artig Betriebssysteme, die töten (pid, signum) Systemanruf wird a senden Signal zu einem anderen Prozess.[57] PID ist der Prozesskennung des Empfangsprozesses. signalisieren ist die Signalzahl (in mnemonisch Format)[e] zu versenden. (Der abrasive Name von töten wurde ausgewählt, weil frühe Implementierungen den Prozess nur beendet haben.)[58]

In unix-ähnlichen Betriebssystemen, Signale Informieren Sie Prozesse über das Auftreten asynchroner Ereignisse.[57] Um asynchron zu kommunizieren, sind Interrupts erforderlich.[59] Ein Grund, warum ein Prozess asynchron mit einem anderen Prozess kommunizieren muss, löst eine Variation des Klassiker Leser/Schriftstellerproblem.[60] Der Schriftsteller erhält eine Pfeife aus dem Hülse Damit seine Ausgabe an den Eingangsstream des Lesers gesendet werden kann.[61] Das Befehlszeile Syntax ist Alpha | Bravo. Alpha Schreiben Sie in die Pfeife, wenn die Berechnung fertig ist, und schlafe dann in der Warteschlange.[62] Bravo wird dann in die bewegt Bereitete Warteschlange und wird bald aus seinem Eingabestream lesen.[63] Der Kernel wird erzeugen Software unterbricht die Rohrleitungen koordinieren.[63]

Signale kann in 7 Kategorien eingeteilt werden.[57] Die Kategorien sind:

  1. Wenn ein Prozess normal endet.
  2. Wenn ein Prozess eine Fehlerausnahme hat.
  3. Wenn ein Prozess aus einer Systemressource ausgeht.
  4. Wenn ein Prozess eine illegale Anweisung ausführt.
  5. Wenn ein Prozess ein Alarmereignis festlegt.
  6. Wenn ein Prozess von der Tastatur abgebrochen wird.
  7. Wenn ein Prozess eine Nachverfolgung zum Debuggen hat.
Hardware -Interrupt

Input-Output (I/o) Geräte sind langsamer als die CPUs Taktsignal. Daher würde es den Computer verlangsamen, wenn die CPU müsste Warten für jede E/O zu Ende. Stattdessen kann ein Computer Interrupts für die E/A -Fertigstellung implementieren und die Notwendigkeit vermeiden Umfragen oder beschäftigt zu warten.[64]

Einige Computer benötigen einen Interrupt für jedes Zeichen oder jedes Wort, wodurch eine erhebliche Menge an CPU -Zeit kostet. Direkter Speicherzugriff (DMA) ist eine Architekturfunktion, mit der Geräte die CPU und den Zugriff umgehen können Haupterinnerung direkt.[65] (Trennt von der Architektur, kann ein Gerät einen direkten Speicherzugriff durchführen[f] zu und aus dem Hauptspeicher entweder direkt oder über einen Bus.)[66][g]

Seit der Intel 8008 (1972), die meisten[h] CPUs haben Hardware -Unterbrechungen durch erhalten Stifte unterbrechen.[67] Für kleine Computer, eine Controller unterbrechen (APIC) ist normalerweise auf dem installiert Hauptplatine - zwischen den Stiften der CPU und den Bus -Schiedsverfahren Linien.[68] Wenn ein Gerät die CPU unterbrechen möchte, platziert es Spannung (normalerweise 5 Volt) auf seine Bus -Schiedlinie und eine Zahl auf die Datenbus.[69] Die Nummer ist ein Index für das Betriebssystem Vektortabelle unterbrechen.

Interruptgetriebene I/O

Wenn ein Computerbenutzer Geben Sie eine Taste auf der Tastatur ein, normalerweise wird das Zeichen sofort auf dem Bildschirm angezeigt. Ebenso, wenn ein Benutzer a bewegt Maus, das Mauszeiger bewegt sich sofort über den Bildschirm. Jeder Tastenanschlag und jede Mausbewegung erzeugen eine unterbrechen genannt Interruptgetriebene I/O. Ein interruptgetriebener E/O tritt auf, wenn ein Prozess für jeden Charakter einen Interrupt verursacht[66] oder Wort[70] übertragen.

Direkter Speicherzugriff

A Block I/O. Interrupt tritt auf, wenn ein Prozess Datenblöcke senden oder empfangen möchte. Wenn ein Gerät ein eingerichtet ist, um a zu sein Blockgerätdann wird nach jeder Datenblockübertragung ein Interrupt generiert. Um diesen Service zu erfüllen, a direkter Speicherzugriff (DMA) Chip ist auf dem installiert Hauptplatine.[66] Mit dem Chip können Geräte die CPU umgehen und auf die zugreifen Speicherbus direkt.[66] Wenn ein Computer Programm ausgeführt a Systemanruf um einen Block I/O durchzuführen schreiben Operation, dann kann der Systemanruf die folgenden Anweisungen ausführen:

Während des Schreibens wird das Betriebssystem als normal auf andere Prozesse umsteigen. Wenn das Gerät das Schreiben beendet, wird das Gerät unterbrechen der derzeit laufende Prozess von behaupten ein Interrupt -Anfrage. Das Gerät legt auch eine Ganzzahl in den Datenbus.[74] Nach Annahme der Interrupt -Anfrage wird das Betriebssystem:

  • Drücken Sie den Inhalt der Programm zähler (ein Register) gefolgt von der Statusregister auf die Rufen Sie Stack an.[51]
  • Drücken Sie den Inhalt der anderen Register auf den Anrufstapel. (Alternativ kann der Inhalt der Register in eine Systemtabelle platziert werden.)[74]
  • Lesen Sie die Ganzzahl aus dem Datenbus. Die Ganzzahl ist ein Offset an die Vektortabelle unterbrechen. Die Anweisungen der Vektorentabelle werden dann:
  • Greifen Sie auf die Gerätestatus-Tabelle zu.
  • Extrahieren Sie den Prozesssteuerungsblock.
  • Führen Sie einen Kontextschalter zum Schreibprozess aus.

Wenn der Schreibprozess seinen hat Zeitscheibe Abgelaufen, wird das Betriebssystem:[75]

  • Pop aus dem Anruf stapeln Sie die Register als den Statusregister und den Programmschalter.
  • Pop aus dem Anruf stapeln Sie das Statusregister.
  • Pop aus dem Anruf stapeln Sie die Adresse der nächsten Anweisung und stellen Sie sie wieder in den Programmschalter ein.

Wenn der Programmzähler jetzt zurückgesetzt wird, wird der unterbrochene Prozess seine Zeitscheibe fortsetzen.[51]

DMA auf dem Gerät

Von der Architektur getrennt ist ein Gerät möglicherweise über einen DMA -Chip installiert, um den direkten Speicherzugriff durchzuführen. Die Geräte-/Speicheraktionen unterliegen der SCSI RDMA -Protokoll.

Modi

Privilegienringe für die x86 Mikroprozessorarchitektur erhältlich in Sicherheitsmodus. Betriebssysteme bestimmen, welche Prozesse in jedem Modus ausgeführt werden.

Moderne Computer unterstützen mehrere Betriebsmodi. CPUs mit dieser Fähigkeit bieten mindestens zwei Modi: Benutzermodus und Supervisor -Modus. Im Allgemeinen ermöglicht der Betrieb des Supervisor -Modus einen uneingeschränkten Zugriff auf alle Maschinenressourcen, einschließlich aller MPU -Anweisungen. Der Betrieb des Benutzermodus legt Grenzen für die Verwendung der Befehlsnutzung fest und macht den direkten Zugriff auf Maschinenressourcen in der Regel nicht aus. CPUs haben möglicherweise auch andere Modi, die dem Benutzermodus ähneln, wie z. B. die virtuellen Modi, um ältere Prozessortypen zu emulieren, z. 64-Bit eines.

Beim Stromversand oder beim Reset beginnt das System im Supervisor-Modus. Einmal ein Betriebssystem Kernel wurde geladen und gestartet, die Grenze zwischen dem Benutzermodus und dem Supervisor -Modus (auch als Kernel -Modus bezeichnet) festgelegt werden.

Der Supervisor -Modus wird vom Kernel für Aufgaben mit niedrigem Niveau verwendet, die uneingeschränkten Zugriff auf Hardware erfordern, z. B. die Steuerung des Zugriffs des Speichers und die Kommunikation mit Geräten wie Festplatten und Videoanzeigen. Der Benutzermodus dagegen wird für fast alles andere verwendet. Anwendungsprogramme wie Textverarbeitungsprogramme und Datenbankmanager arbeiten im Benutzermodus und können nur auf Maschinenressourcen zugreifen, indem sie die Steuerung in den Kernel übergeben, ein Prozess, der einen Wechsel zum Supervisor -Modus bewirkt. Typischerweise wird die Kontrolle des Kontrolls in den Kernel durch Ausführung a erreicht Software Interrupt Anweisung wie die Motorola 68000 FANGEN Anweisung. Der Software -Interrupt bewirkt, dass der Prozessor vom Benutzermodus in den Supervisor -Modus wechselt und mit dem Ausführen von Code beginnt, mit dem der Kernel die Kontrolle übernimmt.

Im Benutzermodus haben Programme in der Regel Zugriff auf einen eingeschränkten Satz von Prozessoranweisungen und können im Allgemeinen keine Anweisungen ausführen, die möglicherweise Störungen des Systems des Systems verursachen könnten. Im Supervisor -Modus werden in der Regel die Ausführungsbeschränkungen für Anweisungen entfernt, sodass der nicht eingeschränkte Zugriff auf alle Maschinenressourcen den Kernel ermöglicht.

Der Begriff "Benutzermodusressource" bezieht sich im Allgemeinen auf eine oder mehrere CPU -Register, die Informationen enthalten, die das laufende Programm nicht ändern darf. Versuche, diese Ressourcen zu ändern, veranlassen im Allgemeinen einen Wechsel in den Supervisor -Modus, in dem sich das Betriebssystem mit dem illegalen Betrieb befassen kann, das das Programm versucht hat. Zum Beispiel durch gewaltsames Beenden ("Töten") das Programm.

Speicherverwaltung

Unter anderem ein Multiprogramm -Betriebssystem Kernel Muss für die Verwaltung des gesamten Systemspeichers verantwortlich sein, der derzeit von den Programmen verwendet wird. Dies stellt sicher, dass ein Programm den Speicher nicht beeinträchtigt, der bereits von einem anderen Programm verwendet wird. Da Programme Zeitangebot für die Zeit für die Zeit des Programms, muss jedes Programm einen unabhängigen Zugriff auf den Speicher haben.

Kooperatives Speichermanagement, das von vielen frühen Betriebssystemen verwendet wird, geht davon aus, dass alle Programme freiwillig verwendet werden KernelMemory Manager und überschreiten ihren zugewiesenen Speicher nicht. Dieses System der Speicherverwaltung ist fast nie mehr zu sehen, da Programme häufig Fehler enthalten, die dazu führen können, dass sie ihren zugewiesenen Speicher überschreiten. Wenn ein Programm fehlschlägt, kann das Speicher von einem oder mehreren anderen Programmen betroffen oder überschrieben werden. Bösartige Programme oder Viren können das Speicher eines anderen Programms absichtlich verändern oder den Betrieb des Betriebssystems selbst beeinflussen. Mit kooperativem Speichermanagement benötigt es nur ein schlechtes Programm, um das System abzubrechen.

Gedächtnisschutz Aktiviert das Kernel Um einen Prozess zu begrenzen, den Zugriff auf den Speicher des Computers. Es gibt verschiedene Methoden des Gedächtnisschutzes, einschließlich Speichersegmentierung und Paging. Alle Methoden erfordern eine gewisse Hardwareunterstützung (wie die 80286 MMU), was nicht in allen Computern existiert.

Sowohl in Segmentierung als auch in Paging, sicher Sicherheitsmodus Register geben der CPU an, auf welche Speicheradresse ein laufendes Programm zugänglich ist. Versuche, auf andere Adressen zuzugreifen Supervisor -Modusplatzieren die Kernel verantwortlich. Dies wird a genannt Segmentierungsverletzung oder kurz SEG-V und da es sowohl schwierig ist, einer solchen Operation ein sinnvolles Ergebnis zuzuweisen, und weil es normalerweise ein Zeichen für ein schlecht benommenes Programm ist, die Kernel Geht im Allgemeinen auf die Beendigung des beleidigenden Programms zurück und meldet den Fehler.

Windows -Versionen 3.1 über mich hatten einen gewissen Speicherschutz, aber Programme könnten die Notwendigkeit leicht umgehen, sie zu verwenden. EIN allgemeine Schutzverletzung würde erzeugt werden, was darauf hinweist, dass eine Segmentierungsverletzung aufgetreten ist; Das System stürzte jedoch ohnehin oft ab.

Virtueller Speicher

Viele Betriebssysteme können Programme "Trick" zur Verwendung von Speicher, die auf der Festplatte und RAM verstreut sind, "Trick", als ob es sich um einen kontinuierlichen Speicherblock, der als virtueller Speicher bezeichnet wird.

Durch die Verwendung einer virtuellen Speicheradressierung (z. B. Paging oder Segmentierung) kann der Kernel auswählen, welches Speicher jedes Programm zu einem bestimmten Zeitpunkt verwendet wird, sodass das Betriebssystem dieselben Speicherorte für mehrere Aufgaben verwenden kann.

Wenn ein Programm versucht, auf Speicher zuzugreifen, der sich nicht in seinem aktuellen Bereich des zugänglichen Speichers befindet, ihm jedoch ihm jedoch zugeteilt wurde, wird der Kernel auf die gleiche Weise unterbrochen, wenn das Programm seinen zugewiesenen Speicher überschreiten würde. (Siehe Abschnitt zur Speicherverwaltung.) Unter Unix wird diese Art von Interrupt als als bezeichnet Seitenfehler.

Wenn der Kernel einen Seitenfehler erkennt, passt er im Allgemeinen den virtuellen Speicherbereich des Programms an, der ihn ausgelöst hat, und gewährt ihm den Zugriff auf den angeforderten Speicher. Dies gibt dem Kernel -Diskretionspflicht darüber, wo der Speicher einer bestimmten Anwendung gespeichert wird oder ob er noch tatsächlich zugewiesen wurde oder nicht.

In modernen Betriebssystemen kann der Speicher, auf das weniger häufig zugegriffen wird, vorübergehend auf einer Festplatte oder anderen Medien gespeichert werden, um diesen Raum für andere Programme zur Verfügung zu stellen. Das nennt man tauschen, als Speicherbereich kann von mehreren Programmen verwendet werden, und was dieser Speicherbereich enthält, kann bei Bedarf getauscht oder ausgetauscht werden.

"Virtual Memory" bietet dem Programmierer oder dem Benutzer die Wahrnehmung, dass im Computer eine viel größere Menge RAM aufweist, als es wirklich da ist.[76]

Multitasking

Multitasking Bezieht sich auf das Ausführen mehrerer unabhängiger Computerprogramme auf demselben Computer, wodurch das Erscheinungsbild der gleichzeitig erscheinten Aufgaben erscheint. Da die meisten Computer höchstens ein oder zwei Dinge gleichzeitig tun können, wird dies im Allgemeinen über die Zeit zum Teilen erfolgen, was bedeutet, dass jedes Programm einen Anteil an der Ausführung des Computers verwendet.

Ein Betriebssystem Kernel enthält ein Planung Programm, das feststellt, wie viel Zeit jeder Prozess ausführt und in welcher Bestellausführungssteuerung an Programme übergeben werden sollte. Die Kontrolle wird vom Kernel an einen Prozess übergeben, der den Programmzugriff auf die ermöglicht Zentralprozessor und Erinnerung. Später wird die Kontrolle durch einen Mechanismus in den Kernel zurückgegeben, so dass ein anderes Programm die CPU verwenden darf. Diese sogenannte Kontrolle der Kontrolle zwischen dem Kernel und den Anwendungen wird als a genannt Kontextschalter.

Ein frühes Modell, das die Zeitallokation der Zeit zu Programmen regelte Kooperatives Multitasking. In diesem Modell kann es so lange ausgeführt werden, dass sie vom Kernel vom Kernel an ein Programm übergeben wird, bevor sie die Kontrolle ausdrücklich an den Kernel zurückgibt. Dies bedeutet, dass ein böswilliges oder fehlerhaftes Programm möglicherweise nicht nur andere Programme daran hindert, die CPU zu verwenden, sondern auch das gesamte System hängen kann, wenn es in eine eintritt Endlosschleife.

Moderne Betriebssysteme erweitern die Konzepte der Anwendungspräsentation auf Geräte-Treiber und Kernelcode, so dass das Betriebssystem auch die präventive Kontrolle über interne Laufzeiten hat.

Die Philosophie regiert Präventiver Multitasking ist es, sicherzustellen, dass alle Programme regelmäßig Zeit für die CPU erhalten. Dies impliziert, dass alle Programme eingeschränkt sein müssen, wie viel Zeit sie für die CPU verbringen dürfen, ohne unterbrochen zu werden. Um dies zu erreichen, verwenden moderne Betriebssystemkerne einen zeitgesteuerten Interrupt. EIN Sicherheitsmodus Der Timer wird vom Kernel festgelegt, der nach Ablauf der angegebenen Zeit eine Rückkehr zum Supervisor -Modus auslöst. (Siehe obigen Abschnitte in Interrupts und Doppelmodus.)

Bei vielen Einzelbenutzer -Betriebssystemen ist das kooperative Multitasking perfekt ausreichend, da Heimcomputer im Allgemeinen eine kleine Anzahl gut getesteter Programme durchführen. Amigaos ist eine Ausnahme, die von seiner ersten Version von präventivem Multitasking ausgesetzt ist. Windows NT war die erste Version von Microsoft Windows welches präventive Multitasking erzwungen wurde, aber er hat den Heimnutzermarkt erst erreicht, bis Windows XP (seit Windows NT war an Profis gerichtet).

Datenträgerzugriffs- und Dateisysteme

Dateisysteme ermöglichen es Benutzern und Programmen, Dateien auf einem Computer zu organisieren und zu sortieren, häufig durch die Verwendung von Verzeichnissen (oder "Ordnern").

Der Zugriff auf Daten, die auf Datenträgern gespeichert sind, ist eine zentrale Funktion aller Betriebssysteme. Computer speichern Daten auf Scheiben Verwendung Dateien, die auf bestimmte Weise strukturiert sind, um einen schnelleren Zugriff, eine höhere Zuverlässigkeit und den verfügbaren Platz des Laufwerks besser zu nutzen. Die spezifische Art und Weise, wie Dateien auf einer Festplatte gespeichert werden Dateisystemund ermöglicht Dateien, Namen und Attribute zu haben. Es ermöglicht ihnen auch, in einer Hierarchie von Verzeichnissen oder Ordnern in a zu speichern. Verzeichnisbaum.

Frühe Betriebssysteme unterstützten im Allgemeinen einen einzigen Typ von Festplatten und nur eine Art von Dateisystem. Frühe Dateisysteme waren in ihrer Kapazität, Geschwindigkeit und in den Arten von Dateinamen und Verzeichnisstrukturen begrenzt, die sie verwenden konnten. Diese Einschränkungen spiegelten häufig Einschränkungen in den von ihnen entwickelten Betriebssystemen wider, für die ein Betriebssystem mehr als ein Dateisystem unterstützt wird.

Während viele einfachere Betriebssysteme eine begrenzte Reihe von Optionen für den Zugriff auf Speichersysteme unterstützen, mögen Betriebssysteme Unix und Linux Unterstützung einer Technologie, die als a bekannt ist Virtuelles Dateisystem oder VFS. Ein Betriebssystem wie Unix unterstützt eine Vielzahl von Speichergeräten, unabhängig von ihrem Design oder Dateisysteme, so Programmierschnittstelle (API). Dies macht es für Programme unnötig, Kenntnisse über das Gerät zu haben, auf das aufgerufen wird. Ein VFS ermöglicht es dem Betriebssystem, den Programmen den Zugriff auf eine unbegrenzte Anzahl von Geräten mit einer unendlichen Vielfalt von Dateisystemen zu gewähren Gerätetreiber und Dateisystemtreiber.

Ein verbundenes Speichermedium, so wie ein Festplatte, wird über a zugegriffen Gerätetreiber. Der Gerätetreiber versteht die spezifische Sprache des Laufwerks und kann diese Sprache in eine Standardsprache übersetzen, die vom Betriebssystem verwendet wird, um auf alle Festplatten zuzugreifen. Auf Unix ist dies die Sprache von Blockgeräte.

Wenn der Kernel über einen geeigneten Gerätetreiber verfügt, kann er auf den Inhalt des Festplattenlaufwerks im RAW -Format zugreifen, der möglicherweise ein oder mehrere Dateisysteme enthalten. Ein Dateisystem -Treiber wird verwendet, um die Befehle zu übersetzen, die zum Zugriff auf jedes bestimmte Dateisystem in einen Standard -Befehlssatz übersetzt werden, mit dem das Betriebssystem mit allen Dateisystemen sprechen kann. Die Programme können dann mit diesen Dateisystemen auf der Grundlage von Dateinamen und Verzeichnissen/Ordnern in einer hierarchischen Struktur befassen. Sie können Dateien erstellen, löschen, öffnen und schließen sowie verschiedene Informationen darüber sammeln, einschließlich Zugriffsberechtigungen, Größe, freier Speicherplatz sowie Erstellungs- und Änderungsdaten.

Verschiedene Unterschiede zwischen Dateisystemen machen die Unterstützung aller Dateisysteme schwierig. Erlaubte Zeichen in Dateinamen, Fallempfindlichkeitund die Anwesenheit verschiedener Arten von Dateiattribute Macht die Implementierung einer einzelnen Schnittstelle für jedes Dateisystem zu einer entmutigenden Aufgabe. Betriebssysteme empfehlen (und unterstützen damit nativ) Dateisysteme, die speziell für sie entwickelt wurden. zum Beispiel, NTFS in Fenstern und Reiserfs, Reiser4, ext3, ext4 und Btrfs unter Linux. In der Praxis sind jedoch in der Regel Fahrer von Drittanbietern verfügbar, um die am häufigsten verwendeten Dateisysteme in den meisten allgemeinen Betriebssystemen zu unterstützen NTFS-3Gund ext2/3 und Reiserfs sind in Windows über Software von Drittanbietern verfügbar.

Die Unterstützung für Dateisysteme ist bei modernen Betriebssystemen sehr unterschiedlich, obwohl es mehrere gemeinsame Dateisysteme gibt, für die fast alle Betriebssysteme Unterstützung und Treiber enthalten. Betriebssysteme variieren im Dateisystemunterstützung und in den Festplattenformaten, auf denen sie installiert werden können. Unter Windows ist jedes Dateisystem in der Regel in der Anwendung auf bestimmte Medien begrenzt. Zum Beispiel müssen CDs verwenden ISO 9660 oder UDFund wie von Windows Vista, NTFS ist das einzige Dateisystem, auf dem das Betriebssystem installiert werden kann. Es ist möglich, Linux auf vielen Arten von Dateisystemen zu installieren. Im Gegensatz zu anderen Betriebssystemen ermöglichen Linux und Unix, dass jedes Dateisystem unabhängig von den Medien verwendet wird, in denen es gespeichert ist, unabhängig davon, ob es sich um eine Festplatte handelt, eine Disc (Disc (CD, DVD...) ein USB -Flash -Laufwerk oder sogar in einer Datei auf einem anderen Dateisystem enthalten.

Gerätetreiber

A Gerätetreiber ist eine bestimmte Art von Computersoftware, die entwickelt wurde, um die Interaktion mit Hardware -Geräten zu ermöglichen. In der Regel ist dies eine Schnittstelle zur Kommunikation mit dem Gerät, über das spezifische Computerbus oder das Kommunikationssubsystem, mit dem die Hardware verbunden ist, und die Befehle an und/oder Empfangen von Daten vom Gerät und am anderen Ende die erforderlichen Schnittstellen zum Betrieb System- und Softwareanwendungen. Es handelt sich um ein spezielles hardwareabhängiges Computerprogramm, das auch ein Betriebssystemspezifikum ist, das ein anderes Programm ermöglicht, in der Regel ein Betriebssystem- oder Anwendungssoftwarepaket oder ein Computerprogramm, das unter dem Kern des Betriebssystems ausgeführt wird Erforderliche Interrupt-Handhabung für die erforderlichen asynchronen zeitabhängigen Hardware-Schnittstellenanforderungen.

Das wichtigste Designziel von Gerätetreiber ist Abstraktion. Jedes Modell der Hardware (auch innerhalb derselben Gerätetokument) ist unterschiedlich. Neuere Modelle werden auch von Herstellern veröffentlicht, die zuverlässigere oder bessere Leistung bieten, und diese neueren Modelle werden häufig unterschiedlich gesteuert. Computer und ihre Betriebssysteme können nicht wissen, wie man jedes Gerät jetzt und in Zukunft steuert. Um dieses Problem zu lösen, bestimmen Betriebssysteme im Wesentlichen, wie jeder Gerätetyp gesteuert werden sollte. Die Funktion des Gerätetreibers besteht dann darin, diese vorgeschriebenen Funktionsaufrufe für Betriebssysteme in Gerätespezifische Aufrufe zu übersetzen. Theoretisch sollte ein neues Gerät, das auf neue Weise gesteuert wird, richtig funktionieren, wenn ein geeigneter Treiber verfügbar ist. Dieser neue Treiber stellt sicher, dass das Gerät aus Sicht des Betriebssystems wie gewohnt zu funktionieren scheint.

Unter den Versionen von Windows vor Vista und Versionen von Linux vor 2.6 war die gesamte Treiberausführung kooperativ, was bedeutet, dass ein Treiber eine unendliche Schleife einfrieren würde, wenn er das System einfrieren würde. Neuere Überarbeitungen dieser Betriebssysteme beinhalten die Kernel -Präsentation, wobei der Kernel den Treiber unterbricht, um ihm Aufgaben zu erteilen, und sich dann vom Prozess trennt, bis er eine Antwort vom Gerätetreiber erhält oder ihm mehr Aufgaben erledigt.

Networking

Derzeit unterstützen die meisten Betriebssysteme eine Vielzahl von Netzwerkprotokollen, Hardware und Anwendungen für die Verwendung. Dies bedeutet, dass Computer, die mit unterschiedlichen Betriebssystemen laufen Netzwerk Für das Teilen von Ressourcen wie z. Computer, Dateien, Drucker und Scanner, die entweder kabelgebundene oder drahtlose Verbindungen verwenden. Networks können im Wesentlichen das Betriebssystem eines Computers ermöglichen, auf die Ressourcen eines Remote -Computers zuzugreifen, um dieselben Funktionen zu unterstützen, wie es möglich ist, wenn diese Ressourcen direkt mit dem lokalen Computer verbunden wären. Dies umfasst alles, von einfacher Kommunikation bis hin zur Verwendung von vernetzten Dateisystemen oder sogar das Teilen der Grafiken oder der Tonhardware eines anderen Computers. Einige Netzwerkdienste ermöglichen es, die Ressourcen eines Computers transparent zugänglich zu machen, z. Ssh Dies ermöglicht networkierte Benutzer den direkten Zugriff auf die Befehlszeilenschnittstelle eines Computers.

Das Client/Server -Netzwerk ermöglicht ein Programm auf einem Computer, der als Client bezeichnet wird, über ein Netzwerk mit einem anderen Computer, der als Server bezeichnet wird, eine Verbindung herzustellen. Server bieten (oder Host) verschiedene Dienste für andere Netzwerkcomputer und Benutzer an. Diese Dienste werden normalerweise über Ports oder nummerierte Zugriffspunkte über den Server bereitgestellt IP Adresse. Jede Portnummer ist normalerweise mit einem Maximum eines laufenden Programms verbunden, das für die Bearbeitung von Anforderungen an diesen Port verantwortlich ist. Ein Dämon, ein Benutzerprogramm, kann wiederum auf die lokalen Hardware -Ressourcen dieses Computers zugreifen, indem sie Anfragen an den Kernel des Betriebssystems weitergeben.

Viele Betriebssysteme unterstützen beispielsweise auch einen oder mehrere anhandwertige oder offene Netzwerkprotokolle Sna an IBM Systeme, Decnet auf Systemen von Digital Equipment Corporationund microsoft-spezifische Protokolle (SMB) unter Windows. Spezifische Protokolle für bestimmte Aufgaben können ebenfalls unterstützt werden, wie z. NFS Für Dateizugriff. Protokolle mögen Esoundoder ESD kann leicht über das Netzwerk erweitert werden, um Sound von lokalen Anwendungen auf der Soundhardware eines Remote -Systems bereitzustellen.

Sicherheit

Ein sicherer Computer hängt von einer Reihe von Technologien ab, die ordnungsgemäß funktionieren. Ein modernes Betriebssystem bietet Zugriff auf eine Reihe von Ressourcen, die für Software, die auf dem System ausgeführt werden, und externe Geräte wie Netzwerke über den Kernel zur Verfügung stehen.[77]

Das Betriebssystem muss in der Lage sein, zwischen Anfragen zu unterscheiden, die verarbeitet werden sollten, und andere, die nicht verarbeitet werden sollten. Während einige Systeme einfach zwischen "privilegiert" und "nicht privilegiert" unterscheiden können, haben Systeme üblicherweise eine Form des Antragstellers Identitätwie ein Benutzername. Um Identität zu etablieren, kann es einen Prozess geben Authentifizierung. Oft muss ein Benutzername zitiert werden, und jeder Benutzername kann ein Passwort haben. Andere Authentifizierungsmethoden wie Magnetkarten oder biometrische Daten können stattdessen verwendet werden. In einigen Fällen, insbesondere Verbindungen aus dem Netzwerk, können auf Ressourcen ohne Authentifizierung zugegriffen werden (z. B. Lesen von Dateien über eine Netzwerkfreigabe). Auch durch das Konzept des Antragstellers behandelt Identität ist Genehmigung; Die jeweiligen Dienste und Ressourcen, die der Antragsteller einmal in ein System angemeldet sind, sind entweder an das Benutzerkonto des Antragstellers oder an die unterschiedlichen konfigurierten Benutzergruppen gebunden, zu denen der Antragsteller gehört.

Zusätzlich zu dem Sicherheitsmodell der Sicherheit bietet ein System mit einem hohen Sicherheitsniveau auch Prüfungsoptionen. Diese würden die Nachverfolgung von Zugriffsanfragen zu Ressourcen ermöglichen (z. B. "Wer hat diese Datei gelesen?"). Interne Sicherheit oder Sicherheit aus einem bereits laufenden Programm ist nur möglich, wenn alle möglicherweise schädlichen Anfragen durch Interrupts zum Kernel des Betriebssystems durchgeführt werden müssen. Wenn Programme direkt auf Hardware und Ressourcen zugreifen können, können sie nicht gesichert werden.

Die externe Sicherheit beinhaltet eine Anfrage von außerhalb des Computers, z. B. eine Anmeldung an einer verbundenen Konsole oder eine Art Netzwerkverbindung. Externe Anfragen werden häufig durch Gerätefahrer an den Kernel des Betriebssystems weitergegeben, wo sie an Anwendungen weitergegeben oder direkt durchgeführt werden können. Die Sicherheit von Betriebssystemen ist seit langem ein Problem, da hochsensible Daten über Computer, sowohl kommerzielle als auch militärische Natur, gehalten werden. Die Vereinigten Staaten Regierung Verteidigungsministerium (Dod) erstellte die Trusted Computer System Evaluation Criteria (TCSEC), ein Standard, der grundlegende Anforderungen an die Bewertung der Wirksamkeit der Sicherheit festlegt. Dies wurde für Betriebssystemhersteller von entscheidender Bedeutung, da der TCSEC zur Bewertung, Klassifizierung und Auswahl verwendet wurde vertrauenswürdige Betriebssysteme für die Verarbeitung, Speicherung und Abruf von sensiblem oder in Betracht gezogen werden klassifizierte Information.

Zu den Netzwerkdiensten gehören Angebote wie Dateifreigabe, Druckdienste, E -Mails, Websites und Dateiübertragungsprotokolle (FTP), von denen die meisten die Sicherheit beeinträchtigen können. An der vorderen Sicherheitslinie befinden sich Hardware -Geräte, die als bekannt sind Firewalls oder Intrusion Detection/Prevention Systems. Auf Betriebssystemebene stehen eine Reihe von Software -Firewalls sowie Intrusion Detection/Prevention Systems zur Verfügung. Die meisten modernen Betriebssysteme umfassen eine Software -Firewall, die standardmäßig aktiviert ist. Eine Software -Firewall kann konfiguriert werden, um einen Netzwerkverkehr zu oder von einem Dienst oder einer Anwendung, die auf dem Betriebssystem ausgeführt wird, zuzulassen oder zu verweigern. Daher kann man einen unsicheren Dienst wie Telnet oder FTP installieren und ausführen und nicht durch eine Sicherheitsverletzung bedroht werden, da die Firewall den gesamten Datenverkehr verweigern würde, um eine Verbindung zum Dienst an diesem Port herzustellen.

Eine alternative Strategie und die einzige Sandkasten Strategie in Systemen verfügbar, die dem nicht entsprechen Popek- und Goldberg -Virtualisierungsanforderungen, wo das Betriebssystem keine Benutzerprogramme als nativen Code ausführt, sondern auch auch als native Code emuliert ein Prozessor oder bietet einen Host für a P-Code Basierte System wie Java.

Die interne Sicherheit ist besonders für Multi-User-Systeme relevant. Es ermöglicht jedem Benutzer des Systems private Dateien, die die anderen Benutzer nicht manipulieren oder lesen können. Die interne Sicherheit ist auch von entscheidender Bedeutung, wenn die Prüfung von Nutzen sein soll, da ein Programm möglicherweise das Betriebssystem umgehen kann, einschließlich der Umgehung der Prüfung.

Benutzeroberfläche

Ein Screenshot der Verprügeln Befehlszeile. Jeder Befehl wird nach der "Eingabeaufforderung" eingegeben, und dann wird seine Ausgabe unten angezeigt und sich den Bildschirm hinunter arbeitet. Die aktuelle Eingabeaufforderung befindet sich unten.

Jeder Computer, der von einer Person betrieben werden soll Benutzeroberfläche. Die Benutzeroberfläche wird normalerweise als als bezeichnet Hülse und ist wesentlich, wenn die menschliche Interaktion unterstützt werden soll. Die Benutzeroberfläche betrachtet die Verzeichnisaufbau und fordert Dienste aus dem Betriebssystem an, die Daten aus erwerben Eingabe -Hardware -Geräte, so wie ein Klaviatur, Maus oder Kreditkartenleser, und fordert Betriebssystemdienste an, um Anzeigen zu zeigen Aufforderungen, Statusnachrichten und so auf Hardware -Geräte ausgeben, so wie ein Videomonitor oder Drucker. Die beiden häufigsten Formen einer Benutzeroberfläche waren historisch gesehen die Befehlszeilenschnittstelle, wo Computerbefehle zeilenweise ausgegeben werden und die grafische Benutzeroberfläche, wo eine visuelle Umgebung (am häufigsten a Wimp) ist anwesend.

Grafische Benutzeroberflächen

Ein Screenshot der KDE Plasma 5 grafische Benutzeroberfläche. Die Programme nehmen auf dem Bildschirm und die Dateien, Ordner (Verzeichnisse) und Anwendungen in Form von Symbolen und Symbolen an. Eine Maus wird verwendet, um durch den Computer zu navigieren.

Die meisten modernen Computersysteme unterstützen Grafische Benutzeroberflächen (GUI) und schließen sie oft ein. In einigen Computersystemen, wie der ursprünglichen Implementierung der Klassischer Mac OSDie GUI ist in die integriert Kernel.

Während technisch eine grafische Benutzeroberfläche kein Betriebssystemdienst ist, kann die Unterstützung eines in den Kernel des Betriebssystems die GUI ermöglichen, indem die Anzahl der Anzahl reagiert wird Kontextschalter erforderlich, damit die GUI ihre Ausgangsfunktionen ausführt. Andere Betriebssysteme sind modularTrennung des Grafik -Subsystems vom Kernel und des Betriebssystems. In den 1980er Jahren hatten Unix, VMs und viele andere Betriebssysteme, die auf diese Weise gebaut wurden. Linux und MacOS werden ebenfalls auf diese Weise gebaut. Moderne Veröffentlichungen von Microsoft -Fenstern wie z. Windows Vista Implementieren Sie ein Grafik-Subsystem, das hauptsächlich im Benutzerraum ist. Die Grafikzeichnungsroutinen von Versionen zwischen den Versionen zwischen Windows NT 4.0 und Windows Server 2003 existieren hauptsächlich im Kernelraum. Windows 9x hatte sehr wenig Unterscheidung zwischen der Schnittstelle und dem Kernel.

Viele Computerbetriebssysteme ermöglichen es dem Benutzer, eine Benutzeroberfläche zu installieren oder zu erstellen, die er wünscht. Das X Fenstersystem in Verbindung mit Gnom oder KDE Plasma 5 ist ein allgemein gefundenes Setup für die meisten Unix und Unix-artig (BSD, Linux, Solaris) Systeme. Eine Anzahl von Windows -Shell -Ersatz wurden für Microsoft Windows veröffentlicht, die Alternativen zum enthalten Windows Shell, aber die Hülle selbst kann nicht von Fenstern getrennt werden.

Es gab zahlreiche UNIX-basierte GUIs im Laufe der Zeit, die am meisten von X11 abgeleitet wurden. Der Wettbewerb zwischen den verschiedenen Anbietern von UNIX (HP, IBM, Sun) führte zu viel Fragmentierung, obwohl er in den neunziger Jahren standardisiert wurde. Cose und CDE scheiterte aus verschiedenen Gründen und wurde schließlich durch die weit verbreitete Einführung von GNOME und in den Schatten gestellt K Desktop -Umgebung. Vor gratis Software-Basiertes Toolkits und Desktop -Umgebungen war die vorherrschende Toolkit/Desktop -Kombination (und war die Grundlage, auf der CDE entwickelt wurde).

Grafische Benutzeroberflächen entwickeln sich im Laufe der Zeit. Zum Beispiel hat Windows seine Benutzeroberfläche fast jedes Mal geändert, wenn eine neue Hauptversion von Windows veröffentlicht wird, und die Mac OS -GUI hat sich durch die Einführung von Mac OS X im Jahr 1999 dramatisch geändert.[78]

Echtzeit-Betriebssysteme

Ein Echtzeit-Betriebssystem (RTOs) ist ein Betriebssystem, das für Anwendungen mit festen Fristen bestimmt ist (feste Fristen (Echtzeit-Computing). Solche Anwendungen umfassen einige kleine eingebettete Systeme, Automobilmotorencontroller, Industrie-Roboter, Raumschiffe, Industriesteuerung und einige groß angelegte Computersysteme.

Ein frühes Beispiel für ein großes Echtzeit-Betriebssystem war Transaktionsverarbeitungsanlage entwickelt von American Airlines und IBM für die Sabre Airline Reservierungssystem.

Eingebettete Systeme mit festen Fristen verwenden a Echtzeit-Betriebssystem wie zum Beispiel VxWorks, Pikeos, Ökos, Qnx, Montavista Linux und Rtlinux. Windows CE ist ein Echtzeit-Betriebssystem Das teilt ähnliche APIs wie Desktop -Windows, aber keine der Codebasis von Desktop Windows.[79] Symbian OS Hat auch einen RTOS -Kernel (EKA2), der mit Version 8.0b beginnt.

Einige eingebettete Systeme verwenden Betriebssysteme wie z. Palm os, BSD, und Linux, obwohl solche Betriebssysteme kein Echtzeit-Computing unterstützen.

Betriebssystementwicklung als Hobby

Ein Hobby -Betriebssystem kann als eines eingestuft werden, dessen Code nicht direkt von einem vorhandenen Betriebssystem abgeleitet wurde, und hat nur wenige Benutzer und aktive Entwickler.

In einigen Fällen unterstützt die Hobby -Entwicklung eines ""Homebrew"Computergerät zum Beispiel ein einfaches Single-Board-Computer Angetrieben von a 6502 Mikroprozessor. Oder die Entwicklung kann für eine Architektur sein, die bereits weit verbreitet ist. Die Entwicklung des Betriebssystems kann aus völlig neuen Konzepten stammen oder mit der Modellierung eines vorhandenen Betriebssystems beginnen. In beiden Fällen ist der Hobbyist ihr/sein eigener Entwickler oder kann mit einer kleinen und manchmal unstrukturierten Gruppe von Personen interagieren, die mögliche Interessen haben.

Beispiele für ein Hobby -Betriebssystem umfassen Silbe und Templeos.

Vielfalt der Betriebssysteme und Portabilität

Anwendungssoftware wird im Allgemeinen für die Verwendung in einem bestimmten Betriebssystem und manchmal sogar für bestimmte Hardware geschrieben. Bei der Portierung der Anwendung, die auf einem anderen Betriebssystem ausgeführt wird, kann die von dieser Anwendung erforderliche Funktionalität durch dieses Betriebssystem (die Namen von Funktionen, Bedeutung von Argumenten usw.) unterschiedlich implementiert werden gepflegt.

UNIX war das erste Betriebssystem, das nicht in der Montagesprache geschrieben wurde, was es sehr machte tragbar zu Systemen unterscheiden sich von seiner Native PDP-11.[80]

Diese Kosten für die Unterstützung der Vielfalt der Betriebssysteme können vermieden werden, indem stattdessen Anwendungen gegen das Schreiben von Anwendungen Softwareplattformen wie zum Beispiel Java oder Qt. Diese Abstraktionen haben bereits die Kosten für die Anpassung an bestimmte Betriebssysteme und ihre getragen Systembibliotheken.

Ein weiterer Ansatz ist für Betriebssystemanbieter, die Standards annehmen. Zum Beispiel, Posix und OS -Abstraktionsschichten Bereitstellung von Gemeinsamkeiten, die die Portierungskosten senken.

Marktanteil

Siehe auch

Anmerkungen

  1. ^ Eine Kombination aus DOS/360 und Emulationssoftware war als Kompatibilitätsbetriebssystem (COS) bekannt.
  2. ^ ESPOL ermöglichte es jedoch Quellprogrammen, alle Operationen des Anweisungsrepertoires anzugeben.
  3. ^ Bell Labs brach schnell aus und verließ GE und MIT.
  4. ^ Moderne CPUs geben Anweisungen (z. B. Sysenter), um ausgewählte Kerneldienste ohne Interrupts aufzurufen. Besuch https://wiki.osdev.org/sysenter für mehr Informationen.
  5. ^ Beispiele beinhalten SIGINT, Sigsegv, und Sigbus.
  6. ^ Oft in Form eines DMA -Chips für kleinere Systeme und E/A -Kanäle für größere Systeme
  7. ^ Modern Motherboards einen DMA -Controller haben. Darüber hinaus kann ein Gerät auch eines haben. Besuch SCSI RDMA -Protokoll.
  8. ^ Das Ibm z Prozessoren nicht.

Verweise

  1. ^ Stallings (2005). Betriebssysteme, Interna und Designprinzipien. Pearson: Prentice Hall. p. 6.
  2. ^ Dhotre, I.A. (2009). Betriebssysteme. Technische Veröffentlichungen. p. 1.
  3. ^ "Marktanteil des Desktop -Betriebssystems weltweit". StatCounter Global Statistics. Abgerufen 31. Oktober 2020.
  4. ^ "Mobile & Tablet Betriebssystem Marktanteil weltweit". StatCounter Global Statistics. Abgerufen 31. Oktober 2020.
  5. ^ "Strategieanalyse: Android erfasst im dritten Quartal 2016 einen Anteil von 88 Prozent der globalen Smartphone -Sendungen.". 2. November 2016. Archiviert Aus dem Original am 5. November 2016.
  6. ^ "VII. Spezial -Purpose -Systeme - Betriebssystemkonzepte, Siebte Ausgabe [Buch]". www.orilly.com.
  7. ^ "Spezialbetriebssysteme - RWTH Aachen University Institute für Automatisierung komplexer Stromversorgungssysteme - Englisch". www.acs.eonerc.rwth-aachen.de.
  8. ^ Lorch, Jacob R. und Alan Jay Smith. "Reduzierung des Verbrauchs des Prozessors durch Verbesserung des Prozessorzeitmanagements in einem Betriebssystem für Einzelbenutzer." Proceedings der 2. jährlichen internationalen Konferenz über mobiles Computer und Vernetzung. ACM, 1996.
  9. ^ Mishra, b.; Singh, N.; Singh, R. (2014). "Master-Slave-Gruppenmodell für die Koordinatorauswahl, eine Verbesserung des Bully-Algorithmus". Internationale Konferenz über parallele, verteilte und Grid Computing (PDGC). S. 457–460. doi:10.1109/pdgc.2014.7030789. ISBN 978-1-4799-7682-9. S2CID 13887160.
  10. ^ Gagne, Silberschatz Galvin (2012). Betriebssystemkonzepte. New York: Wiley. p. 716. ISBN 978-1118063330.
  11. ^ a b Hansen, per Brinch, hrsg. (2001). Klassische Betriebssysteme. Springer. S. 4–7. ISBN 0-387-95113-x.
  12. ^ Ryckman, George (1960). "Die Computerbetriebsprache". IRE-AIEEE-ACM '60 (Western): 341. doi:10.1145/1460361.1460406. S2CID 30745551.
  13. ^ Lavington, Simon (1998). Eine Geschichte von Manchester Computern (2. Aufl.). Swindon: Die British Computer Society. S. 50–52. ISBN 978-1-902505-01-5.
  14. ^ Kilburn, T.; Payne, R. B.; Howarth, D. J. (Dezember 1961). "Der Atlas -Supervisor". Institut für Elektroingenieure: 279–294. doi:10.1145/1460764.1460786. S2CID 16466990.
  15. ^ Brinch Hansen, Per (2000). Klassische Betriebssysteme: Von der Stapelverarbeitung bis zu verteilten Systemen. Springer-Verlag.
  16. ^ Exec I Univac 1107 Executive System (PDF) (Rev. 1 ed.). Sperry Rand. Up-2577. Abgerufen 15. Mai 2022.
  17. ^ UNIVAC Data Processing Division Multi-Proprozessor-System-Exec II-Programmierer Referenzhandbuch (PDF). Sperry Rand. 1966. UP-4058. Abgerufen 15. Mai 2022.
  18. ^ UNIVAC 1108 Multi-Proprozessor-System Betriebssystem EXEC 8 Programmierer Referenz (PDF) (Rev. 1 ed.). Sperry Rand. 1968. UP-4144. Abgerufen 15. Mai 2022.
  19. ^ "Intel® Microprozessor Schnellreferenzhandbuch - Jahr". www.intel.com. Archiviert vom Original am 25. April 2016. Abgerufen 24. April 2016.
  20. ^ Ritchie, Dennis. "UNIX -Handbuch, Erstausgabe". Lucent Technologies. Archiviert von das Original am 18. Mai 2008. Abgerufen 22. November 2012.
  21. ^ "OS X Mountain Lion - Bewegen Sie Ihren Mac noch weiter nach vorne". Apfel. Archiviert Aus dem Original am 23. Mai 2011. Abgerufen 7. August 2012.
  22. ^ "Openedition Services auf MVS/ESA SP Version 4 Release 3 angekündigt und Verfügbarkeit von MVS/ESA SP Version 4 Release 3 mit zusätzlichen Verbesserungen". Ankündigungsbriefe. IBM. 9 February 1993. 293-060.
  23. ^ Introducing OpenEdition MVS. Erste Ausgabe. IBM. Dezember 1993. GC23-3010-00.
  24. ^ Openedition MVS POSIX.1 Konformitätsdokument. Erste Ausgabe. IBM. Februar 1993. GC23-3011-00.
  25. ^ Openedition MVS POSIX.2 Konformitätsdokument. Erste Ausgabe. IBM. Dezember 1993. GC23-3012-00.
  26. ^ "Zwanzig Jahre Linux nach Linus Torvalds". ZDNET. 13. April 2011. Archiviert Aus dem Original am 19. September 2016. Abgerufen 19. September, 2016.
  27. ^ Linus Benedict Torvalds (5. Oktober 1991). "Kostenlose minixartige Kernelquellen für 386-at". Newsgroup:comp.os.minix. Abgerufen 30. September 2011.
  28. ^ "Was ist Linux: Ein Überblick über das Linux -Betriebssystem". Mittel. Abgerufen 21. Dezember, 2019.
  29. ^ Linux Online (2008). "Linux -Logos und Maskottchen". Archiviert von das Original am 15. August 2010. Abgerufen 11. August 2009.
  30. ^ a b "Top 5 Betriebssysteme von Januar bis April 2011". Statcounter. Oktober 2009. Archiviert vom Original am 26. Mai 2012. Abgerufen 5. November 2009.
  31. ^ "IDC -Bericht über den Server -Marktanteil". Idc.com. Archiviert von das Original am 27. September 2012. Abgerufen 7. August 2012.
  32. ^ LinuxDevices -Mitarbeiter (23. April 2008). "Linux immer noch das oberste OS von Top eingebettet". Linuxgizmos.com. Archiviert von das Original am 19. April 2016. Abgerufen 5. April 2016.
  33. ^ "Sublist Generator". Top500.org. Abgerufen 6. Februar 2017.
  34. ^ "Globale Webstatistiken". Nettomarktanteil, Nettoanwendungen. Mai 2011. Archiviert Aus dem Original am 25. Januar 2010. Abgerufen 7. Mai 2011.
  35. ^ "Globale Webstatistiken". W3Counter, Awio Web Services. September 2009. Archiviert Aus dem Original am 28. Juni 2012. Abgerufen 24. Oktober 2009.
  36. ^ "Marktanteil des Betriebssystems". Netzanwendungen. Oktober 2009. Archiviert Aus dem Original am 25. Januar 2010. Abgerufen 5. November 2009.
  37. ^ "W3schools.com OS -Plattformstatistik". Archiviert Aus dem Original am 5. August 2011. Abgerufen 30. Oktober 2011.
  38. ^ "Statistiken zählen globale Statistiken Top fünf Betriebssysteme". Archiviert vom Original am 26. Mai 2012. Abgerufen 30. Oktober 2011.
  39. ^ "Globale Statistiken bei W3Counter.com". Archiviert Aus dem Original am 28. Juni 2012. Abgerufen 23. Januar 2012.
  40. ^ "Fehlerbehebung bei MS-DOS-Kompatibilitätsmodus auf Festplatten". Support.microsoft.com. Archiviert Aus dem Original am 10. August 2012. Abgerufen 7. August 2012.
  41. ^ "Verwenden von NDIS 2 PCMCIA -Netzwerkkartentreibern in Windows 95". Support.microsoft.com. Archiviert Aus dem Original am 17. Februar 2013. Abgerufen 7. August 2012.
  42. ^ "Info: Windows 95 Multimedia Wave Device -Treiber müssen 16 Bit sein". Support.microsoft.com. Archiviert Aus dem Original am 17. Februar 2013. Abgerufen 7. August 2012.
  43. ^ Arthur, Charles. "Windows 8 wird auf ARM -Chips ausgeführt - aber Apps von Drittanbietern müssen neu schreiben.". Der Wächter. Archiviert Aus dem Original am 12. Oktober 2016.
  44. ^ "Betriebssystemanteil nach Gruppen für Standorte an allen Standorten Januar 2009". Archiviert von das Original am 6. Juli 2009. Abgerufen 3. Mai 2010.
  45. ^ "Hinter den IDC -Daten: Windows N wie Nr. 1 in Serverbetriebssystemen". ZDNET. 26. Februar 2010. Archiviert Aus dem Original am 1. März 2010.
  46. ^ a b Kerrisk, Michael (2010). Die Linux -Programmierschnittstelle. Keine Stärkepresse. p. 388. ISBN 978-1-59327-220-3. Ein Signal ist eine Benachrichtigung über einen Prozess, der ein Ereignis aufgetreten ist. Signale werden manchmal als Software -Interrupts beschrieben.
  47. ^ Hyde, Randall (1996). "Kapitel Seventeen: Interrupts, Fallen und Ausnahmen (Teil 1)". Die Kunst der Assemblersprachprogrammierung. Keine Stärkepresse. Abgerufen 22. Dezember 2021. Das Konzept eines Interrupts hat im Laufe der Jahre im Umfang erweitert. Die 80x86 -Familie hat nur die Verwirrung um Interrupts erweitert, indem die Int (Software Interrupt) Anweisung eingeführt wird. In der Tat haben verschiedene Hersteller Begriffe wie Ausnahmen, Fehler, Abbrüche, Fallen und Interrupts verwendet, um die Phänomene zu beschreiben, die in diesem Kapitel erörtert wird. Leider gibt es keinen klaren Konsens über die genaue Bedeutung dieser Begriffe. Verschiedene Autoren verwenden unterschiedliche Begriffe für ihre eigene Verwendung.
  48. ^ Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.308. ISBN 978-0-13-854662-5. Wie die Falle stoppt der Interrupt das laufende Programm und überträgt die Steuerung an einen Interrupt -Handler, der einige geeignete Maßnahmen ausführt. Nach Fertigstellung gibt der Interrupt -Handler die Kontrolle über das unterbrochene Programm zurück.
  49. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 32. ISBN 978-0-201-50480-4. Wenn ein Interrupt (oder eine Falle) auftritt, überträgt die Hardware die Steuerung in das Betriebssystem. Zunächst bewahrt das Betriebssystem den Zustand der CPU, indem sie Register und den Programmzähler speichert. Dann bestimmt es, welche Art von Interrupt aufgetreten ist. Für jede Art von Interrupt bestimmen separate Codesegmente im Betriebssystem, welche Maßnahmen ergriffen werden sollen.
  50. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 105. ISBN 978-0-201-50480-4. Um die CPU auf einen anderen Prozess zu wechseln, müssen Sie den Status des alten Prozesses speichern und den gespeicherten Zustand für den neuen Prozess geladen. Diese Aufgabe wird als Kontextschalter bezeichnet.
  51. ^ a b c d e Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 31. ISBN 978-0-201-50480-4.
  52. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 30. ISBN 978-0-201-50480-4. Hardware kann jederzeit einen Interrupt auslösen, indem ein Signal an die CPU gesendet wird, normalerweise über den Systembus.
  53. ^ Kerrisk, Michael (2010). Die Linux -Programmierschnittstelle. Keine Stärkepresse. p. 388. ISBN 978-1-59327-220-3. Signale sind analog zu Hardware -Interrupts darin, dass sie den normalen Ausführungsfluss eines Programms unterbrechen. In den meisten Fällen ist es nicht möglich, genau vorherzusagen, wann ein Signal ankommt.
  54. ^ Kerrisk, Michael (2010). Die Linux -Programmierschnittstelle. Keine Stärkepresse. p. 388. ISBN 978-1-59327-220-3. Zu den Arten von Ereignissen, die dazu führen, dass der Kernel ein Signal für einen Prozess generiert, gehören Folgendes: Ein Softwareereignis ist aufgetreten. Zum Beispiel wurde die CPU -Frist des Prozesses überschritten [.]
  55. ^ a b c d e Kerrisk, Michael (2010). Die Linux -Programmierschnittstelle. Keine Stärkepresse. p. 388. ISBN 978-1-59327-220-3.
  56. ^ "Intel® 64 und IA-32 Architektur-Softwareentwicklerhandbuch" (PDF). Intel Corporation. September 2016. p. 610. Abgerufen 5. Mai 2022.
  57. ^ a b c Bach, Maurice J. (1986). Das Design des UNIX -Betriebssystems. Prentice-Hall. p. 200. ISBN 0-13-201799-7.
  58. ^ Kerrisk, Michael (2010). Die Linux -Programmierschnittstelle. Keine Stärkepresse. p. 400. ISBN 978-1-59327-220-3.
  59. ^ a b Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.308. ISBN 978-0-13-854662-5.
  60. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 182. ISBN 978-0-201-50480-4.
  61. ^ Haviland, Keith; Salama, Ben (1987). UNIX -Systemprogrammierung. Addison-Wesley Publishing Company. p. 153. ISBN 0-201-12919-1.
  62. ^ Haviland, Keith; Salama, Ben (1987). UNIX -Systemprogrammierung. Addison-Wesley Publishing Company. p. 148. ISBN 0-201-12919-1.
  63. ^ a b Haviland, Keith; Salama, Ben (1987). UNIX -Systemprogrammierung. Addison-Wesley Publishing Company. p. 149. ISBN 0-201-12919-1.
  64. ^ Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.292. ISBN 978-0-13-854662-5.
  65. ^ IBM (September 1968), "Hauptspeicher" (PDF), IBM -System/360 Betriebsprinzipien (PDF), Achte Ausgabe, p. 7
  66. ^ a b c d Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.294. ISBN 978-0-13-854662-5.
  67. ^ "8008 Benutzer des Zentralprozessoreinheitens Handbuch" (PDF). Intel. 1972. p. 3. Abgerufen 29. April 2022.
  68. ^ "IA-32 Intel® Architektur-Softwareentwicklerhandbuch" (PDF). Intel. p. 171.
  69. ^ Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.123. ISBN 978-0-13-854662-5.
  70. ^ "Programm Interrupt Controller (PIC)" (PDF). Benutzerhandbuch - PDP -7 (PDF). Digital Equipment Corporation. 1965. pp.48. F-75. Abgerufen 20. April 2022.
  71. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 32. ISBN 978-0-201-50480-4.
  72. ^ Silberschatz, Abraham (1994). Betriebssystemkonzepte, vierte Ausgabe. Addison-Wesley. p. 34. ISBN 978-0-201-50480-4.
  73. ^ a b Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.295. ISBN 978-0-13-854662-5.
  74. ^ a b Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.309. ISBN 978-0-13-854662-5.
  75. ^ Tanenbaum, Andrew S. (1990). Strukturierte Computerorganisation, dritte Ausgabe. Prentice Hall. p.310. ISBN 978-0-13-854662-5.
  76. ^ Stallings, William (2008). Computerorganisation & Architektur. Neu-Delhi: Prentice-Hall of India Private Limited. p. 267. ISBN 978-81-203-2962-1.
  77. ^ "Betriebssysteme: Sicherheit". www.cs.uic.edu. Abgerufen 27. November 2020.
  78. ^ Poisson, Ken. "Chronologie der Personalcomputersoftware" Archiviert 14. Mai 2008 bei der Wayback -Maschine. Abgerufen am 2008-05-07. Zuletzt überprüft an 2009-03-30.
  79. ^ "Lesen: Betriebssystem". Lumen. Abgerufen 5. Januar 2019.
  80. ^ "Die Geschichte der Unix". BYTE. August 1983. p. 188. Abgerufen 31. Januar 2015.

Weitere Lektüre

  • Anderson, Thomas; Dahlin, Michael (2014). Betriebssysteme: Prinzipien und Praxis. Rekursive Bücher. ISBN 978-0-9856735-2-9.
  • Auslander, M. A.;Larkin, D. C.;Scherr, A. L. (September 1981)."Die Entwicklung des MVS -Betriebssystems". IBM Journal of Research and Development. 25 (5): 471–482. doi:10.1147/rd.255.0471.
  • Deitel, Harvey M.;Deitel, Paul;Choffnes, David (25. Dezember 2015). Betriebssysteme. Pearson/Prentice Hall. ISBN 978-0-13-092641-8.
  • BIC, Lubomur F.;Shaw, Alan C. (2003). Betriebssysteme.Pearson: Prentice Hall.
  • Silberschatz, Avi;Galvin, Peter;Gagne, Greg (2008). Betriebssystemkonzepte. John Wiley & Sons. ISBN 978-0-470-12872-5.
  • J. A. O'Brien & G. M. Marakas (2011). Managementinformationssysteme.10e.McGraw-Hill Irwin.
  • Leva, Alberto;Maggio, Martina;Papadopoulos, Alessandro Vittorio;Terraneo, Federico (2013). Kontrollbasiertes Betriebssystemdesign. Iet. ISBN 978-1-84919-609-3.
  • Arpaci-Dusseau, Remzi;Arpaci-Dusseau, Andrea (2015). Betriebssysteme: drei einfache Stücke.

Externe Links