Zum Inhalt springen
Der Guide für ein smartes Leben.
VG Wort Pixel
Hintergrund

Die neue Systemarchitektur von Windows 8

Mehr zum Thema: Microsoft

Mit Windows 8 tritt Microsoft in den Kampf zwischen iOS und Android ein. Das neue Betriebssystem widmet sich deshalb verstärkt den mobilen Endgeräten - ein Blick unter die Haube.

Autor: Andreas Maslo • 3.1.2013 • ca. 9:30 Min

software, windows 8, betriebssystem
software, windows 8, betriebssystem
© Hersteller/Archiv

Windows 8 unterstützt neben Desktop-PCs auch mobile Geräte wie Smartphones und Tablet-PCs. Es ist auf unterschiedlichen Prozessoren (x86-Prozessoren, ARM) ausführbar und liegt in Hardware-spezifischen Versionen vor. Geräte mit ARM-Prozessor werden etwa mit Windows RT ausgeliefert und sind aussch...

Windows 8 unterstützt neben Desktop-PCs auch mobile Geräte wie Smartphones und Tablet-PCs. Es ist auf unterschiedlichen Prozessoren (x86-Prozessoren, ARM) ausführbar und liegt in Hardware-spezifischen Versionen vor. Geräte mit ARM-Prozessor werden etwa mit Windows RT ausgeliefert und sind ausschließlich für die modernen Anwendungen, den Windows-Apps, ausgelegt.

Mobile Geräte mit x86-Prozessor unterstützen mit Windows 8 Pro zusätzlich die altbekannten Desktop-Anwendungen. Windows 8 soll die Bedienung vereinfachen und zudem sparsam mit den vorhandenen Systemressourcen (Speicher und Prozessorleistung) umgehen. Die Ausführung der Windows-Apps wird vom System überwacht. Nicht nur Anwendungen werden nach Bedarf schlafen gelegt, auch nicht benötigte Seiten der gestarteten Anwendungen werden aus dem Speicher entfernt. Dementsprechend brauchen Windows-Apps nicht mehr beendet zu werden.

software, betriebssystem, windows 8
Windows 8 unterstützt Desktop- und App-Anwendungen im Startfenster. Sowohl die Kommunikation als auch der Datenaustausch sind aber zwischen den Anwendungstypen eingeschränkt.
© Hersteller/Archiv

Das optimierte Speichermanagement kommt auch den Desktop-Anwendungen zu Gute. Insbesondere Dienste werden häufig nicht mehr dauerhaft, sondern nur nach Bedarf geladen. Neben der neuen kachelbasierten Oberfläche gibt es mit der Windows Runtime (WinRT) zudem eine neue Schnittstelle zum System. Windows-Apps sind darüber speicherschonend und abgesichert ausführbar, stellen geringere Anforderungen an die Hardware, unterliegen dafür aber funktionalen Einschränkungen.

Duale Systemarchitektur - mit wirklich strikter Trennung

Nicht auf allen Geräten steht die vollständige Systemarchitektur zur Verfügung. Werden beide Anwendungstypen vom System unterstützt, dann werden diese streng voneinander abgeschirmt. Ein wechselseitiger Austausch von Komponenten und Funktionen wird nicht unterstützt, und die Kommunikation der Anwendungen untereinander wird unterbunden. Einzige Ausnahme ist die WinRT, die sich auch in Desktop-Anwendungen einsetzen lässt.

Ratgeber - Die besten Office-Apps

Dies ist sinnvoll, da neue Teilfunktionen des Systems (z.B. zur Anwendungspaketverwaltung, zur Interaktion mit dem Windows Store) nicht mehr über die Windows-API, sondern ausschließlich über die WinRT angeboten werden. Desktop-Anwendungen setzen ebenso wie Apps auf die Hardware und die darauf aufsetzenden Kernfunktionen (Core OS Services) des Systems auf. Die Kernfunktionen sind insbesondere für das Stromsparen und eine verbesserte Ressourcennutzung (z.B. interne Speicheranforderungen) optimiert.

