DE112011105752T5 - Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems - Google Patents

Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems Download PDF

Info

Publication number
DE112011105752T5
DE112011105752T5 DE112011105752.0T DE112011105752T DE112011105752T5 DE 112011105752 T5 DE112011105752 T5 DE 112011105752T5 DE 112011105752 T DE112011105752 T DE 112011105752T DE 112011105752 T5 DE112011105752 T5 DE 112011105752T5
Authority
DE
Germany
Prior art keywords
bios
electronic device
request
domain
service
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112011105752.0T
Other languages
English (en)
Inventor
Valiuddin Y. Ali
Jose Paulo Xavier PIRES
James M. Mann
Boris Balacheff
Chris I. Dalton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112011105752T5 publication Critical patent/DE112011105752T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Abstract

Eine webbasierte Schnittstelle in einem elektronischen Gerät empfängt eine Anfrage, auf eine Funktion eines Basic Input/Output-Systems zuzugreifen.

Description

  • Hintergrund
  • Ein elektronisches Gerät, wie z. B. ein Computer oder ein anderer Gerätetyp, kann ein Basic Input/Output-System (BIOS) umfassen, das für das Hochfahren des elektronischen Geräts zuständig ist. Während des Hochfahrens initialisiert und konfiguriert das BIOS Komponenten des elektronischen Geräts und lädt ein Betriebssystem in dem elektronischen Gerät. Zusätzlich kann das BIOS auch andere Dienste bereitstellen, wie z. B. einen Energieverwaltungsdienst, einen Wärmeverwaltungsdienst, einen BIOS-Aktualisierungsdienst etc.
  • Kurze Beschreibung der Zeichnungen
  • Einige Ausführungsformen werden in Bezug auf die folgenden Figuren beschrieben:
  • 1, 3, 5 und 6 sind Blockdiagramme von Anordnungen gemäß verschiedener Ausführungen; und
  • 2 und 4 sind Flussdiagramme von Prozessen gemäß verschiedener Ausführungen.
  • Ausführliche Beschreibung
  • Ein Basic Input/Output-System (BIOS) ist in der Regel der erste Code, der von einem elektronischen Gerät ausgeführt wird, wenn das elektronische Gerät startet. Beispiele für das elektronische Gerät umfassen einen Computer (z. B. Desktop-Computer, Notebook-Computer, Tablet-Computer, Server-Computer etc.), ein Handheld-Gerät (z. B. Personal Digital Assistant, Smartphone etc.), ein elektronischer Apparat, eine Spielkonsole oder einen beliebigen anderen elektrischen Gerätetyp. Das BIOS initialisiert und konfiguriert verschiedene Hardware-Komponenten des elektronischen Geräts und lädt und startet ein Betriebssystem (OS) des elektronischen Geräts. Der Code für das BIOS wird in der Regel auf einem nicht-flüchtigen Speicher, wie z. B. einem Flash-Speichergerät oder einem anderen Typ eines programmierbaren Festwertspeichers (ROM) gespeichert.
  • Das BIOS stellt auch andere Funktionen bereit, die in dem elektronischen Gerät aufgerufen werden können. Viele solcher anderer Funktionen des BIOS werden häufig in dem elektronischen Gerät durch Eintritt in einen System Management Mode (SMM) ausgeführt, welches ein Betriebsmodus ist, in dem die OS-Ausführung ausgesetzt ist. Bei einem elektronischen Gerät mit mehreren Prozessoren oder Prozessorkernen können auch alle bis auf einen der Prozessoren oder Prozessorkerne im SMM inaktiviert sein. Zum Eintritt in den SMM wird ein System Management Interrupt (SMI) durchgesetzt, und ein SMI-Handler (der Teil des BIOS ist) wird ausgeführt, häufig in einem Modus mit relativ hohen Privilegien, um die jeweilige(n) Funktion(en) auszuführen.
  • Beim Eintritt in den SMM zur Ausführung von BIOS-Funktionen können verschiedene Probleme auftreten. Erstens kann der normale Betrieb des elektronischen Geräts nicht fortlaufen, da die OS-Ausführung ausgesetzt ist. Außerdem ist in einem elektronischen Gerät, bei dem ein oder mehrere Prozessor(en) oder Prozessorkern(e) während des SMM inaktiviert sind, ein Teil der Verarbeitungskapazität des elektronischen Geräts vorübergehend deaktiviert, was bedeutet, dass ein solcher Teil der Verarbeitungskapazität zur Ausführung anderer Aufgaben nicht verfügbar ist. Weiter kann es schwierig sein, vorherzusagen, wie lange die SMM-Verarbeitung eventuell dauert, was eine Unsicherheit beim Betrieb des elektronischen Geräts verursachen kann. Weiter sind möglicherweise Statusinformationen für einen Benutzer des elektronischen Geräts nicht verfügbar, da bestimmte BIOS-Funktionen eine relativ lange Zeitspanne bis zum Abschluss benötigen (z. B. in der Größenordnung von Minuten), was in einer für den Benutzer verwirrenden Erfahrung resultieren kann, da der Benutzer nicht in der Lage ist, festzustellen, ob das elektronische Gerät ordnungsgemäß funktioniert oder nicht.
  • Die Sicherheit kann ebenfalls ein Problem darstellen, da Malware während des SMM-Betriebs angreifen kann, was zur Beschädigung des Systems führen kann. Sicherheitsmaßnahmen, die ergriffen werden, um jedwede solcher Angriffe gegen den SMM-Betrieb zu verhindern, können zu erhöhter Komplexität des Designs eines elektronischen Geräts führen. Beispiele für solche Sicherheitsmaßnahmen umfassen das Sperren bestimmter Speicherbereiche, einschließlich Register und/oder eines Teils des nicht-flüchtigen Speichers, wie z. B. eines Flash-Speichergeräts oder eines anderen programmierbaren Festwertspeichertyps, was Schutz gegen unerwünschte oder nicht autorisierte Veränderung des BIOS bieten kann. Diese Sicherheitsmaßnahmen können jedoch zu Einschränkungen der Leistung bestimmter BIOS-Funktionen führen, wie z. B. BIOS-Code-Aktualisierung, so dass solche BIOS-Funktionen nur zu bestimmten Zeiten ausgeführt werden können, wie z. B. beim Systemneustart.
  • Beispiele verschiedener Funktionen, die im SMM häufig ausgeführt werden, können eine beliebige oder eine Kombination der Folgenden umfassen: ein Dienst zur Aktualisierung des BIOS-Codes; ein Dienst, auf eine Einstellung des BIOS zuzugreifen oder diese zu ändern; ein Wärmeverwaltungsdienst zur Ausführung der Wärmeverwaltung (z. B. Steuerung von Kühlgeräten, wie z. B. Lüftern, in dem elektronischen Gerät); ein Energieverwaltungsdienst (Ableiten oder Wiederzuführen von Energie an bestimmte Hardware-Komponenten); ein Dienst zum Wechsel zwischen verschiedenen Energiezuständen des elektronischen Geräts (z. B. Ruhezustand, Schlafmodus, vollständig betriebsbereiter Zustand etc.); ein Dienst zur Prozessaktivierung einer Taste oder einer Tastenfolge (die die Aktivierung einer beliebigen Kombination mehrerer Tasten umfasst) des elektronischen Geräts (z. B. eine Taste zum Ein- oder Ausschalten einer drahtlosen Schnittstellenkomponente, eine Kurzbefehlssequenz zur Ausführung einer beliebigen zuvor definierten Aufgabe etc.); ein mit einem Umgebungslichtsensor des elektronischen Geräts verbundener Dienst (zur Erfassung von Licht in der Umgebung des elektronischen Geräts); ein Dienst zur Änderung einer Einstellung des BIOS; ein Dienst zur Änderung einer Einstellung einer Hardware-Komponente in dem elektronischen Gerät; ein Dienst zur Änderung einer Bootreihenfolge zu bootender Geräte des elektronischen Geräts; ein Dienst zum Handling eines bestimmten Call-Typs zwischen dem OS und dem BIOS (z. B. ein Interrupt 15 Call); ein Dienst zum Ausführen eines Befehls eines Embedded Controller; und ein Dienst zur Unterstützung eines alten Peripheriegeräts (z. B. ein Universal Serial Bus-Gerät) unter einer bestimmten Bedingung.
  • Obwohl oben verschiedene beispielhafte BIOS-Funktionen aufgeführt sind, wird angemerkt, dass andere oder alternative BIOS-Funktionen bei anderen Ausführungen verwendet werden können.
  • Gemäß einiger Ausführungen für robusteres Systemverhalten können Funktionen des BIOS in einer Domain bereitgestellt werden, die es erlaubt, dass die BIOS-Funktionen zugänglich sind, ohne dass das elektronische Gerät in den SMM eintreten muss. Die Domain kann sich außerhalb des elektronischen Geräts befinden, oder die Domäne kann sich in dem elektronischen Gerät befinden. Allgemein kann das BIOS als „BIOS in einer Cloud” betrachtet werden, auch bezeichnet als „BIOS.v”. Die Cloud kann sich entweder in dem elektronischen Gerät oder außerhalb des elektronischen Geräts befinden.
  • Zum Zugriff auf das BIOS in einer Cloud wird eine webbasierte Schnittstelle bereitgestellt. Allgemein kann sich eine „webbasierte Schnittstelle” auf eine Schnittstelle beziehen, die es einem Anfragenden erlaubt, auf eine Ressource unter Verwendung eines Datentransfers zuzugreifen, der über ein Netz, wie z. B. das Internet oder andere Netztypen, gesendet wird. Eine webbasierte Schnittstelle kann eine Modemschnittstelle zum Zugriff auf das BIOS bereitstellen, wobei die Schnittstelle unabhängig oder weniger abhängig von der zugrundeliegenden Plattform sein kann, einschließlich eines Betriebssystems und eines Chipsets (weiter unten diskutiert). 1 ist ein vereinfachtes Blockdiagramm eines elektronischen Geräts 100 gemäß einiger Ausführungen. Das elektronische Gerät 100 umfasst eine anfragende Einheit 102 (z. B. einen Virtual Machine Monitor, eine virtuelle Gastmaschine oder eine beliebige andere Einheit), die eine BIOS-Zugriffsanfrage 104 zustellen kann. Die BIOS-Zugangsanfrage 104 wird an eine webbasierte Schnittstelle 106 zugestellt. Eine Funktion, die die webbasierte Schnittstelle 106 bereitstellt, kann dann die BIOS-Zugriffsanfrage 104 an eine entsprechende BIOS-Funktion 108 in einer Cloud 110 leiten, wobei die Cloud 110 intern in dem elektronischen Gerät 100 oder an einem externen Ort, der über ein Netz zugänglich ist, angesiedelt sein kann. Obwohl sich die folgende Diskussion auf eine „BIOS-Funktion” im Singular bezieht, ist anzumerken, dass sich „BIOS-Funktion” auf eine einzelne BIOS-Funktion oder mehrere BIOS-Funktionen beziehen kann.
  • Ein Virtual Machine Monitor (VMM), auch als Hypervisor bezeichnet, verwaltet durch virtuelle Maschinen das Sharing der physischen Ressourcen, einschließlich der Hardware-Komponenten, des elektronischen Geräts. Der VMM virtualisiert die physischen Ressourcen. Jede virtuelle Maschine besitzt zugehörige virtualisierte physische Ressourcen, die durch den VMM verwaltet werden. Der VMM verarbeitet Anfragen für physische Ressourcen.
  • Eine „virtuelle Maschine” (auch als „virtuelle Appliance” oder „virtuelle Partition” bezeichnet) betrifft ein(e) beliebige(s) Partition oder Segment einer physischen Maschine (des elektronischen Geräts), die dazu bereitgestellt ist, eine physische Maschine zu virtualisieren oder emulieren. Aus Sicht eines Benutzers oder einer Anwendung sieht eine virtuelle Maschine wie eine physische Maschine aus. Eine virtuelle Maschine umfasst ein Betriebssystem (bezeichnet als ein Gastbetriebssystem) und mindestens ein Anwendungsprogramm. Eine „virtuelle Gastmaschine” kann eine virtuelle Maschine bezeichnen, die ein Gastbetriebssystem und eine Anwendung umfasst. Eine virtuelle Gastmaschine unterscheidet sich von einer Domain 0, die oft die erste Domain (oder virtuelle Maschine) ist, die von einem Virtual Machine Monitor gestartet wird.
  • Die webbasierte Schnittstelle 106 kann z. B. eine Webservice-Schnittstelle sein. Ein Webservice betrifft einen Mechanismus, der dazu ausgelegt ist, eine dialogfähige M2M-Interaktion über ein Netz zu unterstützen. Es ist zu beachten, dass bei einigen Ausführungen die Webservice-Schnittstelle auch eine Interaktion zwischen Einheiten in dem elektronischen Gerät 100 erlauben kann. Die Webservice-Schnittstelle kann gemäß eines Formats durch eine Web Services Description Language (WSDL) beschrieben werden, wie durch das World Wide Web Consortium (W3C) definiert. Alternativ dazu kann die Webservice-Schnittstelle einem Simple Object Access Protocol (SOAP) (ebenfalls definiert durch das W3C) entsprechen, das ein Protokoll zum Austausch strukturierter Informationen bei der Ausführung von Webservices über Netze ist.
  • Als noch eine weitere Alternative kann die webbasierte Schnittstelle 106 einer Representational State Transfer(REST)-Architektur entsprechen, die Clients und Server umfasst, wobei Clients Anfragen an Server zustellen können und Server Antworten an Clients bereitstellen können. Anfragen und Antworten sind um die Übertragung von Darstellungen von Ressourcen aufgebaut. Eine Ressource kann ein beliebiges kohärentes und sinnvolles Konzept sein, das angesprochen werden kann. Eine Darstellung einer Ressource ist typischerweise ein Dokument, das den aktuellen oder den angestrebten Zustand einer Ressource einfängt. In der REST-Architektur kann bei einigen Beispielen eine Anfrage, die von einem Client zugestellt wird, eine Hypertext Transfer Protocol (HTTP) Get-Anfrage sein. Der Server kann auf die HTTP Get-Anfrage eine HTTP-Antwort bereitstellen. Es ist zu beachten, dass Client und Server über ein Netz gekoppelt sein können, oder alternativ, dass sich Client und Server in dem elektronischen Gerät 100 befinden können.
  • In der webbasierten Schnittstelle 106 kann auf eine Ressource (z. B. eine interne BIOS-Funktion oder eine externe BIOS-Funktion) durch Ausgabe einer BIOS-Zugriffsanfrage zugegriffen werden, die eine Adresse der angeforderten Ressource enthält. Die Adresse kann eine Webadresse, wie z. B. ein Uniform Resource Locator (URL), eine Internet Protocol (IP)-Adresse oder eine beliebige andere Adresse sein, die die angeforderte Ressource eindeutig identifizieren kann.
  • Als Reaktion auf die BIOS-Zugriffsanfrage, die die an der webbasierten Schnittstelle 106 empfangene Adresse enthält, kann die Anfrage an eine geeignete der internen und externen BIOS-Funktionen geleitet werden. In einigen Fällen kann die Anfrage sowohl an die internen als auch an die externen BIOS-Funktionen geleitet werden.
  • Die Bereitstellung einer BIOS-Funktion an einem externen Ort kann bestimmte Vorteile bieten. So kann z. B. ein Service-Provider, der mit einem externen Server-Computer verbunden ist, automatische Prüfungen von BIOS-Aktualisierungen ausführen, ohne Client-Geräte, wie z. B. das elektronische Gerät 100, einzubeziehen. Der Service-Provider kann auch das Wiederherstellen einer früheren BIOS-Version kontrollieren, wie z. B. beim Erkennen eines Fehlers oder einer Beschädigung. Es kann weitere Dienste in Bezug auf das BIOS geben, die am externen Server-Computer auf leistungsfähigere und wirksamere Weise ausgeführt werden können.
  • Ein weiterer Vorteil, eine webbasierte Schnittstelle bereitzustellen, ist es, dass eine geringere Abhängigkeit von der speziellen Chipset- oder Betriebssystem-Architektur für Kommunikationen betreffend des Zugriffs auf die BIOS-Funktionalität möglich ist. Bei einigen Systemen z. B., die ein WINDOWS®-Betriebssystem von Microsoft verwenden, kann ein WMI(Windows Management Instrumentation)-Mechanismus, welches eine Ausführung von WBEM (Web Based Enterprise Management) ist, für den Zugriff auf BIOS-Funktionen von dem Betriebssystem aus verwendet werden. Eine Unterstützung von WMI ist aber möglicherweise nicht verfügbar oder in anderen Betriebsumgebungen selten, wie z. B. Umgebungen, die Linux oder andere Betriebssysteme verwenden. Als weitere Beispiele können bestimmte Unterbrechungsmechanismen, wie z. B. int15 oder int1A, mit bestimmten Typen von Chipsets verwendet werden. Das Verwenden einer offeneren Schnittstelle, wie z. B. einer webbasierten Schnittstelle gemäß einiger Ausführungen, vermindert die Abhängigkeit von bestimmten Chipset- und Betriebssystem-Architekturen. Des Weiteren kann das Befehlsformat für den Zugriff auf BIOS-Funktionen unter Verwendung von WMI oder anderen oben genannten Schemata veraltet und unflexibel sein. Eine webbasierte Schnittstelle erlaubt die Verwendung von Befehlen gemäß weiter verbreiteter Standards, wie z. B. XML (Extensible Markup Language) oder anderer Standards, für Kommunikationen zum Aufrufen der BIOS-Funktionalität, die offenere und ausbaufähigere Befehlsformate ermöglichen kann und die die Verwendung standardbasierter Validierungsmechanismen (z. B. XML-basierte Validierungsmechanismen) erlauben kann.
  • 2 ist ein Flussdiagramm eines Prozesses gemäß einiger Ausführungen. Der Prozess kann von dem elektronischen Gerät 100 ausgeführt werden. Der Prozess empfängt (bei 202) eine Zugriffsanfrage auf eine BIOS-Funktion. Die Anfrage kann von einer webbasierten Schnittstelle (z. B. 106) empfangen werden. Der Prozess routet (bei 204) die Anfrage dann durch die webbasierte Schnittstelle 106 an die Cloud 110, die die BIOS-Funktion 108 umfasst.
  • Bei einigen Ausführungen ist die Cloud 110, in der die BIOS-Funktion 108 bereitgestellt wird, eine privilegierte Domain des elektronischen Geräts 100, wobei die privilegierte Domain eine Domain des elektronischen Geräts ist, die relativ sicher ist und die (ein) bestimmte(s) vordefinierte(s) Privileg(ien) besitzt, die nicht für andere Einheiten in dem elektronischen Gerät verfügbar sind. Allgemein bezieht sich eine „privilegierte Domain” auf eine Domain, die (ein) vordefinierte(s) Privileg(ien) besitzt, das/die es einer Einheit in der Domain erlaubt/erlauben, Funktionen in dem elektronischen Gerät auszuführen, die andere Einheiten (z. B. OS, Anwendungsprogramme etc.) nicht ausführen dürfen. Außerdem besitzt eine privilegierte Domain auch einen Sicherheitsmechanismus zum Schutz der privilegierten Domain gegen einen nicht autorisierten Zugriff oder Angriff.
  • Durch Verschieben von Funktionen des BIOS in die privilegierte Domain muss das elektronische Gerät 100 nicht in den SMM eintreten, um solche BIOS-Funktionen auszuführen, die in die privilegierte Domain verschoben wurden. Bei einigen Ausführungen kann der SMM-Betrieb vollständig entfallen. Bei anderen Ausführungen kann der SMM-Betrieb weiterhin aktiviert sein, um bestimmte BIOS-Funktionen auszuführen, während die übrigen BIOS-Funktionen durch die privilegierte Domain ausgeführt werden. Im letztgenannten Fall ist die Idee die, dass SMM nur für eine kleine Gruppe von BIOS-Funktionen aktiviert ist, so dass wirksame Maßnahmen ergriffen werden können, um Sicherheit zu bieten und/oder die Wirksamkeit zu verbessern.
  • Beispiele einer privilegierten Domain umfassen ein beliebiges oder eine beliebige Kombination der Folgenden: Domain 0, welches oft die erste Domain ist, die von einem Virtual Machine Monitor (auch bezeichnet als Hypervisor) gestartet wird, um Verwaltungsaufgaben auszuführen; ein Teil des Virtual Machine Monitor (oder Hypervisors); eine virtuelle Gastmaschine mit voreingestellten Einstellungen, um der virtuellen Gastmaschine erweiterte Privilegien und/oder Sicherheit bereitzustellen; oder ein anderer Domaintyp in dem elektronischen Gerät mit einem besonderen vordefinierten Privileg und/oder Sicherheitsmechanismus.
  • 3 ist ein Blockdiagramm eines beispielhaften elektronischen Geräts 300 gemäß einigen Ausführungen. Das elektronische Gerät 300 umfasst einen VMM 302, der eine privilegierte Domain 304 erzeugt, die mindestens eine BIOS-Funktion 306 (eine beliebige oder Kombination der oben aufgeführten BIOS-Funktionen oder andere BIOS-Funktionen) umfasst. Die privilegierte Domain 304 umfasst auch die webbasierte Schnittstelle 106 von 1. Auf die BIOS-Funktion 306 in der privilegierten Domain 304 kann durch die webbasierte Schnittstelle 106 zugegriffen werden.
  • Bei einigen Beispielen ist die privilegierte Domain 304 die Domain 0, welches eine administrative Domain ist, die bei Systemstart von dem VMM 302 gestartet wird und die erhöhte Privilegien und Sicherheitsmechanismen besitzt. Beispiele von Aufgaben, die von der Domain 0 ausgeführt werden, umfassen das Erzeugen und Konfigurieren von Gastdomänen. Jede der Domain 0 und Gastdomänen wird als eine entsprechende virtuelle Maschine betrachtet.
  • Bei anderen Ausführungen kann die privilegierte Domain 304 ein anderer Typ virtueller Maschine sein, wie z. B. eine virtuelle Gastmaschine. Die privilegierte Domain 304 kann getrennt von dem VMM 302 sein, wie z. B. gemäß der Anordnung in 3. Bei alternativen Ausführungen kann die privilegierte Domain 304 Teil des VMM 302 sein. Bei solchen alternativen Ausführungen sind die BIOS-Funktion 306 und die webbasierte Schnittstelle 106 Teil des VMM 302.
  • Auf die BIOS-Funktion 306 kann durch eine Einheit 308 in dem elektronischen Gerät 300 zugegriffen werden. Bei einigen Beispielen ist die Einheit 308, die auf die BIOS-Funktion 306 in der privilegierten Domain 304 zugreifen kann, Teil einer virtuellen Gastmaschine 310. Eine solche Einheit 308 kann z. B. ein Gastbetriebssystem oder ein anderer Typ Einheit in der virtuellen Gastmaschine 310 sein. Bei anderen Beispielen kann die Einheit 308 extern einer jeglichen virtuellen Gastmaschine 310 sein, wie z. B. in Szenarien, in denen ein Host-Betriebssystem (nicht in 3 dargestellt) oder ein Anwendungsprogramm Zugriff auf die BIOS-Funktion 306 begehrt. Ein „Host-Betriebssystem” unterscheidet sich von einem „Gastbetriebssystem” darin, dass ein Gastbetriebssystem Teil einer virtuellen Maschine ist, wohingegen ein Host-Betriebssystem nicht Teil einer virtuellen Maschine ist.
  • Es gibt zwei alternative Mechanismen für die Einheit 308, um auf die BIOS-Funktion 306 in der privilegierten Domain 304 zuzugreifen. Ein erster Mechanismus umfasst, dass die Einheit 308 direkt eine Anfrage (312) an die webbasierte Schnittstelle 106 sendet, um Zugriff auf die BIOS-Funktion 306 in der privilegierten Domain 304 zu erhalten. Wie weiter unten diskutiert, kann dies durch das Vorhandensein eines virtuellen BIOS in der virtuellen Gastmaschine 310 ermöglicht werden.
  • Gemäß eines zweiten Mechanismus wird eine Anfrage (314), auf die BIOS-Funktion zuzugreifen, von dem VMM 302 abgefangen und von dem VMM 302 (entlang des Wegs 316) zu der webbasierten Schnittstelle 106 in der privilegierten Domain 304 geroutet. Bei einigen Ausführungen kann der VMM 302 eine Zugriffsanfrage auf die BIOS-Funktion 306 (von der Einheit 308 aus) abfangen und zur privilegierten Domain 304 routen, ohne dass der VMM 302 mit einem virtuellen BIOS konfiguriert werden muss. Dies verringert die Komplexität des Designs des VMM 302.
  • 3 zeigt auch Hardware-Ressourcen 316 in dem elektronischen Gerät 300. Als Beispiele umfassen die Hardware-Ressourcen 316 einen Prozessor (oder mehrere Prozessoren), E/A-Geräte, einen flüchtigen Speicher, einen Sekundärspeicher, einen Flash-Speicher, einen Netzwerkschnittstellencontroller, eine Graphikkarte etc. Der Zugriff auf die Hardware-Ressourcen 316 durch virtuelle Gastmaschinen (wie z. B. 310) wird durch den VMM 302 verwaltet.
  • 4 ist ein Flussdiagramm eines Prozesses gemäß einiger Ausführungen. Der Prozess von 4 kann z. B. durch Einheiten ausgeführt werden, die in 3 dargestellt sind. Der Prozess empfängt (bei 402) eine Anfrage, eine Funktion des BIOS (z. B. BIOS-Funktion 306 in 1 oder 3) aufzurufen. Diese Anfrage kann z. B. durch den VMM 302 von der Einheit 308 empfangen werden.
  • Der Prozess routet (bei 404) die Anfrage an die privilegierte Domain 304. Solches Routing kann durch den VMM 302 ausgeführt werden, oder alternativ kann das Routing durch ein virtuelles BIOS in der virtuellen Gastmaschine 310 ausgeführt werden. Bei Ausführungen mit einem virtuellen BIOS gibt eine Einheit (z. B. 308), die ein Gastbetriebssystem sein kann, in der virtuellen Gastmaschine 310, die auf ein BIOS (wie z. B. der BIOS-Funktion 306) zugreifen will, die Zugriffsanfrage an das virtuelle BIOS in der virtuellen Gastmaschine 310 aus. Das virtuelle BIOS routet dann die Zugriffsanfrage an die privilegierte Domain 304.
  • Die privilegierte Domain 304 bestimmt dann (bei 406), ob die angeforderte BIOS-Funktion ausgeführt werden soll oder nicht, basierend auf der Identifizierung einer Quelle der Anfrage oder auf der Identifizierung eines Kontexts der Anfrage oder auf der Identifizierung von sowohl der Quelle als auch des Kontexts der Anfrage. Bei Ausführungen, bei denen die privilegierte Domain die Bestimmung (406) basierend auf der Identifizierung der Quelle der Anfrage vornimmt, wird die angeforderte BIOS-Funktion dann ausgeführt, wenn die privilegierte Domain 304 bestimmt, dass die Quelle der Anfrage autorisiert ist, auf die angeforderte BIOS-Funktion zuzugreifen. Wenn die privilegierte Domain 304 jedoch bei solchen Ausführungen bestimmt, dass die Quelle der Anfrage nicht autorisiert ist, auf die angeforderte BIOS-Funktion zuzugreifen (wie z. B. in einem Szenario, in dem Malware die Anfrage ausgegeben hat), kann die privilegierte Domain 304 den Zugriff auf die angeforderte BIOS-Funktion verweigern. Auf diese Weise kann die privilegierte Domain 304 die BIOS-Funktion sicher ausführen.
  • Alternativ oder zusätzlich dazu nimmt die privilegierte Domain 304 die Bestimmung (406) basierend auf der Identifizierung des Kontexts der Anfrage vor. Der „Kontext” der Anfrage bezieht sich auf den aktuellen Zustand oder die aktuelle Umgebung des elektronischen Geräts (oder eines Teils des elektronischen Geräts) zum Zeitpunkt der zu verarbeitenden Anfrage. Die privilegierte Domain 304 bestimmt, ob die Anfrage ausgeführt werden kann, basierend darauf, ob die Anfrage im korrekten Kontext erfolgt (in anderen Worten, basierend darauf, ob der aktueller Zustand oder die aktuelle Umgebung des elektronischen Geräts (oder des Teils des elektronischen Geräts) eine Regel oder Regeln für die Ausführung der Anfrage erfüllt). Angenommen das elektronische Gerät kann z. B. legal in der Reihenfolge von Zustand S1 zu Zustand S2 zu Zustand S3 und zu Zustand S4 fortschreiten. Weiter angenommen, das Ausführen der angeforderten BIOS-Funktion würde das elektronische Gerät in Zustand S4 versetzen. Bei einem solchen Beispiel würde die privilegierte Domain 304 die Anfrage, die BIOS-Funktion auszuführen, nur dann erlauben, wenn sich das elektronische Gerät in Zustand S3 befindet (in anderen Worten, wenn der Kontext der Anfrage korrekt ist). Wenn sich das elektronische Gerät jedoch in Zustand S2 befände, dann würde die privilegierte Domain 304 die Ausführung der Anfrage nicht erlauben, da dies ein unzulässiger Wechsel wäre (der Kontext ist nicht korrekt).
  • Ein weiteres Beispiel, ob der Kontext einer Anfrage, eine BIOS-Funktion auszuführen, korrekt ist oder nicht, wird im Folgenden ausgeführt. Angenommen, das System stellt bereit, dass ein Befehl, eine Aktion auszuführen, die folgende Sequenz von Befehlen umfasst: (1) Sperren des Systems, (2) Ausführen der Aktion und (3) Entsperren des Systems. Die Anfrage, die BIOS-Funktion auszuführen, wäre vom Kontext her korrekt, wenn die Anfrage zur Ausführung nach einem Befehl, das System zu sperren, empfangen werden würde. Wenn die Anfrage jedoch vor Empfang des Befehls, das System zu sperren, empfangen werden würde, wäre die Anfrage vom Kontext her inkorrekt, und die Anfrage kann durch die privilegierte Domain nicht ausgeführt werden.
  • Gemäß einiger Ausführungen wird die angeforderte BIOS-Funktion ausgeführt, ohne dass in den SMM eingetreten werden muss – in anderen Worten, der SMM kann umgangen werden, um (eine) bestimmte BIOS-Funktion(en) auszuführen, die traditionell im SMM durch SMI BIOS-Handler ausgeführt werden. Durch Verwenden von Techniken oder Mechanismen gemäß einiger Ausführungen können die BIOS-Funktionen, die traditionell im SMM ausgeführt werden würden, stattdessen in einer vertrauenswürdigen Laufzeitumgebung ausgeführt werden, die von einer privilegierten Domain bereitgestellt wird.
  • Zusätzlich kann das Gesamtdesign eines elektronischen Geräts vereinfacht werden, da Sicherheitsmechanismen, die traditionell verwendet werden, wie z. B. das Sperren von Registern oder von Teilen des nicht-flüchtigen Speichers, entfallen können, da es die privilegierte Domain ist, die jetzt kontrolliert, ob eine Anfrage an eine BIOS-Funktion fortfahren darf.
  • Zusätzlich zum Ausführen der angeforderten BIOS-Funktion kann die privilegierte Domain 304 auch bestimmte Aufgaben vor der Ausführung der BIOS-Funktion ausführen. Die privilegierte Domain 304 kann z. B. bestimmen, ob eine Zugriffs- oder Ausführungsanfrage auf/von eine/r BIOS-Funktion richtig gebildet ist oder ob die zu schreibenden Daten (wie z. B. in dem Fall der BIOS Code-Aktualisierung) oder eine Einstellung einer BIOS-Richtlinie korrekt sind/ist (z. B. korrekte Größe, korrekter Verifizierungscode etc.). Dies kann Schutz gegen Fälle bieten, in denen Malware eine syntaktisch inkorrekte Anfrage verwendet, um auf BIOS-Funktionen in einem Versuch zuzugreifen, um BIOS-Fehlfunktionen als Folge der Verarbeitung der syntaktisch inkorrekten Befehlsanfrage zu verursachen. Die privilegierte Domain 304 kann auch bestimmen, ob eine Sicherungskopie von zu verändernden Daten (z. B. BIOS-Code) vor der Ausführung der BIOS-Funktion ausgeführt werden kann. Die privilegierte Domain 304 kann weiter bestimmen, ob die Batterie ausreichend geladen ist, um die angeforderte BIOS-Funktion zu abzuschließen. Im Allgemeinen kann die privilegierte Domain zuerst eine Anfrage, BIOS-Funktionseingänge auszulösen, die mit der Anfrage verknüpft sind, und einen Kontext der Anfrage und seinen Eingang validieren, bevor die privilegierte Domain anfängt, die Anfrage tatsächlich zu verarbeiten oder an das tatsächliche physische BIOS zur weiteren Verarbeitung zu routen.
  • In dem Kontext, den BIOS-Code zu aktualisieren, kann die privilegierte Domain 304 auch Metadaten und/oder einen Metacode, die mit der BIOS-Aktualisierung verknüpft sind, handhaben. Die Metadaten können Richtlinien oder Beschreibungen in Bezug darauf, welche(r) Teil(e) des BIOS-Codes zu aktualisieren ist/sind, und (einen) Zustand/Zustände, der/die mit dem Ausführen der Aktualisierung verknüpft ist/sind, bereitstellen (wie z. B. ein Zustand, der damit verknüpft ist, sicherzustellen, dass ein Aktualisierungscode-Bild für das Aktualisieren des BIOS-Codes eine korrekte Signatur aufweist, ein Zustand, der mit dem Wiederherstellen einer älteren BIOS-Codeversion im Fall eines Aktualisierungsfehlers verknüpft ist etc.). Der Metacode kann (ein) Verfahren in Bezug darauf definieren, wie Variablen und Einstellungen des BIOS zu aktualisieren sind. Die privilegierte Domain 304 kann einen Interpreter umsetzen, um Metadaten und/oder einen Metacode zu handhaben.
  • 5 ist ein Blockdiagramm eines elektronischen Geräts 500 gemäß alternativer Ausführungen. Das elektronische Gerät 500 umfasst mehrere virtuelle Gastmaschinen 502A und 502B; obwohl zwei virtuelle Maschinen 502A und 502B in 5 gezeigt sind, ist anzumerken, dass bei alternativen Ausführungen nur eine virtuelle Gastmaschine oder mehr als zwei virtuelle Gastmaschinen vorhanden sein kann/können.
  • Jede virtuelle Gastmaschine 502A oder 502B umfasst ein entsprechendes Gastbetriebssystem 504A oder 504B sowie ein entsprechendes Anwendungsprogramm 506A oder 506B. Bei einigen Ausführungen umfasst jede virtuelle Gastmaschine 502A oder 502B ferner ein virtuelles BIOS 508A oder 508B. Ein Gastbetriebssystem 504A oder 504B, dafür ausgelegt, auf Dienste eines BIOS zuzugreifen, würde das entsprechende virtuelle BIOS 508A oder 508B (anstelle eines tatsächlichen BIOS) aufrufen. Bei einigen Ausführungen kann das virtuelle BIOS 508A oder 508B diese Anfrage dann direkt an eine privilegierte Domain 520 routen, die die BIOS-Funktion 306 umfasst. Wie bei Ausführungen gemäß 3, kann die privilegierte Domain 520 mit einer Domain 0 oder einer anderen virtuellen Maschine oder in dem VMM 302 ausgeführt sein.
  • Bei alternativen Ausführungen kann das virtuelle BIOS 508A oder 508B stattdessen die Zugriffsanfrage auf eine BIOS-Funktion durch den VMM 302 routen. Bei noch weiteren alternativen Ausführungen kann das virtuelle BIOS 508A oder 508B in der virtuellen Gastmaschine 502A oder 502B fehlen; in solchen Ausführungen kann eine Zugriffsanfrage auf eine BIOS-Funktion durch den VMM 302 abgefangen werden.
  • Das elektronische Gerät 500 umfasst ferner Hardware-Ressourcen 316 und einen Firmware Layer 510, der maschinenlesbare Anweisungen besitzt, einschließlich einem tatsächlichen BIOS 512 (in der weiteren Diskussion als ein „physisches BIOS” bezeichnet). Ein „physisches BIOS” oder „tatsächliches BIOS” bezeichnet einen BIOS-Code, der sich in einem nicht-flüchtigen Speicher befindet, wie z. B. einem Flash-Speicher oder einem anderen programmierbaren Festwertspeicher, und der bei Hochfahren des elektronischen Geräts 500 auszuführen ist. Das physische BIOS 512 kann eine reduzierte (vereinfachte) Version eines typischen physischen BIOS sein, da eine oder mehrere Funktion(en) des BIOS in die privilegierte Domain 520 verlegt worden sein kann/können, so dass diese Funktionen von der privilegierten Domain 520 ausgeführt werden, so dass ein Zugriff auf das physische BIOS 512 nicht ausgeführt werden muss. Es gibt jedoch bestimmte Funktionen des physischen BIOS 512, die in dem physischen BIOS 512 verbleiben; der Zugriff auf solche BIOS-Funktionen umfasst das Aufrufen des physischen BIOS 512. Ein solcher Aufruf kann von der privilegierten Domain 104 durch den VMM 302 erfolgen, wie durch den Weg 514 in 5 dargestellt.
  • Es ist auch zu beachten, dass Daten, die zwischen einem Betriebssystem und dem BIOS ausgetauscht werden, traditionell nicht geschützt sind, und in Folge dessen kann es sein, dass einige Systeme verschiedene proprietäre Schemata einsetzen, um einen gewissen Grad an Schutz für die zwischen dem Betriebssystem und dem BIOS ausgetauschten Daten zu bieten. Solch ein Schutz wird ausgeführt, weil die zwischen einem Betriebssystem und dem BIOS übertragenen Daten sensitive Informationen enthalten können, wie z. B. einen Benutzernamen, ein Passwort, ein Authentisierungs-Hash und/oder eine Authentisierungsrichtlinie. Ein beispielhaftes allgemeines Schutzschema ist, die zwischen dem Betriebssystem und dem BIOS ausgetauschten Informationen zu verschlüsseln. Da der Schutz durch Verwendung von Verschlüsselung das Verwenden und Speichern eines Schlüssels im BIOS (und dem Betriebssystem) umfassen würde, und weil es für gewöhnlich wenig Schutz für diesen Schlüssel gibt, kann der ermöglichte Schutz der zwischen dem Betriebssystem und dem BIOS ausgetauschten Informationen schwach sein. Da Kommunikation mit dem physischen BIOS 512 durch die privilegierte Domain 520 erfolgt, müssen traditionelle Mechanismen zum Schutz der Vertraulichkeit und/oder der Integrität von Daten (wie z. B. durch Verschlüsseln der Daten), die mit dem physischen BIOS 512 kommuniziert werden, nicht angewendet werden. Diese Lösung bietet Einfachheit und Leistungsverbesserungen, wobei höherer Schutz für Daten geboten wird, die an das physische BIOS kommuniziert werden, ohne tatsächlich besondere proprietäre Schutzmechanismen bereitstellen zu müssen.
  • Zusätzlich zu den virtuellen Gastmaschinen 502A und 502B und der privilegierten Domain 520 kann das elektronische Gerät 500 auch eine Service Domain Virtual Machine 516 umfassen, die einen Benutzerschnittstellen(UI)-Code 518 umfasst, der ausführbar ist, um eine Benutzerschnittstelle bereitzustellen. Die durch den UI-Code 518 bereitgestellte Benutzerschnittstelle in der Service Domain Virtual Machine 516 kann von einem Benutzer dazu verwendet werden, einen Status der privilegierten Domain 520 zu überwachen, so dass dem Benutzer Rückmeldung während der Ausführung der BIOS-Funktion 306 bereitgestellt werden kann. Die Benutzerschnittstelle kann auch dazu verwendet werden, um Einstellungen der privilegierten Domain 520 zu konfigurieren.
  • Wie ferner in 5 dargestellt, umfasst die privilegierte Domain 520 auch die webbasierte Schnittstelle 106, um den Zugriff auf die BIOS-Funktion 306 in der privilegierten Domain 520 zu erlauben. Der Zugriff auf die BIOS-Funktion 306 kann von einer Einheit in dem elektronischen Gerät 500 aus erfolgen. Bei weiteren Beispielen erlaubt die webbasierte Schnittstelle 106 über eine sichere Verbindung 526 den Webzugriff von einer Einheit 524 aus, die sich extern des elektronischen Geräts 500 befindet. Eine „sichere Verbindung” bezieht sich auf eine Netzverbindung, in der ein Sicherheitsmechanismus angewendet wird (z. B. Verschlüsselung von Daten, Einrichten eines sicheren Tunnels etc.), um nicht autorisierten Zugriff auf die über die Netzverbindung kommunizierten Daten zu verhindern. In einer Unternehmensumgebung (wobei ein Unternehmen ein Geschäft, eine Bildungsorganisation oder eine Behörde sein kann) erlaubt z. B. die sichere Verbindung 526, dass das elektronische Gerät 500 eine Kommunikation mit einem vertrauenswürdigen Server (524) aufbaut, wie z. B. einem Server, der konfiguriert ist, vordefinierte Dienste bereitzustellen. Ein Beispiel der vordefinierten Dienste, die von dem Server 524 bereitgestellt werden können, kann einen Dienst zur Aktualisierung des physischen BIOS 512 oder der BIOS-Funktion 306 umfassen. Bei anderen Beispielen können andere Dienste durch den Server 524 bereitgestellt werden. Die Verwendung der vertrauenswürdigen privilegierten Domain 520 erlaubt Calls einer BIOS-Funktion, die von außerhalb des elektronischen Geräts 500 stammen.
  • Bei einigen Ausführungen basiert das BIOS in einer Cloud auf den folgenden Vorbedingungen einer VMM-basierten Architektur: das physische BIOS kennt und vertraut der Hauptlaufzeiteinheit (VMM 302 in 3 oder 5), dass das physische BIOS bootet, und der vom BIOS vertraute VMM hat die Fähigkeit, alle E/A-Anfragen (auf den Zugriff auf die BIOS-Funktionalität) einzufangen und auszuschalten, die nicht von der privilegierten Domain stammen. Bei einigen Ausführungen kann ein BIOS-Verifizierungsmechanismus bereitgestellt werden, um den Ursprung des durch das elektronische Gerät zu bootenden VMM zu authentifizieren. Beispiele für einen solchen Verifizierungsmechanismus sind in der US-Patentanmeldung Nr. PCT/US2011/022814 beschrieben. Solche Verifizierungsmechanismen erlauben es einem Administrator oder einem anderen Benutzer, festzulegen, dass nur ein autorisierter VMM in dem elektronischen Gerät 100 oder 300 gebootet werden kann. Der Verifizierungsmechanismus stellt sicher, dass das VMM-Bild, das sich in dem elektronischen Gerät befindet, nicht schädlich verändert wurde und dass der VMM vertrauenswürdig ist. Das physische BIOS kann das VMM-Bild visuell verifizieren und sicherstellen, dass der VMM mit einem bekannten Satz gesteuerter Betriebseinstellungen gebootet wird, die zuvor festgelegt wurden.
  • Nach dem Verifizieren, dass ein autorisierter VMM gebootet wurde, kann das physische BIOS die Ausführung verschiedener Sicherheitsmaßnahmen aussetzen oder auslassen, die das physische BIOS normalerweise ausführen würde, um Beschädigung durch einen nicht autorisierten oder schadhaften Code zu verhindern. Das physische BIOS kann z. B. wählen, BIOS-Flash-Register und/oder Teile des Flash-Speichers nicht zu sperren.
  • 3 und 5 zeigen Ausführungen, in denen das BIOS in der Cloud (z. B. die BIOS-Funktion 306) intern in einem elektronischen Gerät (300 oder 500) bereitgestellt wird. Es ist jedoch anzumerken, dass sich aus Sicht einer virtuellen Gastmaschine oder einer anderen Einheit des elektronischen Geräts, das auf BIOS-Dienste zugreifen möchte, die Cloud, einschließlich der BIOS-Dienste, an einem beliebigen Ort angesiedelt sein kann, einschließlich an einem Ort, der sich extern des elektronischen Geräts befindet.
  • 6 zeigt ein Beispiel einer solchen Anordnung. 6 zeigt ein elektronisches Gerät 600, das eine virtuelle Gastmaschine 602, einen VMM 604 und Hardware-Ressourcen 606 aufweist. Das elektronische Gerät 600 umfasst ferner eine privilegierte Domain 608, die eine webbasierte Netzkommunikationsfunktion 610 aufweist. Die webbasierte Netzkommunikationsfunktion 610 stellt eine webbasierte Schnittstelle 611 bereit, die in der Lage ist, eine BIOS-Zugriffsanfrage entweder an eine interne BIOS-Funktion 612 (die Teil der privilegierten Domain 608 sein kann) oder an eine externe BIOS-Funktion 614 (auf die über ein Netz 616 Zugriff besteht) zu routen. Eine anfragende Einheit (z. B. der VMM 604 oder die virtuelle Gastmaschine 602) kann eine BIOS-Zugriffsanfrage an die webbasierte Schnittstelle 611 zustellen, die von der webbasierten Netzkommunikationsfunktion 610 bereitgestellt wird.
  • Bei einigen Ausführungen ist das Netz 616 ein sicheres Netz mit einem sicheren Mechanismus, um nicht autorisierten Zugriff auf Informationen zu verhindern, die zwischen Netzelementen über das Netz 616 kommuniziert werden.
  • Die externe BIOS-Funktion 614 kann Teil einer vertrauenswürdigen Umgebung 618 in einem Server-Computer 620 sein. Bei einigen Ausführungen kann die vertrauenswürdige Umgebung 618 auch in einer privilegierten Domain (z. B. Domain 0, sichere virtuelle Gastmaschine, Virtual Machine Monitor etc.) in dem Server-Computer 620 ausgeführt sein. Der Server-Computer 620 besitzt einen oder mehrere Prozessor(en) 622, Speichermedien 624 und eine Netzschnittstelle 626 zur Kommunikation über das Netz 616 mit dem elektronischen Gerät 600.
  • Verschiedene Module, wie z. B. die in den 1, 3, 5 und 6 dargestellten, können als maschinenlesbare Anweisungen ausgeführt sein, die auf einem oder mehreren Prozessor(en) ausgeführt werden können. Ein Prozessor kann einen Mikroprozessor, einen Mikrocontroller, ein Prozessormodul oder -teilsystem, einen programmierbaren integrierten Schaltkreis, ein programmierbares Gate-Array oder ein anderes Steuer- oder Rechengerät aufweisen.
  • Die maschinenlesbaren Anweisungen können in maschinenlesbaren oder computerlesbaren Speichermedien gespeichert werden, die als ein oder mehrere computerlesbare(s) oder maschinenlesbare(s) Speichermedium/Speichermedien ausgeführt sein können. Die Speichermedien können verschiedene Formen von Speichern umfassen, einschließlich Halbleiterspeichergeräte, wie z. B. dynamische oder statische Random Access Memories (DRAMs oder SRAMs), Erasable and Programmable Read-Only Memories (EPROMs), Electrically Erasable and Programmable Read-Only Memories (EEPROMs) und Flash-Speicher; Magnetplatten, wie z. B. Festplatten, Floppy Disks und Wechselplatten; andere magnetische Medien, einschließlich Tonband; optische Medien, wie z. B. Compact Disks (CDs) oder Digital Video Disks (DVDs); oder andere Typen von Speichergeräten. Es ist zu beachten, dass die oben diskutierten Anweisungen auf einem computerlesbaren oder maschinenlesbaren Speichermedium bereitgestellt werden können, oder alternativ auf mehreren computerlesbaren oder maschinenlesbaren Speichermedien, die in einem großen System verteilt sind, das ggf. mehrere Knoten aufweist. Solch(e) (ein) computerlesbare(s; n) oder maschinenlesbare(s; n) Speichermedium oder -medien wird/werden als Teil eines Artikels (oder Herstellungsartikels) betrachtet. Ein Artikel oder Herstellungsartikel kann sich auf eine beliebige gefertigte Einzelkomponente oder auf beliebige mehrere Komponenten beziehen. Das Speichermedium oder die -medien kann/können entweder in der Maschine angeordnet sein, auf der die maschinenlesbaren Anweisungen ausgeführt werden, oder an einer entfernten Stelle angeordnet sein, von der aus maschinenlesbare Anweisungen über ein Netz zur Ausführung heruntergeladen werden können.
  • In der vorstehenden Beschreibung sind zahlreiche Einzelheiten ausgeführt, um ein Verständnis des hierin offenbarten Gegenstands bereitzustellen. Die Ausführungen können jedoch ohne einige oder alle dieser Einzelheiten umgesetzt werden. Andere Ausführungen können Änderungen und Variationen der oben diskutierten Einzelheiten umfassen. Es ist beabsichtigt, dass die anhängenden Ansprüche solche Änderungen und Variationen abdecken.

