Die Geschichte der Entwicklung von Betriebssystemen besteht aus vier Perioden. Die Entwicklung von Betriebssystemen oder wie sie war und wie sie sein wird

· Das Erscheinen des ersten Betriebssysteme

· Das Aufkommen von Multiprogramm-Betriebssystemen für Großrechner

· Betriebssysteme und globale Netzwerke

Minicomputer-Betriebssysteme und die ersten lokalen Netzwerke

· Entwicklung von Betriebssystemen in den 80er Jahren

· Merkmale des aktuellen Entwicklungsstandes von Betriebssystemen

· Probleme und Übungen

Die Geschichte eines jeden Wissenschafts- oder Technologiezweigs ermöglicht es uns, nicht nur die natürliche Neugier zu befriedigen, sondern auch das Wesen der wichtigsten Errungenschaften dieser Branche besser zu verstehen, bestehende Trends zu verstehen und die Aussichten bestimmter Entwicklungsbereiche richtig einzuschätzen. In den fast einem halben Jahrhundert ihres Bestehens haben Betriebssysteme einen schwierigen Weg voller wichtiger Ereignisse durchlaufen. Die Entwicklung von Betriebssystemen wurde stark von Erfolgen bei der Verbesserung der Elementbasis und der Computerausrüstung beeinflusst. Daher sind viele Phasen der Betriebssystementwicklung eng mit der Entstehung neuer Arten von Hardwareplattformen wie Minicomputern oder Personalcomputern verbunden. Betriebssysteme haben aufgrund der neuen Rolle von Computern in lokalen und globalen Netzwerken eine große Entwicklung erfahren. Der wichtigste Faktor bei der Entwicklung des Betriebssystems war das Internet. Da dieses Netzwerk die Merkmale eines universellen Massenkommunikationsmittels erhält, werden Betriebssysteme einfacher und bequemer zu verwenden, verfügen über entwickelte Mittel zur Unterstützung multimedialer Informationen und sind mit zuverlässigen Sicherheitsmaßnahmen ausgestattet.

Die Entstehung der ersten Betriebssysteme

Die Idee eines Computers wurde Mitte des 19. Jahrhunderts vom englischen Mathematiker Charles Babage vorgeschlagen. Seine mechanische „Analytical Engine“ konnte nie richtig funktionieren, da die damalige Technik nicht den Anforderungen genügte, um die notwendigen feinmechanischen Teile herzustellen. Von einem Betriebssystem für diesen „Rechner“ war natürlich keine Rede.

Die eigentliche Geburtsstunde des digitalen Rechnens erfolgte kurz nach dem Ende des Zweiten Weltkriegs. Mitte der 40er Jahre entstanden die ersten Röhrenrechengeräte. Zu dieser Zeit war derselbe Personenkreis an der Konstruktion, dem Betrieb und der Programmierung des Computers beteiligt. Es handelte sich eher um eine Forschungsarbeit auf dem Gebiet der Computertechnologie als um den Einsatz von Computern als Werkzeug zur Lösung praktischer Probleme aus anderen Anwendungsbereichen. Die Programmierung erfolgte ausschließlich in Maschinensprache. Es gab keine systemische Software, mit Ausnahme von Bibliotheken mit mathematischen Routinen und Hilfsprogrammen, die der Programmierer verwenden könnte, um nicht jedes Mal Codes schreiben zu müssen, die den Wert einer mathematischen Funktion berechnen oder ein Standard-Eingabe-/Ausgabegerät steuern. Es gab noch keine Betriebssysteme; alle Aufgaben zur Organisation des Rechenprozesses wurden von jedem Programmierer manuell über das Bedienfeld gelöst, bei dem es sich um ein primitives Eingabe-Ausgabe-Gerät bestehend aus Tasten, Schaltern und Anzeigen handelte. Seit Mitte der 50er Jahre begann eine neue Periode in der Entwicklung der Computertechnologie, verbunden mit der Entstehung einer neuen technischen Basis – Halbleiterelementen. Die Geschwindigkeit der Prozessoren hat zugenommen, das Betriebsvolumen und Externer Speicher. Computer wurden zuverlässiger, sie konnten nun so lange ununterbrochen arbeiten, dass man ihnen die Ausführung wirklich praktisch wichtiger Aufgaben anvertrauen konnte.



Neben der Verbesserung der Ausstattung waren auch spürbare Fortschritte im Bereich der Automatisierung der Programmierung und Organisation der Rechenarbeit zu beobachten. In diesen Jahren erschienen die ersten algorithmischen Sprachen und so wurde den Bibliotheken mathematischer Routinen und Dienstprogramme eine neue Art von Systemsoftware hinzugefügt – Übersetzer.

Die Ausführung jedes Programms umfasste eine große Anzahl von Hilfsarbeiten: Laden des erforderlichen Übersetzers (ALGOL, FORTRAN, COBOL usw.), Starten des Übersetzers und Erhalten des resultierenden Programms im Maschinencode, Verknüpfen des Programms mit Bibliotheksunterprogrammen, Laden das Programm in den RAM kopieren, das Programm starten und die Ergebnisse an ein Peripheriegerät ausgeben. Um die effektive gemeinsame Nutzung von Übersetzern, Bibliotheksprogrammen und Ladern zu organisieren, wurden in das Personal vieler Rechenzentren die Positionen von Operatoren eingeführt, die die Arbeit der Organisation des Rechenprozesses für alle Benutzer dieses Zentrums professionell erledigten.

Aber egal wie schnell und zuverlässig die Bediener arbeiteten, sie konnten in der Produktivität nicht mit der Arbeit von Computergeräten mithalten. Die meiste Zeit war der Prozessor im Leerlauf und wartete darauf, dass der Bediener die nächste Aufgabe startet. Und da der Prozessor ein sehr teures Gerät war, bedeutete seine geringe Effizienz eine geringe Effizienz bei der Nutzung des Computers als Ganzes. Um dieses Problem zu lösen, wurden die ersten Stapelverarbeitungssysteme entwickelt, die die gesamte Abfolge von Bedieneraktionen zur Organisation des Rechenprozesses automatisierten. Frühe Stapelverarbeitungssysteme waren der Prototyp moderner Betriebssysteme; sie wurden die ersten Systemprogramme, die nicht für die Datenverarbeitung, sondern für die Verwaltung des Rechenprozesses konzipiert waren.

Bei der Implementierung von Stapelverarbeitungssystemen wurde eine formalisierte Jobsteuerungssprache entwickelt, mit deren Hilfe der Programmierer dem System und dem Bediener mitteilte, welche Aktionen und in welcher Reihenfolge er am Computer ausführen wollte. Ein typischer Satz von Anweisungen umfasste normalerweise ein Zeichen für den Beginn eines separaten Jobs, einen Aufruf an den Übersetzer, einen Aufruf an den Lader sowie Zeichen für den Anfang und das Ende der Quelldaten.

Der Bediener stellte ein Paket von Aufgaben zusammen, die anschließend ohne sein Zutun nacheinander zur Ausführung durch das Steuerungsprogramm – den Monitor – gestartet wurden. Darüber hinaus war der Monitor in der Lage, die häufigsten Notfallsituationen, die beim Betrieb von Benutzerprogrammen auftreten, wie z. B. fehlende Quelldaten, Registerüberlauf, Division durch Null, Zugriff auf einen nicht vorhandenen Speicherbereich usw., selbstständig zu verarbeiten. Das Paket war normalerweise ein Satz Lochkarten, aber um die Arbeit zu beschleunigen, konnte er auf ein bequemeres und geräumigeres Medium übertragen werden, beispielsweise auf ein Magnetband oder eine Magnetplatte. Das Monitorprogramm selbst wurde in den ersten Implementierungen auch auf Lochkarten oder Lochstreifen und in späteren Implementierungen auf Magnetband und Magnetplatten gespeichert.

Frühe Stapelverarbeitungssysteme reduzierten den Zeitaufwand für Hilfsaktivitäten zur Organisation des Rechenprozesses erheblich, was einen weiteren Schritt zur Verbesserung der Effizienz der Computernutzung bedeutet. Allerdings wurde den Anwenderprogrammierern gleichzeitig der direkte Zugriff auf den Computer verwehrt, was die Effizienz ihrer Arbeit verringerte – so dass jede Korrektur viel mehr Zeit in Anspruch nahm als bei der interaktiven Arbeit an der Konsole der Maschine.

Das Aufkommen von Multiprogramm-Betriebssystemen für Großrechner

Die nächste wichtige Periode in der Entwicklung von Betriebssystemen geht auf die Jahre 1965-1975 zurück.

Zu dieser Zeit vollzog sich in der technischen Basis von Computern ein Übergang von einzelnen Halbleiterelementen wie Transistoren zu integrierten Schaltkreisen, was den Weg für die Entstehung der nächsten Computergeneration ebnete. Groß Funktionalität Integrierte Schaltkreise ermöglichten die praktische Umsetzung komplexer Computerarchitekturen, wie etwa des IBM/360.

In dieser Zeit wurden fast alle grundlegenden Mechanismen moderner Betriebssysteme implementiert: Multiprogramming, Multiprocessing, Unterstützung des Multi-Terminal-Mehrbenutzermodus, virtueller Speicher, Dateisysteme, Zugriffskontrolle und Netzwerk. In diesen Jahren begann die Systemprogrammierung zu florieren. Von einem Zweig der angewandten Mathematik, der für einen engen Kreis von Spezialisten von Interesse ist, entwickelt sich die Systemprogrammierung zu einem Industriezweig, der einen direkten Einfluss auf die praktischen Aktivitäten von Millionen von Menschen hat. Das revolutionäre Ereignis dieser Phase war die industrielle Umsetzung des Multiprogrammings. (Beachten Sie, dass diese Methode zur Organisation von Berechnungen in Form eines Konzepts und experimenteller Systeme seit etwa zehn Jahren existiert.) Angesichts der stark gestiegenen Fähigkeiten eines Computers zur Verarbeitung und Speicherung von Daten erwies es sich als schwierig, jeweils nur ein Programm auszuführen äußerst ineffizient sein. Die Lösung war Multiprogramming – eine Methode zur Organisation eines Rechenprozesses, bei der mehrere Programme gleichzeitig im Speicher des Computers abgelegt und abwechselnd auf einem Prozessor ausgeführt werden. Diese Verbesserungen verbesserten die Effizienz des Computersystems erheblich: Der Computer konnte nun fast ständig genutzt werden, statt wie zuvor nur für die halbe Betriebszeit des Computers.

Multiprogramming wurde in zwei Versionen implementiert – in Batch-Verarbeitungs- und Time-Sharing-Systemen.

Stapelverarbeitungssysteme mit mehreren Programmen zielten ebenso wie ihre Vorgänger mit Einzelprogrammen darauf ab, eine maximale Auslastung der Computerhardware sicherzustellen, lösten dieses Problem jedoch effizienter. Im Multiprogramm-Batch-Modus blieb der Prozessor nicht im Leerlauf, während ein Programm eine E/A-Operation ausführte (wie es bei der sequenziellen Programmausführung in frühen Batch-Verarbeitungssystemen der Fall war), sondern wechselte zu einem anderen Programm, das zur Ausführung bereit war. Dadurch wurde eine gleichmäßige Belastung aller Computergeräte erreicht und somit die Anzahl der pro Zeiteinheit gelösten Aufgaben erhöht. In Multiprogramming-Stapelverarbeitungssystemen war der Benutzer immer noch nicht in der Lage, interaktiv mit seinen Programmen zu interagieren. Um den Benutzern zumindest teilweise das Gefühl der direkten Interaktion mit dem Computer zurückzugeben, wurde eine andere Version von Multiprogrammsystemen entwickelt – Time-Sharing-Systeme. Diese Option ist für Multi-Terminal-Systeme konzipiert, bei denen jeder Benutzer an seinem eigenen Terminal arbeitet. Zu den frühen Time-Sharing-Betriebssystemen, die Mitte der 1960er Jahre entwickelt wurden, gehörten TSS/360 (IBM), CTSS und MULTICS (MIT, Bell Labs und General Electric). Die in Time-Sharing-Systemen verwendete Multiprogramming-Option zielte darauf ab, für jeden einzelnen Benutzer die Illusion des alleinigen Besitzes des Computers zu erzeugen, indem jedem Programm regelmäßig sein Anteil an Prozessorzeit zugewiesen wurde. In Time-Sharing-Systemen ist die Effizienz der Gerätenutzung geringer als in Batch-Verarbeitungssystemen, was den Preis für die Benutzerfreundlichkeit darstellte.

Der Multi-Terminal-Modus wurde nicht nur in Time-Sharing-Systemen, sondern auch in Batch-Verarbeitungssystemen verwendet. Gleichzeitig konnten nicht nur der Bediener, sondern alle Benutzer ihre Aufgaben erstellen und deren Ausführung von ihrem Terminal aus verwalten. Solche Betriebssysteme werden Remote-Task-Eingabesysteme genannt. Terminalkomplexe könnten sich in großer Entfernung von Prozessor-Racks befinden und über verschiedene globale Verbindungen – Modemverbindungen von Telefonnetzen oder dedizierte Kanäle – mit ihnen verbunden sein. Um den Remote-Betrieb von Terminals zu unterstützen, erschienen in Betriebssystemen spezielle Softwaremodule, die verschiedene (damals meist nicht standardmäßige) Kommunikationsprotokolle implementierten. Solche Computersysteme mit Remote-Terminals waren in gewissem Umfang unter Beibehaltung des zentralisierten Charakters der Datenverarbeitung vorhanden Der Prototyp moderner Netzwerke und die entsprechende Systemsoftware sind der Prototyp moderner Netzwerkbetriebssysteme.

Zu diesem Zeitpunkt können wir eine signifikante Änderung in der Funktionsverteilung zwischen Hardware und Hardware feststellen Software Computer. Betriebssysteme wurden zu integralen Bestandteilen von Computern und fungierten als „Fortsetzung“ der Hardware. Bei den ersten Computern konnte der Programmierer, der direkt mit dem Gerät interagierte, Programmcodes mithilfe von Fernschaltern und Anzeigelampen herunterladen und dann das Programm manuell zur Ausführung starten, indem er die „Start“-Taste drückte. Bei Computern der 60er Jahre wurden die meisten Aktionen zur Organisation des Rechenprozesses vom Betriebssystem übernommen. (Meistens moderne Computer Es gibt nicht einmal eine theoretische Möglichkeit, Rechenarbeiten ohne Beteiligung des Betriebssystems durchzuführen. Nach dem Einschalten wird das Betriebssystem automatisch gesucht, geladen und gestartet, und wenn es fehlt, stoppt der Computer einfach.)

Die Implementierung von Multiprogramming erforderte die Einführung sehr wichtiger Änderungen an der Computerhardware, die direkt darauf abzielten, eine neue Art der Organisation des Computerprozesses zu unterstützen. Bei der Aufteilung der Computerressourcen auf Programme ist es notwendig, ein schnelles Umschalten des Prozessors von einem Programm auf ein anderes zu gewährleisten und die Codes und Daten eines Programms zuverlässig vor unbeabsichtigter oder vorsätzlicher Beschädigung durch ein anderes Programm zu schützen. Die Prozessoren verfügen nun über privilegierte und benutzerdefinierte Betriebsmodi, spezielle Register zum schnellen Wechsel von einem Programm zum anderen, Mittel zum Schutz von Speicherbereichen sowie ein entwickeltes Interrupt-System.

Im privilegierten Modus, der für den Betrieb von Betriebssystem-Softwaremodulen konzipiert ist, konnte der Prozessor alle Befehle ausführen, einschließlich derjenigen, die die Verteilung und den Schutz von Computerressourcen ermöglichten. Einige Prozessorbefehle waren für Programme, die im Benutzermodus ausgeführt wurden, nicht verfügbar. Daher konnte nur das Betriebssystem die Hardware steuern und als Monitor und Schiedsrichter für Benutzerprogramme fungieren, die im unprivilegierten Benutzermodus ausgeführt wurden.

Das Interrupt-System ermöglichte es, den Betrieb verschiedener parallel und asynchron arbeitender Computergeräte wie Ein-/Ausgabekanäle, Festplatten, Drucker usw. zu synchronisieren. Die Hardwareunterstützung für Betriebssysteme ist seitdem zu einem integralen Bestandteil fast aller Betriebssysteme geworden Computersysteme, einschließlich Personalcomputer.

Ein weiterer wichtiger Trend dieser Zeit ist die Schaffung von Familien softwarekompatibler Maschinen und Betriebssysteme dafür. Beispiele für Familien softwarekompatibler Maschinen, die auf integrierten Schaltkreisen basieren, sind die Maschinenserien IBM/360 und IBM/370 (Analoga dieser Familien sowjetischer Produktion – Maschinen der EC-Serie), PDP-11 (sowjetische Analoga – CM-3). , CM-4, CM-1420). Bald setzte sich die Idee softwarekompatibler Maschinen durch.

Softwarekompatibilität erforderte auch Betriebssystemkompatibilität. Eine solche Kompatibilität setzt jedoch die Fähigkeit voraus, auf großen und kleinen Computersystemen mit einer großen und kleinen Anzahl unterschiedlicher Peripheriegeräte im kommerziellen Bereich und im Außendienst zu arbeiten wissenschaftliche Forschung. Betriebssysteme, die all diese widersprüchlichen Anforderungen erfüllen sollen, haben sich als äußerst komplex erwiesen. Sie bestanden aus vielen Millionen Zeilen Assembler-Code, geschrieben von Tausenden von Programmierern, und enthielten Tausende von Fehlern, die einen endlosen Strom von Korrekturen verursachten. Betriebssysteme dieser Generation waren sehr teuer. So kostete die Entwicklung von OS/360, dessen Codevolumen 8 MB betrug, IBM 80 Millionen Dollar.

Trotz seiner enormen Größe und vielen Problemen erfüllten OS/360 und andere ähnliche Betriebssysteme dieser Generation jedoch die meisten Verbraucheranforderungen. In diesem Jahrzehnt wurde ein großer Schritt nach vorne gemacht und eine solide Grundlage für die Entwicklung moderner Betriebssysteme gelegt.

Betriebssysteme und globale Netzwerke

Anfang der 70er Jahre erschienen die ersten Netzwerkbetriebssysteme, die es im Gegensatz zu Multiterminal-Betriebssystemen nicht nur ermöglichten, Benutzer zu verteilen, sondern auch die verteilte Speicherung und Verarbeitung von Daten zwischen mehreren über elektrische Verbindungen verbundenen Computern zu organisieren. Jedes Netzwerkbetriebssystem führt einerseits alle Funktionen eines lokalen Betriebssystems aus und verfügt andererseits über einige davon Zusätzliche Mittel Dadurch kann es über das Netzwerk mit den Betriebssystemen anderer Computer interagieren. Im Laufe der Entwicklung von Betriebssystemen tauchten nach und nach Softwaremodule auf, die Netzwerkfunktionen implementieren. Netzwerktechnologien, Computerhardware und die Entstehung neuer Aufgaben, die eine Netzwerkverarbeitung erfordern.

Obwohl theoretische Arbeiten zur Erstellung von Konzepten der Netzwerkinteraktion fast seit dem Aufkommen von Computern durchgeführt wurden, wurden Ende der 60er Jahre bedeutende praktische Ergebnisse bei der Verbindung von Computern zu Netzwerken erzielt, als mit Hilfe globaler Verbindungen und Paketvermittlungstechnologie Es war möglich, das Zusammenspiel von Maschinen der Großrechnerklasse und Supercomputern zu implementieren. Diese teuren Computer speicherten oft einzigartige Daten und Programme, auf die ein breites Spektrum von Benutzern in verschiedenen Städten in beträchtlicher Entfernung von den Rechenzentren zugreifen musste.

Im Jahr 1969 begann das US-Verteidigungsministerium damit, Supercomputer von Verteidigungs- und Forschungszentren in einem einzigen Netzwerk zu vereinen. Dieses Netzwerk hieß ARPANET und war der Ausgangspunkt für die Entstehung des heute berühmtesten globalen Netzwerks – des Internets. Das ARPANET-Netzwerk vereinte Computer unterschiedlicher Art, auf denen unterschiedliche Betriebssysteme ausgeführt wurden, mit zusätzlichen Modulen, die Kommunikationsprotokolle implementierten, die allen Computern im Netzwerk gemeinsam waren.

1974 kündigte IBM die Schaffung einer eigenen Netzwerkarchitektur für seine Großrechner mit dem Namen SNA (System Network Architecture) an. Diese geschichtete Architektur ermöglichte, ähnlich wie das spätere Standard-OSI-Modell, Terminal-zu-Terminal-, Terminal-zu-Computer- und Computer-zu-Computer-Interaktionen über globale Kommunikation. Die unteren Ebenen der Architektur wurden durch spezielle Hardware implementiert, von denen der Teleprozessor die wichtigste war. Die Funktionen der oberen SNA-Ebenen wurden von Softwaremodulen übernommen. Einer von ihnen bildete die Grundlage der Teleprozessor-Software. Andere Module liefen auf einem Zentralprozessor als Teil des Standard-Mainframe-Betriebssystems von IBM.

Gleichzeitig wurde in Europa aktiv an der Schaffung und Standardisierung von X.25-Netzwerken gearbeitet. Diese paketvermittelten Netzwerke waren nicht an ein bestimmtes Betriebssystem gebunden. Nachdem X.25-Protokolle 1974 den Status eines internationalen Standards erhalten hatten, begannen sie, von vielen Betriebssystemen unterstützt zu werden. Seit 1980 integriert IBM die Unterstützung für X.25-Protokolle in die SNA-Architektur und in seine Betriebssysteme.

Minicomputer-Betriebssysteme und die ersten lokalen Netzwerke