Ferner wurden Sicherheitsfunktionen integriert. Die Kernfunktionen regeln, wie die Prozesse, Threads oder auch Speicher sicher verwaltet werden. Darauf setzen je nach Anwendungstyp die Systemdienste (System Services), die Model Controler sowie die Funktionen zur Entwicklung von Programmoberflächen auf. Die beiden letztgenannten Bereiche bestimmen das Datenmodell (Model), die Programmsteuerung (Controller) sowie die Präsentation (View). Der Aufbau der Architektur variiert je nach Anwendungstyp.

software, betriebssystem, windows 8
WinRT-Anwendung per Verweis anbinden
© Hersteller/Archiv

Bei der "alten" Windows-Welt bleiben bewährte Funktionen erhalten

Ältere Anwendungen werden unter Windows 8 als Desktop-Anwendungen bezeichnet. Dazu gehören neben den ausführbaren Anwendungen zusätzliche Komponenten oder Dienste, die über die Anwendungen nach Bedarf (nach)geladen oder im Hintergrund des Systems ausgeführt werden. Um Desktop-Anwendungen und Apps jeweils zu unterstützen und voneinander abzuschirmen, wurde die Systemarchitektur grundlegend erweitert und zweigeteilt.

Dies hat den Vorteil, dass Sie alte Anwendungen der Windows Forms, der Windows Presentation Foundation (WPF), von Silverlight und ASP.NET sowie ältere COM-Anwendungen (Component Object Model) nicht nur wie gewohnt ausführen, sondern bei Bedarf auch neu entwickeln, pflegen und nach Wunsch frei verteilen können. Auch RIA-Anwendungen (Rich Internet Applications) für Web Browser realisieren Sie weiterhin wie gewohnt. Ferner verwenden Sie alle Versionen des .NET-Framework und alle Systemaufrufe der Win32-API nach Bedarf.

Ein wesentlicher Vorteil der Desktop-Anwendungen ist, dass diese nicht nur Daten und Informationen, sondern auch Komponenten gemeinsam nutzen. Außerdem verwenden sie bereits die optimierten Systemfunktionen der Core OS Services von Windows 8.

Damit Bibliotheken und Komponenten programmübergreifend nutzbar sind, verwalten Sie diese weiterhin global im System (z.B. über den Global Assembly Cache (GAC), über DLLs (Dynamic Link Libraries) oder registrierte COM-und/oder ActiveX-Komponenten). Zur Programmverwaltung und Deinstallation nutzen Sie das Systemsteuerungsmodul Programme und Features.

Für Apps wurde der Zugriff auf die Programmschnittstelle vereinfacht

Moderne Anwendungen setzen ihrerseits auf die vorhandene Hardware (z.B. Touchscreen Bewegungssensoren) und die für die mobilen Anwendungen optimierten Kernfunktionen des Systems auf. Die eigentliche Funktionalität bezieht jedes App über die Windows Runtime (WinRT), die entsprechend dem .NET Framework als Anwendungsplattform dient und den Zugriff auf die Windows-Programmierschnittstelle vereinfacht.

Sie legt fest, wie Anwendungen verwaltet (Application Model), wie Daten angesprochen sowie gespeichert, Kommunikationen durchgeführt (Communications & Data), Medien genutzt, grafische Ausgaben umgesetzt (Graphics & Media) oder Geräte und Drucker angesprochen werden (Devices & Printing). Die WinRT ist eine komplexe Sammlung an Funktionen, die objektorientiert über Klassen bereitgestellt werden und dementsprechend den aktuellen Entwicklungsprinzipien (OOP - Object-orientend Programming) folgt.

Ratgeber - 15 Windows-8-Tipps

Über den Internet Explorer 10 ausgeführte Apps - auch diese nutzen die WinRT - werden mit JavaScript umgesetzt. Zur Oberflächendarstellung kommen HTML5 und CSS3 zum Einsatz. Alle Programmoberflächen, die Sie mit C/C++, C# oder Visual Basic .NET erzeugen, definieren die Programmoberflächen über XAML (Extensible Application Markup Language). Die Besonderheit: Der XAML-Quelltext unterscheidet sich vom XAML-Quelltext von Silverlight und der WPF.

Die App-Oberflächen arbeiten seitenbasiert (wie die Inhalte in Browsern). Jede Anwendung kann ein oder mehrere Seiten definieren, wobei jeweils eine einzelne Seite aktiv ist. Fenster und auch fensterorientierte Dialoge wurden von der neuen Oberfläche verbannt. Das kachelbasierte Startmenü ist der Zugang zur neuen Oberfläche.

