DE102007057901B4 - Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor - Google Patents
Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor Download PDFInfo
- Publication number
- DE102007057901B4 DE102007057901B4 DE102007057901.4A DE102007057901A DE102007057901B4 DE 102007057901 B4 DE102007057901 B4 DE 102007057901B4 DE 102007057901 A DE102007057901 A DE 102007057901A DE 102007057901 B4 DE102007057901 B4 DE 102007057901B4
- Authority
- DE
- Germany
- Prior art keywords
- firmware
- firmware update
- guest operating
- operating systems
- upgrade
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004590 computer program Methods 0.000 title claims description 12
- 230000004044 response Effects 0.000 claims abstract description 25
- 230000000903 blocking effect Effects 0.000 claims abstract description 9
- 238000010200 validation analysis Methods 0.000 claims description 25
- 230000010365 information processing Effects 0.000 claims description 12
- 239000000463 material Substances 0.000 claims description 10
- 238000013500 data storage Methods 0.000 claims description 8
- 238000005192 partition Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Abstract
Computerimplementiertes Verfahren, umfassend:
das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und mehrere Gastbetriebssysteme ausführt und die mehreren Gastbetriebssysteme unter dem Hypervisor ablaufen, und wobei die Firmwareaktualisierung sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst;
als Reaktion auf den Empfang der Firmwareaktualisierung, der Hypervisor agiert durch:
das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme;
nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und
nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme, wobei:
das Sperren weiterhin umfasst:
das Zwischenspeichern einer oder mehrerer Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssystemen empfangen werden;
und das Zulassen weiterhin umfasst:
das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und mehrere Gastbetriebssysteme ausführt und die mehreren Gastbetriebssysteme unter dem Hypervisor ablaufen, und wobei die Firmwareaktualisierung sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst;
als Reaktion auf den Empfang der Firmwareaktualisierung, der Hypervisor agiert durch:
das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme;
nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und
nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme, wobei:
das Sperren weiterhin umfasst:
das Zwischenspeichern einer oder mehrerer Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssystemen empfangen werden;
und das Zulassen weiterhin umfasst:
das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
Description
- Die vorliegende Erfindung bezieht sich auf eine Anordnung, ein Computerprogrammprodukt und ein Verfahren, die Firmware einer Hardwarevorrichtung sicher aktualisieren. Im Besonderen bezieht sich die vorliegende Erfindung auf eine Anordnung ein Computerprogrammprodukt und ein Verfahren, die einen Hypervisor verwenden, um eine sichere Umgebung zur Verfügung zu stellen, um Firmware einer Hardwarevorrichtung zu aktualisieren.
- Firmware ist ein Softwareprogramm oder ein Satz von Anweisungen, die auf einer Hardwarevorrichtung programmiert sind. Firmware stellt die Anweisungen zur Verfügung, die steuern, wie die Vorrichtung mit anderer Computerhardware, einschließlich der Hauptanordnung, kommuniziert. Firmware wird typischerweise im Flash ROM (Read Only Memory - schreibgeschützter Datenspeicher) einer Hardwarevorrichtung abgelegt - Während ROM im Wesentlichen ein „Read Only Memory“ ist, ist Flash ROM eine Art von Flashdatenspeicher, der gelöscht und neu beschrieben werden kann.
- „Firmware‟ kann als „halbpermanent“ betrachtet werden, da sie unverändert bleibt, es sei denn, sie wird durch einen Firmwareaktualisierer aktualisiert. Es kann sein, dass Firmware von bestimmten Vorrichtungen, wie zum Beispielen Festplatten und Videokarten dann und wann aktualisiert werden muss zum Zweck, dass diese korrekt funktionieren (zum Beispiel auf Grund eines neuen Betriebssystems, das auf dem Rechnersystem installiert wird). Firmware wird auch aktualisiert, um die Funktionalität von Vorrichtungen und deren Wirkungsgrad zu verbessern. Zum Beispiel machen Hersteller von CD- und DVD-Laufwerken oft Firmwareaktualisierungen verfügbar, die ermöglichen, dass die Laufwerke schnellere Medien lesen können.
- Hersteller haben festgestellt, dass es sowohl billiger als auch flexibler ist, die Firmware vom Hostrechnersystem zu 1a-den. Als Ergebnis davon ist eine große Anzahl der gegenwärtigen Hardware außerstande, auf irgendeine nützliche Weise zu funktionieren, bis der Hostcomputer sie mit der erforderlichen Firmware ausgestattet hat. Diese Firmwarelast wird durch den Vorrichtungstreiber gehandhabt.
- In gewisser Hinsicht ist Firmware genauso eine Softwarekomponente einer aktiven Anordnung wie das Betriebssystem. Bei traditionellen Rechnersystemen ist jedoch im Gegensatz zu den meisten modernen Betriebssystemen ein Mangel an einem guten entwickelten Mechanismus für das Aktualisieren der Firmware problematisch, um Programmfehler zu korrigieren und Probleme der Funktionalität anzugehen, die festgestellt werden, nachdem die Einheit ausgeliefert wurde.
- Eine weitere Herausforderung, der sich traditionelle Firmwareaktualisierungen gegenüber sehen, ist, dass Mechanismen für das Feststellen von Firmwareversionen und das Aktualisieren von diesen nicht standardisiert sind. Als Ergebnis neigen diese Vorrichtungen dazu, einen bedeutend höheren Prozentsatz von firmwareabhängigen Problemen der Funktionalität aufzuweisen, als im Vergleich mit anderen Teilen eines modernen Rechnersystems.
- Herausforderungen bezüglich der Aktualisierung der Firmware werden durch die Erhöhung der Komplexität in modernen Rechnersystemen verschärft. Moderne Rechnersysteme können mehr als ein Betriebssystem aufweisen, die zu einem gegebenen Zeitpunkt auf der Anordnung ablaufen. Außerdem ist eine wachsende Anzahl von Programmen bösartig, wie zum Beispiel Softwareviren. Diese bösartigen Anwendungen haben in den meisten traditionellen Anordnungen das Potential dazu, die Firmware einer Vorrichtung zu aktualisieren oder sogar zu löschen. Diese Herausforderungen sind in großen Organisationen, die stabile Anordnungen mit Standardsoftware einschließlich Vorrichtungstreibern benötigen, die vom Helpdesk der Organisationen nachverfolgt und verwaltet werden können, noch offensichtlicher.
- Aus der
US 6 834 340 B2 ist ein Verfahren zur Verwaltung von Systemfirmware in einem Datenverarbeitungssystem, das eine Mehrzahl von logischen Partitionen aufweist, bekannt. Als Reaktion auf eine Anforderung zum Aktualisieren der Systemfirmware von einer ersten logischen Partition innerhalb der Vielzahl von logischen Partitionen in dem Datenverarbeitungssystem wird eine Bestimmung vorgenommen, ob die erste logische Partition innerhalb der Vielzahl von logischen Partitionen in dem Datenverarbeitungssystem vorhanden ist. Als Reaktion auf die Bestimmung, dass die erste logische Partition innerhalb der Vielzahl von logischen Partitionen in dem Datenverarbeitungssystem vorhanden ist, wird die Systemfirmware von der ersten logischen Partition in dem Datenverarbeitungssystem aktualisiert. Dann wird das Starten zusätzlicher Partitionen innerhalb der mehreren logischen Partitionen in dem Datenverarbeitungssystem unterbunden, bis die Firmwareaktualisierung von der ersten logischen Partition abgeschlossen ist. - Aus der
GB 2 421 612 A - Aus der
WO 2007/ 017 665 A1 ist ein Verfahren zum Betreiben einer Recheneinrichtung durch die Verwendung von erweiterbaren Thread-Zuständen bekannt. - Es ist Aufgabe der vorliegenden Erfindung, eine verbesserte Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisors zu ermöglichen.
- Diese Aufgabe wird durch den Gegenstand der unabhängigen Hauptansprüche gelöst.
- Bevorzugte Ausführungsformen sind Gegenstand der Unteransprüche.
- Es ist festgestellt worden, dass die oben genannten Herausforderungen gelöst werden unter Verwendung einer Anordnung, eines Verfahren und eines Computerprogrammprodukts, die eine Firmwareaktualisierung an einem Rechnersystem empfangen und verarbeiten. Das Rechnersys tem führt einen Hypervisor und mehrere Gastbetriebssysteme aus Die mehreren Gastbetriebssysteme laufen unter dem Hypervisor ab. Die Firmwareaktualisierung bezieht sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung. Die Hardwarevorrichtung umfasst eine aktualisierbare Firmware. Der Hypervisor reagiert als Reaktion auf die empfangene Firmwareaktualisierung, in dem er zuerst die Verwendung der Vorrichtung durch jedes der Gastbetriebssysteme sperrt. Danach wird die Firmware unter Verwendung der empfangenen Firmwareaktualisierung durch den Hypervisor nachgerüstet. Nachdem der Upgrade (die Aufrüstung) der Firmware durchgeführt worden ist, wird die Verwendung der Vorrichtung für jedes Gasbetriebssystems zugelassen.
- Das Sperren umfasst weiterhin ein Zwischenspeichern einer oder mehrerer Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssystemen empfangen werden, und das Zulassen umfasst weiterhin ein Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
- In einer Ausführungsform wird die Firmwareaktualisierung vor dem Upgrade der Firmware validiert. In dieser Ausführungsform wird das Ausführen des Upgrades nur als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt.
- In einer weiteren Ausführungsform der Validierung beinhaltet die Validierung, ein Kennwort vom Anwender des Rechnersystems zu erhalten, das verwendet wird, um Firmwareaktualisierungen zu steuern. Das vom Anwender zur Verfügung gestellte Kennwort wird mit einem erwarteten Kennwort verglichen. In dieser Ausführungsform wird das Ausführen des Upgrades nur durchgeführt, wenn das empfangene Kennwort mit dem erwarteten Kennwort übereinstimmt.
- In einer weitern Ausführungsform der Validierung wird eine mit der empfangenen Firmwareaktualisierung mitgelieferte digitale Signatur analysiert. In dieser Ausführungsform wird das Ausführen des Upgrades nur ausgeführt nach dem Verifizieren, dass die empfangene Firmwareaktualisierung digital von einem autorisierten Anwender signiert worden ist. Zum Beispiel signiert (verschlüsselt) ein autorisierter Anwender unter Verwendung asymmetrischer Schlüssel die Firmwareaktualisierung digital unter Verwendung des privaten Schlüssels des autorisierten Anwenders. Der Hypervisor überprüft die digitale Signatur durch Entschlüsseln der signierten Firmwareaktualisierung unter Verwendung des öffentlichen Schlüssels des autorisierten Anwenders.
- In einer noch weiteren Ausführungsform der Validierung, führt der Hypervisor einen Hashalgorithmus gegen die empfangene Firmwareaktualisierung aus, die zu einem Hashwert führt. Der Hashwert wird mit einem erwarteten Hashwert verglichen. In dieser Ausführungsform wird die Firmwareaktualisierung zurückgewiesen als Reaktion auf den Hashwert, der nicht mit dem erwarteten Hashwert übereinstimmt, und die Firmwareaktualisierung wird als Reaktion auf den Hashwert akzeptiert, der mit dem erwarteten Hashwert übereinstimmt. Ein Systemadministrator kann zum Beispiel erwartete Hashwerte für Firmwareaktualisierungen bereitstellen. Das Rechnersystem kann dann eine Firmwareaktualisierung von einer öffentlichen Quelle, wie zum Beispiel einer über das Internet zugänglichen Website herunterladen. Der Hypervisor stellt durch Ausführen des Hashalgorithmus gegen die herunter geladene Firmwareaktualisierung sicher, dass die Firmwareaktualisierung gültig ist. Wenn der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt und möglicherweise eine verfälschte Firmwareaktualisierung anzeigt, die böswilligen Code enthält, weist der Hypervisor die Firmwareaktualisierung zurück.
- In einer Ausführungsform trennt der Hypervisor, um die Verwendung der Vorrichtung zu sperren, die aktualisiert wird, die Vorrichtung von jedem der Gastbetriebssysteme. Der Hypervisor setzt dann jedes der Gastbetriebssysteme vorübergehend aus. Nachdem die Firmware der Vorrichtung einem Upgrade unterzogen worden ist, lässt der Hypervisor die Verwendung der Vorrichtung dadurch zu, dass der Betrieb jedes der Gastbetriebssysteme wieder aufgenommen wird und die Vorrichtung mit jedem der Gastbetriebssysteme verbunden wird, nachdem der Betrieb der Gastbetriebssysteme wieder aufgenommen wurde.
- In einer Ausführungsform puffert der Hypervisor, um die Verwendung der Vorrichtung zu sperren, die aktualisiert wird, Anfragen von den Gastbetriebssystemen in einem. Pufferspeicher. Nachdem die Firmware der Vorrichtung einem Upgrade unterzogen worden ist, lässt der Hypervisor die Verwendung der Vorrichtung zu, in dem er die zwischengespeicherten Anfragen zur Vorrichtung zu sendet.
- Die vorliegende Erfindung kann besser verstanden werden durch Bezugnahme auf die begleitenden Zeichnungen, wobei:
-
1 ein Diagramm auf höherer Ebene ist, das ausgewählte Rechnerkomponenten zeigt, die unter Verwendung eines Hypervisor bei der Aktualisierung der Firmware von Anordnungen verwendet wird; -
2 ein Ablaufdiagramm auf höherer Ebene ist, das die Schritte zeigt, die ergriffen werden, um die Firmware von Anordnungen unter Verwendung eines Hypervisor zu aktualisieren; -
3 ein Ablaufdiagramm, ist, das die Schritte zeigt, die ergriffen werden, um Firmwareaktualisierungssoftware zu validieren; -
4 ein Ablaufdiagramm ist, das Schritte zeigt, die vom Hypervisor ergriffen werden, um das Rechnersystem auf eine Firmwareaktualisierung vorzubereiten; -
5 ein Ablaufdiagramm ist, das weitere Schritte zeigt, die vom Hypervisor ergriffen werden, um die Firmwareaktualisierung zu initialisieren und diese für das (die) Gastbetriebssystem(e) verfügbar zu machen; und -
6 ein Blockdiagramm einer Datenverarbeitungsanlage ist, in der die hierin beschriebenen Verfahren ausgeführt werden können. - Das Folgende beabsichtigt eine detaillierte Beschreibung eines Beispiels für die Erfindung zur Verfügung zu stellen.
-
1 ist ein Diagramm auf höherer Ebene, das ausgewählte Computerkomponenten zeigt, die dabei verwendet werden, unter Verwendung eines Hypervisor Firmware der Vorrichtung zu aktualisieren. Ausgewählte Rechnersystemkomponenten 100 umfassen einen Hypervisor 110, auf dem ein oder mehrere Gastbetriebssysteme wirksam werden. In der gezeigten Ausführungsform werden zwei Gastbetriebssysteme unter der Steuerung des Hypervisors 110 wirksam, Beispiele für Gastbetriebssysteme umfassen das Linux™ Betriebssystem 120 und ein Microsoft Windows™ Betriebssystem 130 (wie zum Beispiel Windows XP™, Windows Vista™, usw.). - Firmwareaktualisierungsquellen 140 umfassen jede verfügbare Quelle für die Firmwareaktualisierung die für das Rechnersystem zugänglich ist und die verwendet wird, um die Firmware einer Vorrichtung einem Upgrade zu unterziehen. Beispiele für Firmwareaktualisierungsquellen umfassen Disketten, CD-ROMs und
- Dateien, die von Computernetzwerken 150, wie zum Beispiel dem Internet oder einem Local Area Network (LAN) zugänglich sind. Aus Netzwerken zugängliche Dateien umfassen Firmwareaktualisierungen, die von einer Website im Internet oder aus Dateien zugänglich sind, die von einem von einem LAN, wie zum Beispiel einem von einer Organisation für seine Angestellten zur Verfügung gestellten LAN, zugänglichen gemeinsamen Netzwerklaufwerk zugänglich sind. Firmwareaktualisierungen sind häufig von der Website eines Herstellers verfügbar, um Funktionalität der Vorrichtungen des Herstellers zu verbessern oder zur Verfügung zu ,stellen. Die hierin gezeigte Verarbeitung kann verwendet werden, um sicherzustellen, dass die auf Computernetzwerken 150 gefundenen Firmwareaktualisierungen legitime Aktualisierungen sind (das heißt zugelassene), und kann verwendet werden, um die Installation von verfälschten Firrawareaktualisierungen zu verhindern, die böswilligen Code enthalten können, der dazu entworfen wurden, den Betrieb des Rechnersystems zu beschädigen oder zu unterbrechen.
- Im gezeigten Beispiel umfasst das ausgewählte Rechnersystem 100 zwei Vorrichtungen (180 und 190), die vom Rechnersystem aus zugänglich sind, die jede zum Upgrade geeignete Firmware aufweisen, die ihren Betrieb steuern. Beispiele für solche Vorrichtungen umfassen Laufwerksteuerungen und Videoadapter. Hersteller dieser Vorrichtungen liefern oft Firmwareaktualisierungen, die auf der Firmware der Vorrichtung installiert werden. Die Firmwareaktualisierungen umfassen die Software, die verwendet wird, um den Betrieb der Vorrichtung zu steuern. In einigen Fällen werden Vorrichtungen ausgeliefert, ohne dass Software auf der Firmware der Vorrichtung installiert ist. In diesen Fällen umfasst die Firmwareaktualisierung die initiale Firmware (Software), die in die Firmware der Vorrichtung geladen wird, um die Funktionalität der Vorrichtung zur Verfügung zu stellen. Während einige Firmwareaktualisierungen auf eine bestimmte Vorrichtung beschränkt sind, sind andere Firmwareaktualisierungen „generisch“ und können auf eine große Vielzahl von Vorrichtungen angewandt werden. Eine generische Videoadapterfirmware kann zum Beispiel auf eine große Vielzahl von Videoadaptern angewandt werden, um die Grundfunktionalität des Videoadapters zur Verfügung zu stellen. Generische oder grundlegende Firmwareaktualisierungen sind oft in das Betriebssystem einbezogen und werden verwendet, um Vorrichtungen zu initialisieren, wenn das Betriebssystem zum ersten Mal eingerichtet wird.
-
2 ist ein Ablaufdiagramm auf höherer Ebene, das die Schritte zeigt, die ergriffen werden, um Firmware einer Vorrichtung unter Verwendung eines Hypervisor zu aktualisieren. Die Verarbeitung beginnt bei 200, woraufhin bei Schritt 210 der Anwender des Rechnersystems eine Firmwareaktualisierung auswählt, die in einer Vorrichtung zu installieren ist, die dem Rechnersystem des Anwenders zugänglich ist. Eine Feststellung wird ausgeführt, ob die Firmware auf dem Rechnersystem geschützt ist (Entscheidung 220). Wenn die Firmware auf dem Rechnersystem geschützt ist, dann verzweigt die Entscheidung 220 zum „Ja“ Zweig 225, woraufhin in dem vordefinierten Verfahren 230 die Integrität der Firmwareaktualisierung unter Verwendung von einem oder mehren von einer Vielzahl von unterschiedlichen Validierungsverfahren validiert wird (siehe3 und den entsprechenden Text zu den Verarbeitungsdetails). Nachdem die Validierung ausgeführt worden ist, wird eine Feststellung ausgeführt, ob die Firmwareaktualisierung gültig ist (Entscheidung 240). Wenn die Firmwareaktualisierung nicht gültig ist, dann verzweigt die Entscheidung 240 zum „Nein“ Zweig 248, woraufhin die Verarbeitung bei 295 endet, ohne die Firmware der Vorrichtung zu aktualisieren. Andernfalls verzweigt die Entscheidung 240 dann, wenn die Aktualisierung gültig ist, zum „Ja“ Zweig 244, um das Firmwareaktualisierungsverfahren fortzuführen. Zur Entscheidung 220 zurückkehrend, verzweigt die Entscheidung 220, wenn die Firmware nicht geschützt ist, dann zum „Nein“ Zweig 246 und umgeht die Validierungsschritte 230 und 240. - Die Verarbeitung der Firmwareaktualisierung fährt fort durch Vorbereiten des Rechnersystems auf die Firmwareaktualisierung (vordefiniertes Verfahren 250, siehe
4 und den entsprechenden Text für die Verarbeitungsdetails). Das Vorbereiten des Rechnersystems auf die Firmwareaktualisierung beinhaltet, die Gastbetriebssysteme daran zu hindern, die Vorrichtung zu verwenden, die aktualisiert wird, bis die Aktualisierung vollständig ist. Nachdem das Rechnersystem bereit ist, die Firmwareaktualisierung bei Schritt 260 zu akzeptieren, wird die Firmware der Vorrichtung mit Hilfe des Firmwareaktualisierungscodes nachgerüstet. Nachdem die Firmware der Vorrichtung durch das vordefinierte Verfahren 270 nachgerüstet worden ist, wird die Aktualisierung auf dem Rechnersystem initialisiert (siehe5 und den entsprechenden Text für die Verarbeitungsdetails). Die Initialisierung der Aktualisierung beinhaltet, der Gastbetriebssystemen zu erlauben, die Vorrichtung zu verwenden. Die Aktualisierung der Firmware der Vorrichtung durch den Hypervisor endet dann bei 295. -
3 ist ein Ablaufdiagramm, das die Schritte zeigt, die ergriffen werden, um die Softwareintegrität der Firmwareaktualisierung zu validieren. Diese Routine wird von dem in2 gezeigten vordefinierten Verfahren 230 aufgerufen. In3 beginnt die Validierung der Firmwareaktualisierung bei 300, woraufhin eine Feststellung durchgeführt wird, ob ein Kennwort verwendet wird, um die Aktualisierung der Firmware einer vom Rechnersystem zugänglichen Vorrichtung zu steuern (Entscheidung 305). In einer Organisation kann zum Beispiel ein Systemadministrator dafür verantwortlich sein, die Firmware einer Vorrichtung zu aktualisieren. In solch einer Organisation würde ein Anwender ein Kennwort zuliefern müssen, um die Firmware einer Vorrichtung zu aktualisieren. Wenn das Kennwort, das benötigt wird, um die Firmware einer Vorrichtung zu aktualisieren, nicht zugeliefert wird, erlaubt der Hypervisor nicht, dass der Anwender die Firmware aktualisiert. Wenn ein Kennwort verwendet wird, um Aktualisierungen der Firmware einer Vorrichtung zu steuern, dann verzweigt die Entscheidung 305 zum „Ja“ Zweig 308, woraufhin bei Schritt 310 der Anwender zu einem Kennwort aufgefordert wird, das verwendet wird (autorisiert ist), um die Firmware einer Vorrichtung zu aktualisieren. Bei Schritt 315 vergleicht der Hypervisor das Kennwort, das vom Anwender geliefert wurde, mit einem abgespeicherten autorisierten Kennwort. Eine Feststellung darüber wird ausgeführt, ob das vom Anwender bereitgestellte Kennwort mit einem Kennwort übereinstimmt, das verwendet wird, um die Aktualisierungen der Firmware zu steuern (Entscheidung 320). Wenn das vom Anwender zur Verfügung gestellte Kennwort nicht mit einem autorisierten Kennwort übereinstimmt, das verwendet wird, um die Aktualisierungen der Firmware zu steuern, dann verzweigt die Entscheidung 320 zum „Nein“ Zweig 322, woraufhin die Verarbeitung zur aufrufenden Routine bei 325 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist (siehe Entscheidung 240 gemäß2 für die von der aufrufenden Routine bei Empfang des Rückkehrcodes ausgeführte Verarbeitung). Auf der anderen Seite, wenn das vom Anwender zur Verfügung gestellte Kennwort mit einem Kennwort übereinstimmt, das verwendet wird, um Aktualisierungen der Firmware der Vorrichtung zu steuern, verzweigt die Entscheidung 320 dann zum „Ja“ Zweig 326, um fortzufahren, die Integrität der Firmwareaktualisierung zu validieren. Zu Entscheidung 305 zurückkehrend verzweigt die Entscheidung 305, wenn kein Kennwort erforderlich ist, um die Firmware der Vorrichtung zu aktualisieren, dann zum „Nein“ Zweig 328, der die Schritte 310 bis 325 umgeht. - Es wird eine Feststellung durchgeführt, ob eine digitale Signatur verwendet wird, um die Firmwareaktualisierung zu validieren (Entscheidung 330). Wenn digitale Signaturen verwendet werden, dann werden freigegebene Firmwareaktualisierungen von einem autorisierten Anwender, wie zum Beispiel einem Administrator, digital signiert. Ein Weg, die Firmwareaktualisierungen digital zu signieren, besteht in der Verwendung asymmetrischer Schlüssel, wobei der autorisierte Anwender die Firmwareaktualisierung mit Hilfe eines privaten Schlüssels digital signiert, um die Firmwareaktualisierung zu verschlüsseln. Die digital signierte (verschlüsselte) Firmwareaktualisierung kann mit Hilfe des öffentlichen Schlüssels des autorisierten Anwenders entschlüsselt werden. Wenn digitale Signaturen verwendet werden, dann verzweigt die Entscheidung 330 zum „Ja“ Zweig 332, woraufhin der Hypervisor bei Schritt 335 versucht, die Firmwareaktualisierung unter Verwendung eines öffentlichen Schlüssels zu entschlüsseln, der dem autorisierten Anwender (zum Beispiel einem Systemadministrator) zugeordnet ist. Eine Feststellung darüber wird durchgeführt, ob die digitale Signatur gültig ist (Entscheidung 340), basierend darauf, ob der öffentliche Schlüssel in der Lage war, die Firmwareaktualisierung zu entschlüsseln, die mit Hilfe des privaten Schlüssels des autorisierten Anwenders verschlüsselt wurde. Wenn die digitale Signatur nicht verifiziert wird, dann verzweigt die Entscheidung 340 zum „Nein“ Zweig 342, woraufhin die Verarbeitung zur aufrufenden Routine bei 345 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist (siehe Entscheidung 240 gemäß
2 für die von der aufrufenden Routine bei Empfang des Rückkehrcodes ausgeführte Verarbeitung). Andernfalls verzweigt die Entscheidung 340, wenn die digitale Signatur verifiziert wird, dann zum „Ja“ Zweig 346, um fortzufahren, die Integrität der Firmwareaktualisierung zu validieren. Zu Entscheidung 330 zurückkehrend, verzweigt die Entscheidung 330, wenn keine digitale Signatur verwendet wird, um die Firmwareaktualisierung zu validieren, dann zum „Nein“ Zweig 348 und umgeht die Schritte 335 bis 345. - Eine Feststellung darüber wird durchgeführt, ob die Firmwareaktualisierung mit Hilfe einer Hashtabelle gesteuert wird (Entscheidung 350). Die Verwendung einer Hashtabelle erlaubt Systemadministratoren, eine Liste von erwarteten Hashwerten zur Verfügung zu stellen, die verschiedenen Firmwareaktualisierungen zugehörig sind. Auf diese Weise kann die tatsächliche Firmwareaktualisierung aus einer im Internet zugänglichen öffentlichen Website abgerufen werden, wobei die Sicherheit der Website unbekannt ist. Wenn die Firmwareaktualisierungen mit Hilfe einer Hashtabelle gesteuert werden, dann verzweigt die Entscheidung 350 zum „Ja“ Zweig 355, woraufhin der Hypervisor bei Schritt 360 einen Hashalgorithmus gegen die Firmwareaktualisierung ausführt, die vom Anwender herunter geladen wurde. Die Ausführung des Hashalgorithmus führt zu einem Hashwert. Bei Schritt 365 vergleicht der Hypervisor den Hashwert, der sich aus dem Hashalgorithmus ergab, mit einem erwarteten Hashwert durch Abrufen des erwarteten Hashwerts aus der Vergleichstabelle 370, die eine Liste von erwarteten Hashwerten umfasst, die verschiedenen freigegebenen Firmwareaktualisierungen entsprechen. Die Vergleichstabelle 370 beinhaltet das Identifizieren von Information über die Firmwareaktualisierungen, wie zum Beispiel des Dateinamens der Firmwareaktualisierung zusammen mit dem erwarteten Hashwert, wenn der Hashalgorithmus gegen die vorgegebene Firmwareaktualisierungsdatei ausgeführt wird. Wenn die Fimwareaktualisierungsdatei verfälscht, geändert oder anderweitig kompromittiert worden ist, stimmt der Hashwert nicht mit dem erwarteten Hashwert überein. Eine Feststellung darüber wird durchgeführt, ob der Hashwert, der sich aus dem Hashalgorithmus ergibt, mit dem erwarteten Hashwert übereinstimmt (Entscheidung 375). Wenn der Hashwert, der sich aus dem Hashalgorithmus ergibt, nicht mit dem erwarteten Hashwert übereinstimmt, dann verzweigt die Entscheidung 375 zum „Nein“ Zweig 378, woraufhin die Verarbeitung zur aufrufenden Routine bei 380 zurückkehrt mit einem Rückkehrcode, der anzeigt, dass die Aktualisierung ungültig ist. Andernfalls verzweigt die Entscheidung 375, wenn der Hashwert, der sich aus dem Hashalgorithmus ergibt, mit dem erwarteten Hashwert übereinstimmt, dann zum „Ja“ Zweig 385, woraufhin ein Rückkehrcode an die aufrufende Routine zurückgegeben wird, der anzeigt, dass die Firmwareaktualisierung validiert worden ist. Zu Entscheidung 350 zurückkehrend verzweigt die Entscheidung 350, wenn die Firmwareaktualisierung nicht mit Hilfe einer Hashtabelle gesteuert wird, dann zum „Nein“ Zweig 390, woraufhin an die aufrufende Routine der Rückkehrcode zurückgegeben wird, der anzeigt, dass die Firmwareaktualisierung validiert worden ist. Siehe Entscheidung 240 gemäß
2 für die Verarbeitung, die bei Empfang des Rückkehrcodes von der aufrufenden Routine ausgeführt wird. -
4 ist ein Ablaufdiagramm, das die Schritte zeigt, die vom Hypervisor ergriffen werden, um das Rechnersystem auf eine Firmwareaktualisierung vorzubereiten. Die Verarbeitung beginnt bei 400, woraufhin bei Schritt 410 das erste Gastbetriebssystem, das unter dem Hypervisor abläuft, aus der Liste von Gastbetriebssystemen des Hypervisors 420 abgerufen wird, die unter dem Hypervisor ablaufen. Bei Schritt 425 trennt der Hypervisor die Vorrichtung vom ausgewählten Betriebssystem. Eine Feststellung darüber wird ausgeführt, ob das Gastbetriebssystem vorübergehend ausgesetzt wird oder ob vom Gastbetriebssystem an die Vorrichtung gerichtete Anfragen durch den Hypervisor zwischengespeichert werden (Entscheidung 430). In einer Ausführungsform wird jedes der Gastbetriebssysteme auf dieselbe Weise behandelt (entweder vorübergehend ausgesetzt, oder die Anfragen werden zwischengespeichert), während in einer anderen Ausführungsform jedes Betriebssystem unterschiedlich behandelt werden kann, basierend auf den Eigenschaften des bestimmten Gastbetriebssystems und der Vorrichtung, die aktualisiert wird (das heißt, einige Gastbetriebssysteme bewältigen besser, dass sie vorübergehend ausgesetzt werden als andere, während einige Vorrichtungen ziemlich häufig verwendet werden, wodurch das Zwischenspeichern der verschieden Anfragen an die Vorrichtung schwieriger gemacht werden). Der Hypervisor entscheidet, ob er das Gastbetriebssystem vorübergehend aussetzt oder die Anfragen des Gastbetriebssystems an die Vorrichtung zwischenspeichert. Wenn das Gastbetriebssyscem vorübergehend ausgesetzt wird, dann verzweigt die Entscheidung 430 zum „Ja“ Zweig 445, woraufhin bei Schritt 450 das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt wird. Andernfalls verzweigt die Entscheidung 430, wenn Anfragen vom ausgewählten Gastbetriebssystem an die Vorrichtung zwischengespeichert werden, dann zum „Nein“ Zweig 455, woraufhin bei Schritt 460 Anfragen vom ausgewählten Gastbetriebssystem an die Vorrichtung, die aktualisiert wird, vom Hypervisor zwischengespeichert werden. - Eine Feststellung darüber wird durchgeführt, ob es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor laufen (Entscheidung 470). Wenn es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen, dann verzweigt die Entscheidung 470 zum „Ja“ Zweig 475, woraufhin bei Schritt 480 das nächste Gastbetriebssystem aus der Liste 420 ausgewählt wird und die Verarbeitung in der Schleife zurückkehrt, um das neu ausgewählte Gastbetriebssystem daran zu hindern, die Vorrichtung zu verwenden (entweder durch vorübergehendes Ausset-zen des Gastbetriebssystems oder durch Zwischenspeichern von Anfragen des Gastbetriebssystems an die Vorrichtung). Diese Schleife fährt fort, bis alle Gastbetriebssysteme, die unter dem Hypervisor ablaufen, verarbeitet worden sind, wobei die Entscheidung 470 an diesem Punkt zum „Nein“ Zweig 485 verzweigt.
- Bei Schritt 490 stellt der Hypervisor sicher, dass er (der Hypervisor) die Vorrichtung, die im Begriff ist, eine Firmwareaktualisierung zu empfangen, nicht verwendet. Bei 495 kehrt die Verarbeitung zu der aufrufenden Routine zurück (siehe
2 ), um die Firmware der Vorrichtung unter Verwendung der Firmwareaktualisierung, die angewandt wird, aufzurüsten. -
5 ist ein Ablaufdiagramm, das weitere Schritte zeigt, die vom Hypervisor ergriffen werden, um die Firmwareaktualisierung zu initialisieren und diese für das (die) Gastbetriebssystem(e) verfügbar zu machen. Die Verarbeitung beginnt bei 500, woraufhin bei Schritt 510 die Vorrichtung, die mit neuem Firmwarecode aktualisiert worden ist, zurückgesetzt wird. Bei Schritt 520 wählt der Hypervisor das erste Gastbetriebssystem aus der Liste 420 von Gastbetriebssystemen des Hypervisors aus, die unter dem Hypervisor ablaufen. - Eine Feststellung darüber wird durchgeführt, ob das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt worden ist (Entscheidung 530). Wenn das ausgewählte Gastbetriebssystem vorübergehend ausgesetzt worden ist, dann verzweigt die Entscheidung 530 zum „Ja“ Zweig 535, woraufhin bei Schritt 540 der Betrieb des ausgewählten Gastbetriebssystems wieder aufgenommen wird und bei Schritt 545 die Vorrichtung wieder mit dem ausgewählten Gastbetriebssystem verbunden (zum Beispiel „mounted“). Andernfalls verzweigt die Entscheidung 530, wenn das ausgewählte Gastbetriebssystem nicht vorübergehend ausgesetzt wurde, dann zum „Nein“ Zweig 550, woraufhin bei Schritt 555 die Vorrichtung wieder mit dem ausgewählten Gastbetriebssystem verbunden wird und bei Schritt 560 Anfragen, die vom ausgewählten Gastbetriebssystem an die Vorrichtung gesandt und vom Hypervisor zwischengespeichert wurden, verarbeitet werden (das heißt, die zwischengespeicherten Anfragen werden an die Vorrichtung gesandt, nachdem die Vorrichtung zurückgesetzt wurde.).
- Eine Feststellung darüber wird durchgeführt, ob es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen (Entscheidung 570). Wenn es mehrere Gastbetriebssysteme gibt, die unter dem Hypervisor ablaufen, dann verzweigt die Entscheidung 570 zum „Ja“ Zweig 575, woraufhin bei Schritt 580 das nächste Gastbetriebssystem aus der Liste 420 ausgewählt wird, und die Verarbeitung in der Schleife zurückkehrt, um die Verwendung der Vorrichtung durch das neu ausgewählte Gastbetriebssystem zuzulassen (entweder durch erneutes Aufnehmen des Betriebs des Gastbetriebssystem oder durch Verarbeiten von zwischengespeicherten Anfragen). Diese Schleife fährt fort, bis alle Gastbetriebssysteme, die unter dem Hypervisor ablaufen, verarbeitet worden sind, wobei zu diesem Zeitpunkt die Entscheidung 570 zum „Nein“ Zweig 485 verzweigt, woraufhin die Verarbeitung zur aufrufenden Routine bei 495 zurückkehrt (siehe
2 ). -
6 veranschaulicht die Anordnung zur Informationsverarbeitung 600, die ein vereinfachtes Beispiel für ein Rechnersystem ist, das dazu in der Lage ist, die EDV-Operationen auszuführen, die hierin beschrieben werden. Die Anordnung zur Informationsverarbeitung 600 umfasst einen oder mehrere Prozessoren 610, die mit dem Prozessorschnittstellenbus 612 verbunden sind. Der Prozessorschnittstellenbus 612 verbindet die Prozessoren 610 mit der Northbridge 615, die auch als Memory Controller Hub (MCH) bekannt ist. Die Northbridge 615 ist mit dem Systemdatenspeicher 620 verbunden und stellt ein Mittel für den (die) Prozessor(en) 610 zur Verfügung, um auf den Systemdatenspeicher zuzugreifen. Die Graphiksteuereinheit 625 ist ebenfalls mit der Northbridge 615 verbunden. In einer Ausführungsform wird der PCI Express Bus 618 verwendet, um die Northbridge 615 mit der Graphiksteuereinheit 625 zu verbinden. Die Graphiksteuereinheit 625 ist mit der Anzeigeeinheit 630, wie zum Beispiel einen Computermonitor, verbunden. - Northbridge 615 und Southbridge 635 sind unter Verwendung des Bus 618 mit einander verbunden. In einer Ausführungsform ist der Bus ein Direct Media Interface (DMI) Bus, der Daten mit hoher Geschwindigkeit in jeder Richtung zwischen Northbridge 615 und Southbridge 635 überträgt. In einer weiteren Ausführungsform wird ein Peripheral Component Interconnect (PCI) Bus verwendet, um die Northbridge und die Southbridge zu verbinden. Die Southbridge 635, auch bekannt als der I/O Controller Hub (ICH) ist ein Chip, der im Wesentlichen Fähigkeiten einrichtet, die mit langsameren Geschwindigkeiten arbeiten als die Fähigkeiten, die von der Northbridge zur Verfügung gestellt werden. Die Southbridge 635 stellt typischerweise verschiedene Busse zur Verfügung, die verwendet werden, um verschiedene Komponenten zu verbinden. Diese Busse können PCI und PCI Express Busse, einen ISA Bus, einen System Management Bus (SMBus oder SMB) und einen Low Pin Count (LPC) Bus umfassen. Der LPC Bus wird häufig benutzt, um Vorrichtungen mit niedriger Bandbreite, wie zum Beispiel die Boot ROM und „Legacy“ Ein/Ausgabe-Vorrichtungen zu verbinden (unter Verwendung eines „Super I/O“ Chip). Die „Legacy“ Ein/Ausgabe-Vorrichtungen (698) können serielle und parallele Ports, Tastatur, Maus und Diskettensteuereinheit umfassen. Der LPC Bus wird auch verwendet, um die Southbridge 635 mit der Komponente einer vertrauenswürdigen Plattform (TPC) 695 zu verbinden. Häufig in die Southbridge 635 einbezogene weitere Komponenten umfassen einen Direct Memory Access (DMA) Controller, einen Programmable Interrupt Controller (PIC) und eine Speichervorrichtungssteuereinheit, die die Southbridge 635 unter Verwendung des Bus 684 mit einer nichtflüchtigen Speichervorrichtung 685, wie zum Beispiel einem Festplattenlaufwerk, verbindet.
- ExpressCard 655 ist ein Slot, der verwendet wird, um im laufenden Betrieb einsteckbare Vorrichtungen mit der Anordnung zur Informationsverarbeitung zu verbinden. Die ExpressCard 655 unterstützt sowohl PCI Express als auch USB Konnektivität, da sie unter Verwendung sowohl des Universa Serial Bus (USB) als auch des PCI Express Bus mit der Southbridge 635 verbunden wird. Die Southbridge 635 umfasst den USB Controller 640, der USB Konnektivität an Vorrichtungen zur Verfügung stellt, die mit dem USB verbunden sind. Diese Vorrichtungen umfassen die Webcam (Kamera) 650, den Infrarot- (IR) Empfänger 648, die Bluetooth Vorrichtung 646, die drahtlose Personal Area Networks (PANs) zur Verfügung stellt, Tastatur und Trackpad 644, und verschiedene andere über USB verbundene Vorrichtungen 642, wie zum Beispiel eine Maus, tragbare Speichervorrichtungen, Modems, Netzwerkkarten, ISDN Anschlüsse, Faxgeräte, Drucker, USB Hubs, und viele andere über USB verbundene Vorrichtungen.
- Die drahtlose Local Area Network (LAN) Vorrichtung 675 ist durch den PCI oder PCI Express Bus 672 mit der Southbridge 635 verbunden. Die LAN Vorrichtung 675 richtet typischerweise einen der IEEE 802.11 Standards von „über die Luft“ übertragenen Modulationsverfahren ein, die alle dasselbe Protokoll verwenden, um drahtlos zwischen der Anordnung zur Informationsverarbeitung 600 und einem anderen Rechnersystem oder einer anderen Vorrichtung zu kommunizieren.
- Die optische Speichervorrichtung 690 ist unter Verwendung eines Serial ATA (SATA) Bus 688 an die Southbridge 635 angeschlossen. Serial ATA Adapter und Vorrichtungen kommunizieren über eine serielle Verbindung hoher Geschwindigkeit. Der Serial ATA Bus wird auch verwendet, um die Southbridge 635 mit anderen Formen von Speichervorrichtungen, wie zum Beispiel Festplattenlaufwerken zu verbinden.
- Eine Audioschaltung 660, wie zum Beispiel eine Audiokarte, ist über den Bus 658 an die Southbridge 635 angeschlossen. Die Audioschaltung 660 wird verwendet, um Funktionalität zur Verfügung zu stellen, wie zum Beispiel Audio Line-in und optisches digitales Audio in Port 662, optischen digitalen Ausgang und Kopfhörerbuchse 664, interne Lautsprecher 666 und internes Mikrophon 668.
- Die Ethernet Steuereinheit 670 ist mit der Southbridge 635 unter Verwendung eines Bus, wie zum Beispiel des PCI oder des PCI Express Bus verbunden. Die Ethernet Steuereinheit 670 wird verwendet, um die Anordnung zur Informationsverarbeitung 600 mit einem Computernetzwerk, wie zum Beispiel einem Local Area Network (LAN), dem Internet und anderen öffentlichen und privaten Computernetzwerken zu verbinden.
- Während
6 eine Ausführungsform einer Anordnung zur Informationsverarbeitung zeigt, kann eine Anordnung zur Informationsverarbeitung viele Formen annehmen. Zum Beispiel kann eine Anordnung zur Informationsverarbeitung die Form eines Desktops, eines Servers, eines tragbaren Geräts, eines Laptops, eines Notebooks oder eines Computers oder einer Datenverarbeitungsanlage eines anderen Formfaktors annehmen. Außerdem kann eine Anordnung zur Informationsverarbeitung andere Formfaktoren, wie zum Beispiel die eines persönlichen digitalen Assistenten (PDA), einer Glücksspielvorrichtung, einer ATM Maschine, einer tragbaren Telefonvorrichtung, einer Datenübertragungseinheit oder anderer Vorrichtungen annehmen, die einen Prozessor und Datenspeicher umfassen. - Eine der bevorzugten Ausführungsformen der Erfindung ist eine Clientanwendung, und zwar ein Satz von Anweisungen (Programmcode) oder ein anderes funktionell beschreibendes Material in einem Codemodul, das zum Beispiel im Speicher mit wahlfreiem Zugriff des Computers vorliegend sein kann. Bis durch den Computer angefordert, kann der Satz von Anweisungen in einem anderen Ccmputerdatenspeicher, zum Beispiel einem Festplattenlaufwerk oder einem entfernbaren Datenspeicher, wie zum Beispiel einer optischen Platte (zur letztendlichen Verwendung in einem CD-ROM) oder einer Diskette (zur letztendlichen Verwendung in einem Diskettenlaufwerk) gespeichert oder über das Internet oder ein anderes Computernetzwerk herunter geladen werden. Auf diese Weise kann die vorliegende Erfindung als ein Computerprogrammprodukt zu Verwendung in einem Computer ausgeführt werden. Außerdem wird, obwohl die verschiedenen beschriebenen Verfahren in geeigneter Weise in einem selektiv durch Software aktivierten oder neu konfigurierten, universell einsetzbaren Computer eingerichtet sind, eine Person mit gewöhnlichen Kenntnissen in der Technik auch erkennen, dass solche Verfahren in Hardware, in Firmware, oder in weiter spezialisierten Vorrichtungen ausgeführt werden können, die eingerichtet sind, um die erforderlichen Schritte des Verfahrens auszuführen. Funktionell beschreibendes Material ist Information, die einer Maschine Funktionalität mitteilt. Funktionell beschreibendes Material umfasst, aber ist nicht darauf eingegrenzt, Computerprogramme, Anweisungen, Regeln, Daten und Definitionen für berechenbare Funktionen, Objekte und Datenstrukturen.
- Während bestimmte Ausführungsformen der vorliegenden Erfindung gezeigt und beschrieben worden sind, wird es für jene, die in der Technik ausgebildet sind, offensichtlich sein, dass, basierend auf den Lehren hierin, Änderungen und Modifikationen durchgeführt werden können, ohne von dieser Erfindung und ihren allgemein gefassten Aspekten abzuweichen. Deshalb sollen die anhängenden Ansprüche innerhalb ihres Schutzumfangs alle diese Änderungen und Modifikationen umfassen, die innerhalb des Geists und des Schutzumfangs dieser Erfindung gelten. Weiterhin ist zu verstehen, dass die Erfindung einzig durch die anhängenden Ansprüche definiert wird. Es wird von jenen mit Kenntnissen in der Technik verstanden werden, dass, wenn eine bestimmte Nummer eines eingebrachten Anspruchselements beabsichtigt wird, solch eine Absicht klar in dem Anspruch vorgetragen wird, und in Abwesenheit von solch einer Nennung keine solche Beschränkung vorliegt. Für ein nicht einschränkendes Beispiel enthalten die folgenden angehängten Ansprüche als eine Hilfestellung zum Verständnis die Verwendung der einführenden Begriffe „mindestens ein“ und „ein oder mehrere“, um Anspruchselemente einzubringen. Jedoch sollte die Verwendung von solchen Begriffen nicht ausgelegt werden, um zu implizieren, dass die Einleitung eines Anspruchselements durch den unbestimmten Artikel „ein“ oder „eine“ irgend einen beliebigen Anspruch, der solch ein eingebrachtes Anspruchselement enthält, eingrenzt auf Erfindungen, die nur ein solches Element enthalten, auch dann, wenn der gleiche Anspruch die einführenden Formulierungen „ein oder mehrere“ oder „mindestens ein“ umfasst und unbestimmte Artikel, wie zum Beispiel „ein“; das Gleiche gilt für die Verwendung von bestimmten Artikeln in den Ansprüchen.
Claims (17)
- Computerimplementiertes Verfahren, umfassend: das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und mehrere Gastbetriebssysteme ausführt und die mehreren Gastbetriebssysteme unter dem Hypervisor ablaufen, und wobei die Firmwareaktualisierung sich auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst; als Reaktion auf den Empfang der Firmwareaktualisierung, der Hypervisor agiert durch: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme, wobei: das Sperren weiterhin umfasst: das Zwischenspeichern einer oder mehrerer Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssystemen empfangen werden; und das Zulassen weiterhin umfasst: das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
- Verfahren gemäß
Anspruch 1 , weiterhin umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird. - Verfahren gemäß
Anspruch 2 , wobei die Validierung weiterhin umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen auf das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwarteten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird. - Verfahren gemäß
Anspruch 2 , wobei die Validierung weiterhin umfasst: das Verifizieren, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist. - Verfahren gemäß
Anspruch 2 , wobei die Validierung weiterhin umfasst: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert ; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Antwort darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt. - Verfahren gemäß
Anspruch 1 , wobei: das Sperren weiterhin umfasst: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen jedes der Gastbetriebssysteme; und das Zulassen weiterhin umfasst: das Wiederaufnehmen des Betriebs jedes der Gastbetriebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme. - Anordnung zur Informationsverarbeitung, umfassend: einen oder mehrere Prozessoren; einen für mindestens einen der Prozessoren zugänglichen Datenspeicher; einen für mindestens einen der Prozessoren zugänglichen nichtflüchtigen Speicherbereich; eine für mindestens einen der Prozessoren zugängliche Hardwarevorrichtung, wobei die Hardwarevorrichtung eine aktualisierbare Firmware umfasst, die den Betrieb der Vorrichtung steuert; einen Hypervisor und mehrere Gastbetriebssysteme, die im Datenspeicher und dem nichtflüchtigen Speicherbereich abgelegt sind und von den Prozessoren ausgeführt werden; einen Satz von durch den Hypervisor ausgeführten Anweisungen, wobei einer oder mehrere der Prozessoren den Satz von Anweisungen ausführen, um nachfolgende Aktionen auszuführen, während die mehreren Gastbetriebssysteme unter dem Hypervisor ablaufen: das Empfangen einer Firmwareaktualisierung, wobei sich die Firmwareaktualisierung auf die Hardwarevorrichtung bezieht; als Reaktion auf das Empfangen der Firmwareaktualisierung: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme, wobei: die Anweisungen, die das Sperren ausführen, Anweisungen umfassen, um einen ersten Satz von Aktionen auszuführen, umfassend: das Zwischenspeichern von einer oder mehreren Anfragen an die Vorrichtung in einem im Datenspeicher abgelegten Zwischenspeicher, wobei die Anfragen von einem oder mehreren der Gastbetriebssysteme empfangen werden; und Anweisungen, die das Zulassen ausführen, Anweisungen umfassen, um eine zweite Aktion auszuführen, umfassend: das Senden jeder der zwischengespeicherten Anfragen an die Vorrichtung.
- Anordnung zur Informationsverarbeitung gemäß
Anspruch 7 , wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen in das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwarteten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird. - Anordnung zur Informationsverarbeitung gemäß
Anspruch 7 , wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung das Verifizieren umfasst, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist. - Anordnung zur Informationsverarbeitung gemäß
Anspruch 7 , wobei der Satz von Anweisungen weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung umfasst: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt. - Anordnung zur Informationsverarbeitung gemäß
Anspruch 7 , wobei: die Anweisungen, die das Sperren ausführen, Anweisungen umfassen, um einen ersten Satz von Aktionen auszuführen, umfassend: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen jedes der Gastbetriebssysteme; und Anweisungen, die das Zulassen ausführen, Anweisungen umfassen, um einen zweiten Satz von Aktionen auszuführen, umfassend: das Wiederaufnehmen des Betriebs jedes der Gastbetriebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme. - Computerprogrammprodukt, gespeichert auf einem computerlesbaren Medium, das funktionell beschreibendes Material umfasst, das, wenn es von einer Datenverarbeitungsanlage ausgeführt wird, bewirkt, dass die Datenverarbeitungsanlage Aktionen ausführt, die umfassen: das Empfangen einer Firmwareaktualisierung an einem Rechnersystem, wobei das Rechnersystem einen Hypervisor und mehrere Gastbetriebssysteme ausführt und die mehreren Gastbetriebssysteme unter dem Hypervisor ablaufen, und wobei sich die Firmwareaktualisierung auf eine durch das Rechnersystem zugängliche Hardwarevorrichtung bezieht, wobei die Hardwarevorrichtung eine aktualisierbaren Firmware umfasst; als Antwort auf den Empfang der Firmwareaktualisierung agiert der Hypervisor durch: das Sperren der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme; nach dem Sperren das Ausführen des Upgrades der Firmware unter Verwendung der empfangenen Firmwareaktualisierung; und nach dem Ausführen des Upgrades das Zulassen der Verwendung der Vorrichtung für jedes der Gastbetriebssysteme, wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: das Sperren, das weiterhin umfasst: das Zwischenspeichern von einer oder mehreren Anfragen an die Vorrichtung in einem Zwischenspeicher, wobei die Anfragen von einem oder von mehreren der Gastbetriebssysteme empfangen werden; und das Zulassen, das weiterhin umfasst: jede der zwischengespeicherten Anfragen an die Vorrichtung zu senden.
- Computerprogrammprodukt gemäß
Anspruch 12 , wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird. - Computerprogrammprodukt gemäß
Anspruch 12 , wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: vor dem Ausführen des Upgrades der Firmware das Validieren der Firmwareaktualisierung, wobei das Ausführen des Upgrades als Reaktion auf eine erfolgreiche Validierung der Firmwareaktualisierung ausgeführt wird, wobei die Validierung weiterhin umfasst: das Empfangen eines Kennworts von einem Anwender, das verwendet wird, um Firmwareaktualisierungen in das Rechnersystem zu steuern; und das Vergleichen des empfangenen Kennworts mit einem erwarteten Kennwort, wobei das Ausführen des Upgrades als Reaktion auf das Übereinstimmen des empfangenen Kennworts mit dem erwarteten Kennwort ausgeführt wird. - Computerprogrammprodukt gemäß
Anspruch 12 , wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: das Verifizieren, dass die empfangene Firmwareaktualisierung von einem autorisierten Anwender digital signiert worden ist. - Computerprogrammprodukt gemäß
Anspruch 12 , wobei das funktionell beschreibende Material, das die Validierung ausführt, weitere Aktionen ausführt, umfassend: das Ausführen eines Hashalgorithmus gegen die empfangene Firmwareaktualisierung, wobei das Ausführen zu einem Hashwert führt; das Vergleichen des Hashwerts mit einem erwarteten Hashwert ; das Zurückweisen der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert nicht mit dem erwarteten Hashwert übereinstimmt; und das Akzeptieren der Firmwareaktualisierung als Reaktion darauf, dass der Hashwert mit dem erwarteten Hashwert übereinstimmt. - Computerprogrammprodukt gemäß
Anspruch 12 , wobei das funktionell beschreibende Material bewirkt, dass die Datenverarbeitungsanlage weitere Aktionen ausführt, umfassend: das Sperren, das weiterhin umfasst: das Trennen der Vorrichtung von jedem der Gastbetriebssysteme; und das vorübergehende Aussetzen von jedem der Gastbetriebssysteme; und das Zulassen, das weiterhin umfasst: das Wiederaufnehmen des Betriebs jedes der Gastbetriebssysteme; und das Verbinden der Vorrichtung mit jedem der Gastbetriebssysteme.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/692,283 US20080244553A1 (en) | 2007-03-28 | 2007-03-28 | System and Method for Securely Updating Firmware Devices by Using a Hypervisor |
US11/692,283 | 2007-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102007057901A1 DE102007057901A1 (de) | 2008-10-02 |
DE102007057901B4 true DE102007057901B4 (de) | 2023-03-16 |
Family
ID=38983096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102007057901.4A Active DE102007057901B4 (de) | 2007-03-28 | 2007-11-29 | Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080244553A1 (de) |
JP (1) | JP5001818B2 (de) |
CN (1) | CN101295262B (de) |
DE (1) | DE102007057901B4 (de) |
GB (1) | GB2448010B (de) |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9384159B2 (en) * | 2007-05-24 | 2016-07-05 | International Business Machines Corporation | Creating a checkpoint for a software partition in an asynchronous input/output environment |
JP4980809B2 (ja) * | 2007-07-10 | 2012-07-18 | 株式会社リコー | 画像形成装置、画像形成装置の起動方法、およびプログラム |
US8281298B2 (en) * | 2007-08-27 | 2012-10-02 | International Business Machines Corporation | Evaluating computer driver update compliance |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US8413130B2 (en) * | 2007-10-03 | 2013-04-02 | International Business Machines Corporation | System and method for self policing of authorized configuration by end points |
US7962738B2 (en) * | 2007-12-20 | 2011-06-14 | Intel Corporation | Hypervisor runtime integrity support |
US8201161B2 (en) * | 2008-01-07 | 2012-06-12 | Lenovo (Singapore) Pte. Ltd. | System and method to update device driver or firmware using a hypervisor environment without system shutdown |
WO2009007468A2 (en) * | 2008-09-26 | 2009-01-15 | Phonak Ag | Wireless updating of hearing devices |
JP5223596B2 (ja) * | 2008-10-30 | 2013-06-26 | 富士通株式会社 | 仮想計算機システム及びその管理方法、管理プログラム並びに記録媒体、制御方法 |
TW201108735A (en) * | 2009-08-18 | 2011-03-01 | Wistron Corp | Method and apparatus and digital TV capable of preventing erroneous start of firmware update |
US8214653B1 (en) | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US8887144B1 (en) | 2009-09-04 | 2014-11-11 | Amazon Technologies, Inc. | Firmware updates during limited time period |
US10177934B1 (en) | 2009-09-04 | 2019-01-08 | Amazon Technologies, Inc. | Firmware updates inaccessible to guests |
US9565207B1 (en) * | 2009-09-04 | 2017-02-07 | Amazon Technologies, Inc. | Firmware updates from an external channel |
US8971538B1 (en) | 2009-09-08 | 2015-03-03 | Amazon Technologies, Inc. | Firmware validation from an external channel |
US8601170B1 (en) | 2009-09-08 | 2013-12-03 | Amazon Technologies, Inc. | Managing firmware update attempts |
US8959611B1 (en) | 2009-09-09 | 2015-02-17 | Amazon Technologies, Inc. | Secure packet management for bare metal access |
US8300641B1 (en) | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
US9639347B2 (en) * | 2009-12-21 | 2017-05-02 | International Business Machines Corporation | Updating a firmware package |
US8631404B2 (en) * | 2010-02-18 | 2014-01-14 | Red Hat Israel, Ltd. | Mechanism for downloading hypervisor updates via a virtual hardware device using existing virtual machine-host channels |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
CN102455950A (zh) * | 2010-10-28 | 2012-05-16 | 鸿富锦精密工业(深圳)有限公司 | 基板管理控制器的韧体恢复系统及方法 |
US9021465B2 (en) | 2010-12-15 | 2015-04-28 | Red Hat Israel, Ltd. | Downloading guest software updates by a hypervisor |
US8578376B2 (en) | 2011-01-04 | 2013-11-05 | International Business Machines Corporation | Automatically and securely configuring and updating virtual machines |
CN103329093B (zh) * | 2011-01-19 | 2017-09-12 | 国际商业机器公司 | 用于更新执行环境中的代码的方法和系统 |
US8745614B2 (en) * | 2011-05-13 | 2014-06-03 | Lsi Corporation | Method and system for firmware upgrade of a storage subsystem hosted in a storage virtualization environment |
US8856771B2 (en) * | 2011-08-19 | 2014-10-07 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US8776040B2 (en) | 2011-08-19 | 2014-07-08 | International Business Machines Corporation | Protection for unauthorized firmware and software upgrades to consumer electronic devices |
US8972966B2 (en) * | 2012-01-05 | 2015-03-03 | Lenovo (Singapore) Pte. Ltd. | Updating firmware in a hybrid computing environment |
US8875124B2 (en) * | 2012-01-11 | 2014-10-28 | Dell Products L.P. | In-band hypervisor-managed firmware updates |
US9369867B2 (en) * | 2012-06-29 | 2016-06-14 | Intel Corporation | Mobile platform software update with secure authentication |
US11080035B2 (en) * | 2013-02-13 | 2021-08-03 | Vmware, Inc. | Accessing a patch file in a system center configuration manager (SCCM) environment |
US9223982B2 (en) * | 2013-03-01 | 2015-12-29 | Intel Corporation | Continuation of trust for platform boot firmware |
JP5713056B2 (ja) * | 2013-06-24 | 2015-05-07 | 横河電機株式会社 | プロセス制御装置及びシステム並びにその更新方法 |
JP6244759B2 (ja) * | 2013-09-10 | 2017-12-13 | 株式会社ソシオネクスト | セキュアブート方法、半導体装置、及び、セキュアブートプログラム |
CN104007995B (zh) * | 2014-06-13 | 2018-02-23 | 浪潮电子信息产业股份有限公司 | 一种刷写网络芯片未验证fw的方法 |
US10387652B2 (en) | 2015-04-17 | 2019-08-20 | Hewlett Packard Enterprise Development Lp | Firmware map data |
US9930051B1 (en) * | 2015-11-06 | 2018-03-27 | Amazon Technologies, Inc. | Remote management of hardware hosts in cloud infrastructure |
US10042720B2 (en) | 2016-02-22 | 2018-08-07 | International Business Machines Corporation | Live partition mobility with I/O migration |
US10002018B2 (en) | 2016-02-23 | 2018-06-19 | International Business Machines Corporation | Migrating single root I/O virtualization adapter configurations in a computing system |
US10042723B2 (en) | 2016-02-23 | 2018-08-07 | International Business Machines Corporation | Failover of a virtual function exposed by an SR-IOV adapter |
JP6520759B2 (ja) * | 2016-02-26 | 2019-05-29 | オムロン株式会社 | プログラマブルコントローラ、プログラマブルコントローラの制御プログラム |
US10025584B2 (en) | 2016-02-29 | 2018-07-17 | International Business Machines Corporation | Firmware management of SR-IOV adapters |
EP3220262B1 (de) | 2016-03-15 | 2018-06-13 | Axis AB | Vorrichtung, die während der firmware-aktualisierung betätigbar ist |
US10127068B2 (en) | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10318311B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
US10318737B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Secure booting of virtualization managers |
US9720863B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9720862B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9715469B1 (en) | 2016-10-21 | 2017-07-25 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9760512B1 (en) | 2016-10-21 | 2017-09-12 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9785451B1 (en) | 2016-10-21 | 2017-10-10 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9740647B1 (en) | 2016-10-21 | 2017-08-22 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
DE102016221108A1 (de) * | 2016-10-26 | 2018-04-26 | Volkswagen Aktiengesellschaft | Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs |
CN108170368B (zh) * | 2016-12-07 | 2024-01-23 | 北京忆恒创源科技股份有限公司 | 在线升级固件的方法及系统 |
US9983823B1 (en) | 2016-12-09 | 2018-05-29 | Amazon Technologies, Inc. | Pre-forking replicas for efficient scaling of a distribued data storage system |
US10229404B1 (en) * | 2016-12-16 | 2019-03-12 | Worldpay, Llc | Systems and methods for network configurations of pin pads |
JP7027809B2 (ja) * | 2017-10-31 | 2022-03-02 | 京セラドキュメントソリューションズ株式会社 | アップデートシステム |
EP3729760A1 (de) * | 2017-12-22 | 2020-10-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Verfahren zur beschränkung des speicherschreibzugriffs bei iot-vorrichtungen |
US10642603B2 (en) * | 2018-01-16 | 2020-05-05 | Nutanix, Inc. | Scheduling upgrades in distributed computing systems |
US10838754B2 (en) | 2018-04-27 | 2020-11-17 | Nutanix, Inc. | Virtualized systems having hardware interface services for controlling hardware |
WO2019239191A1 (en) * | 2018-06-14 | 2019-12-19 | Sony Corporation | Methods, wireless modules, electronic devices and server devices |
US11218364B2 (en) | 2018-06-25 | 2022-01-04 | Amazon Technologies, Inc. | Network-accessible computing service for micro virtual machines |
US10776488B2 (en) * | 2018-09-24 | 2020-09-15 | Dell Products L.P. | Extend root of trust to include firmware of individual components of a device |
US10833949B2 (en) | 2018-11-20 | 2020-11-10 | Amazon Technologies, Inc | Extension resource groups of provider network services |
JP7036705B2 (ja) * | 2018-12-03 | 2022-03-15 | Kddi株式会社 | 通信装置、通信方法、およびコンピュータプログラム |
US10848418B1 (en) | 2019-06-24 | 2020-11-24 | Amazon Technologies, Inc. | Packet processing service extensions at remote premises |
US20220129558A1 (en) * | 2019-06-27 | 2022-04-28 | Kyocera Document Solutions Inc. | Image forming apparatus, firmware manipulation prevention method, and computer-readable non-transitory recording medium containing manipulation prevention program |
US11550917B2 (en) * | 2019-06-28 | 2023-01-10 | Intel Corporation | Standardized interface for intellectual property blocks |
US11064017B2 (en) | 2019-09-24 | 2021-07-13 | Amazon Technologies, Inc. | Peripheral device enabling virtualized computing service extensions |
US11853771B1 (en) | 2019-09-24 | 2023-12-26 | Amazon Technologies, Inc. | Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service |
US11520530B2 (en) | 2019-09-24 | 2022-12-06 | Amazon Technologies, Inc. | Peripheral device for configuring compute instances at client-selected servers |
US11113046B1 (en) | 2019-09-24 | 2021-09-07 | Amazon Technologies, Inc. | Integration and remote control of a pre-assembled computer system into a server for a virtualization service |
US11243589B1 (en) | 2019-09-24 | 2022-02-08 | Amazon Technologies, Inc. | Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service |
NZ786912A (en) * | 2019-09-25 | 2022-08-26 | Shift5 Inc | Passive monitoring and prevention of unauthorized firmware or software upgrades between computing devices |
CN110990037A (zh) * | 2019-11-26 | 2020-04-10 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 板卡软件升级方法及装置 |
US11650869B2 (en) | 2019-11-27 | 2023-05-16 | Amazon Technologies, Inc. | Quantum computing service with local edge devices supporting multiple quantum computing technologies |
US11605033B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing task translation supporting multiple quantum computing technologies |
US11704715B2 (en) | 2019-11-27 | 2023-07-18 | Amazon Technologies, Inc. | Quantum computing service supporting multiple quantum computing technologies |
US11605016B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing service supporting local execution of hybrid algorithms |
US11569997B1 (en) | 2020-03-09 | 2023-01-31 | Amazon Technologies, Inc. | Security mechanisms for data plane extensions of provider network services |
CN112559419A (zh) * | 2020-12-21 | 2021-03-26 | 厦门市美亚柏科信息股份有限公司 | 一种pcie存储模块的固件升级保护方法、装置 |
US11977957B2 (en) | 2021-08-03 | 2024-05-07 | Amazon Technologies, Inc. | Quantum computing program compilation using cached compiled quantum circuit files |
US11797276B1 (en) | 2021-09-30 | 2023-10-24 | Amazon Technologies, Inc. | Assisted composition of quantum algorithms |
US11907092B2 (en) | 2021-11-12 | 2024-02-20 | Amazon Technologies, Inc. | Quantum computing monitoring system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834340B2 (en) | 2001-03-01 | 2004-12-21 | International Business Machines Corporation | Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines |
GB2421612A (en) | 2002-11-27 | 2006-06-28 | Intel Corp | Providing a secure execution mode in a pre-boot environment |
WO2007017665A1 (en) | 2005-08-10 | 2007-02-15 | Symbian Software Limited | A method of operating a computing device trough the use of extensible thread states |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH103384A (ja) * | 1996-06-18 | 1998-01-06 | Nec Eng Ltd | 情報処理システム |
JP2001092668A (ja) * | 1999-09-20 | 2001-04-06 | Sony Corp | 電子機器、電子機器の内部プログラム書き換え方法及び電子機器の内部プログラム書き換え機能を有するプログラムを記録したコンピュータ読み取り可能な情報記録媒体 |
JP2001290637A (ja) * | 2000-04-05 | 2001-10-19 | Nec Corp | コンポーネントの動的置換装置及びコンピュータ読み取り可能な記憶媒体 |
US7069452B1 (en) * | 2000-07-12 | 2006-06-27 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
JP2002244874A (ja) * | 2001-02-15 | 2002-08-30 | Toshiba Corp | 情報処理装置およびファームウェア更新方法 |
US7082598B1 (en) * | 2002-07-17 | 2006-07-25 | Vmware, Inc. | Dynamic driver substitution |
US7401332B2 (en) * | 2003-01-09 | 2008-07-15 | International Business Machines Corporation | System and apparatus for eliminating user interaction during hardware configuration at system boot |
US7555657B2 (en) * | 2003-03-28 | 2009-06-30 | Ricoh Company, Ltd. | Communication device, software update device, software update system, software update method, and program |
US20040205776A1 (en) * | 2003-04-10 | 2004-10-14 | International Business Machines Corporation | Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system |
US7805723B2 (en) * | 2003-10-01 | 2010-09-28 | Hewlett-Packard Development Company, L.P. | Runtime virtualization and devirtualization of memory by a virtual machine monitor |
US7793287B2 (en) * | 2003-10-01 | 2010-09-07 | Hewlett-Packard Development Company, L.P. | Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor |
TWI229818B (en) * | 2003-12-15 | 2005-03-21 | Wistron Corp | Method and device for updating firmware |
US7353428B2 (en) * | 2004-05-19 | 2008-04-01 | Lenovo Singapore Pte. Ltd | Polled automatic virus fix |
JP2006185063A (ja) * | 2004-12-27 | 2006-07-13 | Kyocera Mita Corp | プログラム書込装置及びプログラム書込プログラム |
US7873959B2 (en) * | 2005-02-01 | 2011-01-18 | Microsoft Corporation | Publishing the status of and updating firmware components |
JP2006260058A (ja) * | 2005-03-16 | 2006-09-28 | Fujitsu Ltd | 計算機サーバ・システムにおけるファームウェアアップデート方法 |
JP2006277216A (ja) * | 2005-03-29 | 2006-10-12 | Nec Corp | マルチos搭載可能なプラットホームにおける自動fwアップデート方法 |
US20070011444A1 (en) * | 2005-06-09 | 2007-01-11 | Grobman Steven L | Method, apparatus and system for bundling virtualized and non-virtualized components in a single binary |
US20070074199A1 (en) * | 2005-09-27 | 2007-03-29 | Sebastian Schoenberg | Method and apparatus for delivering microcode updates through virtual machine operations |
US20070245334A1 (en) * | 2005-10-20 | 2007-10-18 | The Trustees Of Columbia University In The City Of New York | Methods, media and systems for maintaining execution of a software process |
US8776041B2 (en) * | 2007-02-05 | 2014-07-08 | Microsoft Corporation | Updating a virtual machine monitor from a guest partition |
-
2007
- 2007-03-28 US US11/692,283 patent/US20080244553A1/en not_active Abandoned
- 2007-11-29 DE DE102007057901.4A patent/DE102007057901B4/de active Active
- 2007-12-06 GB GB0723884A patent/GB2448010B/en active Active
- 2007-12-21 JP JP2007330901A patent/JP5001818B2/ja active Active
-
2008
- 2008-03-27 CN CN2008100885349A patent/CN101295262B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834340B2 (en) | 2001-03-01 | 2004-12-21 | International Business Machines Corporation | Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines |
GB2421612A (en) | 2002-11-27 | 2006-06-28 | Intel Corp | Providing a secure execution mode in a pre-boot environment |
WO2007017665A1 (en) | 2005-08-10 | 2007-02-15 | Symbian Software Limited | A method of operating a computing device trough the use of extensible thread states |
Also Published As
Publication number | Publication date |
---|---|
DE102007057901A1 (de) | 2008-10-02 |
CN101295262B (zh) | 2012-01-25 |
JP5001818B2 (ja) | 2012-08-15 |
GB2448010B (en) | 2009-11-11 |
JP2008243183A (ja) | 2008-10-09 |
GB0723884D0 (en) | 2008-01-16 |
US20080244553A1 (en) | 2008-10-02 |
CN101295262A (zh) | 2008-10-29 |
GB2448010A (en) | 2008-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102007057901B4 (de) | Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor | |
DE102011103218B4 (de) | Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen | |
US8201161B2 (en) | System and method to update device driver or firmware using a hypervisor environment without system shutdown | |
DE112005001739B4 (de) | Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen | |
DE102008011925B4 (de) | Sicheres Initialisieren von Computersystemen | |
US10860305B1 (en) | Secure firmware deployment | |
TWI570592B (zh) | 更新電腦韌體的系統、方法與電腦可讀取儲存媒體 | |
US8869264B2 (en) | Attesting a component of a system during a boot process | |
US20180121656A1 (en) | Validating operating firmware of a periperhal device | |
DE112016005833T5 (de) | Datenverarbeitungsgeräte | |
US8413130B2 (en) | System and method for self policing of authorized configuration by end points | |
US20070079120A1 (en) | Dynamic creation and hierarchical organization of trusted platform modules | |
US20110099547A1 (en) | Approaches for installing software using bios | |
US8312534B2 (en) | System and method for securely clearing secret data that remain in a computer system memory | |
US9075994B2 (en) | Processing attestation data associated with a plurality of data processing systems | |
JP2010086538A (ja) | ハードウェアベースのアンチウィルススキャンサービス | |
DE112010004930T5 (de) | Sicherer kerberisierter Zugriff auf ein verschlüsseltes Dateisystem | |
DE112014000337T5 (de) | Sichere Ausführung von Software-Modulen auf einem Computer | |
US10255438B2 (en) | Operating system agnostic validation of firmware images | |
US9245122B1 (en) | Anti-malware support for firmware | |
US20130139216A1 (en) | Method and Computer Device to Control Software File Downloads | |
DE112011105687T5 (de) | Verwendung eines Option-ROM-Speichers | |
DE202017007430U1 (de) | Erkennen von Bussperrbedingungen und Vermeiden von Bussperren | |
DE112015007220T5 (de) | Techniken zum Koordinieren von Vorrichtungshochfahrsicherheit | |
US20150058926A1 (en) | Shared Page Access Control Among Cloud Objects In A Distributed Cloud Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R016 | Response to examination communication | ||
R082 | Change of representative |
Representative=s name: GRUENECKER PATENT- UND RECHTSANWAELTE PARTG MB, DE |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final |