Mitte der 70er Jahre verbreiteten sich neben Großrechnern auch Minicomputer wie PDP-11, Nova und HP. Minicomputer waren die ersten, die sich die Vorteile großer integrierter Schaltkreise zunutze machten, die es ermöglichten, recht leistungsfähige Funktionen zu relativ geringen Kosten des Computers zu implementieren.

Die Architektur von Minicomputern wurde im Vergleich zu Großrechnern deutlich vereinfacht, was sich in ihren Betriebssystemen widerspiegelte. Viele der Funktionen von Mainframe-Betriebssystemen mit mehreren Programmen und mehreren Benutzern wurden angesichts der begrenzten Ressourcen von Minicomputern eingeschränkt. Die Betriebssysteme von Minicomputern wurden häufig spezialisiert, beispielsweise nur für die Echtzeitsteuerung (RT-11-Betriebssystem für PDP-11-Minicomputer) oder nur für die Unterstützung des Time-Sharing-Modus (RSX-11M für dieselben Computer). Diese Betriebssysteme waren nicht immer für mehrere Benutzer geeignet, was in vielen Fällen durch die geringen Kosten der Computer gerechtfertigt war.

Ein wichtiger Meilenstein in der Geschichte der Minicomputer und in der Geschichte der Betriebssysteme im Allgemeinen war die Entwicklung des UNIX-Betriebssystems. Dieses Betriebssystem sollte ursprünglich den Time-Sharing-Modus im PDP-7-Minicomputer unterstützen. Seit Mitte der 70er Jahre begann die weite Verbreitung des UNIX-Betriebssystems. Zu diesem Zeitpunkt war der Programmcode für UNIX zu 90 % in der Hochsprache C geschrieben. Die weit verbreitete Verwendung effektiver C-Compiler machte UNIX zu einem einzigartigen Betriebssystem für die damalige Zeit, das relativ einfach portiert werden konnte Verschiedene Arten Computers. Da dieses Betriebssystem mitgeliefert wurde Quellcodes Dann wurde es das erste offene Betriebssystem, das von normalen begeisterten Benutzern verbessert werden konnte. Obwohl UNIX ursprünglich für Minicomputer entwickelt wurde, hat es aufgrund seiner Flexibilität, Eleganz, leistungsstarken Funktionalität und Offenheit eine starke Position in allen Computerklassen erlangt: Supercomputer, Großrechner, Minicomputer, RISC-basierte Server und Workstations sowie Personalcomputer.

Die Verfügbarkeit von Minicomputern und damit ihre Verbreitung in Unternehmen waren ein starker Anreiz für die Schaffung lokaler Netzwerke. Ein Unternehmen könnte es sich leisten, mehrere Mini-Computer im selben Gebäude oder sogar im selben Raum zu haben. Natürlich bestand die Notwendigkeit, Informationen zwischen ihnen auszutauschen und teure Peripheriegeräte gemeinsam zu nutzen.

Die ersten lokalen Netzwerke wurden im einfachsten Fall mit nicht standardmäßigen Kommunikationsgeräten aufgebaut – durch direkte Verbindung serieller Computeranschlüsse. Auch die Software entsprach nicht dem Standard und wurde in Form von Benutzeranwendungen implementiert. Die erste Netzwerkanwendung für UNIX OS ist das UUCP-Programm (UNIX-to-UNIX Copy Program). erschien 1976 und begann 1978 mit der Version 7 von AT&T UNIX zu verbreiten. Mit diesem Programm konnten Sie Dateien von einem Computer auf einen anderen kopieren lokales Netzwerküber verschiedene Hardwareschnittstellen - RS-232, Stromschleife usw. und könnte darüber hinaus durcharbeiten globale Verbindungen, zum Beispiel Modem.

Entwicklung von Betriebssystemen in den 80er Jahren

Zu den wichtigsten Ereignissen dieses Jahrzehnts zählen die Entwicklung des TCP/IP-Stacks, die Entstehung des Internets, die Standardisierung lokaler Netzwerktechnologien sowie die Entstehung von Personalcomputern und Betriebssystemen dafür.

Eine funktionierende Version des TCP/IP-Protokollstapels wurde Ende der 70er Jahre erstellt. Dieser Stapel bestand aus einer Reihe allgemeiner Protokolle für eine heterogene Computerumgebung und sollte das experimentelle ARPANET-Netzwerk mit anderen „Satelliten“-Netzwerken verbinden. 1983 wurde der TCP/IP-Protokollstapel vom US-Verteidigungsministerium als Militärstandard übernommen. Der Übergang von ARPANET-Computern zum TCP/IP-Stack wurde durch dessen Implementierung für das BSD-UNIX-Betriebssystem beschleunigt. Seitdem begann die Koexistenz von UNIX und den TCP/IP-Protokollen und fast alle der zahlreichen Unix-Versionen wurden netzwerkbasiert.

Die Einführung der TCP/IP-Protokolle in das ARPANET verlieh diesem Netzwerk alle Hauptmerkmale, die das moderne Internet auszeichnen. 1983 wurde das ARPANET in zwei Teile geteilt: MILNET, das das US-Militär unterstützt, und das neue ARPANET. Um das zusammengesetzte Netzwerk ARPANET und MILNET zu bezeichnen, wurde der Name Internet verwendet, der sich im Laufe der Zeit (und mit der leichten Hand der Microsoft-Lokalisierungsprogramme) ins Internet verwandelte. Das Internet hat sich zu einem hervorragenden Testgelände für viele Netzwerkbetriebssysteme entwickelt und ermöglicht es, die Möglichkeiten ihrer Interaktion, den Grad der Skalierbarkeit und die Fähigkeit, unter extremen Belastungen durch Hunderte und Tausende von Benutzern zu arbeiten, unter realen Bedingungen zu testen. Auch der TCP/IP-Protokollstapel hatte ein beneidenswertes Schicksal. Herstellerunabhängigkeit, Flexibilität und Effizienz, die durch den erfolgreichen Betrieb im Internet nachgewiesen wurden, sowie offene und zugängliche Standards haben TCP/IP-Protokolle nicht nur zum Haupttransportmechanismus des Internets, sondern auch zum Hauptstapel der meisten Netzwerkbetriebssysteme gemacht.

Das gesamte Jahrzehnt war geprägt von der ständigen Entstehung neuer, immer fortschrittlicherer Versionen des UNIX-Betriebssystems. Darunter waren proprietäre Versionen von UNIX: SunOS, HP-UX, Irix, AIX und viele andere, bei denen Computerhersteller den Kernel-Code angepasst haben und Systemdienstprogramme für Ihre Ausrüstung. Die Vielfalt der Versionen führte zu Kompatibilitätsproblemen, die verschiedene Organisationen regelmäßig zu lösen versuchten. Infolgedessen wurden die POSIX- und XPG-Standards übernommen, um Betriebssystemschnittstellen für Anwendungen zu definieren, und eine spezielle Abteilung von AT&T veröffentlichte mehrere Versionen von UNIX System III und UNIX System V, die darauf ausgelegt waren, Entwickler auf der Kernel-Code-Ebene zu konsolidieren.

Der Beginn der 80er Jahre ist mit einem weiteren bedeutenden Ereignis für die Geschichte der Betriebssysteme verbunden – dem Aufkommen von Personal Computern. Aus architektonischer Sicht unterschieden sich Personalcomputer nicht von der Klasse der Minicomputer wie dem PDP-11, ihre Kosten waren jedoch deutlich niedriger. Wenn ein Mini-Computer es einer Abteilung eines Unternehmens oder einer Universität ermöglichte, über einen eigenen Computer zu verfügen, dann gab ein Personal Computer einer Einzelperson diese Möglichkeit. Computer wurden in großem Umfang von Laien genutzt, was die Entwicklung „freundlicher“ Software erforderte und die Bereitstellung dieser „freundlichen“ Funktionen in die direkte Verantwortung der Betriebssysteme fiel. Personalcomputer dienten auch als starker Katalysator für das schnelle Wachstum lokaler Netzwerke und schufen dafür eine hervorragende materielle Grundlage in Form von Dutzenden und Hunderten von Computern, die einem Unternehmen gehörten und in einem Gebäude untergebracht waren. Daher ist die Unterstützung von Netzwerkfunktionen zu einer Voraussetzung für Personalcomputer-Betriebssysteme geworden.

Sowohl eine benutzerfreundliche Oberfläche als auch Netzwerkfunktionen waren jedoch nicht sofort in PC-Betriebssystemen enthalten. Der ersten Version des beliebtesten Betriebssystems in der frühen Entwicklungsphase von Personalcomputern – Microsofts MS-DOS – fehlten diese Fähigkeiten. Es war ein Einzelprogramm-Einzelbenutzer-Betriebssystem mit einer Schnittstelle Befehlszeile, kann von einer Diskette gestartet werden. Die Hauptaufgaben für sie waren die Verwaltung von Dateien auf flexiblen und Festplatte in einem UNIX-ähnlichen hierarchischen Dateisystem sowie sequentielles Starten von Programmen. MS-DOS war nicht vor Benutzerprogrammen geschützt, da der Intel 8088-Prozessor den privilegierten Modus nicht unterstützte. Die Entwickler der ersten Personalcomputer glaubten, dass es bei individueller Nutzung des Computers und begrenzten Hardwarefunktionen keinen Sinn machte, Multiprogramming zu unterstützen, sodass der Prozessor keinen privilegierten Modus und andere Mechanismen zur Unterstützung von Multiprogramming-Systemen bereitstellte.

Die fehlenden Funktionen für MS-DOS und ähnliche Betriebssysteme wurden durch externe Programme kompensiert, die dem Benutzer komfortable Funktionen zur Verfügung stellten GUI(z. B. Norton Commander) oder differenzierte Datenträgerverwaltungstools (z. B. PC Tools). Den größten Einfluss auf die Entwicklung von Software für Personalcomputer hatte die Windows-Betriebssystemumgebung von Microsoft, eine Ergänzung zu MS-DOS.

Netzwerkfunktionen wurden ebenfalls hauptsächlich durch Netzwerk-Shells implementiert, die auf dem Betriebssystem ausgeführt wurden. Bei der Arbeit in einem Netzwerk ist es immer notwendig, den Mehrbenutzermodus zu unterstützen, bei dem ein Benutzer interaktiv ist und der Rest über das Netzwerk Zugriff auf Computerressourcen erhält. In diesem Fall benötigt das Betriebssystem zumindest eine gewisse minimale funktionale Unterstützung für den Mehrbenutzermodus. Die Geschichte der MS-DOS-Netzwerktools begann mit Version 3.1. Diese Version von MS-DOS fügte dem Dateisystem die erforderlichen Funktionen zum Sperren von Dateien und Datensätzen hinzu, sodass mehr als ein Benutzer auf eine Datei zugreifen konnte. Mithilfe dieser Funktionen könnten Netzwerk-Shells die gemeinsame Nutzung von Dateien zwischen Netzwerkbenutzern ermöglichen.

Mit der Veröffentlichung von MS-DOS 3.1 im Jahr 1984 veröffentlichte Microsoft auch ein Produkt namens Microsoft Networks, das allgemein als MS-NET bezeichnet wird. Einige der in MS-NET inhärenten Konzepte, wie die Einführung grundlegender Netzwerkkomponenten – eines Redirectors und eines Netzwerkservers – in die Struktur, wurden erfolgreich auf spätere Microsoft-Netzwerkprodukte übertragen: LAN Manager, Windows für Workgroups und dann auf Windows NT.

Auch andere Unternehmen stellten Netzwerk-Shells für Personalcomputer her: IBM, Artisoft, Performance Technology und andere.

Novell wählte einen anderen Weg. Man setzte zunächst auf die Entwicklung eines Betriebssystems mit integrierten Netzwerkfunktionen und erzielte auf diesem Weg herausragende Erfolge. Seine NetWare-Netzwerkbetriebssysteme sind seit langem zum Standard für Leistung, Zuverlässigkeit und Sicherheit für lokale Netzwerke geworden.

Novells erstes Netzwerkbetriebssystem kam 1983 auf den Markt und hieß OS-Net. Dieses Betriebssystem war für Netzwerke mit Sterntopologie gedacht, deren zentrales Element ein spezialisierter Computer auf Basis des Mikroprozessors Motorola 68000 war. Wenig später, als IBM die PC XT-Personalcomputer herausbrachte, entwickelte Novell ein neues Produkt – NetWare 86. Entwickelt für die Architektur der Intel 8088-Mikroprozessorfamilie.

Ab der allerersten Version des NetWare-Betriebssystems wurde es als Betriebssystem für einen zentralen lokalen Netzwerkserver verbreitet, der aufgrund seiner Spezialisierung auf die Ausführung von Dateiserverfunktionen die höchstmögliche Geschwindigkeit für diese Computerklasse bietet Fernzugriff auf Dateien und erhöhte Datensicherheit. Benutzer von Novell NetWare-Netzwerken zahlen einen Preis für die hohe Leistung: Der dedizierte Dateiserver kann nicht als Workstation verwendet werden und sein spezialisiertes Betriebssystem verfügt über eine sehr spezifische An(API), die von den Anwendungsentwicklern besondere Kenntnisse, Fachkenntnisse und erhebliche Anstrengungen erfordert .

Im Gegensatz zu Novell entwickelten die meisten anderen Unternehmen Netzwerktools für Personalcomputer innerhalb von Betriebssystemen mit einer universellen API-Schnittstelle, also Betriebssystemen allgemeiner Zweck. Mit der Entwicklung von Personalcomputer-Hardwareplattformen begannen solche Systeme zunehmend Merkmale von Minicomputer-Betriebssystemen zu übernehmen.

Als Ergebnis der gemeinsamen Bemühungen von Microsoft und IBM erschien 1987 das erste Multitasking-Betriebssystem für Personalcomputer mit dem Intel 80286-Prozessor, das die Fähigkeiten des geschützten Modus voll ausnutzt – OS/2. Dieses System war gut durchdacht. Es unterstützte präemptives Multitasking, virtuellen Speicher, eine grafische Benutzeroberfläche (nicht mehr seit der ersten Version) und eine virtuelle Maschine zum Ausführen von DOS-Anwendungen. Tatsächlich ging es mit seinem Konzept der Parallelisierung einzelner Prozesse, dem sogenannten Multithreading, über einfaches Multitasking hinaus.

OS/2 mit seinen erweiterten Multitasking-Funktionen und Dateisystem HPFS mit integrierter Mehrbenutzersicherheit erwies sich als gute Plattform für den Aufbau lokaler Netzwerke von Personalcomputern. Die am weitesten verbreiteten Netzwerk-Shells sind LAN Manager von Microsoft und LAN Server von IBM, die von diesen Unternehmen auf der Grundlage des gleichen Basiscodes entwickelt wurden. Die Leistung dieser Granaten war unterlegen Dateiserver NetWare verbrauchte mehr Hardware-Ressourcen, hatte jedoch wichtige Vorteile: Erstens konnten alle für OS/2, MS-DOS und Windows entwickelten Programme auf dem Server ausgeführt werden, und zweitens konnte der Computer, auf dem sie ausgeführt wurden, als Workstation verwendet werden.

Netzwerkentwicklungen von Microsoft und IBM führten zur Entstehung von NetBIOS – einem sehr beliebten Transportprotokoll und gleichzeitig Anfür lokale Netzwerke, das in fast allen Netzwerkbetriebssystemen für Personalcomputer verwendet wird. Dieses Protokoll wird auch heute noch zum Aufbau kleiner lokaler Netzwerke verwendet.

Das wenig erfolgreiche Marktgeschick von OS/2 erlaubte den LAN-Manager- und LAN-Server-Systemen zwar nicht, nennenswerte Marktanteile zu erobern, wohl aber deren Funktionsprinzipien Netzwerksysteme Ihre Verkörperung fand größtenteils im erfolgreicheren Betriebssystem der 90er Jahre – Microsoft Windows NT, das eingebaute Netzwerkkomponenten enthält, die teilweise das Präfix LM tragen – vom LAN Manager.

In den 80er Jahren wurden die wichtigsten Standards für Kommunikationstechnologien für lokale Netzwerke übernommen: 1980 – Ethernet, 1985 – Token Ring, Ende der 80er Jahre – FDDI. Dadurch war es möglich, die Kompatibilität von Netzwerkbetriebssystemen auf niedrigeren Ebenen sicherzustellen und die Betriebssystemschnittstelle mit Netzwerkadaptertreibern zu standardisieren.

Für Personalcomputer wurden nicht nur speziell für sie entwickelte Betriebssysteme wie MS-DOS, NetWare und OS/2 verwendet, sondern auch bestehende Betriebssysteme angepasst. Aussehen Intel-Prozessoren 80286 und insbesondere 80386 mit Multiprogramming-Unterstützung ermöglichten die Übertragung des UNIX-Betriebssystems auf die Personalcomputerplattform. Das bekannteste System dieser Art war die Santa Cruz Operation-Version von UNIX (SCO UNIX).

Merkmale des aktuellen Entwicklungsstandes von Betriebssystemen

In den 90er Jahren wurden fast alle Betriebssysteme, die eine herausragende Stellung auf dem Markt einnahmen, netzwerkbasiert. Netzwerkfunktionen sind heute in den Betriebssystemkernel integriert und bilden dessen integralen Bestandteil. Betriebssysteme haben Tools erhalten, um mit allen wichtigen lokalen Technologien (Ethernet, Schnelles Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) und globale (X.25, Frame Relay, ISDN, ATM) Netzwerke sowie Tools zum Erstellen zusammengesetzter Netzwerke (IP, IPX, AppleTalk, RIP, OSPF, NLSP). Betriebssysteme nutzen Multiplexing-Funktionen über mehrere Protokollstapel hinweg, sodass Computer die gleichzeitige Vernetzung mit heterogenen Clients und Servern unterstützen können. Es sind spezielle Betriebssysteme erschienen, die ausschließlich für die Durchführung von Kommunikationsaufgaben konzipiert sind. Zum Beispiel Netzwerkbetrieb iOS-System Cisco Systems, das in Routern arbeitet, organisiert die Ausführung einer Reihe von Programmen im Multiprogrammmodus, von denen jedes eines der Kommunikationsprotokolle implementiert.

In der zweiten Hälfte der 90er Jahre haben alle Betriebssystemhersteller ihre Unterstützung für Internet-Tools stark ausgeweitet (mit Ausnahme der UNIX-Systemhersteller, bei denen diese Unterstützung schon immer von Bedeutung war). Zusätzlich zum TCP/IP-Stack selbst enthielt das Paket Dienstprogramme, die beliebte Internetdienste wie Telnet, FTP, DNS und Web implementieren. Der Einfluss des Internets zeigte sich auch darin, dass sich der Computer von einem reinen Computergerät zu einem Kommunikationsmittel mit fortschrittlichen Rechenfähigkeiten gewandelt hat.

Im letzten Jahrzehnt wurde den Betriebssystemen von Unternehmensnetzwerken besondere Aufmerksamkeit gewidmet. Ihre Weiterentwicklung stellt eine der wichtigsten Aufgaben der absehbaren Zukunft dar. Ein Unternehmensbetriebssystem zeichnet sich durch seine Fähigkeit aus, in großen Netzwerken, die für große Unternehmen mit Niederlassungen in Dutzenden von Städten und möglicherweise in verschiedenen Ländern typisch sind, gut und zuverlässig zu funktionieren. Solche Netzwerke sind organisch inhärent hochgradig Heterogenität von Software und Hardware, daher muss das Unternehmensbetriebssystem nahtlos mit Betriebssystemen unterschiedlicher Art interagieren und auf unterschiedlichen Hardwareplattformen arbeiten. Mittlerweile sind die drei Spitzenreiter in der Klasse der Unternehmens-Betriebssysteme klar definiert: Novell NetWare 4.x und 5.0, Microsoft Windows NT 4.0 und Windows 2000 sowie UNIX-Systeme verschiedener Hersteller von Hardwareplattformen.

Für ein Unternehmensbetriebssystem ist es sehr wichtig, über zentralisierte Verwaltungs- und Verwaltungstools zu verfügen, mit denen Sie Konten von Zehntausenden Benutzern, Computern, Kommunikationsgeräten und Softwaremodulen im Unternehmensnetzwerk in einer einzigen Datenbank speichern können. In modernen Betriebssystemen basieren zentralisierte Verwaltungstools normalerweise auf einem einzigen Helpdesk. Die erste erfolgreiche Implementierung eines unternehmensweiten Helpdesks war das StreetTalk-System von Banyan. Bisher hat der NDS-Hilfedienst von Novell die größte Anerkennung erhalten, der erstmals 1993 für die erste Unternehmensversion von NetWare 4.O veröffentlicht wurde. Die Rolle eines zentralisierten Helpdesks ist so groß, dass die Eignung eines Betriebssystems für die Arbeit auf Unternehmensebene anhand der Qualität des Helpdesks beurteilt wird. Die lange Verzögerung bei der Veröffentlichung von Windows NT 2000 war größtenteils auf die Schaffung eines skalierbaren Helpdesks für dieses Betriebssystem zurückzuführen Active Directory, ohne die es für diese Betriebssystemfamilie schwierig wäre, den Titel eines echten Unternehmensbetriebssystems zu beanspruchen.

Die Schaffung eines multifunktionalen, skalierbaren Helpdesks ist eine strategische Richtung in der Weiterentwicklung des Betriebssystems. Die weitere Entwicklung des Internets hängt maßgeblich vom Erfolg dieser Richtung ab. Ein solcher Dienst wird benötigt, um das Internet in ein vorhersehbares und kontrollierbares System zu verwandeln, um beispielsweise die erforderliche Dienstqualität für den Benutzerverkehr sicherzustellen, große verteilte Anwendungen zu unterstützen, ein effizientes Mailsystem aufzubauen usw.

