Konzepte und Begriffe des Windows-Betriebssystems

In diesem Artikel lernen wir einige grundlegende Konzepte und Begriffe des Windows-Betriebssystems kennen. Sie erfahren wozu diese benötigt werden und wofür sie eingesetzt werden. Zu diesen gehören beispielweise Windows API, .NET Framework, Unicode und weitere.
Inhaltsverzeichnis
Windows API
Die Windows API ist eine Bibliothek von Funktionen, die eine Schnittstelle zwischen dem Windows-Betriebssystem und den auf einem Computer ausgeführten Softwareanwendungen bilden.
Die Hauptaufgabe der Windows-API besteht darin, die Kommunikation zwischen Benutzeranwendungen und dem Betriebssystem zu regeln, da jede für Windows entwickelte Softwareanwendung die Windows-API verwendet. Beispielsweise rufen Ereignisse in Windows wie Tastatureingaben, Mausbewegungen und das Einlegen einer CD Funktionen in der Windows-API auf, die das Ereignis ausführen.
API Funktion | Aufgabe |
WriteFile | Daten in eine Datei schreiben |
CreateProcess | Startet einen Prozess |
SetFocus | Legt den Fokus auf ein Objekt |
EndDialog | Schließt ein Dialogfeld und entfernt es aus dem Speicher |
CloseWindow | Entfernt ein Fenster vom Bildschirm |
Entwickler, die Anwendungen für Windows erstellen, verwenden die Funktionen in der Windows API nicht direkt. Wenn ein Entwickler, der ein Programm für Windows programmiert, mit dem Betriebssystem kommunizieren möchte, geschieht dies durch Aufrufe von Bibliotheksfunktionen im Entwicklungstool. Die Bibliotheksfunktionen senden dann weitere Aufrufe an Funktionen in der Windows API. Eine Funktion, deren Aufgabe darin besteht, eine andere Funktion aufzurufen, wird als Wrapper-Funktion bezeichnet.
Die Windows API ist eine alte Bibliothek, die von allen Windows-Versionen ab Windows 95 verwendet wird. Windows-Betriebssysteme haben sich mit jeder Windows-Version geändert, ebenso wie die Windows-API. Die Windows-API war ursprünglich 16-Bit, wurde aber nach und nach zu 32-Bit und 64-Bit. Die 32-Bit-API wurde Win32-API genannt, und heute existieren 32-Bit und 64-Bit nebeneinander. Die Windows-API bezieht sich daher sowohl auf 32-Bit- als auch auf 64-Bit-Versionen.
32-Bit- und 64-Bit-Architektur
Die 32-Bit- und 64-Bit-Architektur bezieht sich auf die Länge der vom Prozessor verwendeten Speicheradresse. Die 64-Bit-Version von Windows, die große Mengen an RAM (Random Access Memory) verarbeiten kann, ist effektiver als ein 32-Bit-System. Allerdings wurde ein Großteil der Software in der 32-Bit-Ära entwickelt. Um die Vorteile eines 64-Bit-Betriebssystems voll ausschöpfen zu können, benötigen Sie Software, die für die 64-Bit-Verarbeitung optimiert ist.
Die Windows-API verfügt über Dienste, die von allen Windows-Anwendungen genutzt werden. Diese bestehen aus Tausenden von Funktionen, die in die folgenden Kategorien unterteilt sind:
- Administration und Verwaltung
- Diagnose
- Grafik und Multimedia
- Netzwerk
- Sicherheit
- Systemdienste
- Windows-Benutzeroberfläche
Der Verwaltungs- und Managementteil der Windows API bietet zahlreiche Dienste für Anwendungen und Systeme. Einer davon ist die Installation und Konfiguration von Softwareanwendungen.
Der Diagnoseteil der Windows API behandelt Probleme, die während der Programmausführung auftreten, einschließlich Funktionen für die Protokollierung, Fehlerverarbeitung, Fehlerbehebung und vieles mehr. Der Diagnoseteil der Windows API versucht, Fehler und Systemfehler zu beheben. Wenn ein Programm ein Problem hat, kann die Windows API versuchen, den Fehler zu beheben oder das Programm neu zu starten.
Der Grafik- und Multimedia-Abschnitt der Windows-API bietet Anwendungen für die Funktionalität zum Drucken von Grafiken auf dem Bildschirm, auf Druckern und ähnlichen Geräten. Der Grafik- und Multimedia-Abschnitt der Windows-API ermöglicht es Anwendungen, formatierten Text, Grafiken, Audio und Video zu integrieren und verfügt über Funktionen zum Zeichnen von Linien, Kurven und Formen sowie zur Verwendung von Stiften, Bildern und Farben. Microsoft DirectX ist eine Sammlung von APIs, die Aufgaben im Zusammenhang mit Multimedia auf Microsoft-Plattformen übernehmen. DirectX ist auch ein Tool, das in der Spieleprogrammierung verwendet wird.
Der Netzwerkteil der Windows API verfügt über Funktionen, die die Kommunikation zwischen Anwendungen auf verschiedenen Computern innerhalb eines Netzwerks ermöglichen. Es gibt mehrere Standards wie Windows Sockets, Remote Procedure Call (RPC) und Simple Network Management Protocol (SNMP).
Die Windows API bietet zahlreiche Sicherheitsdienste, darunter Dienste für die Anmeldung mit Kennwort, den Schutz gemeinsam genutzter Systemobjekte, die Zugriffskontrolle, Rechte, Überwachung, Verschlüsselung und vieles mehr.
Die Systemdienste der Windows API ermöglichen Anwendungen den Zugriff auf Ressourcen auf dem Computer, wie z. B. Speicher, Dateisysteme, Ein-/Ausgabegeräte, Hardwaregeräte, Prozesse, Threads und vieles mehr.
Die Windows API verfügt über Funktionen, die sich mit der Benutzeroberfläche von Windows befassen. So gibt es beispielsweise Funktionen in der Windows API, die Fenster erstellen und verwalten, sowie Funktionen, die Steuerelemente wie Menüs, Cursor, Symbole und Kombinationsfelder verwalten. Die Windows API enthält auch eine Reihe von Funktionen zur Verwaltung von Fenstern, geometrischen Formen, Text, Schriftarten, Bildlaufleisten, Dialogfeldern, Menüs und ähnlichen GUI-Funktionen.
.NET Framework
.NET Framework ist ein Software-Framework, das unter Microsoft Windows läuft.
Ein Framework ist in der Programmierung eine Sammlung von Anwendungsprogrammierschnittstellen (APIs) und einer gemeinsam genutzten Codebibliothek, auf der Entwickler bei der Entwicklung von Anwendungen aufbauen können, sodass sie nicht den gesamten Code neu schreiben müssen.
Programme, die für .NET Framework geschrieben wurden, werden in einer Softwareumgebung namens Common Language Runtime (CLR) ausgeführt. CLR ist eine virtuelle Maschine für Anwendungen, die Dienste wie Sicherheit, Speicherverwaltung und Ausnahmebehandlung bereitstellt.
Es gibt mehrere Vorteile, wenn Anwendungen in einer Laufzeitumgebung ausgeführt werden. Der größte ist die Portabilität. Entwickler können ihren Code in einer Reihe von unterstützenden Sprachen schreiben, darunter C#, C++, F#, Visual Basic und andere. Dieser Code kann dann auf jeder Hardware ausgeführt werden, auf der .NET unterstützt wird.
NET Framework ist ein Teil von Windows. Die Dienste von .NET Framework verbessern die Produktivität von Entwicklern und erhöhen die Sicherheit und Zuverlässigkeit von Windows-Anwendungen.
Objekte und Handles
Ein Objekt im Windows-Betriebssystem ist eine Struktur, die zum Speichern von Daten verwendet wird. Ein Objekt besteht aus systemdefinierten Datentypen, die als Attribute bezeichnet werden, und Funktionen, die die Attribute verarbeiten.
Objekte werden im Windows-Betriebssystem häufig verwendet, z. B. Dateien, Fenster, Bilder, Semaphoren, Prozesse und Threads. Dennoch sind nicht alle Daten im Windows-Betriebssystem Objekte, da sich nur Daten, die gemeinsam genutzt, geschützt oder für Benutzerprogramme sichtbar sein müssen, in Objekten befinden.
Über Windows-Objekte
Objekte im Windows-Betriebssystem ähneln Objekten, die in der objektorientierten Programmierung verwendet werden. Allerdings fehlen Objekten in Windows einige der Merkmale objektorientierter Programmiersysteme, wie z. B. Vererbung und Polymorphismus.
Das Windows-Betriebssystem unterscheidet zwischen drei Objekttypen. Es gibt Benutzerobjekte, grafische Objekte (GDI-Objekte) und Kernel-Objekte. Die Aufgabe von Benutzerobjekten besteht darin, die Verwaltung von Fenstern zu unterstützen, während die Aufgabe von grafischen Objekten darin besteht, Grafiken zu unterstützen. Kernelobjekte unterstützen die Speicherverwaltung, die Prozessausführung und die Kommunikation zwischen Prozessen.
Objekte haben im Betriebssystem folgende wichtige Aufgaben:
- Bereitstellung von Namen von Systemressourcen, die für Menschen lesbar sind.
- Gemeinsame Nutzung von Ressourcen und Daten zwischen Prozessen.
- Schutz von Ressourcen vor unbefugtem Zugriff.
- Verfolgung von Daten, die nicht mehr verwendet werden und gelöscht werden können.
Um die Sicherheit zu erhöhen, ist jedem Objekt ein Sicherheitsdeskriptor zugeordnet. Ein Sicherheitsdeskriptor enthält Informationen darüber, welche Vorgänge für das Objekt zulässig sind.
In Windows NT erstellen API-Funktionen Objekte im Kernelmodus. Jedes Mal, wenn ein neues Objekt erstellt wird, wird ein Handle für das Objekt zurückgegeben.
Ein Handle ist eine Art Zeiger, der in Windows verwendet wird. Eine Benutzeranwendung hat keinen direkten Zugriff auf die Datenobjekte. Daher verwenden die Anwendungen Handles, um auf die Daten in Objekten zuzugreifen und diese zu ändern.
Handles werden verwendet, um Operationen an Objekten auszuführen, genau wie Zeiger und Referenzen in der objektorientierten Programmierung. Der Zugriff auf Daten und Funktionen in einem Objekt über ein Handle ist schneller als das Nachschlagen über den Namen des Objekts.
Windows läuft in zwei Modi
Das Windows-Betriebssystem führt Programme in zwei Modi aus:
- Benutzermodus
- Kernelmodus
Anwendungen werden im Benutzermodus ausgeführt, während Prozesse, die mit dem Betriebssystem verbunden sind, im Kernelmodus ausgeführt werden.
Der Zweck der zwei Modi in Windows besteht darin, die Sicherheit des Betriebssystems zu erhöhen, da die Verwendung von zwei Modi das Betriebssystem vor Anwendungen schützt, die kritische Daten des Betriebssystems beschädigen oder verändern können.
Der Unterschied zwischen Kernelmodus und Benutzermodus besteht im Zugriff von Prozessen auf Systemressourcen. Im Kernelmodus ausgeführte Prozesse haben Zugriff auf die gesamte Hardware und können so viele Aufgaben wie möglich auf dem Computer ausführen. Prozesse, die zu Anwendungen gehören, die im Benutzermodus ausgeführt werden, haben nur begrenzten Zugriff auf Systemressourcen.
Prozesse und Threads
Die Begriffe Programm, Prozess und Thread sind in der Theorie von Betriebssystemen eng miteinander verbunden. Programme führen zu Prozessen und Threads, obwohl Prozesse und Threads sich stark von Programmen unterscheiden.
Begriff | Definition |
Programm | Ein Programm ist ein Programmcode und entsprechende Daten, die sich in einer oder mehreren Dateien auf einer Festplatte befinden. |
Prozess | Wenn ein Programm gestartet und in den Arbeitsspeicher des Computers geladen wird, wird ein Prozess erstellt. |
Thread | Ein Thread ist ein Teil eines Prozesscodes, der im Prozessor ausgeführt werden soll, und ist der dynamische Teil eines Prozesses. |
Die Verwaltung von Prozessen und Threads ist eine zentrale Aufgabe eines Betriebssystems. Das Betriebssystem muss Prozesse starten und beenden, Ressourcen für Prozesse zuweisen, für die Synchronisierung von Prozessen sorgen, die Kommunikation zwischen Prozessen organisieren und Prozesse voneinander schützen.
Prozesse und Threads sind zentrale Konzepte in der Theorie der Betriebssysteme, und wir werden sie später im Kapitel über Prozesse, Threads und Jobs genauer betrachten.
Dienste, Funktionen und Routinen
Im Zusammenhang mit Betriebssystemen gibt es die Konzepte Funktion, Routine, Unterroutine und Dienst:
- In der Programmiersprache C ist eine Funktion ein Codeabschnitt in einem Programm, der von anderen Teilen des Programms aufgerufen wird.
- Eine Routine ist definiert als ein Codeabschnitt in einem Programm, der bei der Ausführung des Programms wiederholt durch Aufrufe verwendet wird.
- Ein Unterprogramm kann als eine Einheit mit Programmanweisungen zur Ausführung einer bestimmten Aufgabe definiert werden.
- Ein Dienst ist in der Regel eine oder mehrere Routinen, die ausgeführt werden, wenn Sie sie aufrufen.
Die Bedeutung von Funktion, Routine und Dienst ist eine Frage der Definition. Im Folgenden werden wir uns die Verwendung dieser Begriffe im Zusammenhang mit verschiedenen Teilen des Windows-Betriebssystems ansehen.
In Verbindung mit dem Windows-Betriebssystem wird häufig die folgende Terminologie verwendet:
- Windows API-Funktionen
- Native System Services
- Kernel-Funktionen
- Windows-Dienste
- Dynamic Link Libraries
Windows API-Funktionen sind dokumentierte Unterprogramme, die von Benutzeranwendungen aufgerufen werden. Daher verwenden Sie das Wort Funktionen in Verbindung mit Bibliotheksroutinen in der Windows API.
Native System Services in Windows sind undokumentierte Dienste, die im Kernelmodus ausgeführt werden. Treiber können diese Dienste direkt aufrufen, während Anwendungen im Benutzermodus sie über die Windows-API aufrufen können. Wenn eine Benutzeranwendung beispielsweise eine Datei erstellt, ruft die Funktion CreateFile in der Windows-API einen internen Systemdienst mit dem Namen NtCreateFile auf. Viele Systemdienste haben einen Namen, der mit Nt beginnt, wobei Nt für die Native System Services steht.
Kernel-Support-Funktionen oder -Routinen sind Unterprogramme im Windows-Betriebssystem, die nur vom Kernel-Modus aufgerufen werden.
Windows-Dienste sind Prozesse, die im Hintergrund ausgeführt werden und eine Funktion ausführen. Das Windows-Betriebssystem verfügt über etwa 50 Standarddienste, z. B. wird DNS verwendet, um eine IP-Adresse für eine Webadresse zu finden. Ein weiteres Beispiel für einen Windows-Dienst ist ein Webserver, der im Hintergrund ausgeführt wird.
Benutzer können auch eigene Dienste hinzufügen. Sie können Windows-Dienste so konfigurieren, dass sie beim Neustart automatisch gestartet werden, aber Sie können Windows-Dienste auch manuell starten. Viele Windows-Dienste sind im Windows-Task-Manager zu sehen, wo sie oft Namen wie System, Lokaler Dienst oder Netzwerkdienst haben.
Dynamic Link Libraries (DLLs) sind Unterprogramme, die von Anwendungen im Benutzermodus verwendet werden, und Windows-Programme verwenden häufig DLLs. Der Vorteil von DLLs besteht darin, dass mehrere Prozesse sie gemeinsam nutzen können, was zu einer besseren Speichernutzung führt, wenn das Betriebssystem sicherstellt, dass sich jeweils nur eine Kopie einer DLL im Speicher befindet.
Das Gegenteil von DLLs sind statische Bibliotheken, in denen Code in jede Anwendung kopiert wird, die sie verwendet.
Unicode
Unicode ist ein Standard zur Darstellung von Zeichen, die auf einem Computer geschrieben werden, z. B. Zeichen, die in einem Textverarbeitungsprogramm verwendet werden. Es handelt sich um einen internationalen Zeichensatz, der alle Zeichen der Welt darstellen kann.
Der am weitesten verbreitete Standard für Zeichen war bisher ASCII (American Standard Code for Information Interchange). Dieser Zeichensatz eignet sich für die englische Sprache, obwohl er nur 256 Zeichen umfasst, was in einer internationalen Welt nicht ausreicht. Chinesisch, Koreanisch und Japanisch haben beispielsweise 10.000 häufig verwendete Schriftzeichen. Aus diesem Grund wurde Unicode entwickelt. Unicode verfügt über 65.536 Schriftzeichen, was für alle Sprachen der Welt ausreicht.
Der Vorteil von Unicode besteht darin, dass es eine mehrsprachige Kommunikation ermöglicht, einschließlich der Darstellung mehrerer Sprachen in einem einzigen Dokument. Für viele Sprachen ist dies ohne die Verwendung von Unicode schwierig oder unmöglich.