Claims (15)

  1. Verfahren eines elektronischen Geräts, umfassend: Empfangen einer Anfrage, auf eine Funktion eines Basic Input/Output-Systems (BIOS) zuzugreifen; und Routen der Anfrage durch eine webbasierte Schnittstelle an eine Domain, die die Funktion des BIOS umfasst.
  2. Das Verfahren nach Anspruch 1, wobei das Routen der Anfrage an die Domain das Routen der Anfrage an eine Domain in dem elektronischen Gerät umfasst.
  3. Das Verfahren nach Anspruch 1, wobei das Routen der Anfrage an die Domain in dem elektronischen Gerät das Routen der Anfrage an eine privilegierte Domain in dem elektronischen Gerät umfasst.
  4. Das Verfahren nach Anspruch 1, wobei das Routen der Anfrage an die Domain das Routen der Anfrage an eine Domain außerhalb des elektronischen Geräts umfasst, wobei das elektronische Gerät über ein Netz auf die Domain zugreifen kann.
  5. Das Verfahren nach Anspruch 4, wobei das Routen der Anfrage an die Domain außerhalb des elektronischen Geräts das Routen der Anfrage an die Domain in einem Server-Computer umfasst, auf den über ein Netz zugegriffen werden kann.
  6. Das Verfahren nach Anspruch 1, wobei das Empfangen der Anfrage das Empfangen der Anfrage gemäß eines Formats gemäß einer Architektur umfasst, die ausgewählt ist aus einer Web Services Description Language (WSDL)- und einer Representational State Transfer(REST)-Architektur.
  7. Das Verfahren nach Anspruch 1, wobei das Empfangen der Anfrage das Empfangen der Anfrage umfasst, die eine Adresse einer Ressource umfasst, auf das zugegriffen werden soll.
  8. Das Verfahren nach Anspruch 1, ferner umfassend das Bestimmen durch die Domain, ob die Funktion ausgeführt werden soll, basierend auf der Identifikation mindestens eines Aspekts, der aus einer Quelle der Anfrage und einem Kontext der Anfrage ausgewählt ist.
  9. Das Verfahren nach Anspruch 1, wobei das Empfangen der Anfrage, die Funktion des BIOS aufzurufen, das Empfangen der Anfrage, einen Dienst aufzurufen, der ausgewählt ist aus der Gruppe bestehend aus: einem Dienst, den Code des BIOS zu aktualisieren; einem Dienst, eine Einstellung des BIOS zu aktualisieren; einem Wärmeverwaltungsdienst zur Ausführung der Wärmeverwaltung in dem elektronischen Gerät; einem Dienst, das elektronische Gerät zwischen verschiedenen Energiezuständen umzuschalten; einem Energieverwaltungsdienst zur Energiesteuerung einer Komponenten in dem elektronischen Gerät; einem Dienst, die Aktivierung einer Taste oder einer Tastenfolge des elektronischen Geräts zu verarbeiten; einem Dienst, der mit einem Umgebungslichtsensor des elektronischen Geräts verbunden ist; einem Dienst, eine Einstellung des BIOS zu ändern; einem Dienst, eine Einstellung einer Hardware-Komponente in dem elektronischen Gerät zu ändern; einem Dienst, eine Bootreihenfolge zu bootender Geräte des elektronischen Geräts zu ändern; einem Dienst zur Handhabung eines Calls zwischen einem Betriebssystem und dem BIOS; einem Dienst, einen Befehl eines Embedded Controller auszuführen; und einem Dienst, ein altes Peripheriegerät zu unterstützen.
  10. Elektronisches Gerät, umfassend: eine webbasierte Schnittstelle; mindestens einen Prozessor; und eine Einheit, die auf dem mindestens einem Prozessor ausführbar ist, um eine Anfrage an die webbasierte Schnittstelle zuzustellen, um auf eine Funktion eines Basic Input/Output-Systems (BIOS) zuzugreifen.
  11. Das elektronische Gerät nach Anspruch 10, ferner umfassend eine Domain in dem elektronischen Gerät, wobei die Domain die Funktion des BIOS umfasst, und wobei die webbasierte Schnittstelle die Anfrage an die Domain in dem elektronischen Gerät weiterleiten soll.
  12. Das elektronische Gerät nach Anspruch 11, wobei die Domain eine privilegierte Domain umfasst.
  13. Das elektronische Gerät nach Anspruch 10, wobei die webbasierte Schnittstelle die Anfrage an eine Domain außerhalb des elektronischen Geräts weiterleiten soll, wobei die Domain die Funktion des BIOS umfasst.
  14. Das elektronische Gerät nach Anspruch 10, wobei die webbasierte Schnittstelle eine Anfrage von einer Einheit außerhalb des elektronischen Geräts empfangen soll, um einen Dienst in Bezug auf das BIOS auszuführen.
  15. Artikel, der mindestens ein maschinenlesbares Speichermedium umfasst, das Anweisungen speichert, die bei Ausführung bewirken, dass das elektronische Gerät: eine Anfrage empfängt, auf eine Funktion eines Basic Input/Output-Systems (BIOS) zuzugreifen; und die Anfrage durch eine webbasierte Schnittstelle an eine Domain routet, die die Funktion des BIOS umfasst.