Im gegenwärtigen Entwicklungsstadium von Betriebssystemen sind Sicherheitstools in den Vordergrund gerückt. Dies ist auf den gestiegenen Wert der von Computern verarbeiteten Informationen sowie auf das erhöhte Maß an Bedrohungen zurückzuführen, die bei der Datenübertragung über Netzwerke, insbesondere öffentliche Netzwerke wie das Internet, bestehen. Viele Betriebssysteme haben heute Informationssicherheitstools entwickelt, die auf Datenverschlüsselung, Authentifizierung und Autorisierung basieren.

Moderne Betriebssysteme sind Multiplattform-Betriebssysteme, also die Möglichkeit, auf völlig unterschiedlichen Computertypen zu arbeiten. Viele Betriebssysteme verfügen über spezielle Versionen zur Unterstützung von Clusterarchitekturen, die hohe Leistung und Fehlertoleranz bieten. Die Ausnahme bildet bisher das NetWare-Betriebssystem, dessen Versionen alle für die Intel-Plattform entwickelt wurden, und die Implementierung von NetWare-Funktionen in Form einer Shell für andere Betriebssysteme, beispielsweise NetWare für AIX, war nicht erfolgreich.

In den letzten Jahren hat sich der langfristige Trend, den Komfort der menschlichen Interaktion mit einem Computer zu erhöhen, weiterentwickelt. Die menschliche Leistung wird zum Hauptfaktor für die Effizienz des gesamten Computersystems. Menschliche Anstrengungen sollten nicht auf die Anpassung der Parameter des Rechenprozesses verschwendet werden, wie dies bei den Betriebssystemen früherer Generationen der Fall war. Beispielsweise musste in Mainframe-Stapelverarbeitungssystemen jeder Benutzer eine Job-Steuerungssprache verwenden, um eine große Anzahl von Parametern zu definieren, die sich auf die Organisation von Rechenprozessen im Computer beziehen. So bot die JCL-Jobsteuerungssprache für das OS/360-System dem Benutzer die Möglichkeit, mehr als 40 Parameter zu definieren, darunter Jobpriorität, Hauptspeicheranforderungen, maximale Jobausführungszeit, eine Liste der verwendeten Eingabe-/Ausgabegeräte und deren Betriebsarten.

Ein modernes Betriebssystem übernimmt die Auswahl der Betriebsumgebungsparameter und nutzt dazu verschiedene adaptive Algorithmen. Zeitüberschreitungen in Kommunikationsprotokollen werden beispielsweise häufig anhand der Netzwerkbedingungen bestimmt. Verteilung Arbeitsspeicher zwischen Prozessen erfolgt automatisch mithilfe virtueller Speichermechanismen, abhängig von der Aktivität dieser Prozesse und Informationen über die Häufigkeit ihrer Nutzung einer bestimmten Seite. Sofortige Prozessprioritäten werden dynamisch abhängig vom Verlauf bestimmt, einschließlich beispielsweise der Zeit, die der Prozess in der Warteschlange verbracht hat, dem Prozentsatz der zugewiesenen Zeitscheibe, der Intensität der E/A usw. Bei den meisten Betriebssystemen sogar während des Installationsprozesses bieten einen Standardparameterauswahlmodus, der zwar nicht optimale, aber immer akzeptable Qualität des Systembetriebs garantiert.

Der Komfort der interaktiven Arbeit mit einem Computer wird ständig verbessert, indem in das Betriebssystem entwickelte grafische Schnittstellen integriert werden, die neben Grafiken auch Ton und Video verwenden. Dies ist besonders wichtig, um einen Computer zum Terminal für ein neues öffentliches Netzwerk zu machen, das nach und nach zum Internet wird, da das Terminal für den Massennutzer fast so verständlich und komfortabel sein sollte wie ein Telefon. Die Benutzeroberfläche des Betriebssystems wird immer intelligenter, sie steuert das Handeln des Menschen in typischen Situationen und nimmt ihm routinemäßige Entscheidungen ab.

Der Grad an Benutzerfreundlichkeit von Ressourcen, den isolierte Computerbetriebssysteme heute Benutzern, Administratoren und Anwendungsentwicklern bieten, ist für Netzwerkbetriebssysteme nur eine verlockende Aussicht. Während Netzwerkbenutzer und Administratoren viel Zeit damit verbringen, herauszufinden, wo sich eine bestimmte Ressource befindet, müssen Entwickler viel Zeit damit verbringen, herauszufinden, wo sich eine bestimmte Ressource befindet Netzwerkanwendungen Investieren Sie viel Aufwand in die Bestimmung des Standorts von Daten und Softwaremodulen im Netzwerk. Betriebssysteme der Zukunft müssen ein hohes Maß an Transparenz der Netzwerkressourcen bieten und die Aufgabe übernehmen, verteiltes Rechnen zu organisieren und das Netzwerk in ein Netzwerk zu verwandeln virtueller Computer. Genau das meinen die Sun-Spezialisten mit dem lakonischen Slogan „Das Netzwerk ist ein Computer“, doch bis zur Umsetzung des Slogans in die Realität ist es für Betriebssystementwickler noch ein weiter Weg.

  • Die Geschichte des Betriebssystems reicht etwa ein halbes Jahrhundert zurück. Sie wurde und wird maßgeblich von der Entwicklung der Elementbasis und der Rechenausrüstung bestimmt.
  • Die ersten digitalen Computer, die Anfang der 40er Jahre auf den Markt kamen, arbeiteten ohne Betriebssysteme; alle Aufgaben zur Organisation des Rechenprozesses wurden von jedem Programmierer manuell über das Bedienfeld gelöst.
  • Der Prototyp moderner Betriebssysteme waren Mitte der 50er Jahre Monitorsysteme, die die Aktionen des Bedieners zur Erledigung eines Aufgabenpakets automatisierten.
  • In den Jahren 1965–1975 ebnete der Übergang zu integrierten Schaltkreisen den Weg für die Entstehung der nächsten Computergeneration, deren prominentes Beispiel der IBM/360 ist. In dieser Zeit wurden fast alle Grundkonzepte moderner Betriebssysteme implementiert: Multiprogramming, Multiprocessing, Multi-Terminal-Modus, virtueller Speicher, Dateisysteme, Zugriffskontrolle und Vernetzung.
  • Die Implementierung von Multiprogramming erforderte die Einführung sehr wichtiger Änderungen an der Computerhardware. Die Prozessoren verfügen nun über privilegierte und benutzerdefinierte Betriebsmodi, spezielle Register zum schnellen Wechsel von einer Aufgabe zur anderen, Mittel zum Schutz von Speicherbereichen sowie ein entwickeltes Interrupt-System.
  • In den späten 60er Jahren begannen die Arbeiten zur Schaffung des globalen ARPANET-Netzwerks, das den Ausgangspunkt für das Internet bildete – ein globales öffentliches Netzwerk, das zum Testgelände für viele Netzwerkbetriebssysteme wurde, das es ermöglichte, das unter realen Bedingungen zu testen Möglichkeiten ihres Zusammenspiels, der Grad der Skalierbarkeit und die Fähigkeit, unter extremen Bedingungen zu arbeiten.
  • Mitte der 70er Jahre verbreiteten sich Minicomputer. Die Architektur von Minicomputern wurde im Vergleich zu Großrechnern deutlich vereinfacht, was sich auch in ihrem Betriebssystem widerspiegelte. Die Kosteneffizienz und Verfügbarkeit von Minicomputern war ein starker Anreiz für die Schaffung lokaler Netzwerke. Das Unternehmen, das sich nun mehrere Minicomputer leisten konnte, musste den Datenaustausch und teure Peripheriegeräte organisieren. Die ersten lokalen Netzwerke wurden mit nicht standardmäßiger Kommunikationsausrüstung und nicht standardmäßiger Software aufgebaut.
  • Ab Mitte der 70er Jahre begann die weite Verbreitung von UNIX, einem damals einzigartigen Betriebssystem, das relativ leicht auf verschiedene Computertypen portierbar war. Obwohl UNIX ursprünglich für Minicomputer entwickelt wurde, hat es aufgrund seiner Flexibilität, Eleganz, leistungsstarken Funktionalität und Offenheit eine starke Position in allen Computerklassen erlangt.
  • Ende der 70er Jahre wurde eine funktionierende Version des TCP/IP-Protokollstapels erstellt. 1983 wurde der TCP/IP-Protokollstapel standardisiert. Herstellerunabhängigkeit, Flexibilität und Effizienz, die sich im Internet bewährt haben, haben TCP/IP-Protokolle nicht nur zum Haupttransportmechanismus des Internets, sondern auch zum Hauptstapel der meisten Netzwerkbetriebssysteme gemacht.
  • Der Beginn der 80er Jahre ist mit einem bedeutenden Ereignis für die Geschichte der Betriebssysteme verbunden – dem Aufkommen von Personalcomputern, die als starker Katalysator für das schnelle Wachstum lokaler Netzwerke dienten und in Form von Zehnern eine hervorragende materielle Grundlage dafür schufen und Hunderte von Computern im selben Gebäude. Daher ist die Unterstützung von Netzwerkfunktionen zu einer Voraussetzung für Personalcomputer-Betriebssysteme geworden.
  • In den 80er Jahren wurden die wichtigsten Standards für Kommunikationstechnologien für lokale Netzwerke übernommen: 1980 – Ethernet, 1985 – Token Ring, Ende der 80er Jahre – FDDI. Dadurch war es möglich, die Kompatibilität von Netzwerkbetriebssystemen auf niedrigeren Ebenen sicherzustellen und die Betriebssystemschnittstelle mit Netzwerkadaptertreibern zu standardisieren.
  • Zu Beginn der 90er Jahre waren fast alle Betriebssysteme vernetzt und in der Lage, die Arbeit mit heterogenen Clients und Servern zu unterstützen. Es sind spezielle Netzwerkbetriebssysteme erschienen, die ausschließlich für die Durchführung von Kommunikationsaufgaben konzipiert sind, beispielsweise das IOS-System von Cisco Systems, das in Routern läuft.
  • Besonderes Augenmerk wurde im letzten Jahrzehnt auf Betriebssysteme für Unternehmensnetzwerke gelegt, die sich durch ein hohes Maß an Skalierbarkeit und Unterstützung auszeichnen Vernetzung, entwickelte Sicherheitstools, die Fähigkeit, in einer heterogenen Umgebung zu arbeiten, die Verfügbarkeit zentralisierter Verwaltungs- und Verwaltungstools.

Aufgaben und Übungen

1. Welche Ereignisse in der Entwicklung der technischen Basis von Computern wurden zu Meilensteinen in der Geschichte der Betriebssysteme?

2. Was war der grundlegende Unterschied zwischen den ersten Stapelverarbeitungsmonitoren und den damals bereits existierenden Systemverarbeitungsprogrammen – Übersetzern, Ladern, Linkern, Prozedurbibliotheken?

3. Kann ein Computer ohne Betriebssystem funktionieren?

4. Wie hat sich die Einstellung zum Konzept des Multiprogrammings im Laufe der Geschichte des Betriebssystems entwickelt?

5. Welchen Einfluss hatte das Internet auf die Entwicklung des Betriebssystems?

6. Was erklärt den besonderen Platz des UNIX-Betriebssystems in der Geschichte der Betriebssysteme?

7. Beschreiben Sie die Geschichte der Netzwerkbetriebssysteme.

8. Was sind die aktuellen Trends in der Betriebssystementwicklung?


KAPITEL 1


Entwicklung von Betriebssystemen

Die Geschichte eines jeden Wissenschafts- oder Technologiezweigs ermöglicht es uns, nicht nur die natürliche Neugier zu befriedigen, sondern auch das Wesen der wichtigsten Errungenschaften dieser Branche besser zu verstehen, bestehende Trends zu verstehen und die Aussichten bestimmter Entwicklungsbereiche richtig einzuschätzen. In den fast einem halben Jahrhundert ihres Bestehens haben Betriebssysteme einen schwierigen Weg voller wichtiger Ereignisse durchlaufen. Die Entwicklung von Betriebssystemen wurde stark von Erfolgen bei der Verbesserung der Elementbasis und der Computerausrüstung beeinflusst. Daher sind viele Phasen der Betriebssystementwicklung eng mit der Entstehung neuer Arten von Hardwareplattformen wie Minicomputern oder Personalcomputern verbunden. Betriebssysteme haben aufgrund der neuen Rolle von Computern in lokalen und globalen Netzwerken eine große Entwicklung erfahren. Der wichtigste Faktor bei der Entwicklung des Betriebssystems war das Internet. Da dieses Netzwerk die Merkmale eines universellen Massenkommunikationsmittels erhält, werden Betriebssysteme einfacher und bequemer zu verwenden, verfügen über entwickelte Mittel zur Unterstützung multimedialer Informationen und sind mit zuverlässigen Sicherheitsmaßnahmen ausgestattet.

Die Entstehung der ersten Betriebssysteme

Die Idee eines Computers wurde Mitte des 19. Jahrhunderts vom englischen Mathematiker Charles Babage vorgeschlagen. Seine mechanische „Analytical Engine“ konnte nie richtig funktionieren, da die damalige Technik nicht den Anforderungen genügte, um die notwendigen feinmechanischen Teile herzustellen. Von einem Betriebssystem für diesen „Rechner“ war natürlich keine Rede.

Die eigentliche Geburtsstunde des digitalen Rechnens erfolgte kurz nach dem Ende des Zweiten Weltkriegs. Mitte der 40er Jahre entstanden die ersten Röhrenrechengeräte. Zu dieser Zeit war derselbe Personenkreis an der Konstruktion, dem Betrieb und der Programmierung des Computers beteiligt. Es handelte sich eher um eine Forschungsarbeit auf dem Gebiet der Computertechnologie als um den Einsatz von Computern als Werkzeug zur Lösung praktischer Probleme aus anderen Anwendungsbereichen. Die Programmierung erfolgte ausschließlich in Maschinensprache. Es gab keine andere Systemsoftware als Bibliotheken mit Mathematik- und Hilfsprogrammen, mit denen der Programmierer nicht jedes Mal Code schreiben musste, um den Wert einer mathematischen Funktion zu berechnen oder ein Standard-Eingabe-/Ausgabegerät zu steuern. Es gab noch keine Betriebssysteme; alle Aufgaben zur Organisation des Rechenprozesses wurden von jedem Programmierer manuell über das Bedienfeld gelöst, bei dem es sich um ein primitives Eingabe-Ausgabe-Gerät bestehend aus Tasten, Schaltern und Anzeigen handelte. Seit Mitte der 50er Jahre begann eine neue Periode in der Entwicklung der Computertechnologie, verbunden mit der Entstehung einer neuen technischen Basis – Halbleiterelementen. Die Leistung der Prozessoren ist gestiegen und die Menge an RAM und externem Speicher hat zugenommen. Computer wurden zuverlässiger, sie konnten nun so lange ununterbrochen arbeiten, dass man ihnen die Ausführung wirklich praktisch wichtiger Aufgaben anvertrauen konnte.

Neben der Verbesserung der Ausstattung waren auch spürbare Fortschritte im Bereich der Automatisierung der Programmierung und Organisation der Rechenarbeit zu beobachten. In diesen Jahren erschienen die ersten algorithmischen Sprachen und so wurde den Bibliotheken mathematischer Routinen und Dienstprogramme eine neue Art von Systemsoftware hinzugefügt – Übersetzer.

Die Ausführung jedes Programms umfasste eine große Anzahl von Hilfsarbeiten: Laden des erforderlichen Übersetzers (ALGOL, FORTRAN, COBOL usw.), Starten des Übersetzers und Erhalten des resultierenden Programms im Maschinencode, Verknüpfen des Programms mit Bibliotheksunterprogrammen, Laden das Programm in den RAM kopieren, das Programm starten und die Ergebnisse an ein Peripheriegerät ausgeben. Um die effektive gemeinsame Nutzung von Übersetzern, Bibliotheksprogrammen und Ladern zu organisieren, wurden in das Personal vieler Rechenzentren die Positionen von Operatoren eingeführt, die die Arbeit der Organisation des Rechenprozesses für alle Benutzer dieses Zentrums professionell erledigten.

Aber egal wie schnell und zuverlässig die Bediener arbeiteten, sie konnten in der Produktivität nicht mit der Arbeit von Computergeräten mithalten. Die meiste Zeit war der Prozessor im Leerlauf und wartete darauf, dass der Bediener die nächste Aufgabe startet. Und da der Prozessor ein sehr teures Gerät war, bedeutete seine geringe Effizienz eine geringe Effizienz bei der Nutzung des Computers als Ganzes. Um dieses Problem zu lösen, wurden die ersten Stapelverarbeitungssysteme entwickelt, die die gesamte Abfolge von Bedieneraktionen zur Organisation des Rechenprozesses automatisierten. Frühe Stapelverarbeitungssysteme waren der Prototyp moderner Betriebssysteme; sie wurden die ersten Systemprogramme, die nicht für die Datenverarbeitung, sondern für die Verwaltung des Rechenprozesses konzipiert waren.

Bei der Implementierung von Stapelverarbeitungssystemen wurde eine formalisierte Jobsteuerungssprache entwickelt, mit deren Hilfe der Programmierer dem System und dem Bediener mitteilte, welche Aktionen und in welcher Reihenfolge er am Computer ausführen wollte. Ein typischer Satz von Anweisungen umfasste normalerweise ein Zeichen für den Beginn eines separaten Jobs, einen Aufruf an den Übersetzer, einen Aufruf an den Lader sowie Zeichen für den Anfang und das Ende der Quelldaten.

Der Bediener stellte ein Paket von Aufgaben zusammen, die anschließend ohne sein Zutun nacheinander zur Ausführung durch das Steuerungsprogramm – den Monitor – gestartet wurden. Darüber hinaus war der Monitor in der Lage, die häufigsten Notfallsituationen, die beim Betrieb von Benutzerprogrammen auftreten, wie z. B. fehlende Quelldaten, Registerüberlauf, Division durch Null, Zugriff auf einen nicht vorhandenen Speicherbereich usw., selbstständig zu verarbeiten. Das Paket war normalerweise ein Satz Lochkarten, aber um die Arbeit zu beschleunigen, konnte er auf ein bequemeres und geräumigeres Medium übertragen werden, beispielsweise auf ein Magnetband oder eine Magnetplatte. Das Monitorprogramm selbst wurde in den ersten Implementierungen auch auf Lochkarten oder Lochstreifen und in späteren Implementierungen auf Magnetband und Magnetplatten gespeichert.

Frühe Stapelverarbeitungssysteme reduzierten den Zeitaufwand für Hilfsaktivitäten zur Organisation des Rechenprozesses erheblich, was einen weiteren Schritt zur Verbesserung der Effizienz der Computernutzung bedeutet. Allerdings wurde den Anwenderprogrammierern gleichzeitig der direkte Zugriff auf den Computer verwehrt, was die Effizienz ihrer Arbeit verringerte – so dass jede Korrektur viel mehr Zeit in Anspruch nahm als bei der interaktiven Arbeit an der Konsole der Maschine.

Das Aufkommen von Multiprogramm-Betriebssystemen für Großrechner

Der nächste wichtige Zeitraum in der Entwicklung von Betriebssystemen bezieht sich auf Jahre.

Zu dieser Zeit vollzog sich in der technischen Basis von Computern ein Übergang von einzelnen Halbleiterelementen wie Transistoren zu integrierten Schaltkreisen, was den Weg für die Entstehung der nächsten Computergeneration ebnete. Die große Funktionalität integrierter Schaltkreise hat es ermöglicht, komplexe Computerarchitekturen wie den IBM/360 in die Praxis umzusetzen.

In dieser Zeit wurden fast alle grundlegenden Mechanismen moderner Betriebssysteme implementiert: Multiprogramming, Multiprocessing, Unterstützung des Multi-Terminal-Mehrbenutzermodus, virtueller Speicher, Dateisysteme, Zugriffskontrolle und Netzwerk. In diesen Jahren begann die Systemprogrammierung zu florieren. Von einem Zweig der angewandten Mathematik, der für einen engen Kreis von Spezialisten von Interesse ist, entwickelt sich die Systemprogrammierung zu einem Industriezweig, der einen direkten Einfluss auf die praktischen Aktivitäten von Millionen von Menschen hat. Das revolutionäre Ereignis dieser Phase war die industrielle Umsetzung des Multiprogrammings. (Beachten Sie, dass diese Methode zur Organisation von Berechnungen in Form eines Konzepts und experimenteller Systeme seit etwa zehn Jahren existiert.) Angesichts der stark gestiegenen Fähigkeiten eines Computers zur Verarbeitung und Speicherung von Daten erwies es sich als schwierig, jeweils nur ein Programm auszuführen äußerst ineffizient sein. Die Lösung war Multiprogramming – eine Methode zur Organisation eines Rechenprozesses, bei der mehrere Programme gleichzeitig im Speicher des Computers abgelegt und abwechselnd auf einem Prozessor ausgeführt werden. Diese Verbesserungen verbesserten die Effizienz des Computersystems erheblich: Der Computer konnte nun fast ständig genutzt werden, statt wie zuvor nur für die halbe Betriebszeit des Computers.

Multiprogramming wurde in zwei Versionen implementiert – in Batch-Verarbeitungs- und Time-Sharing-Systemen.

