-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Architektur mit zwei Vertrauenswürdigkeitsstufen. Insbesondere betrifft sie eine Architektur zum Ausführen vertrauenswürdiger (trusted) und nichtvertrauenswürdiger (untrusted) Routinen in einem Aufrufstapel.
-
Hintergrund der Erfindung
-
In einem Teilsystem mit Einzeladressraum wie CICS von IBM (CICS ist eine eingetragene Marke der IBM Corporation) werden mehrere Stränge (threads) für unterschiedliche Benutzer im gleichen Adressraum ausgeführt. Die einzelnen Stränge werden üblicherweise durch Aufrufstapel dargestellt, die auch als Registerspeicherbereiche (register saue areas) bekannt sind, wobei ein Zustand einer Softwareroutine beim Übergang zum Ausführen einer anderen Routine gespeichert und bei der Rückkehr wiederhergestellt wird. Der im Stapel gespeicherte Zustand enthält den Inhalt von Prozessorregistern und kann auch andere Prozessorzustände beinhalten.
-
In solchen Teilsystemen kann der Inhalt des Stapels offen für Veränderungen durch andere Stränge als dem aktuellen Strang sein, so dass im Falle einer Wiederherstellung des Inhalts eines Stapelelements der wiederhergestellte Zustand versehentliche oder böswillige Veränderungen an wichtigen Systemzuständen verursachen kann. Solche Veränderungen können unter anderem Folgendes betreffen: die Adresse der nächsten auszuführenden Anweisung; die Adressen später auszuführender Subroutinen, die Basisadresse(n) einer aufrufenden Routine; Tokens oder Adressen, die die Identität des Benutzers wiedergeben, der den Strang momentan ausführt.
-
Mit solchen Veränderungen am Stapel kann der Zielstrang dazu gebracht werden, nicht beabsichtigte Funktionen mit nicht beabsichtigten Daten unter einer nicht beabsichtigten Identität auszuführen, was zu Verletzungen von Unversehrtheit und Sicherheit wie beispielsweise der Offenlegung von Informationen, einer Dienstblockade (Denial-of-Service) oder der Heraufstufung von Rechten führen kann.
-
Das Betriebssystem z/OS von IBM (z/OS ist eine eingetragene Marke der IBM Corporation) stellt einen sicheren Stapel bereit, der gebräuchlicher als Anfrageblockkette (Request Block chain) bezeichnet wird. Wenn mit den Diensten des Betriebssystems eine Verknüpfung zwischen Programmen (zum Beispiel unter Verwendung von Supervisor-Aufrufen (supervisor calls SVC) oder den Diensten LINK oder SYNCH) hergestellt wird, wird der Zustand des aufrufenden Programms in einem sicheren Speicherbereich, dem Anfrageblock (Request Block), gespeichert, wo er nicht durch Anwendungscode manipuliert werden kann. Die Anfrageblöcke werden durch einen Schutzmechanismus geschützt, welcher der schlüsselgesteuerte Schutzmechanismus (key-controlled Protection mechanism) der z/Architecture genannt wird (z/Architecture ist eine eingetragene Marke der der IBM Corporation). Einzelheiten hinsichtlich der z/Architecture werden in einer Veröffentlichung von IBM mit dem Titel „z/Architecture Principles of Operation” (Funktionsprinzipien der z/Architecture) mit der IBM Publikationsnummer SA22-7832-08 beschrieben.
-
Aufgrund der Einbeziehung von Betriebssystemdiensten ist der oben beschriebene Mechanismus der Anfrageblockkette ressourcenaufwändig und seine Verwendung in Umgebungen mit hoher Leistungsfähigkeit zwangsläufig begrenzt.
-
In der
US-Patentschrift 5 745 676 wird eine Anweisung zum Verzweigen und Festlegen der Berechtigung (Branch and Set Authority instruction BSA) einer Betriebssystemumgebung beschrieben, die bei Ausführung in einem Zustand mit Grundberechtigung (base-authority state) eine Rückkehradresse und eine Grundberechtigung in einem sicheren Datenbereich speichert und einen Zustand mit eingeschränkter Berechtigung (reduced-authority state) festlegt, und die bei Ausführung im Zustand eingeschränkter Berechtigung zur gespeicherten Rückkehradresse verzweigt, die gespeicherte Grundberechtigung wiederherstellt und den Zustand mit Grundberechtigung wiederherstellt.
-
Es wäre daher vorteilhaft, einen Mechanismus zum Schutz von durch vertrauenswürdige Softwareroutinen erstellten und verwendeten Ressourcen vor Zugriff und Veränderung durch nichtvertrauenswürdige Softwareroutinen bereitzustellen, die innerhalb eines Mehrbenutzer-Subsystems mit Einzeladressraum ausgeführt werden.
-
Zusammenfassung der Erfindung
-
Die vorliegende Erfindung stellt demzufolge in einem ersten Aspekt ein Verfahren zum Ausführen einer Softwareroutine in einer Anwendung bereit, wobei die Anwendung als Mehrbenutzer-Teilsystem mit Einzeladressraum in einer Betriebsumgebung mit einem vertrauenswürdigen Betriebsmodus für vertrauenswürdige Routinen und einem Betriebsmodus mit verringerter Vertrauenswürdigkeit für nichtvertrauenswürdige Routinen ausgeführt wird, wobei die Anwendung ein Steuermodul zum Ausführeng als vertrauenswürdige Routine und eine Tabelle vertrauenswürdiger Routinen beinhaltet, die Kennzeichner vertrauenswürdiger Routinen enthält, wobei das Verfahren Folgendes umfasst: als Reaktion auf eine Feststellung, dass die Routine von einem Aufrufstapel wiederhergestellt wird und die Routine ein jüngster Eintrag in einer Liste aktiver vertrauenswürdiger Routinen ist, durch das Steuermodul Umschalten in den vertrauenswürdigen Betriebsmodus zum Ausführeng der Routine und Entfernen der Routine von der Liste aktiver vertrauenswürdiger Routinen; als Reaktion auf eine Feststellung, dass die Routine nicht von einem Aufrufstapel wiederhergestellt wird und dass die Routine in der Tabelle vertrauenswürdiger Routinen enthalten ist, durch das Steuermodul Umschalten in den vertrauenswürdigen Betriebsmodus zum Ausführeng der Routine; als Reaktion auf eine Feststellung, dass die Routine nichtvertrauenswürdig ist, durch das Steuermodul Umschalten in den Betriebsmodus mit verringerter Vertrauenswürdigkeit zum Ausführen der Routine; und weiterhin als Reaktion auf eine Feststellung, dass die Routine nicht von einem Aufrufstapel wiederhergestellt wird und dass eine aufrufende Routine für die Routine in einem vertrauenswürdigen Betriebsmodus ausgeführt wird, durch das Steuermodul Hinzufügen der aufrufenden Routine zur Liste aktiver vertrauenswürdiger Routinen, wobei die Anwendung im vertrauenswürdigen Betriebsmodus vertrauenswürdige Daten festhält oder verändert, die im Betriebsmodus mit verringerter Vertrauenswürdigkeit nicht veränderbar sind.
-
Vorzugsweise werden der vertrauenswürdige Betriebsmodus und der Betriebsmodus mit verringerter Vertrauenswürdigkeit in der Betriebsumgebung durch ein Zusammenwirken eines Betriebssystems und Prozessor-Hardware der Betriebsumgebung durchgesetzt.
-
Vorzugsweise handelt es sich bei der Betriebsumgebung um eine z/Architecture-Umgebung.
-
Vorzugsweise sind der vertrauenswürdige Betriebsmodus und der Betriebsmodus mit verringerter Vertrauenswürdigkeit als schlüsselgesteuerter Schutzmechanismus der z/Architecture-Umgebung ausgeführt.
-
Vorzugsweise wird der Umschaltvorgang mittels einer Anweisung zum Verzweigen und Festlegen der Berechtigung (BSA) der z/Architecture-Umgebung durchgeführt.
-
Somit stellt die Erfindung der Anwendung eine Einrichtung für einen Wechsel zwischen dem vertrauenswürdigen Betriebsmodus und dem Betriebsmodus mit verringerter Vertrauenswürdigkeit mittels des vertrauenswürdigen Steuermoduls bereit. Das vertrauenswürdige Steuermodul ist in Verbindung mit der Tabelle vertrauenswürdiger Routinen und der Liste aktiver vertrauenswürdiger Routinen geeignet, berechtigte Übergänge der Ausführung zu vertrauenswürdigen Routinen von nichtvertrauenswürdigen Routinen zu erkennen und den Betriebsmodus entsprechend umzuschalten. Weiterhin ist das vertrauenswürdige Steuermodul geeignet, die Ausführung sicher von einem vertrauenswürdigen Betriebsmodus in einen Betriebsmodus mit verringerter Vertrauenswürdigkeit umzuschalten. Da die Umschaltvorgänge durch das Steuermodul der Anwendung selbst ohne Rückgriff auf Systemdienste wie Betriebssystemdienste durchgeführt werden, ist der Ressourcen-Bedarf der Umschaltvorgänge relativ gering. Der Ressourcen-Bedarf kann niedrig genug für mehrere Umschaltvorgänge zwischen Betriebssystemmoden innerhalb desselben Strangs sein, so dass unterschiedliche Routinen im Aufrufstapel in den vertrauenswürdigen Betriebsmoden und den Betriebsmoden mit verringerter Vertrauenswürdigkeit ausgeführt werden können.
-
Entsprechend stellt die vorliegende Erfindung in einem zweiten Aspekt eine Vorrichtung zum Ausführen einer Softwareroutine in einer Anwendung bereit, wobei die Anwendung als Mehrbenutzer-Subsystem mit Einzeladressraum in einer Betriebsumgebung mit einem vertrauenswürdigen Betriebsmodus für vertrauenswürdige Routinen und einem Betriebsmodus mit verringerter Vertrauenswürdigkeit für nichtvertrauenswürdige Routinen ausgeführt wird, wobei die Anwendung ein Steuermodul zum Ausführen als vertrauenswürdige Routine und eine Tabelle vertrauenswürdiger Routinen aufweist, die Kennzeichner vertrauenswürdiger Routinen enthält, wobei die Vorrichtung Folgendes umfasst: ein Steuermodul, um als Reaktion auf eine Feststellung, dass die Routine von einem Aufrufstapel wiederhergestellt wird und die Routine ein jüngster Eintrag in einer Liste aktiver vertrauenswürdiger Routinen ist, in den vertrauenswürdigen Betriebsmodus zum Ausführen der Routine umzuschalten und die Routine von der Liste aktiver vertrauenswürdiger Routinen zu entfernen, wobei das Steuermodul weiterhin in der Lage ist, als Reaktion auf eine Feststellung, dass die Routine nicht von einem Aufrufstapel wiederhergestellt wird und dass die Routine in der Tabelle vertrauenswürdiger Routinen enthalten ist, in den vertrauenswürdigen Betriebsmodus zum Ausführen der Routine umzuschalten, und wobei das Steuermodul weiterhin in der Lage ist, als Reaktion auf eine Feststellung, dass die Routine nicht vertrauenswürdig ist, in den Betriebsmodus mit verringerter Vertrauenswürdigkeit zum Ausführen der Routine umzuschalten, und wobei das Steuermodul weiterhin in der Lage ist, als weitere Reaktion auf eine Feststellung, dass die Routine nicht von einem Aufrufstapel wiederhergestellt wird und dass eine aufrufende Routine für die Routine in einem vertrauenswürdigen Betriebsmodus ausgeführt wird, die aufrufende Routine zur Liste aktiver vertrauenswürdiger Routinen hinzuzufügen, und wobei die Anwendung im vertrauenswürdigen Betriebsmodus vertrauenswürdige Daten festhält oder verändert, die im Betriebsmodus mit verringerter Vertrauenswürdigkeit nicht veränderbar sind.
-
Entsprechend stellt die vorliegende Erfindung in einem dritten Aspekt eine Vorrichtung bereit, die Folgendes umfasst: eine Zentraleinheit; ein Speicher-Teilsystem; ein Eingabe/Ausgabe-Teilsystem und ein Bus-Teilsystem, das die Zentraleinheit, das Speicher-Teilsystem, das Eingabe/Ausgabe-Teilsystem und die Vorrichtungen wie oben beschrieben miteinander verbindet.
-
Entsprechend stellt die Vorrichtung in einem vierten Aspekt ein Computerprogrammelement bereit, das einen Computerprogrammcode umfasst, um im Falle, dass er in ein Computersystem geladen und darauf ausgeführt wird, den Computer zum Durchführen der Schritte eines Verfahrens wie oben beschrieben zu veranlassen.
-
Kurze Beschreibung der Zeichnungen
-
Nachfolgend wird in lediglich beispielhafter Weise eine bevorzugte Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die begleitenden Zeichnungen detaillierter beschrieben, in denen:
-
1 ein Blockschaltbild eines Computersystems zeigt, das für den Betrieb von Ausführungsformen der vorliegenden Erfindung geeignet ist;
-
2 ein Blockschaubild einer Betriebsumgebung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt;
-
3 einen Ablaufplan eines Verfahrens zum Ausführen einer Softwareroutine in einer als Mehrbenutzer-Subsystem mit Einzeladressraum ausgeführten Anwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung zeigt; und
-
4 ein Blockschaubild einer Datenanordnung in einer Betriebsumgebung eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
Detaillierte Beschreibung der bevorzugten Ausführungsformen
-
1 zeigt ein Blockschaltbild eines Computersystems, das für den Betrieb von Ausführungsformen der vorliegenden Erfindung geeignet ist. Eine Zentraleinheit (central processor unit CPU) 102 ist über einen Datenbus 108 mit einem Speicher 104 und einer Eingabe/Ausgabe-(E/A-)Schnittstelle 106 zum Austausch von Daten verbunden. Bei dem Speicher 104 kann es sich um jede Lese/Schreibeinheit wie ein Speicher mit wahlfreiem Zugriff (random access memory RAM) oder um eine nichtflüchtige Speichereinheit handeln. Als Beispiel für eine nichtflüchtige Speichereinheit kann eine Festplatten- oder eine Bandspeichereinheit dienen. Die E/A-Schnittstelle 106 ist eine Schnittstelle für Einheiten zur Eingabe oder Ausgabe von Daten oder sowohl zur Eingabe als auch zur Ausgabe von Daten. Zu Beispielen von mit der E/A-Schnittstelle 106 verbindbaren E/A-Einheiten zählen eine Tastatur, eine Maus, eine Anzeige (wie ein Monitor) und eine Netzwerkverbindung.
-
2 zeigt ein Blockschaubild einer Betriebsumgebung 200 gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Die Betriebsumgebung 200 von 2 stellt eine Verarbeitungsumgebung dar, die aus einer Kombination aus Hardware und Software besteht. Die Hardware wird als allgemein in 1 dargestelltes und oben beschriebenes Computersystem bereitgestellt, mit dem Software wie Betriebssystemsoftware und Anwendungen ausgeführt werden.
-
Die Betriebsumgebung 200 ist zum Ausführen in mehreren Betriebsmodi geeignet, um Systemsicherheit und Systemzuverlässigkeit sicherzustellen. Insbesondere kann die Betriebsumgebung 200 in einem vertrauenswürdigen Betriebsmodus ausgeführt werden, in dem vertrauenswürdige Softwareanweisungen so ausgeführt werden, dass die Anweisungen auf Programme und Daten, die in einer geschützten Weise in einer Datenspeicherung für die Betriebsumgebung 200 gespeichert sind, zugreifen und sie möglicherweise verändern können. Weiterhin kann die Betriebsumgebung 200 in einem Betriebsmodus mit verringerter Vertrauenswürdigkeit betrieben werden, in dem nicht-vertrauenswürdige Softwareanweisungen so ausgeführt werden, dass die Anweisung möglicherweise nicht in der Lage sind, auf Programme und Daten zuzugreifen, die in einer geschützten Weise in der Datenspeicherung gespeichert sind, und dass die Anweisungen nicht in der Lage sind, Programme und Daten zu verändern, die in einer geschützten Weise in der Datenspeicherung gespeichert sind.
-
Beispielsweise kann es sich bei der Betriebsumgebung um eine z/Architecture-Umgebung handeln, in der das z/OS-Betriebssystem ausgeführt wird und die den in der Veröffentlichung von IBM mit dem Titel „z/Architecture Principles of Operation” (Funktionsprinzipien der z/Architecture) und der IBM Publikationsnummer SA22-783208 beschriebenen schlüsselgesteuerten Schutzmechanismus beinhaltet. Beim schlüsselgesteuerten Schutz wird ein Vier-Bit-Zugangsschlüssel in einem Programmstatuswort gespeichert, das den Grundausführungszustand einer Routine zu einem beliebigen Zeitpunkt beinhaltet. Der Zugangsschlüssel wird mit Zugangskontrollbits eines Speicherschlüssels von jedem Block in einem Speicher verglichen. Nur berechtigte Schlüssel können auf den Speicher zugreifen, andernfalls wird der Zugang verwehrt. Somit legt der Zustand des Zugangsschlüssels im Programmstatuswort einen aktuellen Betriebsmodus der Betriebsumgebung 200 fest. Insbesondere legt bei der z/Architecture der Vier-Bit-Zugangsschlüssel sechzehn mögliche Schlüssel im Bereich von 0 bis 15 fest, von denen Schlüssel 0 die meisten Rechte besitzt und vom Betriebssystem verwendet wird. Die Schlüssel 1 bis 7 sind im Allgemeinen für vertrauenswürdige Anweisungen wie Betriebssystemdienste und vertrauenswürdige Teilsystemroutinen reserviert, und die Schlüssel 8 und höher werden von Anwendungen auf Benutzerebene verwendet. Üblicherweise handelt es sich bei Schlüssel 8 um einen normalen Benutzerschlüssel, und Anweisungen in Schlüssel 8 können als im Allgemeinen nichtvertrauenswürdig angesehen werden.
-
Die Betriebsumgebung 200 beinhaltet ein Betriebssystem 202 wie beispielsweise z/OS oder ein beliebiges anderes geeignetes Betriebssystem. Weiterhin beinhaltet die Betriebsumgebung 200 ein Mehrbenutzer-Teilsystem mit Einzeladressraum (multi-user single address space subsystem MUSASS) 204, das als Anwendung in der Betriebsumgebung ausgeführt wird. Wenn die MUSASS-Anwendung 204 als Anwendung 204 ausgeführt ist, ist es für den Fachmann ersichtlich, dass sie eine eigenständige Betriebsumgebung bereitstellen kann, innerhalb derer bestimmte Anwendungsdienste, Routinen und Programme ausgeführt werden können. In dieser Hinsicht kann das MUSASS 204 Anwendungsdienste wie unter anderem Speicherverwaltung, Systemsteuerung, Ressourcen-Steuerung und -freigabe, Kommunikationsdienste, Protokolldienste beinhalten. Ein Beispiel einer MUSASS-Anwendung 204 stellt das Kundeninformationssteuerungssystem (Customer Information Control System CICS) von IBM dar, eine eingetragene Marke der IBM Corporation.
-
Die Anwendung 204 beinhaltet Softwareroutinen 210 als ausführbare Komponenten, die Anweisungen zum Ausführen durch einen Prozessor der Betriebsumgebung 200 beinhalten. Bei der Ausführung kann jede der Softwareroutinen 210 andere Softwareroutinen aufrufen, eine Verzweigung oder eine Verknüpfung mit ihnen herstellen, zu ihnen springen oder sie ausführen. Der Mechanismus zur Übertragung der Steuerung zwischen in der Anwendung 204 ausgeführten Routinen wird mittels eines Aufrufstapels 212 oder einer anderen geeigneten Datenstruktur verwaltet. Beim Aufrufstapel 212, der allgemein auch als Registerspeicherbereich (regster saue area) bekannt ist, handelt es sich um eine Datenstruktur zur Speicherung von Zustandsinformationen von Softwareroutinen, die verwendet werden, wenn eine aufrufende Softwareroutine eine aufgerufene Softwareroutine aktiviert. Der im Aufrufstapel 212 gespeicherte Zustand enthält den Inhalt von Prozessorregistern und kann auch andere Prozessorzustände beinhalten.
-
Gemäß der vorliegenden Erfindung beinhaltet die Anwendung 204 weiterhin eine Tabelle vertrauenswürdiger Routinen 208, die Softwareroutinen 210 benennt, die zum Ausführen in einem vertrauenswürdigen Betriebsmodus der Verarbeitungsumgebung 200 geeignet sind. Eine Veränderung der Tabelle vertrauenswürdiger Routinen 208 sollte daher auf Routinen, die zum Ausführen im vertrauenswürdigen Betriebsmodus geeignet sind, oder Betriebssystemroutinen beschränkt sein. Die Tabelle vertrauenswürdiger Routinen 208 kann als Tabellendatenstruktur oder eine beliebige andere Datenstruktur ausgeführt sein, die für die Speicherung eines oder mehrerer Routinenkennzeichner geeignet ist, die solche Routinen als vertrauenswürdig kennzeichnen. Weiterhin beinhaltet die Anwendung 204 eine Liste aktiver vertrauenswürdiger Routinen 214 als geordnete Datenstruktur, die einen Kennzeichner von oder einen Verweis auf momentan ausgeführte Softwareroutinen im Aufrufstapel 212 enthält, die im vertrauenswürdigen Betriebsmodus ausgeführt werden. Die Liste aktiver vertrauenswürdiger Routinen 214 ist nach der Ausführungsreihenfolge der vertrauenswürdigen Softwareroutinen sortiert. Eine zuletzt ausgeführte vertrauenswürdige Softwareroutine ist daher anhand der Liste aktiver vertrauenswürdiger Routinen 214 erkennbar. Vorzugsweise ist die Liste aktiver vertrauenswürdiger Routinen 214 als Listen oder Kettendatenstruktur wie eine verknüpfte Liste ausgeführt, wobei Einträge in der Liste zugleich Einträge im Aufrufstapel 212 sind. Auf diese Weise stellt somit die Liste aktiver vertrauenswürdiger Routinen 214 eine Liste oder Kette vertrauenswürdiger Stapeleinträge des Aufrufstapels 212 bereit. Eine Veränderung der Tabelle aktiver vertrauenswürdiger Routinen 214 sollte daher auf Routinen, die zum Ausführen im vertrauenswürdigen Betriebsmodus geeignet sind oder auf Betriebssystemroutinen beschränkt sein.
-
Gemäß der vorliegenden Erfindung beinhaltet die Anwendung
204 weiterhin ein Steuermodul
206 als eine Softwareroutine zum Ausführen in einem vertrauenswürdigen Betriebsmodus der Betriebsumgebung
200 zum Umschalten des Betriebsmodus der Betriebsumgebung zwischen einem vertrauenswürdigen Betriebsmodus und einem Betriebsmodus mit verringerter Vertrauenswürdigkeit. In einer Ausführungsform verwendet das Steuermodul
206 eine besondere Anweisung zum Umschalten des Betriebsmodus der Betriebsumgebung
200. In der z/Architecture kann das Steuermodul zum Beispiel die in der
US-Patentschrift 5 745 676 beschriebene Anweisung zum Verzweigen und Festlegen der Berechtigung (BSA) zum Umschalten eines Prozessormodus zwischen einem Zustand mit Grundberechtigung (ein vertrauenswürdiger Betriebsmodus) und eine Zustand eingeschränkter Berechtigung (ein Betriebsmodus mit verringerter Vertrauenswürdigkeit) verwenden. Beim schlüsselgesteuerten Schutzmechanismus der z/Architecture ist die BSA-Operation ebenfalls in der Lage, zwischen vertrauenswürdigeren Schlüsseln wie Schlüssel 7 und allgemein nichtvertrauenswürdigen Schlüsseln wie Schlüssel 8 umzuschalten.
-
Gemäß dem nachfolgend beschriebenen Verfahren von 3 wird das Steuermodul 206 in Verbindung mit dem Aufrufstapel 212, der Tabelle aktiver vertrauenswürdiger Routinen 208 und der Liste aktiver vertrauenswürdiger Routinen 214 dazu verwendet, zwischen dem vertrauenswürdigen Betriebsmodus und einem Betriebsmodus mit verringerter Vertrauenswürdigkeit umzuschalten.
-
3 zeigt einen Ablaufplan eines Verfahrens zum Ausführen einer Softwareroutine 210 in einer als Mehrbenutzer-Subsystem mit Einzeladressraum 204 ausgeführten Anwendung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. Die Ausführung der Softwareroutine 210 kann das Ergebnis eines Aufrufs, einer Verknüpfung, einer Verzweigung oder eines Sprungs von einer anderen Softwareroutine sein. Alternativ kann die Ausführung eine Fortsetzung einer Ausführung sein, die zuvor als Bestandteil einer Aufruf-, Verknüpfungs-, Verzweigungs- oder Sprungoperation unterbrochen wurde. Somit kann die Ausführung von einer Rückkehr von einem solchen Aufruf, einer solchen Verknüpfung, einer solchen Verzweigung oder eines solchen Sprungs hervorgerufen worden sein. Das Verfahren wird dazu verwendet, allgemein die Notwendigkeit zu bestimmen, den Betriebsmodus der Betriebsumgebung 200 umzuschalten, und eine derartige Umschaltung mittels des Steuermoduls 206 zu erreichen. Es ist für den Fachmann ersichtlich, dass die Reihenfolge der Schritte, insbesondere die Reihenfolge der Feststellungsschritte, nicht zwingend ist und jede geeignete Reihenfolge möglich ist.
-
Zu Beginn wird in Schritt 302 des Verfahrens festgestellt, ob die auszuführende Routine vom Aufrufstapel 212 wiederhergestellt wird. Eine positive Feststellung in Schritt 302 zeigt an, dass die Routine ihre Ausführung fortsetzt, nachdem sie als Bestandteil eines Aufrufs einer anderen Routine unterbrochen wurde, und daher eine Rückkehr von einem Aufruf darstellt. Auf eine derartige positive Feststellung hin stellt das Verfahren fest, ob die Routine eine jüngste Routine in der Liste aktiver vertrauenswürdiger Routinen 304 ist. Eine positive Feststellung in Schritt 304 zeigt an, dass es sich bei der Routine, zu der die Ausführung zurückkehrt, um eine vertrauenswürdige Routine handelt, da sie als die jüngste aktive vertrauenswürdige Routine angegeben ist. Dementsprechend schaltet das Steuermodul 206 in Schritt 306 den Betriebsmodus der Betriebsumgebung 200 von einem vertrauenswürdigen Ausführungsmodus für die Routine um. Weiterhin wird die Routine in Schritt 308 von der Liste aktiver vertrauenswürdiger Routinen 214 entfernt. Eine negative Feststellung in Schritt 304 bedeutet, dass es sich bei der Routine um eine nichtvertrauenswürdige Routine handelt, und das Verfahren wird mit Schritt 316 fortgesetzt. Es gehört zur Rückkehroperation, dass die Routine auch vom Aufrufstapel 212 entfernt (oder herausgenommen) wird. Tatsächlich kann diese Entfernung die Grundlage für die Feststellung in Schritt 302 bilden.
-
Eine negative Feststellung in Schritt 302 zeigt an, dass die Routine als Ergebnis eines Aufrufs, einer Verzweigung, eines Sprungs oder einer Verknüpfung und nicht als Ergebnis einer Rückkehroperation ausgeführt wird. Solche Operationen ergeben sich aus einer anderen Routine, wie beispielsweise einer aufrufenden Routine. Eine aufrufende Routine ist eine Routine, aus der sich eine Aufruf-, Verzweigungs-, Sprung- oder Verknüpfungsoperation ergibt. In Schritt 310 stellt das Verfahren fest, ob die aufrufende Routine in einem vertrauenswürdigen Betriebsmodus der Betriebsumgebung 200 ausgeführt wird. Falls ja, wird die aufrufende Routine in Schritt 312 vom Verfahren zur Liste aktiver vertrauenswürdiger Routinen 214 hinzugefügt. Auf diese Weise wird die geordnete Liste 214 aktiver vertrauenswürdiger Routinen mit der zuletzt aufrufenden Routine im Aufrufstapel 212 aktuell gehalten, und die Liste 214 enthält alle vertrauenswürdigen Routinen um Aufrufstapel 212.
-
In Schritt 314 ermittelt das Verfahren, ob die Routine in der Tabelle vertrauenswürdiger Routinen 208 aufgeführt ist. Die Tabelle vertrauenswürdiger Routinen 208 enthält eine zuverlässige vertrauenswürdige Angabe für alle Softwareroutinen 210, die für die Ausführung im vertrauenswürdigen Betriebsmodus vertrauenswürdig sind. Eine positive Feststellung in Schritt 314 führt dazu, dass das Steuermodul 206 den Betriebsmodus der Betriebsumgebung 200 in Schritt 316 in einen vertrauenswürdigen Ausführungsmodus für die Routine umschaltet.
-
Eine negative Feststellung in Schritt 314 zeigt an, dass die Routine nicht vertrauenswürdig ist und in einem Betriebsmodus mit verringerter Vertrauenswürdigkeit ausgeführt werden sollte. Entsprechend schaltet das Steuermodul 206 in Schritt 320 den Betriebsmodus der Betriebsumgebung in einen Modus mit verringerter Vertrauenswürdigkeit für die Ausführung der Routine um.
-
Somit stellt die Verwendung der Erfindung der Anwendung 204 eine Einrichtung für den Wechsel zwischen dem vertrauenswürdigen Betriebsmodus und dem Betriebsmodus mit verringerter Vertrauenswürdigkeit in Form des des vertrauenswürdigen Steuermoduls 206 bereit. Das vertrauenswürdige Steuermodul 206 ist in Verbindung mit der Tabelle vertrauenswürdiger Routinen 208 und der Liste aktiver vertrauenswürdiger Routinen 214 in der Lage, berechtigte Umschaltvorgänge der Ausführung von nichtvertrauenswürdigen Routinen zu vertrauenswürdigen Routinen zu erkennen und den Betriebsmodus entsprechend umzuschalten. Weiterhin ist das vertrauenswürdige Steuermodul 206 in der Lage, die Ausführung sicher von einem vertrauenswürdigen Betriebsmodus in einen Betriebsmodus mit verringerter Vertrauenswürdigkeit zu umzuschalten. Da die Umschaltvorgänge vom Steuermodul 206 der Anwendung 206 selbst und ohne Rückgriff auf Systemdienste wie Betriebssystemdienste 202 durchgeführt werden, ist der Ressourcen-Bedarf der Umschaltvorgänge relativ gering. Der Ressourcen-Bedarf kann niedrig genug für mehrere Umschaltvorgänge zwischen Betriebssystemmodi innerhalb desselben Strangs sein, so dass unterschiedliche Routinen im Aufrufstapel 212 in den vertrauenswürdigen Betriebsmodi und den Betriebsmodi mit verringerter Vertrauenswürdigkeit ausgeführt werden können. Auf diesem Fall stellt die Liste aktiver vertrauenswürdiger Routinen 214 eine Liste oder Kette vertrauenswürdiger Stapeleinträge des Aufrufstapels 212 in sicherer und zuverlässiger Weise bereit.
-
4 zeigt ein Blockschaubild einer Datenanordnung in einer Betriebsumgebung eines Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung. Die Anordnung von 4 verdeutlicht wie Steuerungsinformationen und Routinestapeldaten gemäß dem Verfahren von 3 bei dessen Verwendung gespeichert werden können. Jeder Block in 4 stellt ein Datenobjektelement dar, das im Speicher der Betriebsumgebung 200 gespeichert ist. Blöcke mit den fettesten Linien zeigen an, dass es sich bei den Elementen um zuverlässige vertrauenswürdige Elemente handelt, die nur durch vertrauenswürdige Routinen in der Betriebsumgebung 200 verändert werden können (und auf die möglicherweise auch nur durch vertrauenswürdige Routinen in der Betriebsumgebung 200 zugegriffen werden kann). Blöcke mit schwachen Linien zeigen an, dass Elemente sowohl durch vertrauenswürdige als auch nichtvertrauenswürdige Softwareroutinen verändert werden dürfen und sowohl durch vertrauenswürdige als auch nichtvertrauenswürdige Softwareroutinen auf sie zugegriffen werden darf. Eine solche Zugangskontrolle kann beispielsweise über den schlüsselgesteuerten Schutzmechanismus der z/Architecture erreicht werden.
-
Block 402 zeigt einen Betriebssystemsteuerungsblock 402, der gemäß einem vertrauenswürdigen Mechanismus, wie einem Element von Schlüssel 0 im schlüsselgesteuerten Schutzmechanismus, gespeichert ist. Ein Anwendungssteuerungsblock 404 ist ebenfalls vertrauenswürdig, wie beispielsweise aufgrund eines vertrauenswürdigen Elements in Form von Schlüssel 7 eines schlüsselgesteuerten Schutzmechanismus. Der Anwendungssteuerungsblock 404 bezieht sich auf Steuerungsblöcke zur Verwendung durch eine MUSASS-Anwendung wie beispielsweise: eine Tabelle vertrauenswürdiger Routinen 406 wie in Bezug auf 2 beschrieben; ein Block zur Steuerung einer Liste aktiver vertrauenswürdiger Routinen 410, welcher der oben in Bezug auf 2 beschriebenen Liste aktiver vertrauenswürdiger Routinen 214 entspricht, und ein Block zur Steuerung eines Aufrufstapels 408, der einen Aufrufstapel 430 bezeichnet, der dem Aufrufstapel 212 von 2 entspricht. Auf den Block zur Steuerung eines Aufrufstapels 408 kann von Routinen zugegriffen werden, die in einem Betriebsmodus mit verringerter Vertrauenswürdigkeit ausgeführt werden.
-
Bei Verwendung enthält der Aufrufstapel 430 Eintrage, die Softwareroutinen entsprechen, die in einem Ausführungsstrang in der Betriebsumgebung 200 ausgeführt werden. In Ausführungsformen der vorliegenden Erfindung stellt das Steuermodul 206 den Umschaltvorgang eines Betriebsmodus der Betriebsumgebung zwischen dem vertrauenswürdigen Modus und dem Modus verringerter Vertrauenswürdigkeit bereit. Der Umschaltvorgang findet gemäß 3 bei Ausführung einer Softwareroutine statt. Die Ausführung kann das Ergebnis einer neuen Aufruf-, Verzweigungs-, Sprung- oder Verknüpfungsoperation oder einer Rückkehr von einer solchen Operation sein. Entsprechend kann der Aufrufstapel 430 der Softwareroutine eine Kombination von sowohl nichtvertrauenswürdigen Routinen 412, 418, 422 als auch vertrauenswürdigen Routinen 416, 420 sein. Ein Block zur Steuerung einer Liste aktiver vertrauenswürdiger Routinen 410 unterhält eine Liste der Routinen im Aufrufstapel 430, die in einem vertrauenswürdigen Betriebsmodus ausgeführt werden, so dass das Steuermodul den Betriebsmodus bei Rückkehroperationen überprüfen und umschalten kann. Weiterhin enthält die Tabelle vertrauenswürdiger Routinen 406 eine Liste von Softwareroutinen, die zur Ausführung im vertrauenswürdigen Betriebsmodus berechtigt sind, so dass das Steuermodul 206 den Betriebsmodus bei Aufruf-, Sprung-, Verknüpfungs- oder Verzweigungsoperationen korrekt überprüfen und umschalten kann.
-
Somit stellen Ausführungsformen der vorliegenden Erfindung einen möglicherweise gemischten Stapel vertrauenswürdiger und nichtvertrauenswürdiger Softwareroutinen mit wirksam und streng durchgeführten Umschaltvorgängen zwischen Betriebsmodi bereit, jedoch ohne den zusätzlichen Ressourcen-Bedarf bei Bezug auf oder Verwendung von Systemdiensten mit hohem Bedarf wie sie von Betriebssystemen angeboten werden aufzuweisen.
-
Eine in der z/Architecture ausgeführte Ausführungsform der vorliegenden Erfindung wird nun beschrieben. Es ist ersichtlich, dass die Überlegungen zu dieser besonderen Ausbildung dieser Ausführungsform nicht die einzige Ausführungssoption darstellen und Alternativen möglich sind. Gemäß der Erfindung sind dem Softwarestapel Elemente in zwei unterschiedlichen Speicherschlüsseln zugeordnet. Die beiden Arten von Stapelelementen werden als „vertrauenswürdig” und „nichtvertrauenswürdig” bezeichnet. Die vertrauenswürdigen Elemente können einem Speicherschutzschlüssel 7 und die nichtvertrauenswürdigen Elemente einem Speicherschutzschlüssel 8 zugeordnet sein.
-
In einer Ausführungsform weist jede Routine im Aufrufstapel 212 einen rückwärtsgerichteten Zeiger auf seinen unmittelbaren Vorgänger auf, unabhängig vom Vertrauenswürdigkeitsstatus des Vorgängers. Der unmittelbare Vorgänger ist die Routine im Aufrufstapel 212, die von der aufrufenden Routine in einer Folge von Aufrufen besessen wird. Der rückwärtsgerichtete Stapelzeiger entspricht einem rückwärtsgerichteten „Speicherraum”-Zeiger („savearea” pointer), der in der herkömmlichen Verwaltung von Speicherraumketten verwendet wird. Wenn prinzipiell eine aufgerufene Routine die Steuerung an die sie aufrufende Routine zurückgibt, macht sie über den rückwärtsgerichteten Zeiger den vorhergehenden Speicherraum ausfindig, stellt die Register von diesem Speicherraum wieder her und kehrt zur Adresse im benannten Verknüpfungsregister zurück, das dadurch wiederhergestellt wurde.
-
Gemäß der vorliegenden Erfindung sind die vertrauenswürdigen (Schlüssel 7) Stapelelemente zusätzlich zum oben beschriebenen normalen rückwärtsgerichteten Speicherraumzeiger auch in einer anderen Kette miteinander verknüpft – einer Kette vertrauenswürdiger Speicherräume oder Liste aktiver vertrauenswürdiger Routinen 214. Ein Kennzeichner wie eine Adresse einer jüngsten verwendeten vertrauenswürdigen Routine kann an einem aufgabenbezogenen globalen Speicherort aufbewahrt werden, der ebenfalls geschützt ist (in Schlüssel 7), so dass er nicht durch nichtvertrauenswürdige Routinen wie den Block zur Steuerung einer Liste aktiver vertrauenswürdiger Routinen 410 verändert werden kann.
-
In einer Ausführungsform besitzt die Anwendung einen Dienst zur Aufrufverwaltung zum Umgang mit Aufrufen, Sprüngen, Verknüpfungen oder Verzweigungen zwischen Routinen. Dieser Dienst kann die Eigenschaften einer aufgerufenen Routine (wie in der CICS-Domain-Architektur) erkennen. Der Dienst zur Aufrufverwaltung kann jede aufgerufene Routine entweder als vertrauenswürdig oder als nichtvertrauenswürdig erkennen. Der Dienst zur Aufrufverwaltung kann zudem Gruppen unbenutzter Stapelelemente (sowohl vertrauenswürdig als auch nichtvertrauenswürdig) unterhalten. Wenn der Dienst zur Aufrufverwaltung einen Aufruf einer nichtvertrauenswürdigen Routine erkennt, ordnet er ein Stapelelement von der nichtvertrauenswürdigen Gruppe zu; erkennt er einen Aufruf einer vertrauenswürdigen Routine, ordnet er ein Stapelelement von der vertrauenswürdigen Gruppe zu. Solch ein Dienst zur Aufrufverwaltung kann in den Funktionen des Steuermoduls 206 enthalten sein.
-
In einer Ausführungsform wird ein schlüsselgesteuerter Schutzmechanismus verwendet, und das Umschalten zwischen dem vertrauenswürdigen Betriebsmodus und dem Betriebsmodus mit verringerter Vertrauenswürdigkeit für vertrauenswürdige und nichtvertrauenswürdige Routinen enthält Umschaltschlüssel im Schutzmechanismus. Neben der Zuordnung der vertrauenswürdigen und nichtvertrauenswürdigen Stapelelemente im Aufrufstapel
212 verwaltet das Steuermodul
206 auch das Umschalten des Schlüssels, der in einem Programmstatuswort (Program Status Word PSW) eines Prozessors in der Betriebsumgebung
200 gespeichert werden kann. Um dies bei hoher Leistungsfähigkeit zu erreichen, wird die (in der
US-Patentschrift 5 745 676 beschriebene) Anweisung zum Verzweigen und Festlegen der Berechtigung (BSA) verwendet. Die BSA-Anweisung schaltet den Prozessormodus zwischen einen Zustand mit Grundberechtigung (vertrauenswürdig) und einem Zustand mit eingeschränkter Berechtigung (verringerte Vertrauenswürdigkeit) um. Das Steuermodul
206 läuft im Zustand mit Grundberechtigung (vertrauenswürdig) und zum Beispiel in Schlüssel 7. Alle nichtvertrauenswürdigen Programme laufen im Zustand mit eingeschränkter Berechtigung und zum Beispiel in Schlüssel 8. In dieser Architektur kehrt eine nichtvertrauenswürdige Routine (in Schlüssel 8) nicht in den Zustand mit Grundberechtigung (und Schlüssel 7) zurück, ohne auch die Steuerung an das Steuermodul
206 zurückzugeben. Dies kann durch die BSA-Hardware-Architektur sichergestellt werden. Weiterhin kann eine nichtvertrauenswürdige Routine den Inhalt der Stapelelemente einer vertrauenswürdigen Routine nicht verändern, da sie durch den schlüsselgesteuerten Schutz der z/Architecture geschützt sind.
-
Die BSA-Anweisung tritt in zwei Arten auf: ein „BSA-Aufruf” (BSA-ba), der eine Routine im Zustand mit eingeschränkter Berechtigung (verringerter Vertrauenswürdigkeit) aufruft, sowie eine „BSA-Rückkehr” (auch bekannt als BSA-ra), welche die Steuerung von der Routine mit eingeschränkter Berechtigung zurückgibt und den Zustand mit Grundberechtigung (vertrauenswürdig) wiederherstellt. Die BSA-ra-Anweisung gibt die Steuerung immer unmittelbar auf die die BSA-ba-Anweisung folgend an die Anweisung zurück. Die Routine mit eingeschränkter Berechtigung hat darüber keine Kontrolle.
-
Wenn eine vertrauenswürdige Routine eine nichtvertrauenswürdige Routine aufruft, muss der Betriebsmodus von Grundberechtigung (vertrauenswürdig) zu eingeschränkter Berechtigung (nichtvertrauenswürdig) umgeschaltet werden. Dies geschieht durch Ausgeben einer „BSA-Aufruf”(BSA-ba)-Anweisung, die den Schlüssel von 7 auf 8 umschaltet, nur Schlüsselumschaltung zwischen den Schlüsseln 8 und 9 (nichtvertrauenswürdig) erlaubt und eingeschränkter Berechtigung (verringerte Vertrauenswürdigkeit) einstellt, bevor sie zur aufgerufenen Routine verzweigt.
-
Wenn eine nichtvertrauenswürdige Routine die Steuerung an eine vertrauenswürdige Routine zurückgeben muss, muss auch der Betriebsmodus vom Zustand mit eingeschränkter Berechtigung (verringerte Vertrauenswürdigkeit) in den Zustand mit Grundberechtigung (vertrauenswürdig) zurückgegeben werden. Das Steuermodul 206 erkennt dies anhand der Feststellung, dass das wiederhergestellte Stapelelement dem „letzten vertrauenswürdigen Stapelelement” entspricht, das zuvor in der Liste aktiver vertrauenswürdiger Routinen 214 gespeichert wurde. In dieser Situation kehrt das Steuermodul 206 zum Zustand mit Grundberechtigung (und Schlüssel 7) (vertrauenswürdig) zurück, indem es eine BSA-Rückkehr”-(BSA-ra-)Anweisung ausgibt. Zudem wird der Kennzeichner „letztes vertrauenswürdiges Stapelelement” in der Liste aktiver vertrauenswürdiger Routinen 214 durch die Adresse des nächsten vertrauenswürdigen Stapelelements in der vertrauenswürdigen Kette ersetzt. Für vollständige Unversehrtheit sollte sich die vertrauenswürdige Routine, die dadurch die Steuerung erhält, nicht auf die Inhalte der zurückkehrenden nichtvertrauenswürdigen Routinen verlassen. Sie sollte sich ausschließlich auf die Inhalte des vertrauenswürdigen Stapelelements und die Inhalte jedes anderen Steuerungsblocks verlassen, die vor der Veränderung durch nichtvertrauenswürdige Routinen geschützt sind.
-
Wenn eine nichtvertrauenswürdige Routine ausgeführt wird, befindet sich die Betriebsumgebung 200 im Zustand mit eingeschränkter Berechtigung (verringerte Vertrauenswürdigkeit). Wenn sie somit eine vertrauenswürdige Routine aufrufen will, muss sie zuvor die Steuerung mit einer „BSA-Rückkehr”(BSA-ra)-Anweisung an das Steuermodul 206 zurückgeben, welches dann die vertrauenswürdige Routine in Schlüssel 7 und im Zustand mit Grundberechtigung (vertrauenswürdig) aufrufen kann. Dabei fügt das Steuermodul 206 die neue vertrauenswürdige Routine als „letztes vertrauenswürdiges Stapelelement” zur Liste aktiver vertrauenswürdiger Routinen 214 hinzu.
-
Wenn eine vertrauenswürdige Routine die Steuerung an eine nichtvertrauenswürdige Routine zurückgeben muss, muss auch der Betriebsmodus von Grundberechtigung (vertrauenswürdig) zu eingeschränkter Berechtigung (nichtvertrauenswürdig) umgeschaltet werden. Das Steuermodul 206 entfernt das aktuelle Stapelelement aus der Kette „letztes vertrauenswürdiges Stapelelement” (Liste aktiver vertrauenswürdiger Routinen 214) und gibt einen „BSA-Aufruf” (BSA-ba) aus, um die nichtvertrauenswürdige Routine aufzurufen.
-
Wenn eine vertrauenswürdige Routine eine nichtvertrauenswürdige Routine aufruft oder umgekehrt, befindet sich eine von der aufrufenden Routine übergebene Parameterliste im Allgemeinen in einem anderen Schlüsselschutz-Schlüssel als demjenigen, der von dem aufgerufenen Programm erwartet wird. Es ist günstig für die Routinen auf beiden Seiten des Aufrufs, wenn das Steuermodul eine Kopie der Parameterliste vom Schutzschlüssel der aufrufenden Routine auf diejenige der aufgerufenen Routine vornehmen kann. Dies wird am einfachsten dadurch erreicht, dass die Größe des Stapelelements, das für die aufgerufene Routine zugeordnet wird (das sich im richtigen Schlüssel für die aufgerufene Routine befindet), erweitert wird und anschließend die Parameterliste je nach Richtung der Verschiebung mit einer der Anweisungen „mit Schlüssel verschieben” (move with key) („move with source key” (mit Quellschlüssel verschieben) oder „move with destination key” (mit Zielschlüssel verschieben) in diese Erweiterung kopiert wird. Wenn die aufgerufene Routine Ausgabeparameter an den Aufrufer zurückgibt, muss die Parameterliste bei Rückgabe ebenfalls zurück in den Schlüssel des Aufrufers kopiert werden.
-
Ausführungsformen der vorliegenden Erfindungen ermöglichen es einer MUSASS-Anwendung, ihre eigenen Ressourcen vor Beeinträchtigung durch die vom Teilsystem gesteuerten Anwendungsroutinen zu schützen, ohne dass nennenswerte Auswirkung auf den normalen Betrieb der Anwendungen auftreten. Das Teilsystem kann dann seine wichtigen Systemdaten ohne die Gefahr einer versehentlichen oder böswilligen Veränderung durch Anwendungsprogramme problemlos in seine Stapelelemente speichern. Zu solchen Daten können folgende gehören: Adressen von wichtigen Systemroutinen (wie das Steuermodul 206 selbst und Routinen von Subsystem-Diensten); Eintrags- und Rückkehradressen innerhalb der Routinen der Teilsystem-Dienste; lokale Variablen innerhalb der Routinen der Teilsystem-Dienste; Benutzerzugangsdaten; Anzeiger von Sicherheitsoptionen für die verwalteten Anwendungsaufgaben.
-
Bevorzugte Ausführungsformen der vorliegenden Erfindung stellen der Anwendung 204 zudem die Möglichkeit bereit, vollständig private, für bestimmte Routinen nicht zugängliche Daten auszubilden, indem Speicherbereiche in einem vertrauenswürdigen Subsystem-Schlüssel (z. B. Schlüssel 7 im schlüsselgesteuerten Schutzmechanismus) verwendet werden, die zudem gegen Abruf gesichert sind.
-
Insofern als Ausführungsformen der beschriebenen Erfindung zumindest in Teilen mit einer softwaregesteuerten programmierbaren Verarbeitungseinheit wie einem Mikroprozessor, digitalen Signalprozessor oder einer anderen Verarbeitungseinheit, einer anderen Datenverarbeitungsvorrichtung oder einem anderen Datenverarbeitungssystem ausführbar sind, ist ersichtlich, dass ein Computerprogramm zum Konfigurieren einer programmierbaren Einheit, einer programmierbaren Vorrichtung oder eines programmierbaren Systems zur Ausführung der vorangehend beschriebenen Verfahren als ein Aspekt der vorliegenden Erfindung vorgesehen ist. Das Computerprogramm kann zum Beispiel als Quellcode ausgeführt sein, zur Ausführung auf einer Verarbeitungseinheit, einer Verarbeitungsvorrichtung oder einem Verarbeitungssystem eine Kompilierung durchlaufen oder als Objektcode ausgeführt sein.
-
Das Computerprogramm wird geeigneterweise auf einem Trägermedium in maschinen- oder einheitenlesbarer Form beispielsweise in Festkörperspeichern, Magnetspeichern wie Festplatten oder Band, optisch oder magneto-optisch lesbaren Speichern wie einer Compact Disk oder einer DVD (digital versatile disk) usw. gespeichert, und die Verarbeitungseinheit nutzt das Programm oder einen Teil davon, um es für den Betrieb zu einzurichten. Das Computerprogramm kann von einer entfernt angeordneten Quelle geliefert werden, die in einem Datenübertragungsmedium wie einem elektronischen Signal, einem Funkträgersignal oder einem optischem Trägersignal ausgeführt ist. Solche Trägermedien sind ebenfalls als Aspekte der vorliegenden Erfindung vorgesehen.
-
Es ist für den Fachmann erkennbar, dass, obwohl die vorliegende Erfindung in Zusammenhang mit den oben beschriebenen beispielhaften Ausführungsformen beschrieben wurde, die Erfindung nicht darauf beschränkt ist und dass es viele mögliche Variationen und Veränderungen gibt, die unter den Umfang der Erfindung fallen.
-
Der Umfang der vorliegenden Erfindung beinhaltet sämtliche neuartigen Merkmale oder Kombinationen von Merkmalen, die hierin beschrieben wurden. Der Anmelder weist hiermit darauf hin, dass neue Ansprüche zu solchen Merkmalen oder Kombinationen von Merkmalen während der Verfolgung dieser Anmeldung oder weiterer hiervon abgeleiteter Anmeldungen formuliert werden können. Insbesondere können bezüglich der angehängten Ansprüche Merkmale von Unteransprüchen mit denen der unabhängigen Ansprüche kombiniert werden und Merkmale jeweiliger unabhängiger Ansprüche in jeder geeigneten Weise und nicht nur in den besonderen in den Ansprüchen aufgezählten Kombinationen kombiniert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 5745676 [0007, 0030, 0046]