Sie wurde ursprünglich unter dem Namen Metro bekannt. Dieser Name wird aufgrund der Namensgleichheit mit der deutschen Handelsmarke nicht mehr verwendet. Der Stil trägt offiziell den Namen Windows 8 UI Style (UI = User Interface), umgangssprachlich wird sich wahrscheinlich Windows-8-App oder Windows-8-Store-Anwendung durchsetzen.

software, betriebssystem, windows 8
Music Maker Jam: Ein Anwendungsbeispiel für eine "moderne" Anwendung im neuen Windows 8 UI Style, die kostenfrei über den Anwendungsmarkt verfügbar und eine unsere "Top 20"-Apps dieser Ausgabe ist.
© Hersteller/Archiv

App in den Sandkasten

Apps werden in einer Sandbox, einem abgeschirmten Anwendungscontainer, ausgeführt. Anders als Desktop-Anwendungen werden sie ausschließlich über den Windows-Store online verteilt und darüber wahlweise auch wieder deinstalliert. Eine freie Verteilung, etwa über Heft-DVDs oder Webseiten, wird damit unterbunden. Dementsprechend bestimmt Microsoft auch, welche Einschränkungen für Anwendungen gelten und wie Anwendungen generell aufzubauen sind.

Was unterscheidet die Windows Runtime von der Win32-API, die in Desktop-Anwendungen zum Einsatz kommt? Die WinRT ist eine neue, native COM-Klassenbibliothek mit binärem Interface, die in C++ kodiert wurde und nicht im managed (verwalteten) Code der .NET Runtime vorliegt.

Ebenso wie bei .NET Assemblies sind die WinRT und darauf aufbauende Komponenten, anders als herkömmliche COM-Komponenten, um Metadaten erweitert, über die Verweise aufgelöst, Versionskontrollen durchgeführt und Typinformationen abgerufen werden. Damit nutzen Sie die WinRT nach der (automatischen) Verweisherstellung vollständig, ohne dass Systemfunktionen zu deklarieren oder Datentypen zu portieren sind.

Zwar greifen Sie auch in Apps direkt auf die Win32-API zu, allerdings ist fest vorgegeben welche API-Aufrufe nutzbar sind. Die eingeschränkte Win32-API-Unterstützung wird angeboten, da die WinRT noch nicht alle Funktionen verfügbar macht, die in modernen Anwendungen benötigt werden (z.B. FAX-Funktionalität, Zugriff auf die seriellen Schnittstellen).

Informationen zu den unterstützten Funktionen finden sich in der Windows-API-Dokumentation sowie in den Header-Dateien des Systems.

Apps beziehen die Hauptfunktionalität immer aus der WinRT und greifen nur in Ausnahmefällen auf freigegebene .NET-Funktionalitäten oder Win32-API-Funktionen zu. Mit der WinRT entwickeln Sie auch Komponenten und Klassenbibliotheken, die jeweils lokal zur zugehörigen Anwendung verwaltet werden.

Die Funktionalitäten der WinRT sind an den mobilen Endgeräten ausgerichtet. Sie regeln die Grundlagen (Fundamentals) eines Programms mitsamt den Anwendungsdiensten (Application Services), den zu verwaltenden Threads und Zeitgebern (Threads/Timers), regeln die Speicherwaltung (Memory Management), die Authentifizierung (Authentication) und bieten Funktionen für die Datenverschlüsselung (Cryptography) und zur Globalisierung (Globalization) an.

Marktübersicht - Windows-8-Tablets und Hybrid-Notebooks

Außerdem bietet die WinRT eine Medienunterstützung (Media) mit Abspiel-(Playback), Aufnahme-(Capture) und Wiedergabefunktionen (PlayTo) an. Dazu stehen noch visuelle Effekte zur Verfügung (Visual Effects). Über gesonderte Funktionen nutzen Sie Geräte (Devices) zur Nahbereichskommunikation (NFC - Near Field Communication) und Geolokalisation (Geolocation) oder greifen Sie auf portable Geräte (Portable) sowie gerätespezifische Sensoren (Sensors, z.B. Bewegung, Orientierung) zu. Des Weiteren widmet sich die WinRT der Kommunikation und dem Datenmanagement (Communications & Data).