Stapelverarbeitungssysteme mit mehreren Programmen zielten ebenso wie ihre Vorgänger mit Einzelprogrammen darauf ab, eine maximale Auslastung der Computerhardware sicherzustellen, lösten dieses Problem jedoch effizienter. Im Multiprogramm-Batch-Modus blieb der Prozessor nicht im Leerlauf, während ein Programm eine E/A-Operation ausführte (wie es bei der sequenziellen Programmausführung in frühen Batch-Verarbeitungssystemen der Fall war), sondern wechselte zu einem anderen Programm, das zur Ausführung bereit war. Dadurch wurde eine gleichmäßige Belastung aller Computergeräte erreicht und somit die Anzahl der pro Zeiteinheit gelösten Aufgaben erhöht. In Multiprogramming-Stapelverarbeitungssystemen war der Benutzer immer noch nicht in der Lage, interaktiv mit seinen Programmen zu interagieren. Um den Benutzern zumindest teilweise das Gefühl der direkten Interaktion mit dem Computer zurückzugeben, wurde eine andere Version von Multiprogrammsystemen entwickelt – Time-Sharing-Systeme. Diese Option ist für Multi-Terminal-Systeme konzipiert, bei denen jeder Benutzer an seinem eigenen Terminal arbeitet. Zu den frühen Time-Sharing-Betriebssystemen, die Mitte der 1960er Jahre entwickelt wurden, gehörten TSS/360 (IBM), CTSS und MULTICS (MIT, Bell Labs und General Electric). Die in Time-Sharing-Systemen verwendete Multiprogramming-Option zielte darauf ab, für jeden einzelnen Benutzer die Illusion des alleinigen Besitzes des Computers zu erzeugen, indem jedem Programm regelmäßig sein Anteil an Prozessorzeit zugewiesen wurde. In Time-Sharing-Systemen ist die Effizienz der Gerätenutzung geringer als in Batch-Verarbeitungssystemen, was den Preis für die Benutzerfreundlichkeit darstellte.

Der Multi-Terminal-Modus wurde nicht nur in Time-Sharing-Systemen, sondern auch in Batch-Verarbeitungssystemen verwendet. Gleichzeitig konnten nicht nur der Bediener, sondern alle Benutzer ihre Aufgaben erstellen und deren Ausführung von ihrem Terminal aus verwalten. Solche Betriebssysteme werden Remote-Task-Eingabesysteme genannt. Terminalkomplexe könnten sich in großer Entfernung von Prozessor-Racks befinden und über verschiedene globale Verbindungen – Modemverbindungen von Telefonnetzen oder dedizierte Kanäle – mit ihnen verbunden sein. Um den Remote-Betrieb von Terminals zu unterstützen, erschienen in Betriebssystemen spezielle Softwaremodule, die verschiedene (damals meist nicht standardmäßige) Kommunikationsprotokolle implementierten. Solche Computersysteme mit Remote-Terminals waren in gewissem Umfang unter Beibehaltung des zentralisierten Charakters der Datenverarbeitung vorhanden Der Prototyp moderner Netzwerke und die entsprechende Systemsoftware sind der Prototyp moderner Netzwerkbetriebssysteme.

Zu diesem Zeitpunkt können wir eine deutliche Veränderung in der Funktionsverteilung zwischen Computerhardware und -software feststellen. Betriebssysteme wurden zu integralen Bestandteilen von Computern und fungierten als „Fortsetzung“ der Hardware. Bei den ersten Computern konnte der Programmierer, der direkt mit dem Gerät interagierte, Programmcodes mithilfe von Fernschaltern und Anzeigelampen herunterladen und dann das Programm manuell zur Ausführung starten, indem er die „Start“-Taste drückte. Bei Computern der 60er Jahre wurden die meisten Aktionen zur Organisation des Rechenprozesses vom Betriebssystem übernommen. (Die meisten modernen Computer verfügen nicht einmal theoretisch über die Möglichkeit, ohne Beteiligung des Betriebssystems irgendwelche Rechenarbeiten auszuführen. Nach dem Einschalten des Stroms wird das Betriebssystem automatisch gesucht, geladen und gestartet, und wenn es fehlt, der Computer hört einfach auf.)

Die Implementierung von Multiprogramming erforderte die Einführung sehr wichtiger Änderungen an der Computerhardware, die direkt darauf abzielten, eine neue Art der Organisation des Computerprozesses zu unterstützen. Bei der Aufteilung der Computerressourcen auf Programme ist es notwendig, ein schnelles Umschalten des Prozessors von einem Programm auf ein anderes zu gewährleisten und die Codes und Daten eines Programms zuverlässig vor unbeabsichtigter oder vorsätzlicher Beschädigung durch ein anderes Programm zu schützen. Die Prozessoren verfügen nun über privilegierte und benutzerdefinierte Betriebsmodi, spezielle Register zum schnellen Wechsel von einem Programm zum anderen, Mittel zum Schutz von Speicherbereichen sowie ein entwickeltes Interrupt-System.

Im privilegierten Modus, der für den Betrieb von Betriebssystem-Softwaremodulen konzipiert ist, konnte der Prozessor alle Befehle ausführen, einschließlich derjenigen, die die Verteilung und den Schutz von Computerressourcen ermöglichten. Einige Prozessorbefehle waren für Programme, die im Benutzermodus ausgeführt wurden, nicht verfügbar. Daher konnte nur das Betriebssystem die Hardware steuern und als Monitor und Schiedsrichter für Benutzerprogramme fungieren, die im unprivilegierten Benutzermodus ausgeführt wurden.

Das Interrupt-System ermöglichte es, den Betrieb verschiedener parallel und asynchron arbeitender Computergeräte wie Ein-/Ausgabekanäle, Festplatten, Drucker usw. zu synchronisieren. Die Hardwareunterstützung für Betriebssysteme ist seitdem zu einem integralen Bestandteil fast aller Computersysteme geworden. einschließlich Personalcomputer.

Ein weiterer wichtiger Trend dieser Zeit ist die Schaffung von Familien softwarekompatibler Maschinen und Betriebssysteme dafür. Beispiele für Familien softwarekompatibler Maschinen, die auf integrierten Schaltkreisen basieren, sind die Maschinenserien IBM/360 und IBM/370 (Analoga dieser Familien sowjetischer Produktion – Maschinen der EC-Serie), PDP-11 (sowjetische Analoga – CM-3). , CM-4, CM-1420). Bald setzte sich die Idee softwarekompatibler Maschinen durch.

Softwarekompatibilität erforderte auch Betriebssystemkompatibilität. Eine solche Kompatibilität setzt jedoch die Fähigkeit voraus, auf großen und kleinen Computersystemen mit einer großen und kleinen Anzahl unterschiedlicher Peripheriegeräte im kommerziellen Bereich und im Bereich der wissenschaftlichen Forschung zu arbeiten. Betriebssysteme, die all diese widersprüchlichen Anforderungen erfüllen sollen, haben sich als äußerst komplex erwiesen. Sie bestanden aus vielen Millionen Zeilen Assembler-Code, geschrieben von Tausenden von Programmierern, und enthielten Tausende von Fehlern, die einen endlosen Strom von Korrekturen verursachten. Betriebssysteme dieser Generation waren sehr teuer. So kostete die Entwicklung von OS/360, dessen Codevolumen 8 MB betrug, IBM 80 Millionen Dollar.

Trotz seiner enormen Größe und vielen Problemen erfüllten OS/360 und andere ähnliche Betriebssysteme dieser Generation jedoch die meisten Verbraucheranforderungen. In diesem Jahrzehnt wurde ein großer Schritt nach vorne gemacht und eine solide Grundlage für die Entwicklung moderner Betriebssysteme gelegt.

Betriebssysteme und globale Netzwerke

Anfang der 70er Jahre erschienen die ersten Netzwerkbetriebssysteme, die es im Gegensatz zu Multiterminal-Betriebssystemen nicht nur ermöglichten, Benutzer zu verteilen, sondern auch die verteilte Speicherung und Verarbeitung von Daten zwischen mehreren über elektrische Verbindungen verbundenen Computern zu organisieren. Jedes Netzwerkbetriebssystem führt einerseits alle Funktionen eines lokalen Betriebssystems aus und verfügt andererseits über einige zusätzliche Tools, die es ihm ermöglichen, über das Netzwerk mit den Betriebssystemen anderer Computer zu interagieren. Softwaremodule, die Netzwerkfunktionen implementieren, tauchten nach und nach in Betriebssystemen auf, als sich Netzwerktechnologien und Computerhardware entwickelten und neue Aufgaben aufkamen, die eine Netzwerkverarbeitung erforderten.

Obwohl theoretische Arbeiten zur Erstellung von Konzepten der Netzwerkinteraktion fast seit dem Aufkommen von Computern durchgeführt wurden, wurden Ende der 60er Jahre bedeutende praktische Ergebnisse bei der Verbindung von Computern zu Netzwerken erzielt, als mit Hilfe globaler Verbindungen und Paketvermittlungstechnologie Es war möglich, das Zusammenspiel von Maschinen der Großrechnerklasse und Supercomputern zu implementieren. Diese teuren Computer speicherten oft einzigartige Daten und Programme, auf die ein breites Spektrum von Benutzern in verschiedenen Städten in beträchtlicher Entfernung von den Rechenzentren zugreifen musste.

Im Jahr 1969 begann das US-Verteidigungsministerium damit, Supercomputer von Verteidigungs- und Forschungszentren in einem einzigen Netzwerk zu vereinen. Dieses Netzwerk hieß ARPANET und war der Ausgangspunkt für die Entstehung des heute berühmtesten globalen Netzwerks – des Internets. Das ARPANET-Netzwerk vereinte Computer unterschiedlicher Art, auf denen unterschiedliche Betriebssysteme ausgeführt wurden, mit zusätzlichen Modulen, die Kommunikationsprotokolle implementierten, die allen Computern im Netzwerk gemeinsam waren.

1974 kündigte IBM die Schaffung einer eigenen Netzwerkarchitektur für seine Großrechner mit dem Namen SNA (System Network Architecture) an. Diese geschichtete Architektur ermöglichte, ähnlich wie das spätere Standard-OSI-Modell, Terminal-zu-Terminal-, Terminal-zu-Computer- und Computer-zu-Computer-Interaktionen über globale Kommunikation. Die unteren Ebenen der Architektur wurden durch spezielle Hardware implementiert, von denen der Teleprozessor die wichtigste war. Die Funktionen der oberen SNA-Ebenen wurden von Softwaremodulen übernommen. Einer von ihnen bildete die Grundlage der Teleprozessor-Software. Andere Module liefen auf einem Zentralprozessor als Teil des Standard-Mainframe-Betriebssystems von IBM.

Gleichzeitig wurde in Europa aktiv an der Schaffung und Standardisierung von X.25-Netzwerken gearbeitet. Diese paketvermittelten Netzwerke waren nicht an ein bestimmtes Betriebssystem gebunden. Nachdem X.25-Protokolle 1974 den Status eines internationalen Standards erhalten hatten, begannen sie, von vielen Betriebssystemen unterstützt zu werden. Seit 1980 integriert IBM die Unterstützung für X.25-Protokolle in die SNA-Architektur und in seine Betriebssysteme.

Minicomputer-Betriebssysteme und die ersten lokalen Netzwerke

Mitte der 70er Jahre verbreiteten sich neben Großrechnern auch Minicomputer wie PDP-11, Nova und HP. Minicomputer waren die ersten, die sich die Vorteile großer integrierter Schaltkreise zunutze machten, die es ermöglichten, recht leistungsfähige Funktionen zu relativ geringen Kosten des Computers zu implementieren.

Die Architektur von Minicomputern wurde im Vergleich zu Großrechnern deutlich vereinfacht, was sich in ihren Betriebssystemen widerspiegelte. Viele der Funktionen von Mainframe-Betriebssystemen mit mehreren Programmen und mehreren Benutzern wurden angesichts der begrenzten Ressourcen von Minicomputern eingeschränkt. Die Betriebssysteme von Minicomputern wurden häufig spezialisiert, beispielsweise nur für die Echtzeitsteuerung (RT-11-Betriebssystem für PDP-11-Minicomputer) oder nur für die Unterstützung des Time-Sharing-Modus (RSX-11M für dieselben Computer). Diese Betriebssysteme waren nicht immer für mehrere Benutzer geeignet, was in vielen Fällen durch die geringen Kosten der Computer gerechtfertigt war.

Ein wichtiger Meilenstein in der Geschichte der Minicomputer und in der Geschichte der Betriebssysteme im Allgemeinen war die Entwicklung des UNIX-Betriebssystems. Dieses Betriebssystem sollte ursprünglich den Time-Sharing-Modus im PDP-7-Minicomputer unterstützen. Seit Mitte der 70er Jahre begann die weite Verbreitung des UNIX-Betriebssystems. Zu diesem Zeitpunkt war der Programmcode für UNIX zu 90 % in der Hochsprache C geschrieben. Die weit verbreitete Verwendung effektiver C-Compiler machte UNIX zu einem einzigartigen Betriebssystem für die damalige Zeit, das relativ einfach auf verschiedene Computertypen portiert werden konnte. Da dieses Betriebssystem mit Quellcode geliefert wurde, war es das erste offene Betriebssystem, das von normalen begeisterten Benutzern verbessert werden konnte. Obwohl UNIX ursprünglich für Minicomputer entwickelt wurde, hat es aufgrund seiner Flexibilität, Eleganz, leistungsstarken Funktionalität und Offenheit eine starke Position in allen Computerklassen erlangt: Supercomputer, Großrechner, Minicomputer, RISC-basierte Server und Workstations sowie Personalcomputer.

Die Verfügbarkeit von Minicomputern und damit ihre Verbreitung in Unternehmen waren ein starker Anreiz für die Schaffung lokaler Netzwerke. Ein Unternehmen könnte es sich leisten, mehrere Mini-Computer im selben Gebäude oder sogar im selben Raum zu haben. Natürlich bestand die Notwendigkeit, Informationen zwischen ihnen auszutauschen und teure Peripheriegeräte gemeinsam zu nutzen.

Die ersten lokalen Netzwerke wurden im einfachsten Fall mit nicht standardmäßigen Kommunikationsgeräten aufgebaut – durch direkte Verbindung serieller Computeranschlüsse. Auch die Software entsprach nicht dem Standard und wurde in Form von Benutzeranwendungen implementiert. Die erste Netzwerkanwendung für UNIX OS ist das UUCP-Programm (UNIX-to-UNIX Copy Program). erschien 1976 und begann 1978 mit der Version 7 von AT&T UNIX zu verbreiten. Dieses Programm ermöglichte das Kopieren von Dateien von einem Computer auf einen anderen innerhalb eines lokalen Netzwerks über verschiedene Hardwareschnittstellen – RS-232, Stromschleife usw. – und konnte darüber hinaus über globale Verbindungen wie Modems funktionieren.

Entwicklung von Betriebssystemen in den 80er Jahren

Zu den wichtigsten Ereignissen dieses Jahrzehnts zählen die Entwicklung des TCP/IP-Stacks, die Entstehung des Internets, die Standardisierung lokaler Netzwerktechnologien sowie die Entstehung von Personalcomputern und Betriebssystemen dafür.

Eine funktionierende Version des TCP/IP-Protokollstapels wurde Ende der 70er Jahre erstellt. Dieser Stapel bestand aus einer Reihe allgemeiner Protokolle für eine heterogene Computerumgebung und sollte das experimentelle ARPANET-Netzwerk mit anderen „Satelliten“-Netzwerken verbinden. 1983 wurde der TCP/IP-Protokollstapel vom US-Verteidigungsministerium als Militärstandard übernommen. Der Übergang von ARPANET-Computern zum TCP/IP-Stack wurde durch dessen Implementierung für das BSD-UNIX-Betriebssystem beschleunigt. Seitdem begann die Koexistenz von UNIX und den TCP/IP-Protokollen und fast alle der zahlreichen Unix-Versionen wurden netzwerkbasiert.

Die Einführung der TCP/IP-Protokolle in das ARPANET verlieh diesem Netzwerk alle Hauptmerkmale, die das moderne Internet auszeichnen. 1983 wurde das ARPANET in zwei Teile geteilt: MILNET, das das US-Militär unterstützt, und das neue ARPANET. Um das zusammengesetzte Netzwerk ARPANET und MILNET zu bezeichnen, wurde der Name Internet verwendet, der sich im Laufe der Zeit (und mit der leichten Hand der Microsoft-Lokalisierungsprogramme) ins Internet verwandelte. Das Internet hat sich zu einem hervorragenden Testgelände für viele Netzwerkbetriebssysteme entwickelt und ermöglicht es, die Möglichkeiten ihrer Interaktion, den Grad der Skalierbarkeit und die Fähigkeit, unter extremen Belastungen durch Hunderte und Tausende von Benutzern zu arbeiten, unter realen Bedingungen zu testen. Auch der TCP/IP-Protokollstapel hatte ein beneidenswertes Schicksal. Herstellerunabhängigkeit, Flexibilität und Effizienz, die durch den erfolgreichen Betrieb im Internet nachgewiesen wurden, sowie offene und zugängliche Standards haben TCP/IP-Protokolle nicht nur zum Haupttransportmechanismus des Internets, sondern auch zum Hauptstapel der meisten Netzwerkbetriebssysteme gemacht.

Das gesamte Jahrzehnt war geprägt von der ständigen Entstehung neuer, immer fortschrittlicherer Versionen des UNIX-Betriebssystems. Darunter waren proprietäre Versionen von UNIX: SunOS, HP-UX, Irix, AIX und viele andere, bei denen Computerhersteller den Kernel-Code und Systemdienstprogramme für ihre Geräte angepasst haben. Die Vielfalt der Versionen führte zu Kompatibilitätsproblemen, die verschiedene Organisationen regelmäßig zu lösen versuchten. Infolgedessen wurden die POSIX- und XPG-Standards übernommen, um Betriebssystemschnittstellen für Anwendungen zu definieren, und eine spezielle Abteilung von AT&T veröffentlichte mehrere Versionen von UNIX System III und UNIX System V, die darauf ausgelegt waren, Entwickler auf der Kernel-Code-Ebene zu konsolidieren.

Der Beginn der 80er Jahre ist mit einem weiteren bedeutenden Ereignis für die Geschichte der Betriebssysteme verbunden – dem Aufkommen von Personal Computern. Aus architektonischer Sicht unterschieden sich Personalcomputer nicht von der Klasse der Minicomputer wie dem PDP-11, ihre Kosten waren jedoch deutlich niedriger. Wenn ein Mini-Computer es einer Abteilung eines Unternehmens oder einer Universität ermöglichte, über einen eigenen Computer zu verfügen, dann gab ein Personal Computer einer Einzelperson diese Möglichkeit. Computer wurden in großem Umfang von Laien genutzt, was die Entwicklung „freundlicher“ Software erforderte und die Bereitstellung dieser „freundlichen“ Funktionen in die direkte Verantwortung der Betriebssysteme fiel. Personalcomputer dienten auch als starker Katalysator für das schnelle Wachstum lokaler Netzwerke und schufen dafür eine hervorragende materielle Grundlage in Form von Dutzenden und Hunderten von Computern, die einem Unternehmen gehörten und in einem Gebäude untergebracht waren. Daher ist die Unterstützung von Netzwerkfunktionen zu einer Voraussetzung für Personalcomputer-Betriebssysteme geworden.

Sowohl eine benutzerfreundliche Oberfläche als auch Netzwerkfunktionen waren jedoch nicht sofort in PC-Betriebssystemen enthalten. Der ersten Version des beliebtesten Betriebssystems in der frühen Entwicklungsphase von Personalcomputern – Microsofts MS-DOS – fehlten diese Fähigkeiten. Es handelte sich um ein Einzelprogramm-Einzelbenutzer-Betriebssystem mit einer Befehlszeilenschnittstelle, das von einer Diskette ausgeführt werden konnte. Seine Hauptaufgaben bestanden darin, Dateien auf Disketten und Festplatten in einem UNIX-ähnlichen hierarchischen Dateisystem zu verwalten und Programme einzeln zu starten. MS-DOS war nicht vor Benutzerprogrammen geschützt, da der Intel 8088-Prozessor den privilegierten Modus nicht unterstützte. Die Entwickler der ersten Personalcomputer glaubten, dass es bei individueller Nutzung des Computers und begrenzten Hardwarefunktionen keinen Sinn machte, Multiprogramming zu unterstützen, sodass der Prozessor keinen privilegierten Modus und andere Mechanismen zur Unterstützung von Multiprogramming-Systemen bereitstellte.

Die fehlenden Funktionen für MS-DOS und ähnliche Betriebssysteme wurden durch externe Programme ausgeglichen, die dem Benutzer eine komfortable grafische Oberfläche (z. B. Norton Commander) oder feinkörnige Tools zur Datenträgerverwaltung (z. B. PC Tools) zur Verfügung stellten. Den größten Einfluss auf die Entwicklung von Software für Personalcomputer hatte die Windows-Betriebssystemumgebung von Microsoft, eine Ergänzung zu MS-DOS.

Netzwerkfunktionen wurden ebenfalls hauptsächlich durch Netzwerk-Shells implementiert, die auf dem Betriebssystem ausgeführt wurden. Bei der Arbeit in einem Netzwerk ist es immer notwendig, den Mehrbenutzermodus zu unterstützen, bei dem ein Benutzer interaktiv ist und der Rest über das Netzwerk Zugriff auf Computerressourcen erhält. In diesem Fall benötigt das Betriebssystem zumindest eine gewisse minimale funktionale Unterstützung für den Mehrbenutzermodus. Die Geschichte der MS-DOS-Netzwerktools begann mit Version 3.1. Diese Version von MS-DOS fügte dem Dateisystem die erforderlichen Funktionen zum Sperren von Dateien und Datensätzen hinzu, sodass mehr als ein Benutzer auf eine Datei zugreifen konnte. Mithilfe dieser Funktionen könnten Netzwerk-Shells die gemeinsame Nutzung von Dateien zwischen Netzwerkbenutzern ermöglichen.

Mit der Veröffentlichung von MS-DOS 3.1 im Jahr 1984 veröffentlichte Microsoft auch ein Produkt namens Microsoft Networks, das allgemein als MS-NET bezeichnet wird. Einige der in MS-NET inhärenten Konzepte, wie die Einführung grundlegender Netzwerkkomponenten – eines Redirectors und eines Netzwerkservers – in die Struktur, wurden erfolgreich auf spätere Microsoft-Netzwerkprodukte übertragen: LAN Manager, Windows für Workgroups und dann auf Windows NT.