DE112011105752.0T 2011-10-21 2011-10-21 Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems Pending DE112011105752T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/057263 WO2013058768A1 (en) 2011-10-21 2011-10-21 Web-based interface to access a function of a basic input/output system

Publications (1)

Publication Number Publication Date
DE112011105752T5 true DE112011105752T5 (de) 2014-10-02

Family

ID=48141215

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105752.0T Pending DE112011105752T5 (de) 2011-10-21 2011-10-21 Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems

Country Status (9)

Country Link
US (2) US9448810B2 (de)
JP (1) JP5881835B2 (de)
CN (1) CN103890716B (de)
BR (1) BR112014009356A2 (de)
DE (1) DE112011105752T5 (de)
GB (1) GB2510736B (de)
IN (1) IN2014DN03053A (de)
TW (1) TWI601064B (de)
WO (1) WO2013058768A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
WO2013058768A1 (en) * 2011-10-21 2013-04-25 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
GB2510281B (en) 2011-10-21 2020-08-12 Hewlett Packard Development Co Providing a function of a basic input/output system (bios) in a privileged domain
WO2013097901A1 (en) * 2011-12-29 2013-07-04 Telefonaktiebolaget L M Ericsson (Publ) Virtual machine management using a downloadable subscriber identity module
DE102012100738A1 (de) * 2012-01-30 2013-08-01 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zur Konfiguration eines BIOS in einem Computersystem sowie Computerprogrammprodukt
US9497266B2 (en) * 2013-02-22 2016-11-15 International Business Machines Corporation Disk mirroring for personal storage
WO2015006599A1 (en) 2013-07-12 2015-01-15 Ciambella Ltd. Method and apparatus for firmware virtualization
JP5741722B1 (ja) * 2014-01-28 2015-07-01 日本電気株式会社 情報処理装置、及び、情報処理方法
US20160019555A1 (en) * 2014-07-15 2016-01-21 Boles Thomas Automated system for rating employee screening practices and corporate management
JP6189267B2 (ja) * 2014-08-20 2017-08-30 株式会社東芝 情報処理装置、方法およびプログラム
US10430589B2 (en) * 2015-03-19 2019-10-01 Intel Corporation Dynamic firmware module loader in a trusted execution environment container
JP6925365B2 (ja) 2015-12-21 2021-08-25 チャンベッラ・リミテッド コントローラベース遠隔ソリューションを作成および管理するための方法および装置
WO2017123225A1 (en) * 2016-01-14 2017-07-20 Hewlett-Packard Development Company, L.P. Management with respect to a basic input/output system policy
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
WO2018170079A1 (en) 2017-03-14 2018-09-20 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
CN107656763A (zh) * 2017-10-13 2018-02-02 郑州云海信息技术有限公司 一种利用快捷键设置无线和蓝牙开关的系统和方法
US10838707B2 (en) 2018-07-20 2020-11-17 Dell Products L.P. Runtime update of intel server platform services' node manager settings in bios EEPROM
WO2021194501A1 (en) * 2020-03-27 2021-09-30 Hewlett-Packard Development Company, L.P. Alternate operating systems
US11354259B1 (en) * 2020-12-08 2022-06-07 Hewlett Packard Enterprise Development Lp Computer system configurations based on accessing data elements presented by baseboard management controllers
US20240078129A1 (en) * 2021-01-29 2024-03-07 Hewlett-Packard Development Company, L.P. Execution of bios components with virtual machines

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6081664A (en) * 1996-09-30 2000-06-27 Intel Corporation Method for monitoring a BIOS
US6401198B1 (en) * 1999-03-09 2002-06-04 Texas Instruments Incorporated Storing system-level mass storage configuration data in non-volatile memory on each mass storage device to allow for reboot/power-on reconfiguration of all installed mass storage devices to the same configuration as last use
TW448406B (en) 1999-10-19 2001-08-01 Inventec Corp BIOS updating method performed through the network
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7213152B1 (en) * 2000-02-14 2007-05-01 Intel Corporation Modular bios update mechanism
US7930378B2 (en) * 2003-12-24 2011-04-19 Intel Corporation Method to support XML-based consoles in pre-boot and post operating system execution environments
US7234054B2 (en) * 2004-02-09 2007-06-19 Intel Corporation Method and apparatus for enabling platform configuration
TWI231427B (en) * 2004-03-04 2005-04-21 Quanta Comp Inc Method and system for controlling remote computers
CN1680920B (zh) * 2004-04-07 2011-06-15 纬创资通股份有限公司 远端更新数据处理系统中基本输入输出系统的方法及其装置
US8799891B2 (en) 2005-03-02 2014-08-05 Hewlett-Packard Development Company, L.P. System and method for attributing CPU usage of a virtual machine monitor to a corresponding virtual machine
US7797707B2 (en) 2005-03-02 2010-09-14 Hewlett-Packard Development Company, L.P. System and method for attributing to a corresponding virtual machine CPU usage of a domain in which a shared resource's device driver resides
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment
US20070169076A1 (en) * 2005-10-28 2007-07-19 Desselle Bernard D Methods and systems for updating a BIOS image
US7676666B2 (en) 2006-02-02 2010-03-09 Dell Products L.P. Virtual BIOS firmware hub
CN100561923C (zh) 2006-02-28 2009-11-18 联想(北京)有限公司 一种bios刷新升级的系统和方法
CN101034994A (zh) * 2006-03-07 2007-09-12 环达电脑(上海)有限公司 基于远程的bios刷新方法
JP4358217B2 (ja) * 2006-10-31 2009-11-04 株式会社東芝 キャッシュサーバ、ネットワークブート方法、及びプログラム
US7779243B2 (en) 2006-12-29 2010-08-17 Intel Corporation Dual operating system computing system
WO2008149412A1 (ja) * 2007-06-04 2008-12-11 Fujitsu Limited 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US7925802B2 (en) 2007-06-21 2011-04-12 Seamicro Corp. Hardware-based virtualization of BIOS, disks, network-interfaces, and consoles using a direct interconnect fabric
TW200907804A (en) 2007-08-15 2009-02-16 Inventec Corp Method for updating BIOS and computer and system using the same
US7809985B2 (en) 2007-09-28 2010-10-05 Microsoft Corporation Offline hardware diagnostic environment
US8281303B2 (en) * 2007-10-31 2012-10-02 Hewlett-Packard Development Company, L.P. Dynamic ejection of virtual devices on ejection request from virtual device resource object within the virtual firmware to virtual resource driver executing in virtual machine
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
US7987353B2 (en) * 2008-01-09 2011-07-26 International Business Machines Corporation Remote BIOS for servers and blades
US20090193106A1 (en) 2008-01-24 2009-07-30 Christophe Bouten System and method for managing message transport in a virtual environment
US20100122197A1 (en) 2008-09-26 2010-05-13 Robb Fujioka Hypervisor and webtop in a set top box environment
US8117435B2 (en) 2008-06-30 2012-02-14 Intel Corporation Method and system for secured dynamic bios update
WO2010017517A1 (en) * 2008-08-08 2010-02-11 Phoenix Technologies Ltd. Secure computing environment using a client heartbeat to address theft and unauthorized access
US9026824B2 (en) * 2008-11-04 2015-05-05 Lenovo (Singapore) Pte. Ltd. Establishing power save mode in hypervisor system
US20100161844A1 (en) 2008-12-23 2010-06-24 Phoenix Technologies Ltd DMA compliance by remapping in virtualization
US8799691B2 (en) 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
US8166288B2 (en) 2009-01-30 2012-04-24 Hewlett-Packard Development Company, L.P. Managing requests of operating systems executing in virtual machines
US20100205420A1 (en) 2009-02-09 2010-08-12 Inventec Corporation System and method for realizing remote test on computer apparatus without storage device
US8069228B2 (en) 2009-05-08 2011-11-29 Hewlett-Packard Development Company, L.P. Preventing access of a network facility in response to an operation
CN101599022B (zh) 2009-07-07 2012-07-04 武汉大学 用于虚拟机系统的可信计算基裁剪方法
US8286164B2 (en) 2009-08-07 2012-10-09 International Business Machines Corporation Secure recursive virtualization
US8397167B2 (en) * 2009-08-18 2013-03-12 Dell Products, Lp System and method for a remote console preview of a server
US8918779B2 (en) 2009-08-27 2014-12-23 Microsoft Corporation Logical migration of applications and data
CN101751284B (zh) 2009-12-25 2013-04-24 华为技术有限公司 一种分布式虚拟机监控器的i/o资源调度方法
US9003001B2 (en) * 2010-03-15 2015-04-07 Cisco Technology, Inc. Bios parameter virtualization via BIOS configuration profiles
US8589702B2 (en) 2010-05-28 2013-11-19 Dell Products, Lp System and method for pre-boot authentication of a secure client hosted virtualization in an information handling system
WO2012102725A1 (en) 2011-01-28 2012-08-02 Hewlett-Packard Development Company, L.P. Authenticate a hypervisor with encoded information
GB2507226B (en) * 2011-08-30 2020-04-22 Hewlett Packard Development Co Virtual high privilege mode for a system management request
WO2013032495A1 (en) * 2011-08-30 2013-03-07 Hewlett-Packard Development Company , L.P. Communication with a virtual trusted runtime bios
CN103827811A (zh) * 2011-09-30 2014-05-28 惠普发展公司,有限责任合伙企业 管理基本输入/输出系统(bios)的访问
WO2013058768A1 (en) * 2011-10-21 2013-04-25 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
GB2510281B (en) * 2011-10-21 2020-08-12 Hewlett Packard Development Co Providing a function of a basic input/output system (bios) in a privileged domain