Darüber bestimmen Sie, wie Anwendungen vertragsgebunden (Contracts) miteinander kommunizieren oder wie auf Benachrichtigungen (Notifications) zu reagieren ist. Sie steuern Hintergrundtransferprozesse (Background Transfer), nutzen Netzwerkfunktionen (Networking), verarbeiten Datenströme (Streams) und SMSNachrichten (SMS), speichern Daten lokal oder in der Cloud (Local & Cloud Storage) oder interagieren mit dem Web (Web).

Alle Funktionalitäten werden über den Namensraum (Namespace) Windows verwaltet und thematisch sowie hierarchisch gegliedert. Einige Funktionalitäten finden sich auch im .NET Framework. Allerdings sind die Klassen der WinRT nicht einheitlich zum .NET Framework aufgebaut. Ferner sind die Namensräume abweichend strukturiert und auch die Namen und Aufrufparameter der bereitgestellten Methoden variieren.

Eine vollständige Liste der definierten Namensräume, Schnittstellen, Methoden und Eigenschaften finden Sie unter msdn.microsoft.com .

Die WinRT macht auch die Grundlagen für die Definition von Programmoberflächen (User Interface) der modernen Anwendungen verfügbar. Weboberflächen im JavaScript-Verbund werden mit HTML5 und CSS3 umgesetzt (HTML5/CSS3). Programmoberflächen, die mit C# oder Visual Basic .NET definiert werden, verwenden hingegen XAML (XAML), wobei der generierte XAMLQuelltext gegenüber dem XAML-Quelltext der mit WPF und Silverlight umgesetzten Desktop-Anwendungen abweicht.

In den Oberflächen nutzen Sie DirectX (DirectX, z.B. zur Spieleprogrammierung), greifen Sie auf Kacheln zu (Tiles, z.B. für die Aktualisierung von Informationen auf dem Startbildschirm), nutzen Sie Datenanbindungsfunktionen (Data Binding), vordefinierte und per Toolbox bereitgestellte Steuerelemente (Controls), skalierbare Vektorgrafiken (SVG), Benutzereingaben samt Gestensteuerung (Input), Barrierefreiheit (Accessability) oder auch Druckfunktionen (Print).

software, betriebssystem, windows 8
Das Fundament: Die WinRT ist die Grundlage für alle (!) neuen Windows-Store-Apps und macht Anwendungsgrundlagen, Dienstfunktionen und Benutzerschnittstellen verfügbar.
© Hersteller/Archiv

Der Runtime-Broker unterbindet sicherheitsrelevante Aufrufe

Ein Blick auf die WinRT-Anwendungsarchitektur zeigt die interne Struktur der modernen Anwendungen, die per Sprachprojektion (Language Projection) auf die WinRT mitsamt den zuvor beschriebenen Funktionsbereichen (z.B. UI (User Interface), Pickers (Auswahlfunktionen), Controls (Steuerelemente)) zugegriffen wird und wie unterschiedliche Sprachunterstützungen verfügbar gemacht werden (z.B. JavaScript-Unterstützung über den Namespace Win-JS).

Die Funktionalität wird über die WinRT bezogen, wobei zwischen den Grundfunktionen (Windows Runtime Core = Fundamentals) und den eigentlichen Dienstfunktionen (alles außer den Fundamentals) unterschieden wird. Als Basis fungieren die Core OS Services. Bleibt ein Blick hinter diese Fassade und eine Erläuterung, was sich hinter dem Runtime Broker verbirgt.

Jede Anwendung setzt sich aus einem Programm, zusätzlichen Komponenten und Daten zusammen. Diese werden zusammen mit einem Anwendungsmanifest in einem Anwendungspaket zusammengefasst. Das Manifest bestimmt, wie sich die App präsentiert und welche Aufgaben und Funktionalitäten sie hat.

Die WinRT setzt auf dem NT-Systemkern von Windows auf, beinhaltet Wrapper für bereits vorhandene Systemfunktionen und macht zudem auch neue Funktionen verfügbar. Alle Funktionen werden über Metadaten offengelegt. Funktional werden alle Inhalte über Namespaces (Namensräume) geordnet. Die Windows-Metadaten werden in gesonderten Dateien mit dem Dateikürzel winmd hinterlegt.