Auch andere Unternehmen stellten Netzwerk-Shells für Personalcomputer her: IBM, Artisoft, Performance Technology und andere.

Novell wählte einen anderen Weg. Man setzte zunächst auf die Entwicklung eines Betriebssystems mit integrierten Netzwerkfunktionen und erzielte auf diesem Weg herausragende Erfolge. Seine NetWare-Netzwerkbetriebssysteme sind seit langem zum Standard für Leistung, Zuverlässigkeit und Sicherheit für lokale Netzwerke geworden.

Novells erstes Netzwerkbetriebssystem kam 1983 auf den Markt und hieß OS-Net. Dieses Betriebssystem war für Netzwerke mit Sterntopologie gedacht, deren zentrales Element ein spezialisierter Computer auf Basis des Mikroprozessors Motorola 68000 war. Wenig später, als IBM die PC XT-Personalcomputer herausbrachte, entwickelte Novell ein neues Produkt – NetWare 86. Entwickelt für die Architektur der Intel 8088-Mikroprozessorfamilie.

Ab der allerersten Version des NetWare-Betriebssystems wurde es als Betriebssystem für einen zentralen lokalen Netzwerkserver verbreitet, der aufgrund seiner Spezialisierung auf die Ausführung von Dateiserverfunktionen die höchstmögliche Geschwindigkeit für den Remote-Dateizugriff und eine erhöhte Datensicherheit bietet dieser Klasse von Computern. Benutzer von Novell NetWare-Netzwerken zahlen einen Preis für die hohe Leistung: Der dedizierte Dateiserver kann nicht als Workstation verwendet werden und sein spezialisiertes Betriebssystem verfügt über eine sehr spezifische An(API), die von den Anwendungsentwicklern besondere Kenntnisse, Fachkenntnisse und erhebliche Anstrengungen erfordert .

Im Gegensatz zu Novell entwickelten die meisten anderen Unternehmen Netzwerktools für Personalcomputer im Rahmen von Betriebssystemen mit einer universellen API-Schnittstelle, also Allzweck-Betriebssystemen. Mit der Entwicklung von Personalcomputer-Hardwareplattformen begannen solche Systeme zunehmend Merkmale von Minicomputer-Betriebssystemen zu übernehmen.

Als Ergebnis der gemeinsamen Bemühungen von Microsoft und IBM erschien 1987 das erste Multitasking-Betriebssystem für Personalcomputer mit dem Intel 80286-Prozessor, das die Fähigkeiten des geschützten Modus voll ausnutzt – OS/2. Dieses System war gut durchdacht. Es unterstützte präemptives Multitasking, virtuellen Speicher, eine grafische Benutzeroberfläche (nicht mehr seit der ersten Version) und eine virtuelle Maschine zum Ausführen von DOS-Anwendungen. Tatsächlich ging es mit seinem Konzept der Parallelisierung einzelner Prozesse, dem sogenannten Multithreading, über einfaches Multitasking hinaus.

OS/2 erwies sich mit seinen erweiterten Multitasking-Funktionen und dem HPFS-Dateisystem mit integrierter Mehrbenutzersicherheit als gute Plattform für den Aufbau lokaler Netzwerke von Personalcomputern. Die am weitesten verbreiteten Netzwerk-Shells sind LAN Manager von Microsoft und LAN Server von IBM, die von diesen Unternehmen auf der Grundlage des gleichen Basiscodes entwickelt wurden. Diese Shells waren in der Leistung dem NetWare-Dateiserver unterlegen und verbrauchten mehr Hardwareressourcen, hatten aber wichtige Vorteile: Sie ermöglichten erstens die Ausführung aller für OS/2, MS-DOS und Windows entwickelten Programme auf dem Server und zweitens auch die Ausführung den Computer, an dem sie gearbeitet haben, als Arbeitsplatz nutzen.

Netzwerkentwicklungen von Microsoft und IBM führten zur Entstehung von NetBIOS – einem sehr beliebten Transportprotokoll und gleichzeitig Anfür lokale Netzwerke, das in fast allen Netzwerkbetriebssystemen für Personalcomputer verwendet wird. Dieses Protokoll wird auch heute noch zum Aufbau kleiner lokaler Netzwerke verwendet.

Das nicht sehr erfolgreiche Marktschicksal von OS/2 erlaubte es den LAN-Manager- und LAN-Server-Systemen nicht, einen nennenswerten Marktanteil zu erobern, aber die Funktionsprinzipien dieser Netzwerksysteme wurden größtenteils im erfolgreicheren Betriebssystem der 90er Jahre – Microsoft – verkörpert Windows NT, das integrierte Netzwerkkomponenten enthielt, von denen einige das Präfix LM – von LAN Manager – trugen.

In den 80er Jahren wurden die wichtigsten Standards für Kommunikationstechnologien für lokale Netzwerke übernommen: 1980 – Ethernet, 1985 – Token Ring, Ende der 80er Jahre – FDDI. Dadurch war es möglich, die Kompatibilität von Netzwerkbetriebssystemen auf niedrigeren Ebenen sicherzustellen und die Betriebssystemschnittstelle mit Netzwerkadaptertreibern zu standardisieren.

Für Personalcomputer wurden nicht nur speziell für sie entwickelte Betriebssysteme wie MS-DOS, NetWare und OS/2 verwendet, sondern auch bestehende Betriebssysteme angepasst. Das Aufkommen der Intel 80286- und insbesondere 80386-Prozessoren mit Multiprogramming-Unterstützung ermöglichte die Übertragung des UNIX-Betriebssystems auf die Personalcomputerplattform. Das bekannteste System dieser Art war die Santa Cruz Operation-Version von UNIX (SCO UNIX).

Merkmale des aktuellen Entwicklungsstandes von Betriebssystemen

In den 90er Jahren wurden fast alle Betriebssysteme, die eine herausragende Stellung auf dem Markt einnahmen, netzwerkbasiert. Netzwerkfunktionen sind heute in den Betriebssystemkernel integriert und bilden dessen integralen Bestandteil. Betriebssysteme verfügen über Tools für die Arbeit mit allen wichtigen Technologien lokaler (Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM) und globaler (X.25, Frame Relay, ISDN, ATM) Netzwerke sowie Tools für Erstellen zusammengesetzter Netzwerke (IP, IPX, AppleTalk, RIP, OSPF, NLSP). Betriebssysteme nutzen Multiplexing-Funktionen über mehrere Protokollstapel hinweg, sodass Computer die gleichzeitige Vernetzung mit heterogenen Clients und Servern unterstützen können. Es sind spezielle Betriebssysteme erschienen, die ausschließlich für die Durchführung von Kommunikationsaufgaben konzipiert sind. Beispielsweise organisiert das in Routern laufende IOS-Netzwerkbetriebssystem von Cisco Systems die Ausführung einer Reihe von Programmen im Multiprogrammmodus, von denen jedes eines der Kommunikationsprotokolle implementiert.

In der zweiten Hälfte der 90er Jahre haben alle Betriebssystemhersteller ihre Unterstützung für Internet-Tools stark ausgeweitet (mit Ausnahme der UNIX-Systemhersteller, bei denen diese Unterstützung schon immer von Bedeutung war). Zusätzlich zum TCP/IP-Stack selbst enthielt das Paket Dienstprogramme, die beliebte Internetdienste wie Telnet, FTP, DNS und Web implementieren. Der Einfluss des Internets zeigte sich auch darin, dass sich der Computer von einem reinen Computergerät zu einem Kommunikationsmittel mit fortschrittlichen Rechenfähigkeiten gewandelt hat.

Im letzten Jahrzehnt wurde den Betriebssystemen von Unternehmensnetzwerken besondere Aufmerksamkeit gewidmet. Ihre Weiterentwicklung stellt eine der wichtigsten Aufgaben der absehbaren Zukunft dar. Ein Unternehmensbetriebssystem zeichnet sich durch seine Fähigkeit aus, in großen Netzwerken, die für große Unternehmen mit Niederlassungen in Dutzenden von Städten und möglicherweise in verschiedenen Ländern typisch sind, gut und zuverlässig zu funktionieren. Solche Netzwerke weisen von Natur aus ein hohes Maß an Heterogenität von Software und Hardware auf, sodass das Unternehmensbetriebssystem nahtlos mit Betriebssystemen unterschiedlicher Art interagieren und auf unterschiedlichen Hardwareplattformen arbeiten muss. Mittlerweile sind die drei Spitzenreiter in der Klasse der Unternehmens-Betriebssysteme klar definiert: Novell NetWare 4.x und 5.0, Microsoft Windows NT 4.0 und Windows 2000 sowie UNIX-Systeme verschiedener Hersteller von Hardwareplattformen.

Für ein Unternehmensbetriebssystem ist es sehr wichtig, über zentralisierte Verwaltungs- und Verwaltungstools zu verfügen, mit denen Sie Konten von Zehntausenden Benutzern, Computern, Kommunikationsgeräten und Softwaremodulen im Unternehmensnetzwerk in einer einzigen Datenbank speichern können. In modernen Betriebssystemen basieren zentralisierte Verwaltungstools normalerweise auf einem einzigen Helpdesk. Die erste erfolgreiche Implementierung eines unternehmensweiten Helpdesks war das StreetTalk-System von Banyan. Bisher hat der NDS-Hilfedienst von Novell die größte Anerkennung erhalten, der erstmals 1993 für die erste Unternehmensversion von NetWare 4.O veröffentlicht wurde. Die Rolle eines zentralisierten Helpdesks ist so groß, dass die Eignung eines Betriebssystems für die Arbeit auf Unternehmensebene anhand der Qualität des Helpdesks beurteilt wird. Die lange Verzögerung bei der Veröffentlichung von Windows NT 2000 war größtenteils auf die Schaffung eines skalierbaren Active Directory-Hilfedienstes für dieses Betriebssystem zurückzuführen, ohne den es für diese Betriebssystemfamilie schwierig wäre, den Titel eines echten Unternehmensbetriebssystems zu beanspruchen.

Die Schaffung eines multifunktionalen, skalierbaren Helpdesks ist eine strategische Richtung in der Weiterentwicklung des Betriebssystems. Die weitere Entwicklung des Internets hängt maßgeblich vom Erfolg dieser Richtung ab. Ein solcher Dienst wird benötigt, um das Internet in ein vorhersehbares und kontrollierbares System zu verwandeln, um beispielsweise die erforderliche Dienstqualität für den Benutzerverkehr sicherzustellen, große verteilte Anwendungen zu unterstützen, ein effizientes Mailsystem aufzubauen usw.

Im gegenwärtigen Entwicklungsstadium von Betriebssystemen sind Sicherheitstools in den Vordergrund gerückt. Dies ist auf den gestiegenen Wert der von Computern verarbeiteten Informationen sowie auf das erhöhte Maß an Bedrohungen zurückzuführen, die bei der Datenübertragung über Netzwerke, insbesondere öffentliche Netzwerke wie das Internet, bestehen. Viele Betriebssysteme haben heute Informationssicherheitstools entwickelt, die auf Datenverschlüsselung, Authentifizierung und Autorisierung basieren.

Moderne Betriebssysteme sind Multiplattform-Betriebssysteme, also die Möglichkeit, auf völlig unterschiedlichen Computertypen zu arbeiten. Viele Betriebssysteme verfügen über spezielle Versionen zur Unterstützung von Clusterarchitekturen, die hohe Leistung und Fehlertoleranz bieten. Die Ausnahme bildet bisher das NetWare-Betriebssystem, dessen Versionen alle für die Intel-Plattform entwickelt wurden, und die Implementierung von NetWare-Funktionen in Form einer Shell für andere Betriebssysteme, beispielsweise NetWare für AIX, war nicht erfolgreich.

In den letzten Jahren hat sich der langfristige Trend, den Komfort der menschlichen Interaktion mit einem Computer zu erhöhen, weiterentwickelt. Die menschliche Leistung wird zum Hauptfaktor für die Effizienz des gesamten Computersystems. Menschliche Anstrengungen sollten nicht auf die Anpassung der Parameter des Rechenprozesses verschwendet werden, wie dies bei den Betriebssystemen früherer Generationen der Fall war. Beispielsweise musste in Mainframe-Stapelverarbeitungssystemen jeder Benutzer eine Job-Steuerungssprache verwenden, um eine große Anzahl von Parametern zu definieren, die sich auf die Organisation von Rechenprozessen im Computer beziehen. So bot die JCL-Jobsteuerungssprache für das OS/360-System dem Benutzer die Möglichkeit, mehr als 40 Parameter zu definieren, darunter Jobpriorität, Hauptspeicheranforderungen, maximale Jobausführungszeit, eine Liste der verwendeten Eingabe-/Ausgabegeräte und deren Betriebsarten.

Ein modernes Betriebssystem übernimmt die Auswahl der Betriebsumgebungsparameter und nutzt dazu verschiedene adaptive Algorithmen. Zeitüberschreitungen in Kommunikationsprotokollen werden beispielsweise häufig anhand der Netzwerkbedingungen bestimmt. Die Verteilung des Arbeitsspeichers zwischen Prozessen erfolgt automatisch mithilfe virtueller Speichermechanismen, abhängig von der Aktivität dieser Prozesse und Informationen über die Häufigkeit ihrer Nutzung einer bestimmten Seite. Sofortige Prozessprioritäten werden dynamisch abhängig vom Verlauf bestimmt, einschließlich beispielsweise der Zeit, die der Prozess in der Warteschlange verbracht hat, dem Prozentsatz der zugewiesenen Zeitscheibe, der Intensität der E/A usw. Bei den meisten Betriebssystemen sogar während des Installationsprozesses bieten einen Standardparameterauswahlmodus, der zwar nicht optimale, aber immer akzeptable Qualität des Systembetriebs garantiert.

Der Komfort der interaktiven Arbeit mit einem Computer wird ständig verbessert, indem in das Betriebssystem entwickelte grafische Schnittstellen integriert werden, die neben Grafiken auch Ton und Video verwenden. Dies ist besonders wichtig, um einen Computer zum Terminal für ein neues öffentliches Netzwerk zu machen, das nach und nach zum Internet wird, da das Terminal für den Massennutzer fast so verständlich und komfortabel sein sollte wie ein Telefon. Die Benutzeroberfläche des Betriebssystems wird immer intelligenter, sie steuert das Handeln des Menschen in typischen Situationen und nimmt ihm routinemäßige Entscheidungen ab.

Der Grad an Benutzerfreundlichkeit von Ressourcen, den isolierte Computerbetriebssysteme heute Benutzern, Administratoren und Anwendungsentwicklern bieten, ist für Netzwerkbetriebssysteme nur eine verlockende Aussicht. Während Netzwerkbenutzer und -administratoren viel Zeit damit verbringen, herauszufinden, wo sich eine Ressource befindet, verbringen Netzwerkanwendungsentwickler viel Zeit damit, den Standort von Daten und Softwaremodulen im Netzwerk zu ermitteln. Betriebssysteme der Zukunft müssen ein hohes Maß an Transparenz der Netzwerkressourcen bieten und die Aufgabe übernehmen, verteiltes Rechnen zu organisieren und das Netzwerk in einen virtuellen Computer zu verwandeln. Genau das meinen die Sun-Spezialisten mit dem lakonischen Slogan „Das Netzwerk ist ein Computer“, doch bis zur Umsetzung des Slogans in die Realität ist es für Betriebssystementwickler noch ein weiter Weg.

§ Die Geschichte des Betriebssystems reicht etwa ein halbes Jahrhundert zurück. Sie wurde und wird maßgeblich von der Entwicklung der Elementbasis und der Rechenausrüstung bestimmt.

§ Die ersten digitalen Computer, die Anfang der 40er Jahre auf den Markt kamen, arbeiteten ohne Betriebssysteme; alle Aufgaben zur Organisation des Rechenprozesses wurden von jedem Programmierer manuell über das Bedienfeld gelöst.

§ Der Prototyp moderner Betriebssysteme waren Monitorsysteme aus der Mitte der 50er Jahre, die die Aktionen des Bedieners zur Erledigung eines Aufgabenpakets automatisierten.

§ Im Laufe der Jahre ebnete der Übergang zu integrierten Schaltkreisen den Weg für die Entstehung der nächsten Computergeneration, ein prominentes Beispiel dafür ist der IBM/360. In dieser Zeit wurden fast alle Grundkonzepte moderner Betriebssysteme implementiert: Multiprogramming, Multiprocessing, Multi-Terminal-Modus, virtueller Speicher, Dateisysteme, Zugriffskontrolle und Vernetzung.

§ Die Implementierung von Multiprogramming erforderte die Einführung sehr wichtiger Änderungen an der Computerhardware. Die Prozessoren verfügen nun über privilegierte und benutzerdefinierte Betriebsmodi, spezielle Register zum schnellen Wechsel von einer Aufgabe zur anderen, Mittel zum Schutz von Speicherbereichen sowie ein entwickeltes Interrupt-System.

§ In den späten 60er Jahren begannen die Arbeiten zur Schaffung des globalen ARPANET-Netzwerks, das den Ausgangspunkt für das Internet bildete – ein globales öffentliches Netzwerk, das zum Testgelände für viele Netzwerkbetriebssysteme wurde, das Tests unter realen Bedingungen ermöglichte die Möglichkeiten ihrer Interaktion, der Grad der Skalierbarkeit und die Fähigkeit, unter extremer Belastung zu arbeiten.

§ Mitte der 70er Jahre verbreiteten sich Minicomputer. Die Architektur von Minicomputern wurde im Vergleich zu Großrechnern deutlich vereinfacht, was sich auch in ihrem Betriebssystem widerspiegelte. Die Kosteneffizienz und Verfügbarkeit von Minicomputern war ein starker Anreiz für die Schaffung lokaler Netzwerke. Das Unternehmen, das sich nun mehrere Minicomputer leisten konnte, musste den Datenaustausch und teure Peripheriegeräte organisieren. Die ersten lokalen Netzwerke wurden mit nicht standardmäßiger Kommunikationsausrüstung und nicht standardmäßiger Software aufgebaut.

§ Ab Mitte der 70er Jahre begann die weite Verbreitung von UNIX, einem damals einzigartigen Betriebssystem, das relativ leicht auf verschiedene Computertypen portierbar war. Obwohl UNIX ursprünglich für Minicomputer entwickelt wurde, hat es aufgrund seiner Flexibilität, Eleganz, leistungsstarken Funktionalität und Offenheit eine starke Position in allen Computerklassen erlangt.

§ Ende der 70er Jahre wurde eine funktionierende Version des TCP/IP-Protokollstapels erstellt. 1983 wurde der TCP/IP-Protokollstapel standardisiert. Herstellerunabhängigkeit, Flexibilität und Effizienz, die sich im Internet bewährt haben, haben TCP/IP-Protokolle nicht nur zum Haupttransportmechanismus des Internets, sondern auch zum Hauptstapel der meisten Netzwerkbetriebssysteme gemacht.

§ Der Beginn der 80er Jahre ist mit einem bedeutenden Ereignis für die Geschichte der Betriebssysteme verbunden – dem Aufkommen von Personalcomputern, die als starker Katalysator für das schnelle Wachstum lokaler Netzwerke dienten und dafür eine hervorragende materielle Grundlage in Form von bildeten Dutzende und Hunderte von Computern, die sich im selben Gebäude befinden. Daher ist die Unterstützung von Netzwerkfunktionen zu einer Voraussetzung für Personalcomputer-Betriebssysteme geworden.

§ In den 80er Jahren wurden die wichtigsten Standards für Kommunikationstechnologien für lokale Netzwerke übernommen: 1980 – Ethernet, 1985 – Token Ring, Ende der 80er Jahre – FDDI. Dadurch war es möglich, die Kompatibilität von Netzwerkbetriebssystemen auf niedrigeren Ebenen sicherzustellen und die Betriebssystemschnittstelle mit Netzwerkadaptertreibern zu standardisieren.

§ Zu Beginn der 90er Jahre waren fast alle Betriebssysteme vernetzt und in der Lage, die Arbeit mit heterogenen Clients und Servern zu unterstützen. Es sind spezielle Netzwerkbetriebssysteme erschienen, die ausschließlich für die Durchführung von Kommunikationsaufgaben konzipiert sind, beispielsweise das IOS-System von Cisco Systems, das in Routern läuft.

§ Im letzten Jahrzehnt wurde besonderes Augenmerk auf Betriebssysteme für Unternehmensnetzwerke gelegt, die sich durch ein hohes Maß an Skalierbarkeit, Unterstützung für Netzwerkarbeit, fortschrittliche Sicherheitstools, die Fähigkeit zum Arbeiten in einer heterogenen Umgebung und die Verfügbarkeit zentraler Systeme auszeichnen Verwaltungs- und Verwaltungstools.

Aufgaben und Übungen

1. Welche Ereignisse in der Entwicklung der technischen Basis von Computern wurden zu Meilensteinen in der Geschichte der Betriebssysteme?

2. Was war der grundlegende Unterschied zwischen den ersten Stapelverarbeitungsmonitoren und den damals bereits existierenden Systemverarbeitungsprogrammen – Übersetzern, Ladern, Linkern, Prozedurbibliotheken?

3. Kann ein Computer ohne Betriebssystem funktionieren?

4. Wie hat sich die Einstellung zum Konzept des Multiprogrammings im Laufe der Geschichte des Betriebssystems entwickelt?

5. Welchen Einfluss hatte das Internet auf die Entwicklung des Betriebssystems?

6. Was erklärt den besonderen Platz des UNIX-Betriebssystems in der Geschichte der Betriebssysteme?

7. Beschreiben Sie die Geschichte der Netzwerkbetriebssysteme.

8. Was sind die aktuellen Trends in der Betriebssystementwicklung?


Allrussisches Finanz- und Wirtschaftsinstitut für Korrespondenz

Fakultät: Finanzen – Kredit

Spezialität: Finanz- und Kreditabendgruppe

Kursarbeit

In der Disziplin „Informatik“