Also Published As

Publication number Publication date
WO2013058768A1 (en) 2013-04-25
CN103890716B (zh) 2017-03-08
CN103890716A (zh) 2014-06-25
GB2510736B (en) 2020-10-14
JP2014531084A (ja) 2014-11-20
US20170003980A1 (en) 2017-01-05
GB2510736A (en) 2014-08-13
JP5881835B2 (ja) 2016-03-09
BR112014009356A2 (pt) 2017-04-18
US9753742B2 (en) 2017-09-05
US20140298003A1 (en) 2014-10-02
TWI601064B (zh) 2017-10-01
US9448810B2 (en) 2016-09-20
GB201406796D0 (en) 2014-05-28
IN2014DN03053A (de) 2015-05-08
TW201337736A (zh) 2013-09-16

Similar Documents

Publication Publication Date Title
DE112011105752T5 (de) Webbasierte Schnittstelle zum Zugriff auf eine Funktion eines Basic Input/Output-Systems
DE112011105745B4 (de) Bereitstellen einer Funktion eines Basisdatenaustauschsystems (BIOS) in einer privilegierten Domain
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
US8127412B2 (en) Network context triggers for activating virtualized computer applications
DE112017004017T5 (de) Sichere öffentliche cloud
DE112016005833T5 (de) Datenverarbeitungsgeräte
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE112016006003T5 (de) Vertrauenswürdiger Start sicherer Enklaven in virtuellen Umgebungen
DE112011105568T5 (de) Kommunizieren mit einem virtuellen vertrauten Laufzeit-Bios
US8677449B1 (en) Exposing data to virtual machines
KR102117724B1 (ko) 분산형 운영체제 물리적 자원을 관리하는 기법
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE112012001389T5 (de) Sichere Ausführung einer ungesicherten App auf einem Gerät
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE102008006759A1 (de) Prozessor-Anordnungen, Prozessor, Verfahren zum Betreiben einer Prozessor-Anordnung
EP2819048B1 (de) Gemeinsame Nutzung von virtualisiertem Host-ID-Schlüssel
US11811749B2 (en) Authentication of plugins in a virtualized computing environment
DE112018002954T5 (de) Bereitstellen eines konfigurationsabhängigen arbeitsablaufs
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
GB2570924A (en) Managing registry access on a computer device
DE102022109195A1 (de) Konfiguration von instanzen mit instanz-metadaten in virtuellen sicherheitsprozessoren gespeichert
Sfiligoi et al. glideinWMS experience with glexec
DE102010052246A1 (de) Verfahren zum Zugang zu einem Betriebssystem, Wechselspeichermedium und Verwendung eines Wechselspeichermediums

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0009220000

Ipc: G06F0015160000

R016 Response to examination communication
R082 Change of representative

Representative=s name: HOFFMANN - EITLE PATENT- UND RECHTSANWAELTE PA, DE

Representative=s name: SCHOPPE, ZIMMERMANN, STOECKELER, ZINKLER, SCHE, DE

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., SPR, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: HOFFMANN - EITLE PATENT- UND RECHTSANWAELTE PA, DE