Diese können mit dem Entwicklungs-Tool ILDASM offengelegt werden. Über den Hauptnamensraum Windows werden insgesamt etwa 1800 neue Klassen verwaltet. Da die WinRT native umgesetzt wurde, steht kein Intermediate-Language-Code (IL-Code) zur Verfügung. Sicherheitsrelevante Aufrufe werden über einen Runtime Broker unterbunden.

Das System selbst bestimmt, wie Apps ausgeführt werden und ist auch für die interne Programm-, Speicher-, Programmseiten- und Ressourcenüberwachung verantwortlich. Unter Windows 8 wird immer nur eine App im Vordergrund ausgeführt. Parallel ausgeführte, aber nicht aktive Apps werden automatisch in den Schlafmodus versetzt.

Die Prozessorleistung wird der Hauptanwendung zugeteilt und den inaktiven Anwendungen entzogen. Dies wirkt sich positiv auf das Laufzeitverhalten und den Ressourcenbedarf aus. Desktop-Anwendungen und im Hintergrund ausgeführte Dienste werden hingegen nicht in den Schlafmodus versetzt.

Die Programmausführung der Apps erfolgt asynchron. Ziel ist es, dass Programme auch dann nicht einfrieren, wenn die Verarbeitung bestimmter Funktionen zeitkritisch ist (z.B. Antworten von Internetanfragen, Dateianwahlen, Download-Aktionen).

Anwender haben es leichter, Entwickler allerdings schwieriger

Anwender werden unter Windows 8 mit einem neuen Oberflächen- und Anwendungskonzept konfrontiert. Die Einarbeitungsphase ist überschaubar, insbesondere auf mobilen Geräten punktet das neue System. Auf Desktop-PCs lassen sich Windows-7-Anwendungen in der Regel wie gewohnt ausführen.

Für Entwickler ist eine längere Einarbeitungszeit in die neue WinRT und die Architektur der modernen Anwendungen erforderlich. Hilfreich sind dazu die weiterführenden Informationen auf msdn.microsoft.com. Bestehende Anwendungen (WindowsForms, WPF oder Silverlight) lassen sich nur in Ausnahmefällen portieren, wobei Silverlight in jedem Fall die Nase vorn hat.

Windows-Forms-Anwendungen sind für die Portierung generell nicht geeignet. In der Regel ist es am einfachsten, die bestehenden Anwendungen im ursprünglichen Format weiter zu pflegen und weiterzuentwickeln.

Programmbarrieren in Windows 8

In klassischen Desktop-Anwendungen können Sie eigene und Fremdkomponenten im freien Verbund einsetzen. In Apps gibt es allerdings unüberwindbare Barrieren.

Microsoft hat Windows-8-Apps streng von den Desktop-Anwendungen abgeschirmt. Zwar entwickeln Sie Komponenten sowohl für Desktop- als auch für moderne Anwendungen, diese sind aber nicht wechselseitig nutzbar.

Stellen Sie beispielsweise einen Verweis in einer modernen Anwendung zu einer Komponente der Windows Forms oder von WPF her, wird dies mit einer entsprechenden Fehlermeldung quittiert. Entsprechend wird auch die Verweisherstellung zu den Komponenten einer modernen Anwendung in einer Windows-Forms-, WPF-, Silverlight- oder ASP.NET-Anwendung mit einem Fehler beantwortet.

Dies liegt daran, dass in den Komponenten die jeweils verwendete Kernkomponente (z.B. WinRT oder Windows Forms) entsprechend der in der Abbildung dargestellten Systemarchitektur über Metadaten verwaltet wird.

Fazit: Mehr Augenmaß ist gefragt

Viele Neuerungen des Systems, die sich der Systemoptimierung widmen und dafür sorgen, dass sich Anwendungen speicher- undressourcenschonend ausführen lassen, sind im System verborgen. Sie kommen Apps und Desktop-Anwendungen zu Gute. Die WinRT ist zusammen mit den Kachel-Apps die wesentliche Neuerung in der Systemarchitektur. Sowohl Anwender als auch Entwickler haben aber fortan genau zu berücksichtigen, welche Anwendungen auf welchem Gerät lauffähig sind.

Mehr zum Thema: Microsoft