Zum Thema „Zweck, Klassifizierung und Entwicklung von Betriebssystemen“

Moskau – 2008

Einführung
1 Zweck von Betriebssystemen 5

2 Lassen Sie uns die Hauptfunktionen der Betriebssysteme 9 auflisten

2.2 Wartung aller E/A-Vorgänge 9

3 Entwicklung und Klassifizierung von Betriebssystemen
Fazit 2
Referenzen 22

Einführung

Das Betriebssystem (OS) ist die Basis der Systemsoftware, die steuert Bootstrap Computer, verwaltet den Betrieb aller seiner Geräte und überprüft ihre Funktionalität, verwaltet das Dateisystem des Computers, lädt Benutzeranwendungen und verteilt Computerressourcen zwischen ihnen, unterstützt die Benutzeroberfläche usw. Zu den bekannten Betriebssystemfamilien gehören DOS, WINDOWS und UNIX , NETWARE usw. .

Ein Betriebssystem (OS) ist eine Reihe von Programmen, die zwei Funktionen erfüllen: Benutzerfreundlichkeit bieten virtuelle Maschine und Steigerung der Effizienz der Computernutzung durch rationelle Verwaltung ihrer Ressourcen.

Der Computerprozessor führt in Maschinensprache gegebene Anweisungen aus. Die direkte Vorbereitung solcher Befehle erfordert vom Benutzer Kenntnisse der Sprache und der Besonderheiten des Aufbaus und Zusammenspiels von Hardware. Um beispielsweise auf auf einem magnetischen Medium gespeicherte Informationen zuzugreifen, ist es erforderlich, die Blocknummern auf der Platte und die Sektornummern auf der Spur anzugeben und den Zustand des Motors des Mechanismus zum Bewegen der ausgelesenen Aufzeichnungsköpfe zu bestimmen , das Vorhandensein und die Art von Fehlern erkennen, ihre Analyse durchführen usw. Es ist fast unmöglich, dieses Wissen von allen Benutzern zu verlangen. Daher entstand die Notwendigkeit, ein Betriebssystem zu erstellen – eine Reihe von Programmen, die die Merkmale des physischen Speicherorts von Informationen vor dem Benutzer verbergen und Interrupt-Verarbeitung, Timer-Verwaltung und RAM durchführen. Dadurch wird dem Benutzer eine virtuelle Maschine zur Verfügung gestellt, die Arbeiten auf logischer Ebene ausführt.

1 Zweck von Betriebssystemen

Unter Betriebssystemen versteht man Systemsoftware. Die gesamte Software ist in System und Anwendung unterteilt. Systemsoftware umfasst in der Regel solche gängigen Programme und Programmkomplexe, ohne die es nicht möglich ist, andere Programme auszuführen oder zu erstellen. Die Geschichte der Entstehung und Entwicklung von Systemsoftware begann in dem Moment, als den Menschen klar wurde, dass jedes Programm Dateneingabe-/-ausgabeoperationen erfordert. Dies geschah in den fernen 50er Jahren des letzten Jahrhunderts. Betriebssysteme selbst erschienen etwas später.

Ebenso kann die Ausgabe der Ergebnisse beispielsweise auf geeigneten Geräten und in einer für die menschliche Wahrnehmung geeigneten Form organisiert werden. Oder die Berechnungsergebnisse werden vom Programm an einige Aktoren gesendet, die von einem Computer gesteuert werden. Schließlich können wir die Aufzeichnung der erhaltenen Werte auf einigen Datenspeichern (zum Zweck ihrer Weiterverarbeitung) organisieren.

Die I/O-Programmierung ist einer der zeitaufwändigsten Bereiche der Softwareentwicklung. Dabei geht es nicht um die Verwendung von Anweisungen wie READ oder WRITE in Hochsprachen. Es geht umüber die Notwendigkeit, ein Unterprogramm in Maschinenform zu erstellen, das zur Ausführung auf einem Computer bereit ist und nicht mit einem Programmiersystem geschrieben wurde (es gab noch keine Programmiersysteme), ein Unterprogramm, das anstelle gewöhnlicher Berechnungen das Gerät steuert, an dem beteiligt sein sollte die Vorgänge der Eingabe von Anfangsdaten oder Schlussfolgerungen aus den Ergebnissen. Wenn ein solches Unterprogramm vorhanden ist, kann der Programmierer so oft darauf zugreifen, wie er I/O-Operationen mit diesem Gerät benötigt. Um diese Arbeit auszuführen, reicht es nicht aus, dass ein Programmierer die Architektur des Computerkomplexes gut kennt und in der Lage ist, Programme in Assemblersprache zu erstellen. Er muss sowohl die Schnittstelle, über die das Gerät mit dem zentralen Teil des Computers verbunden ist, als auch den Algorithmus für den Betrieb des E/A-Gerätesteuergeräts genau kennen.

Offensichtlich war es sinnvoll, eine Reihe von Routinen zur Verwaltung von E/A-Vorgängen zu erstellen und diese in Ihren Programmen zu verwenden, um Programmierer nicht zu zwingen, alle diese Vorgänge jedes Mal neu zu programmieren. Hier begann die Geschichte der Systemsoftware. Anschließend begann man, eine Reihe von Eingabe-Ausgabe-Routinen in Form einer speziellen Eingabe-Ausgabe-Bibliothek zu organisieren, und dann erschienen die Betriebssysteme selbst. Der Hauptgrund für ihr Erscheinen war der Wunsch, den Prozess der Vorbereitung eines Computerkomplexes für die Programmausführung zu automatisieren.

In den 50er Jahren war die Interaktion des Benutzers mit dem Computersystem völlig anders als heute. Ein Programmierer-Kodierer (vom englischen Coder – Encoder) – ein speziell ausgebildeter Spezialist, der die Architektur des Computers und die Programmiersprache(n) kennt – hat auf Anfrage den Text des Programms zusammengestellt, oft unter Verwendung eines vorgefertigten Algorithmus, der von entwickelt wurde ein Programmierer-Algorithmus. Der Text dieses Programms wurde dann dem Bediener übergeben, der ihn auf speziellen Geräten tippte und auf die entsprechenden Medien übertrug. Als Medien wurden meist Lochkarten oder Lochstreifen verwendet. Als nächstes wurde der Stapel mit den Lochkarten in den Computerraum übertragen, wo für die Berechnungen mit diesem Programm folgende Aktionen erforderlich waren:

1. Der Bediener des Computerkomplexes gab von der Fernbedienung aus das ursprüngliche Programm in die Arbeitsregister des Zentralprozessors und in den RAM des Computers ein, das es ermöglichte, ein Programm zum Übersetzen von Quellcodes und zum Erhalten einer Maschine (binär) in den Speicher einzulesen. Programm (also ein Übersetzer, der ebenfalls auf Lochkarten oder Lochstreifen gespeichert war).

2. Der Übersetzer las das Quellprogramm, führte eine lexikalische Analyse des Quelltextes durch und die Zwischenergebnisse des Übersetzungsprozesses wurden häufig auch auf Lochkarten (Lochstreifen) ausgegeben. Die Übersetzung ist ein komplexer Prozess, der oft mehrere Durchgänge erfordert. Um den nächsten Durchgang durchzuführen, war es manchmal notwendig, sowohl den nächsten Teil des Übersetzers als auch die Zwischenergebnisse der Übersetzung von Lochkarten in den Computerspeicher zu laden. Schließlich wurde das Ergebnis der Übersetzung auch auf Speichermedien ausgegeben, da der Arbeitsspeicher gering und die Übersetzung eine sehr komplexe Aufgabe war.

3. Der Bediener hat die empfangenen Binärcodes des übersetzten Programms in den RAM des Computers geladen und die Binärcodes der Systemunterprogramme geladen, die Eingabe-Ausgabe-Vorgänge steuerten. Danach könnte das fertige Programm, das sich im Speicher befindet, selbst die Quelldaten lesen und die notwendigen Berechnungen durchführen. Wenn in einer dieser Phasen oder nach der Analyse der erzielten Ergebnisse Fehler entdeckt wurden, musste der gesamte Zyklus wiederholt werden.

Um die Arbeit eines Programmierers (Codierers) zu automatisieren, begann man mit der Entwicklung spezieller hochrangiger algorithmischer Sprachen, und um die Arbeit eines Computerkomplexbetreibers zu automatisieren, wurde ein spezielles Steuerungsprogramm entwickelt, indem es einmalig in den Speicher geladen wurde Der Bediener könnte es dann wiederholt verwenden und muss nicht mehr über die Fernbedienung auf den Computerprogrammiervorgang zurückgreifen. Dieses Steuerungsprogramm wurde später als Betriebssystem bezeichnet. Im Laufe der Zeit wurden ihm immer mehr Aufgaben zugewiesen und sein Umfang nahm zu. Zunächst wollten die Entwickler sicherstellen, dass das Betriebssystem die Rechenressourcen des Computers möglichst effizient verteilt, denn bereits in den 60er Jahren ermöglichten Betriebssysteme die Organisation der parallelen Ausführung mehrerer Programme. Zusätzlich zu den Problemen der Ressourcenverteilung sind Probleme bei der Gewährleistung der Zuverlässigkeit von Berechnungen aufgetreten. In den frühen 70er Jahren setzte sich die interaktive Art der Arbeit mit einem Computer durch und Betriebssysteme begannen schnell mit der Entwicklung von Schnittstellenfunktionen. Der Begriff Schnittstelle bezieht sich auf eine ganze Reihe von Spezifikationen, die eine bestimmte Art und Weise definieren, wie ein Benutzer mit einem Computer interagieren kann.

Heute kann man sagen, dass das Betriebssystem (OS) eine Reihe von Systemsteuerungs- und Verarbeitungsprogrammen ist, die einerseits als Schnittstelle zwischen der Computerhardware und dem Benutzer mit seinen Aufgaben fungieren und andererseits sind für die effizienteste Nutzung der Ressourcen eines Computersystems und die Organisation einer zuverlässigen Datenverarbeitung konzipiert.

2 Wir listen die Hauptfunktionen von Betriebssystemen auf

Empfang von in der entsprechenden Sprache formulierten Aufgaben oder Befehlen durch den Benutzer (oder Systembetreiber) und deren Verarbeitung. Aufgaben können in Form von Textanweisungen (Befehlen) des Bedieners oder in Form von Anweisungen, die mit einem Manipulator (z. B. mit einer Maus) ausgeführt werden, übermittelt werden. Diese Befehle sind mit dem Starten (Pausieren, Stoppen) von Programmen und mit Operationen an Dateien (Liste der Dateien im aktuellen Verzeichnis abrufen, Erstellen, Umbenennen, Kopieren, Verschieben einer bestimmten Datei usw.) verbunden, obwohl es auch andere Befehle gibt.

Speicherzuweisung und in den meisten Fällen moderne Systeme und Organisation des virtuellen Speichers.

Ausführen eines Programms (Übertragen der Kontrolle darauf, wodurch der Prozessor das Programm ausführt).

Empfangen und verwenden Sie verschiedene Anfragen von laufenden Anwendungen. Das Betriebssystem kann eine sehr große Anzahl von Systemfunktionen (Diensten) ausführen, die von einem laufenden Programm angefordert werden können. Der Zugriff auf diese Dienste erfolgt gemäß den entsprechenden Regeln, die die Anwendungsprogrammschnittstelle (API) dieses Betriebssystems definieren.

2.2 Wartung aller I/O-Vorgänge

Sicherstellung des Betriebs von Dateiverwaltungssystemen (FMS) und/oder Datenbankverwaltungssystemen (DBMS), wodurch die Effizienz aller Software erheblich gesteigert werden kann.

Bereitstellung des Multiprogramming-Modus, d. h. Organisation der parallelen Ausführung von zwei oder mehr Programmen auf einem Prozessor, wodurch der Anschein ihrer gleichzeitigen Ausführung entsteht.

Planen und Verteilen von Aufgaben gemäß den Vorgaben zwischen laufenden Programmen.

Netzwerkbetriebssysteme zeichnen sich durch die Funktion aus, das Zusammenspiel miteinander verbundener Computer sicherzustellen.

Organisation von Mechanismen zum Austausch von Nachrichten und Daten zwischen laufenden Programmen.

Schutz eines Programms vor dem Einfluss eines anderen, Gewährleistung der Datensicherheit, Schutz des Betriebssystems selbst vor Anwendungen, die auf dem Computer ausgeführt werden.

Benutzerauthentifizierung und -autorisierung (für die meisten interaktiven Betriebssysteme). Unter Authentifizierung versteht man den Vorgang, bei dem der Name und das Passwort eines Benutzers mit den in seinem Konto gespeicherten Werten verglichen werden. Wenn der Anmeldename und das Passwort eines Benutzers identisch sind, handelt es sich höchstwahrscheinlich um denselben Benutzer. Der Begriff Autorisierung bedeutet, dass ihm (und allen Anfragen, die in seinem Namen an das Betriebssystem gehen) entsprechend dem Konto des Benutzers, der die Authentifizierung bestanden hat, bestimmte Rechte (Privilegien) zugewiesen werden, die bestimmen, was er auf dem Computer tun kann.

Erfüllt strenge Echtzeit-Reaktionszeitbeschränkungen (typisch für ein Echtzeit-Betriebssystem).

Sicherstellung des Betriebs von Programmiersystemen, mit denen Benutzer ihre Programme erstellen.

Bereitstellung von Dienstleistungen bei teilweisem Systemausfall.

Betriebssystem isoliert Hardware Computer von Benutzeranwendungen. Sowohl der Benutzer als auch seine Programme interagieren über Betriebssystemschnittstellen mit dem Computer.

3 Entwicklung und Klassifizierung des Betriebssystems

Die Weiterentwicklung des Betriebssystems ist größtenteils auf die Verbesserung der Computerhardware zurückzuführen.

Die Programmierung von Röhrenrechengeräten zur Lösung spezieller Anwendungsprobleme erfolgte in Maschinensprache (einer Programmiersprache, die ein Programm in einer Form darstellt, die eine direkte Ausführung durch technische Mittel der Datenverarbeitung ermöglicht). Die Organisation des Rechenprozesses erfolgte in diesem Fall durch das Wartungspersonal manuell über das Bedienfeld. Für diese Computer gab es praktisch keine Betriebssysteme.

Auf Halbleiterelementen basierende Computer wurden kompakter und zuverlässiger und wurden zur Lösung einer größeren Klasse angewandter Probleme eingesetzt. Die ersten algorithmischen Sprachen, Compiler (Compiler sind Programme zur Kompilierung – Übersetzung eines in einer algorithmischen Sprache geschriebenen Programms in eine maschinensprachähnliche Sprache) und Stapelverarbeitungssysteme erschienen. Diese Systeme waren der Prototyp moderner Betriebssysteme. Ihr Hauptzweck besteht darin, die Prozessorlast zu erhöhen.

Der Übergang von einzelnen Halbleiterelementen wie Transistoren zu integrierten Schaltkreisen ging mit der Entstehung von Familien softwarekompatibler Maschinen einher, beispielsweise der IBM/360-Familie, EC-Computer. Die Betriebssysteme dieser Computer waren auf die Bedienung von Computersystemen mit einer Vielzahl von Peripheriegeräten und in verschiedenen Tätigkeitsbereichen ausgerichtet. Ein Merkmal solcher Betriebssysteme ist Multiprogramming – eine Methode zur Organisation eines Rechenprozesses, bei der mehrere Anwendungen abwechselnd auf einem Prozessor ausgeführt werden. Während beispielsweise eine Anwendung E/A-Vorgänge ausführt, führt der Prozessor Rechenoperationen für eine andere aus. Es ist eine neue Art von Betriebssystem entstanden – ein Time-Sharing-System, das es jedem Benutzer ermöglicht, die Illusion zu erzeugen, allein mit dem Computer zu arbeiten. Das Aufkommen großintegrierter Schaltkreise (LSI) und sehr großer integrierter Schaltkreise (VLSI) sorgte für eine weit verbreitete Verwendung von Computern und deren Verwendung durch Nicht-Programmierspezialisten. Dies erforderte die Entwicklung einer benutzerfreundlichen, intuitiven Softwareschnittstelle. Die Entwicklung von Kommunikationsmitteln hat zur Entwicklung von Netzwerkbetriebssystemen geführt.

Für moderne Betriebssysteme gelten folgende Anforderungen:

Kompatibilität – das Betriebssystem muss Tools zum Ausführen von Anwendungen enthalten, die für andere Betriebssysteme vorbereitet sind;

Portabilität – Gewährleistung der Fähigkeit, das Betriebssystem von einer Hardwareplattform auf eine andere zu übertragen;

Zuverlässigkeit und Fehlertoleranz – beinhaltet den Schutz des Betriebssystems vor internen und externen Fehlern, Ausfällen und Ausfällen;

Sicherheit – das Betriebssystem muss Mittel enthalten, um die Ressourcen einiger Benutzer vor anderen zu schützen;

Erweiterbarkeit – das Betriebssystem sollte die Durchführung nachträglicher Änderungen und Ergänzungen erleichtern;

Leistung – das System muss ausreichend schnell sein.

Betriebssystemklassifizierung. Typischerweise findet die Kommunikation zwischen einem Benutzer und einer Maschine statt interaktiver Modus. In diesem Fall wird das Tempo der Problemlösung durch die Reaktion des Benutzers bestimmt. Wenn wir davon ausgehen, dass die Reaktionszeit des Benutzers konstant ist, können wir davon ausgehen, dass die Komplexität der Aufgabe durch die Geschwindigkeit begrenzt ist technische Mittel(Bei Bedarf wird es durch umfangreiche Methoden erhöht: die Verwendung einer schnelleren Elementbasis, die Verwendung von Multiprozessor- oder Multimaschinensystemen). Aber das ist ein einseitiger Ansatz. Große Chancen liegen in organisatorischen Maßnahmen, zu denen die Wahl optimaler Betriebsarten und Servicedisziplinen gehört; beide werden von Betriebssystemen implementiert.

Die PC-Betriebsarten werden in erster Linie durch die Anzahl der parallel auf der Maschine gelösten Aufgaben (durchgeführte Programme) bestimmt. Basierend auf diesem Kriterium werden Betriebssysteme in Multitasking und Singletasking unterteilt, die Multithread-Verarbeitung, Mehrbenutzer und Einzelbenutzer, Mehrprozessor und Einzelprozessor unterstützen und nicht unterstützen.

Anhand der Anzahl der gleichzeitig ausgeführten Aufgaben werden Betriebssysteme unterschieden:

Single-Tasking-Betriebssysteme (MS-DOS, frühe Versionen von PS-DOS);

Multitasking (OS/2, UNIX, Windows).

Single-Tasking-Betriebssysteme stellen dem Benutzer eine virtuelle Maschine zur Verfügung und umfassen Dateiverwaltungstools, Peripheriegeräte und Mittel zur Kommunikation mit dem Benutzer. Multitasking-Betriebssysteme verwalten zusätzlich die Aufteilung gemeinsam genutzter Ressourcen zwischen Aufgaben. Unter den Möglichkeiten zur Umsetzung von Multitasking gibt es zwei Gruppen von Algorithmen zur Verteilung der Prozessorzeit:

Nicht präemptives Multitasking (NetWare, Windows 3. x und 9. x);

Präventives Multitasking (Windows NT, OS/2, UNIX).

Im ersten Fall aktiver Prozess Nach Abschluss überträgt es die Kontrolle an das Betriebssystem, um einen anderen Prozess aus der Warteschlange auszuwählen. Im zweiten Fall wird die Entscheidung, einen Prozess von einem Prozess auf einen anderen umzustellen, nicht vom aktiven Prozess, sondern vom Betriebssystem getroffen.

Multithreading-Unterstützung impliziert die Möglichkeit, einige Programmbefehle nahezu gleichzeitig auszuführen. Ein Multithread-Betriebssystem teilt die Prozessorzeit nicht zwischen Aufgaben, sondern zwischen separaten Zweigen (Threads) von Algorithmen zu deren Lösung auf (Multitasking innerhalb einer Aufgabe).

Basierend auf der Anzahl gleichzeitiger Benutzer werden Betriebssysteme unterschieden:

Einzelbenutzer (MS-DOS, Windows 3. x, frühe Versionen von OS/2);

Mehrbenutzer (UNIX, Windows NT).

Der Unterschied zwischen Mehrbenutzersystemen besteht in der Verfügbarkeit von Mitteln zum Schutz von Benutzerinformationen vor unbefugtem Zugriff.

Multiprocessing beinhaltet die Unterstützung des Betriebs mehrerer Prozessoren und wird in den Betriebssystemen Solaris 2. x von Sun, OS/2 von IBM, Windows NT von Microsoft und NetWare 4.1 begrüßt. Novell usw.

Multiprozessor-Betriebssysteme werden in asymmetrische und symmetrische Betriebssysteme unterteilt. Auf einem der Systemprozessoren wird ein asymmetrisches Betriebssystem ausgeführt, das Anwendungsaufgaben auf die verbleibenden Prozessoren verteilt. Ein symmetrisches Betriebssystem ist dezentralisiert und nutzt alle Prozessoren, wobei System- und Anwendungsaufgaben zwischen ihnen aufgeteilt werden.

Es ist offensichtlich, dass das Betriebssystem eines Personalcomputers weniger komplex ist als das Betriebssystem von Großrechnern und Supercomputern. Der Unterschied zwischen einem Netzwerk-Betriebssystem und einem lokalen Betriebssystem besteht in der Möglichkeit, Daten zwischen Computern über Kommunikationsleitungen zu übertragen und Datenübertragungsprotokolle wie IP, IPX usw. zu implementieren.

Neben Betriebssystemen, die auf eine bestimmte Art von Hardwareplattform ausgerichtet sind, gibt es mobile Betriebssysteme, die sich problemlos auf verschiedene Computertypen übertragen lassen. In solchen Betriebssystemen (z. B. UNIX) werden hardwareabhängige Stellen lokalisiert und neu beschrieben, wenn das System auf eine neue Plattform übertragen wird. Der hardwareunabhängige Teil ist in einer höheren Programmiersprache in C implementiert und wird beim Wechsel auf eine andere Plattform neu kompiliert.

Die dynamische Umverteilung der PC-Ressourcen auf mehrere Aufgaben (gemeinsame Nutzungsmethode) sorgt entweder für eine Reduzierung der Gesamtzeit für die Lösung mehrerer Aufgaben oder für eine Reduzierung der Startzeit der Aufgabenbearbeitung. Beides mit einem „Dienstgerät“, zum Beispiel einem Prozessor oder Drucker, wird durch die Erhöhung der Zeit zur Lösung einer (jeder) Aufgabe erreicht. Die Reihenfolge der Aufgaben in der Maschine bestimmt die Implementierungsmodi der Sammelnutzungsmethode: Stapelverarbeitung und Zeitteilung. Bei der Stapelverarbeitung werden mehrere Probleme in ungefähr der gleichen Weise gelöst, wie ein Lehrer während einer mündlichen Prüfung arbeitet – seine Aufmerksamkeit ist von einem der Schüler beansprucht. Nach Abschluss der Umfrage richtet sich die Aufmerksamkeit auf die nächste (wir gehen davon aus, dass die Betreuung der Studierenden die Lösung des Problems ist).

Im Time-Sharing-Modus ist der Programmausführungsprozess in Zyklen unterteilt. Innerhalb jedes Zyklus erscheint zwangsläufig die Grundaufgabe, für die dieser Zyklus vorgesehen ist (sofern sie noch nicht gelöst wurde). Die übrigen Probleme können im selben Zyklus gelöst werden, wenn ihre Lösung nicht mit der Lösung des Grundproblems kollidiert. Benachbarte Schleifen werden zur Lösung unterschiedlicher Probleme zugewiesen, sodass sich die für die Lösung jedes einzelnen Problems erforderliche Zeit erheblich erhöht. Gleichzeitig werden nicht mehr als N-1 Zyklen damit verbracht, auf die Fertigstellung des nächsten Teils der Aufgabe zu warten (N ist die Anzahl der verschiedenen Zyklen, die zur Lösung von N verschiedenen Aufgaben zugewiesen werden). Bei entsprechender Wahl der Zyklusdauer erzeugt der Benutzer (aufgrund seiner Trägheit) die Illusion, in Echtzeit zu arbeiten. Echtzeitarbeit ist ein Betriebsmodus, bei dem die zur Lösung eines Problems erforderliche Zeit maximal begrenzt ist Außenumgebung. Für ein Steuerungssystem bedeutet dies, dass die Informationsverarbeitung mit einer Geschwindigkeit ablaufen muss, die über der Geschwindigkeit des eigentlich gesteuerten Prozesses liegt, damit eine gewisse Zeit für die Entscheidungsfindung und die Gestaltung geeigneter Steuerungsmaßnahmen bleibt.

Typisch für reale Arbeitsbedingungen ist, dass die Zeitpunkte, zu denen Aufgaben zur Bearbeitung eingehen, nicht von der Arbeitsgeschwindigkeit des bedienenden Geräts (PC, Drucker etc.) bestimmt werden, sondern von Prozessen, die außerhalb desselben ablaufen. Dementsprechend muss das Wartungsgerät eine Reihe von Aufgaben lösen (Reaktion auf Geräteausfälle, Antrag auf Kommunikation im Netzwerk, erzwungene Erstellung). Sicherheitskopie usw.).

Aufgrund der endlichen Geschwindigkeit des bedienenden Geräts können eingehende Anfragen nicht sofort ausgeführt werden, sondern werden in die Warteschlange gestellt. Der Vorgang des Auswählens einer Anforderung aus der Menge derjenigen, die auf den Dienst warten, wird als Dispatching bezeichnet, und die Dispatching-Regel wird als Servicedisziplin bezeichnet. Es gibt viele Servicedisziplinen, zum Beispiel „in der Reihenfolge des Eintreffens“ (FIFO – First Input First Output), „in umgekehrter Reihenfolge“ (LIFO – Last Input First Output) usw. Zur Reduzierung der Wartezeit (in der Warteschlange verbrachte Zeit) , einzelnen Anfragen werden Prioritätsrechte für den Dienst eingeräumt, die sogenannte Priorität, die durch eine positive ganze Zahl gekennzeichnet ist. Dem Betriebssystem wird die höchste Priorität zugewiesen.

Daher kennen Anwendungsprogrammierer bei der Erstellung binärer Maschinenprogramme möglicherweise nicht einmal viele Details der Verwaltung bestimmter Ressourcen eines Computersystems, sondern müssen lediglich mit den entsprechenden Aufrufen auf ein bestimmtes Software-Subsystem zugreifen und von diesem die erforderlichen Funktionen und Dienste erhalten. Dieses Software-Subsystem ist das Betriebssystem, und die Gesamtheit seiner Funktionen und Dienste sowie die Regeln für den Zugriff darauf bilden das Grundkonzept, das wir als Betriebsumgebung bezeichnen. Wir können sagen, dass der Begriff „Betriebsumgebung“ die entsprechenden Schnittstellen bedeutet, notwendige Programme und Benutzer können auf den Kontrollteil (Überwachungsteil) des Betriebssystems zugreifen, um diese zu erhalten bestimmte Dienstleistungen.

Es gibt viele Systemfunktionen; sie bestimmen die Fähigkeiten, die das Betriebssystem den unter seiner Kontrolle laufenden Anwendungen bereitstellt. Solche Systemanforderungen (Aufrufe von Systemoperationen oder -funktionen) werden entweder explizit von Programmierern in den Programmtext geschrieben oder vom Programmiersystem selbst automatisch bei der Übersetzung des Quelltexts des zu entwickelnden Programms eingefügt. Jedes Betriebssystem verfügt über seine eigenen Systemfunktionen. Sie werden entsprechend den im System akzeptierten Regeln aufgerufen. Der Satz von Systemaufrufen und die Regeln, nach denen sie verwendet werden sollten, definieren genau die An(API). Offensichtlich funktioniert ein Programm, das für die Ausführung auf einem Betriebssystem entwickelt wurde, höchstwahrscheinlich nicht auf einem anderen Betriebssystem, da die APIs dieser Betriebssysteme unterschiedlich sind. Um diese Einschränkung zu überwinden, begannen Betriebssystementwickler, sogenannte Softwareumgebungen zu erstellen. Unter Software(system)umgebung ist eine bestimmte Systemsoftwareumgebung zu verstehen, die es Ihnen ermöglicht, alle Systemanforderungen des Anwendungsprogramms zu erfüllen. Die Systemsoftwareumgebung, die direkt durch den Betriebssystemcode gebildet wird, wird als Haupt-, natürliche oder native Umgebung bezeichnet. Zusätzlich zur Hauptbetriebsumgebung können weitere Softwareumgebungen im Betriebssystem organisiert werden (durch Emulation einer anderen Betriebsumgebung). Wenn das Betriebssystem die Arbeit mit verschiedenen Betriebssystemen organisiert, ist es in einem solchen System möglich, Programme auszuführen, die nicht nur dafür, sondern auch für andere Betriebssysteme erstellt wurden. Wir können sagen, dass Programme so erstellt werden, dass sie in einer bestimmten Betriebsumgebung funktionieren. Sie können beispielsweise ein Programm zum Ausführen erstellen DOS-Umgebung. Wenn ein solches Programm alle Funktionen im Zusammenhang mit Operationen mit I/O-Operationen und Speicheranforderungen nicht alleine, sondern durch Zugriff auf DOS-Systemfunktionen ausführt, wird es (in den allermeisten Fällen) sowohl unter MS-DOS als auch unter PS erfolgreich ausgeführt DOS und in Windows 9x und in Windows 2000 und in OS/2 und sogar in Linux.

Die Parallelexistenz der Begriffe „Betriebssystem“ und „Betriebsumgebung“ liegt also darin begründet, dass ein Betriebssystem mehrere Betriebsumgebungen unterstützen kann. Fast alle modernen 32-Bit-Betriebssysteme für Personalcomputer unterstützen mehrere Betriebsumgebungen. So kann das Betriebssystem OS/2 Warp, das einst in dieser Hinsicht zu den besten gehörte, folgende Programme ausführen:

Basisprogramme, die unter Berücksichtigung der entsprechenden „nativen“ 32-Bit-Programmierschnittstelle dieses Betriebssystems erstellt wurden;

16-Bit-Programme, die für OS/2-Systeme der ersten Generation erstellt wurden;

16-Bit-Anwendungen, die für die Ausführung unter den Betriebssystemen MS DOS oder PS DOS konzipiert sind;

16-Bit-Anwendungen, die für die Betriebssystemumgebung Windows 3. x erstellt wurden;

Die Betriebssystemoberfläche selbst ist Windows 3. x und enthält bereits dafür erstellte Programme.

Und der Operationssaal Windows-System Mit XP können Sie zusätzlich zu den Hauptanwendungen, die mit Win32API erstellt wurden, 16-Bit-Anwendungen für Windows 3. x, 16-Bit-DOS-Anwendungen und 16-Bit-Anwendungen für die erste Version von OS/2 ausführen.

Die Betriebsumgebung kann mehrere Schnittstellen umfassen: Benutzer und Software. Wenn wir über kundenspezifische sprechen, dann zum Beispiel: Linux-System hat für den Benutzer beide Befehlszeilenschnittstellen (Sie können verschiedene „Shells“ - Shell verwenden), wie Norton Commander, zum Beispiel X-Window mit verschiedenen Fenstermanagern - KDE, Gnome usw. Wenn wir über Softwareschnittstellen sprechen, dann in der gleiche Betriebssysteme mit einem gemeinsamen Namen Linux-Programme kann sowohl auf das Betriebssystem für entsprechende Dienste und Funktionen als auch auf das Grafiksubsystem (sofern verwendet) zugreifen. Aus Sicht der Prozessorarchitektur (und des Personalcomputers im Allgemeinen) verwendet ein Binärprogramm, das für die Ausführung in einer Linux-Umgebung erstellt wurde, dieselben Befehle und Datenformate wie ein Programm, das für die Ausführung in einer Windows NT-Umgebung erstellt wurde. Im ersten Fall haben wir jedoch Zugriff auf eine Betriebsumgebung und im zweiten Fall auf eine andere. Und ein direkt für Windows geschriebenes Programm läuft nicht unter Linux; wenn Sie ein vollwertiges Betriebssystem im Linux-Betriebssystem organisieren Windows-Umgebung, dann kann unser Windows-Programm ausgeführt werden. Im Allgemeinen ist die Betriebsumgebung die Systemsoftwareumgebung, in der Programme ausgeführt werden können, die gemäß den Betriebsregeln dieser Umgebung erstellt wurden.

Abschluss

Das Betriebssystem übernimmt also die Funktionen zur Verwaltung von Berechnungen in einem Computer, verteilt Computersystemressourcen auf verschiedene Rechenprozesse und bildet die Softwareumgebung, in der Benutzeranwendungen ausgeführt werden. Diese Umgebung wird als Betriebsumgebung bezeichnet. Letzteres ist in dem Sinne zu verstehen, dass das Programm beim Start das Betriebssystem mit entsprechenden Aufforderungen zur Ausführung bestimmter Aktionen oder Funktionen kontaktiert. Das Betriebssystem führt diese Funktionen aus, indem es spezielle Systemsoftwaremodule startet, die Teil davon sind.

Derzeit verwenden etwa 90 % der PCs das Windows-Betriebssystem, was eine Reihe von Vorteilen bietet und Konkurrenten aus diesem Marktsegment verdrängt hat. Eine breitere Klasse von Betriebssystemen ist für den Einsatz auf Servern vorgesehen. Zu dieser Klasse von Betriebssystemen gehören: die Unix-Familie, Entwicklungen von Microsoft, Netzwerkprodukte von Novell und IBM Corporation.

Zu den Computerressourcen gehören: Prozessoren, Speicher, Laufwerke, Netzwerkkommunikationstools, Drucker und andere Geräte. Die Funktion des Betriebssystems besteht darin, diese Ressourcen rational auf die Prozesse zu verteilen, um sicherzustellen maximale Effizienz Computerfunktion.

Liste der verwendeten Literatur

Gordeev A.V. Betriebssysteme: Lehrbuch für Universitäten. 2. Aufl. – St. Petersburg: Peter, 2005.

Grundlagen der Informatik: Lehrbuch. Zulage / A.N. Morozevich, N.N. Govyadinova, V.G. Levashenko und andere; Herausgegeben von A.N. Morozevich. – 2. Aufl., rev. – Mn.: Neues Wissen, 2003.

Evsyukov V.V. Wirtschaftsinformatik: Proc. Handbuch - Tula: Verlag "Graf und K", 2003.

Wirtschaftsinformatik: Proc. Handbuch / Ed. Prof. SEI. Odintsova, Prof. A.N. Romanova. – M.: Universitätslehrbuch, 2008.

Allrussisches Korrespondenzinstitut für Finanzen und Wirtschaft

ABTEILUNG FÜR AUTOMATISIERTE VERARBEITUNG DER WIRTSCHAFTSINFORMATIK

KURSARBEIT

durch Disziplin « Informatik »

„Zweck, Entwicklung und Klassifizierung von Betriebssystemen“

Testamentsvollstrecker:

Smertin Nikolay Olegowitsch

Management von Spezialorganisationen

Gruppe 2 (TNF)

Notenbuch-Nr. 10MMD46177 Betreuer:

Khokhlova Olga Alexandrowna

Archangelsk – 2011

Einleitung…………………………………………………………………………………… 3

1. Zweck, Entwicklung und Klassifizierung von Betriebssystemen…………… 4

Einleitung……………………………………………………………………………… 4

1.1. Zweck von Betriebssystemen…………………………………….. 5

1.2. Klassifizierung von Betriebssystemen………………………………… 11

1.3. Entwicklung der Betriebssysteme……………………………………. 13

Fazit…………………………………………………………………………… 15

2. Praktischer Teil……………………………………………………………...16

2.1. allgemeine Charakteristiken Aufgaben…………………………………………………….. 16

2.2. Beschreibung des Lösungsalgorithmus…………………………………………………….. 18

Referenzen………………………………………………………………………………21

Bewerbungen………………………………………………………………………………. 22

Einführung

Die Wahl des Testthemas „Zweck, Entwicklung und Klassifizierung von Betriebssystemen“ ist auf die Tatsache zurückzuführen, dass Betriebssysteme eine der wichtigsten Komponenten moderner Computer und, in Ermangelung dieser Komponente, des Personal Computers, wie wir ihn kennen, sind Heute ist daraus eine gewöhnliche Schreibmaschine geworden. Dank der neuesten Betriebssysteme wird die Arbeit am PC für jedermann einfach und zugänglich.

Während des Tests werden Fragen zum Zweck von Betriebssystemen als Komplex miteinander verbundener Systeme gestellt Systemprogramme; die grundlegenden Anforderungen an Betriebssysteme werden festgelegt; hebt die Funktionen hervor, die allen Betriebssystemen innewohnen; Die Hauptklassifikation wurde durchgeführt und die Frage nach der Geschichte der Systementstehung aufgedeckt.

Im praktischen Teil des Tests wird auf Basis der Ausgangsdaten die Gehaltsabrechnung der Organisation erstellt. Im praktischen Teil werden der Tabellenkalkulationsprozessor MS Excel, die Beherrschung von Pivot-Tabellen und -Diagrammen eingesetzt und die Fähigkeiten der VIEW()-Funktion erlernt.

Arbeiten durchgeführt an PCIntelPentiumIV – 2,4 GHz / 1024 MbRAM / 80 GbHDD / RW / DVD 52x32x52x / FDD 1,44

Zur Durchführung der Arbeiten kamen folgende Programme zum Einsatz:

1. Betriebssystem – Microsoft Windows XP Professional

2. Texteditor „MSWord – 2007“

3. Tabellenkalkulationsprozessor „MSExcel–2007“

1. Zweck, Entwicklung und Klassifizierung von Operationssälen

Systeme

Planen

Einführung

1.1. Zweck von Betriebssystemen

1.2. Klassifizierung von Betriebssystemen

1.3. Entwicklung von Betriebssystemen

Abschluss

Einführung

Die ersten PCs hatten kein Betriebssystem und waren ähnlich Spielkonsolen: Wenn der Computer mit dem Netzwerk verbunden wurde, greift der Prozessor auf das ROM zu, das ein Programm zur Unterstützung einer einfachen Programmiersprache enthielt. Durch den Anschluss eines Tonbandgeräts an den Computer war es möglich, ein Programm eines Drittanbieters zu laden. Das heruntergeladene Programm schaltete das ROM ab und der Computer wurde dann unter der Kontrolle des heruntergeladenen Programms betrieben.

Ein ernsthafter Bedarf an Betriebssystemen entstand, als Festplatten an Personalcomputer angeschlossen wurden. Ein Diskettenlaufwerk unterscheidet sich von einem Tonbandgerät dadurch, dass es ein Gerät mit freiem Zugriff ist, während ein Tonbandgerät ein Gerät mit sequentiellem Zugriff ist. Sie können jedes Programm von einer Magnetplatte laden. Daher sind die Bootbefehle sehr komplex geworden. Es war erforderlich, die Gleisnummer und die Nummer des Sektors anzugeben, in dem sich das zu ladende Objekt befand. Es wurde eine Lösung gefunden. Es wurde ein Programm geschrieben, das die Namen von Programmen und Dateien in Titel- und Sektornummern übersetzt. Eine Person konnte herunterladen, was sie brauchte, indem sie nur die Namen verwendete. Dieses Programm wurde zum Festplattenbetriebssystem.

Anschließend entwickelten sich Betriebssysteme parallel zur Hardware und stellten eine Reihe von Programmen dar, die zwei Funktionen erfüllen: dem Benutzer den Komfort einer virtuellen Maschine zu bieten und die Effizienz der Nutzung eines Computers zu steigern und gleichzeitig seine Ressourcen rational zu verwalten. Verschiedene Computermodelle verwenden Betriebssysteme mit unterschiedlichen Architekturen und Funktionen. Für ihren Betrieb sind unterschiedliche Ressourcen erforderlich. Sie bieten unterschiedliche Serviceleistungen für die Programmierung und die Arbeit mit vorgefertigten Programmen.

1.1 Zweck von Betriebssystemen

Operationssystem ist eine Reihe miteinander verbundener Systemprogramme, deren Zweck darin besteht, die Benutzerinteraktion mit dem Computer zu organisieren und die Ressourcen des Computersystems zu verwalten, um sie möglichst effizient zu nutzen. Das Betriebssystem fungiert als Bindeglied zwischen der Computerhardware einerseits und den ausgeführten Programmen sowie dem Benutzer andererseits. Das Betriebssystem kann als Softwareerweiterung des Steuergeräts des Computers bezeichnet werden. Das Betriebssystem verbirgt dem Benutzer komplexe unnötige Details der Hardwaresteuerung und bildet eine Schicht zwischen ihnen, wodurch der Benutzer von der sehr arbeitsintensiven Arbeit der Organisation der Interaktion mit Computerhardware befreit wird.

Die Hauptanforderung an das Betriebssystem ist die komplexe Aufgabe, die effiziente gemeinsame Nutzung von Ressourcen zwischen mehreren Prozessen zu organisieren, und diese Komplexität wird hauptsächlich durch die zufällige Natur des Auftretens von Anfragen zum Ressourcenverbrauch erzeugt. In einem Multiprogrammsystem werden Anforderungswarteschlangen von gleichzeitig laufenden Programmen an gemeinsam genutzte Computerressourcen gebildet: Prozessor, Speicherseite, Drucker, Festplatte. Das Betriebssystem organisiert die Bedienung dieser Warteschlangen mithilfe verschiedener Algorithmen: „Wer zuerst kommt, mahlt zuerst“, „Prioritätsbasiert“, „Round-Robin“ usw.

Ein modernes Betriebssystem muss in der Regel die Verarbeitung mehrerer Programme, virtuellen Speicher, eine grafische Benutzeroberfläche mit mehreren Fenstern und viele andere notwendige Funktionen und Dienste unterstützen. Neben diesen Anforderungen an die funktionale Vollständigkeit unterliegen Betriebssysteme ebenso wichtigen betrieblichen Anforderungen:

· Erweiterbarkeit. Während Computerhardware in wenigen Jahren veraltet ist, kann die Nutzungsdauer von Betriebssystemen in Jahrzehnten gemessen werden. Daher ändern sich Betriebssysteme im Laufe der Zeit immer evolutionär, und diese Änderungen sind bedeutender als Hardwareänderungen. Änderungen am Betriebssystem gehen in der Regel mit der Übernahme neuer Eigenschaften einher, beispielsweise der Unterstützung neuer Arten externer Geräte oder neuer Netzwerktechnologien. Wenn der Betriebssystemcode so geschrieben ist, dass Ergänzungen und Änderungen vorgenommen werden können, ohne die Integrität des Systems zu beeinträchtigen, wird ein solches Betriebssystem als erweiterbar bezeichnet. Die Erweiterbarkeit wird durch die modulare Struktur des Betriebssystems erreicht, bei der Programme aus einer Reihe einzelner Module erstellt werden, die nur über eine funktionale Schnittstelle interagieren;

· Portabilität. Im Idealfall sollte der Betriebssystemcode problemlos von einem Prozessortyp auf einen anderen Prozessortyp und von einem Hardwareplattformtyp (der sich nicht nur im Prozessortyp, sondern auch in der Art und Weise der Organisation der gesamten Computerhardware unterscheidet) auf einen anderen portierbar sein Art der Hardwareplattform. Tragbare Betriebssysteme bieten mehrere Implementierungsmöglichkeiten für verschiedene Plattformen, diese Eigenschaft des Betriebssystems wird auch Multiplattform genannt;

· Kompatibilität. Es gibt mehrere „langlebige“ beliebte Betriebssysteme, für die eine breite Palette von Anwendungen entwickelt wurde. Einige von ihnen erfreuen sich großer Beliebtheit. Daher ist für einen Benutzer, der aus dem einen oder anderen Grund von einem Betriebssystem auf ein anderes wechselt, die Möglichkeit, eine vertraute Anwendung auf dem neuen Betriebssystem auszuführen, sehr attraktiv. Wenn ein Betriebssystem über die Möglichkeit verfügt, für andere Betriebssysteme geschriebene Anwendungsprogramme auszuführen, gilt es als mit diesen Betriebssystemen kompatibel. Es muss zwischen binärer Kompatibilität und binärer Kompatibilität unterschieden werden. Quelltexte. Zum Kompatibilitätsbegriff gehört auch die Unterstützung von Benutzeroberflächen anderer Betriebssysteme;

· Zuverlässigkeit und Fehlertoleranz. Das System muss sowohl vor internen als auch externen Fehlern, Ausfällen und Ausfällen geschützt werden. Seine Aktionen sollten immer vorhersehbar sein und Anwendungen sollten dem Betriebssystem keinen Schaden zufügen können. Die Zuverlässigkeit und Fehlertoleranz eines Betriebssystems wird in erster Linie durch die ihm zugrunde liegenden Architekturlösungen sowie die Qualität seiner Implementierung (Debugging-Fähigkeit des Codes) bestimmt. Darüber hinaus ist es wichtig, ob das Betriebssystem Softwareunterstützung für Hardware-Fehlertoleranz bietet, beispielsweise Festplatten-Arrays oder Quellen unterbrechungsfreie Stromversorgung;

· Sicherheit. Ein modernes Betriebssystem muss Daten und andere Computersystemressourcen vor unbefugtem Zugriff schützen. Damit ein Betriebssystem über Sicherheitseigenschaften verfügt, muss es zumindest über die Möglichkeit verfügen, die Legalität von Benutzern zu bestimmen, legalen Benutzern differenzierte Zugriffsrechte auf Ressourcen zu gewähren und außerdem in der Lage zu sein, alle Ereignisse aufzuzeichnen, die für die Sicherheit des Betriebssystems „verdächtig“ sind System. Die Sicherheitseigenschaft ist besonders wichtig für Netzwerkbetriebssysteme. In solchen Betriebssystemen kommt zur Aufgabe der Zugriffskontrolle noch die Aufgabe des Schutzes der über das Netzwerk übertragenen Daten hinzu;

· Produktivität. Das Betriebssystem muss so schnell und reaktionsschnell sein, wie es die Hardwareplattform zulässt. Die Leistung des Betriebssystems wird von vielen Faktoren beeinflusst, darunter die Betriebssystemarchitektur, die Funktionsvielfalt, die Qualität der Codeprogrammierung und die Fähigkeit, das Betriebssystem auf einer Hochleistungsplattform (Multiprozessor) auszuführen.

Bei der Betrachtung der Entwicklung des Betriebssystems ist zu berücksichtigen, dass der Unterschied in der Zeit der Umsetzung einiger Prinzipien der Organisation einzelner Betriebssysteme vor ihrer allgemeinen Anerkennung sowie die terminologische Unsicherheit es uns nicht erlauben, eine Aussage zu treffen genaue Chronologie der Entwicklung des Betriebssystems. Allerdings ist es mittlerweile möglich, die wichtigsten Meilensteine ​​in der Entwicklung von Betriebssystemen recht genau zu bestimmen.

Es gibt auch unterschiedliche Ansätze zur Bestimmung der Betriebssystemgenerationen. Es ist bekannt, das Betriebssystem entsprechend den Generationen von Computern und Systemen in Generationen einzuteilen [ 5 , 9 , 10 , 13 ]. Diese Aufteilung kann nicht als völlig zufriedenstellend angesehen werden, da die Entwicklung von Methoden zur Organisation von Betriebssystemen innerhalb einer Computergeneration, wie die Erfahrung bei ihrer Entstehung gezeigt hat, in einem ziemlich breiten Spektrum erfolgt. Eine andere Sichtweise verbindet die Betriebssystemgeneration nicht mit den entsprechenden Computergenerationen. Es ist beispielsweise bekannt, Betriebssystemgenerationen nach Ebenen der Computereingabesprache, Nutzungsmodi von Zentralprozessoren, Formen des Systembetriebs usw. zu definieren. [ 5 , 13 ].

Offensichtlich sollte es als am besten geeignet angesehen werden, die Stadien der Betriebssystementwicklung innerhalb einzelner Computer- und Computergenerationen zu unterscheiden.

Als erste Stufe bei der Entwicklung von Systemsoftware kann die Verwendung von Bibliotheksprogrammen, Standard- und Dienstprogramm-Unterprogrammen sowie Makrobefehlen betrachtet werden. Das Konzept der Routinebibliotheken ist das früheste und stammt aus dem Jahr 1949 [ 4 , 17 ]. Mit dem Aufkommen von Bibliotheken wurden automatische Mittel zu deren Verwaltung entwickelt – Ladeprogramme und Link-Editoren. Diese Tools wurden in Computern der ersten Generation verwendet, als Betriebssysteme als solche noch nicht existierten.

Der Wunsch, einerseits die Diskrepanz zwischen der Leistung von Prozessoren und der Betriebsgeschwindigkeit elektromechanischer Ein-/Ausgabegeräte zu beseitigen und andererseits relativ schnelle Laufwerke auf Magnetbändern und -trommeln (NMR und NMB) zu verwenden auf Magnetplatten (NMD) hingegen führte zu der Notwendigkeit, Probleme der Pufferung und des Blockierens/Entsperrens von Daten zu lösen. Entstanden spezielle Programme Zugriffsmethoden, die den Objekten von Link-Editor-Modulen hinzugefügt wurden (später wurden die Prinzipien des Polybuffering verwendet). Um die Funktionalität aufrechtzuerhalten und die Bedienung von Maschinen zu erleichtern, wurden Diagnoseprogramme erstellt. Auf diese Weise wurde die grundlegende Systemsoftware erstellt.

Mit der Verbesserung der Computereigenschaften und der Steigerung ihrer Produktivität wurde klar, dass die vorhandene Basissoftware (Software) nicht ausreichte. Frühe Betriebssysteme für die Stapelverarbeitung – Monitore – erschienen. Innerhalb des Stapelverarbeitungssystems befand sich während der Ausführung einer Arbeit in einem Stapel (Übersetzung, Assemblierung, Ausführung eines fertigen Programms) kein Teil der Systemsoftware im RAM, da der gesamte Speicher für die aktuelle Arbeit bereitgestellt wurde. Dann erschienen Monitorsysteme, bei denen der Arbeitsspeicher in drei Bereiche unterteilt war: einen festen Bereich des Monitorsystems, einen Benutzerbereich und einen gemeinsam genutzten Speicherbereich (zur Speicherung von Daten, die zwischen Objektmodulen ausgetauscht werden konnten).

Es begann eine intensive Entwicklung von Datenverwaltungsmethoden, und es entstand eine so wichtige Betriebssystemfunktion wie die Implementierung von I/O ohne Beteiligung eines zentralen Prozesses – das sogenannte Spooling (aus dem Englischen SPOOL – Simultaneous Peripheral Operation on Line).

Das Aufkommen neuer Hardware-Entwicklungen (1959-1963) – Interrupt-Systeme, Timer, Kanäle – stimulierte die weitere Entwicklung des Betriebssystems [ 4 , 5 , 9 ]. Es entstanden Exekutivsysteme, bei denen es sich um eine Reihe von Programmen zur Verteilung von Computerressourcen, zur Kommunikation mit dem Bediener, zur Verwaltung des Rechenprozesses und zur Verwaltung der Eingabe/Ausgabe handelte. Solche ausführenden Systeme ermöglichten die Implementierung einer für die damalige Zeit recht effektiven Form des Betriebs eines Computersystems – der Einzelprogramm-Stapelverarbeitung. Diese Systeme stellten dem Benutzer Tools wie Prüfpunkte, logische Timer, die Möglichkeit, Programme mit einer Overlay-Struktur zu erstellen, Verstöße gegen im System übernommene Programmbeschränkungen zu erkennen, Dateiverwaltung, Erfassung von Buchhaltungsinformationen usw. zur Verfügung.

Allerdings konnte die Einzelprogramm-Stapelverarbeitung bei steigender Computerproduktivität kein wirtschaftlich akzeptables Maß an Maschinenbetrieb gewährleisten. Die Lösung war Multiprogramming – eine Methode zur Organisation eines Rechenprozesses, bei der der Computerspeicher mehrere Programme enthält, die abwechselnd von einem Prozessor ausgeführt werden, und um ein Programm zu starten oder fortzusetzen, ist nicht die Fertigstellung anderer erforderlich. In einer Umgebung mit mehreren Programmen sind Ressourcenzuweisungs- und Sicherheitsprobleme akuter und unlösbarer geworden.

Die Theorie zum Aufbau von Betriebssystemen wurde in dieser Zeit durch eine Reihe fruchtbarer Ideen bereichert. Es sind verschiedene Formen von Multiprogramm-Betriebsmodi aufgetaucht, darunter Time-Sharing – ein Modus, der den Betrieb eines Multi-Terminal-Systems gewährleistet. Das Konzept des virtuellen Speichers und dann der virtuellen Maschinen wurde erstellt und entwickelt. Der Time-Sharing-Modus ermöglichte es dem Benutzer, interaktiv mit seinen Programmen zu interagieren, wie es vor der Einführung von Stapelverarbeitungssystemen der Fall war.

Eines der ersten Betriebssysteme, das diese neuen Lösungen nutzte, war das MCP-Betriebssystem (Main Control Program), das Burroughs 1963 für seine B5000-Computer entwickelte. Dieses Betriebssystem implementierte viele Konzepte und Ideen, die später für viele Betriebssysteme zum Standard wurden:

    Multiprogrammierung;

    Mehrfachverarbeitung;

    virtueller Speicher;

    die Fähigkeit, Programme in der Quellsprache zu debuggen;

    Schreiben eines Betriebssystems in einer Hochsprache.

Ein bekanntes Time-Sharing-System dieser Zeit war das CTSS-System (Compatible Time Sharing System), ein kompatibles Time-Sharing-System, das am Massachusetts Institute of Technology (1963) für den Computer IBM-7094 entwickelt wurde [ 37 ]. Dieses System wurde verwendet, um am selben Institut zusammen mit Bell Labs und General Electric das Time-Sharing-System MULTICS (Multiplexed Information And Computing Service) der nächsten Generation zu entwickeln. Bemerkenswert ist, dass dieses Betriebssystem hauptsächlich in der Hochsprache EPL (der ersten Version der PL/1-Sprache von IBM) geschrieben wurde.

Eines der wichtigsten Ereignisse in der Geschichte der Betriebssysteme ist das Erscheinen einer Computerfamilie namens System/360 von IBM und später System/370 im Jahr 1964 [ 11 ]. Dies war die weltweit erste Umsetzung des Konzepts einer Familie software- und informationskompatibler Computer, das später zum Standard für alle Unternehmen der Computerindustrie wurde.

Es ist zu beachten, dass die Hauptform der Computernutzung sowohl in Time-Sharing-Systemen als auch in Batch-Verarbeitungssystemen der Multi-Terminal-Modus geworden ist. Gleichzeitig konnten nicht nur der Bediener, sondern alle Benutzer ihre Aufgaben formulieren und deren Ausführung von ihrem Terminal aus verwalten. Da Terminalkomplexe dank moderner Telefonverbindungen bald in beträchtlicher Entfernung vom Computer platziert werden konnten, entstanden Systeme zur Ferneingabe von Aufgaben und zur Fernverarbeitung von Daten. Dem Betriebssystem wurden Module hinzugefügt, die Kommunikationsprotokolle implementieren [ 10 , 13 ].

Zu diesem Zeitpunkt hatte sich die Funktionsverteilung zwischen Computerhardware und -software erheblich verändert. Das Betriebssystem wird zu einem „integralen Bestandteil des Computers“, quasi einer Fortsetzung der Hardware. Die Prozessoren verfügen nun über privilegierte (Supervisor in OS/360) und Benutzer- (Task in OS/360) Betriebsmodi, ein leistungsstarkes Interrupt-System, Speicherschutz, spezielle Register für schnelle Programmwechsel, Unterstützung für virtuellen Speicher usw.

In den frühen 70er Jahren erschienen die ersten Netzwerkbetriebssysteme, die es nicht nur ermöglichten, Benutzer wie bei Televerarbeitungssystemen zu verteilen, sondern auch die verteilte Speicherung und Verarbeitung von Daten zwischen Computern zu organisieren, die über elektrische Verbindungen verbunden waren. Das Projekt ARPANET MO USA ist bekannt. 1974 kündigte IBM die Schaffung einer eigenen SNA-Netzwerkarchitektur für seine Großrechner an, die Terminal-zu-Terminal-, Terminal-zu-Computer- und Computer-zu-Computer-Interaktionen ermöglicht. In Europa wurde aktiv die Technologie zum Aufbau von Paketvermittlungsnetzen basierend auf X.25-Protokollen entwickelt.

Mitte der 70er Jahre verbreiteten sich neben Großrechnern auch Minicomputer (PDP-11, Nova, HP). Die Architektur von Minicomputern war viel einfacher; viele Funktionen des Mainframe-Multiprogramm-Betriebssystems wurden abgeschnitten. Minicomputer-Betriebssysteme wurden zunehmend spezialisiert (RSX-11M – Time-Sharing, RT-11 – Echtzeit-OC) und nicht immer mehrbenutzerfähig.

Ein wichtiger Meilenstein in der Geschichte der Minicomputer und in der Geschichte der Betriebssysteme im Allgemeinen war die Entwicklung des UNIX-Betriebssystems. Dieses System wurde von Ken Thompson geschrieben, einem der Informatiker bei BELL Labs, der am MULTICS-Projekt gearbeitet hat. Tatsächlich ist sein UNIX eine verkürzte Einzelplatzversion des MULTICS-Systems. Der ursprüngliche Name dieses Systems ist UNICS (UNiplexed Information and Computing Service – ein primitiver Informations- und Computerdienst). Der Name dieses Systems ist ein Scherz, da MULTICS (MULTiplexed Information and Computing Service) ein Multiplex-Informations- und Computerdienst ist. Ab Mitte der 70er Jahre begann die weit verbreitete Verwendung des UNIX-Betriebssystems, das zu 90 % in der Sprache C geschrieben war. Die weit verbreitete Verwendung von C-Compilern machte UNIX zu einem einzigartigen tragbaren Betriebssystem, und da es mit Quellcode geliefert wurde, war es das erste offenes Betriebssystem. Flexibilität, Eleganz, leistungsstarke Funktionalität und Offenheit haben es ihm ermöglicht, in allen Computerklassen – vom Personalcomputer bis zum Supercomputer – eine starke Position einzunehmen.

Die Verfügbarkeit von Minicomputern förderte die Entstehung lokaler Netzwerke. In den einfachsten LANs waren Computer über serielle Schnittstellen verbunden. Die erste Netzwerkanwendung für das UNIX-Betriebssystem, das Programm UUCP (Unix to Unix Copy Program), erschien 1976.

Weiterentwicklung von Netzwerksystemen mit dem TCP/IP-Protokollstack: 1983 wurde er vom US-Verteidigungsministerium als Standard übernommen und im ARPANET-Netzwerk verwendet. Im selben Jahr spaltete sich ARPANET in MILNET (für das US-Militärministerium) und das neue ARPANET, das als Internet bekannt wurde.

Die gesamten achtziger Jahre waren durch das Aufkommen immer fortschrittlicherer Versionen von UNIX gekennzeichnet: Sun OS, HP-UX, Irix, AIX usw. Um das Problem ihrer Kompatibilität zu lösen, wurden POSIX- und XPG-Standards übernommen, die die Schnittstellen dieser Systeme definierten Anwendungen.

Ein weiteres bedeutendes Ereignis in der Geschichte der Betriebssysteme war die Einführung von Personalcomputern in den frühen 1980er Jahren. Sie waren ein starker Impulsgeber für die Verbreitung lokaler Netzwerke, wodurch die Unterstützung von Netzwerkfunktionen zur Voraussetzung für PC-Betriebssysteme wurde. Sowohl eine benutzerfreundliche Oberfläche als auch Netzwerkfunktionen erschienen jedoch nicht sofort auf dem PC-Betriebssystem [ 13 ].

Die beliebteste Betriebssystemversion der frühen Entwicklung von Personalcomputern war Microsofts MS-DOS, ein Einzelprogramm-Einzelbenutzer-Betriebssystem mit Befehlszeilenschnittstelle. Viele Funktionen, die dem Benutzer in diesem Betriebssystem Komfort bieten, wurden durch zusätzliche Programme bereitgestellt – die Norton Commander-Shell, PC Tools usw. Den größten Einfluss auf die Entwicklung von PC-Software hatte die Windows-Betriebssystemumgebung, deren erste Version 1985 erschien . Netzwerkfunktionen wurden ebenfalls mithilfe von Netzwerk-Shells implementiert und erschienen in MS-DOS Version 3.1. Zur gleichen Zeit erschienen Microsoft-Netzwerkprodukte – MS-NET und später – LAN Manager, Windows for Workgroup und dann Windows NT.

Novell ging einen anderen Weg: Sein Produkt NetWare ist ein Betriebssystem mit integrierten Netzwerkfunktionen. NetWare OS wurde als Betriebssystem für einen zentralen lokalen Netzwerkserver vertrieben und ermöglichte aufgrund der Spezialisierung der Dateiserverfunktionen einen Hochgeschwindigkeits-Fernzugriff auf Dateien und eine erhöhte Datensicherheit. Allerdings verfügte dieses Betriebssystem über eine spezielle Programmierschnittstelle (API), was die Anwendungsentwicklung erschwerte.

1987 erschien das erste Multitasking-Betriebssystem für PCs, OS/2, das von Microsoft zusammen mit IBM entwickelt wurde. Es war ein gut konzipiertes System mit virtuellem Speicher, einer grafischen Oberfläche und der Möglichkeit, DOS-Anwendungen auszuführen. Dafür wurden die Netzwerk-Shells LAN Manager (Microsoft) und LAN Server (IBM) erstellt und verteilt. Diese Shells waren in der Leistung dem NetWare-Dateiserver unterlegen und verbrauchten mehr Hardwareressourcen, hatten aber wichtige Vorteile. Sie ermöglichten die Ausführung aller für OS/2, MS-DOS und Windows entwickelten Programme auf dem Server, darüber hinaus war es möglich, den Computer, auf dem sie liefen, als Workstation zu nutzen. Das unglückliche Marktschicksal von OS/2 erlaubte es den LAN-Manager- und LAN-Server-Systemen nicht, einen nennenswerten Marktanteil zu erobern, aber die Funktionsprinzipien dieser Netzwerksysteme waren weitgehend im Betriebssystem der 90er Jahre verankert – MS Windows NT.

In den 80er Jahren wurden die wichtigsten Standards für Kommunikationstechnologien für lokale Netzwerke übernommen: 1980 - Ethernet, 1985 - Token Ring, Ende der 80er Jahre - FDDI (Fiber Distributed Data Interface), eine verteilte Datenübertragungsschnittstelle über Glasfaserkanäle, Doppelring mit Markierung. Dadurch war es möglich, die Kompatibilität von Netzwerkbetriebssystemen auf niedrigeren Ebenen sicherzustellen und Betriebssysteme mit Netzwerkadaptertreibern zu standardisieren.

Für PCs wurden nicht nur speziell für sie entwickelte Betriebssysteme verwendet (MS-Dos, NetWare, OS/2), sondern auch bestehende Betriebssysteme, insbesondere UNIX, angepasst. Das bekannteste System dieser Art war die Santa Cruz Operation-Version von UNIX (SCO UNIX).

In den 90er Jahren wurden fast alle Betriebssysteme, die eine herausragende Stellung auf dem Markt einnahmen, netzwerkbasiert. Netzwerkfunktionen sind in den Betriebssystemkernel integriert und bilden dessen integralen Bestandteil. Das Betriebssystem verwendet Tools zum Multiplexen mehrerer Protokollstapel, wodurch Computer die gleichzeitige Arbeit mit heterogenen Servern und Clients unterstützen können. Es sind spezielle Betriebssysteme aufgetaucht, beispielsweise das IOS-Netzwerkbetriebssystem von Cisco System, das in Routern läuft. In der zweiten Hälfte der 90er Jahre verstärkten alle Betriebssystemhersteller ihre Unterstützung für Tools zum Arbeiten mit Schnittstellen. Zusätzlich zum TCP/IP-Protokollstapel enthielt das Paket nun Dienstprogramme, die beliebte Internetdienste implementieren: Telnet, FTP, DNS, Web usw.

Besondere Aufmerksamkeit wurde im letzten Jahrzehnt und auch heute den Betriebssystemen für Unternehmensnetzwerke gewidmet. Dies ist eine der wichtigsten Aufgaben in absehbarer Zukunft. Unternehmensbetriebssysteme müssen in großen Netzwerken, die für große Organisationen (Unternehmen, Banken usw.) mit Niederlassungen in vielen Städten und möglicherweise in verschiedenen Ländern typisch sind, gut und stabil funktionieren. Das Unternehmensbetriebssystem sollte nahtlos mit dem Betriebssystem interagieren verschiedene Typen und arbeiten auf verschiedenen Hardwareplattformen. Jetzt wurden die Spitzenreiter in der Klasse der Unternehmens-Betriebssysteme identifiziert – dies sind MS Windows 2000/2003, UNIX- und Linux-Systeme sowie Novell NetWare 6.5.