DE69923085T2 - Initialisieren und wiederanlaufen von betriebssystemen - Google Patents
Initialisieren und wiederanlaufen von betriebssystemen Download PDFInfo
- Publication number
- DE69923085T2 DE69923085T2 DE69923085T DE69923085T DE69923085T2 DE 69923085 T2 DE69923085 T2 DE 69923085T2 DE 69923085 T DE69923085 T DE 69923085T DE 69923085 T DE69923085 T DE 69923085T DE 69923085 T2 DE69923085 T2 DE 69923085T2
- Authority
- DE
- Germany
- Prior art keywords
- image
- operating system
- memory
- computer system
- computer
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Jib Cranes (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- User Interface Of Digital Computer (AREA)
Description
- Die Erfindung betrifft im Allgemeinen Betriebssysteme und im Besonderen das Initialisieren und Neustarten von Betriebssystemen, zum Beispiel nach dem anfänglichen Einschalten oder nach einem Absturz.
- Wenn ein Computersystem anfangs eingeschaltet wird, beginnt ein Grund-Eingabe/Ausgabesystem oder "BIOS" (basic input/output system) zu arbeiten. Das BIOS steuert viele wichtige Funktionen des Arbeitsplatzrechners, so wie die Interpretation der Tastenanschläge, die Ausgabe von Buchstaben auf dem Bildschirm und die Kommunikation mit anderen Geräten. Das BIOS instruiert den Rechner typischerweise, sich jedesmal, wenn der Bediener den Rechner einschaltet, selbst zu testen. Dazu benutzt das BIOS einen Einschalteselbsttest oder "POST" (power on self test).
- Wenn der Arbeitsplatzrechner startet, tritt er normalerweise als erstes in den sogenannten "Realmodus". Der Rechner greift auf einen speziellen Speicherplatz mit Programminstruktionen zu, die einen Sprungbefehl zum BIOS-Code enthalten. Anfangs instruiert das BIOS den Systemmikroprozessor, die Systemkomponenten durchzugehen und zu entschieden, ob sie korrekt arbeiten. Als nächstes werden alle Erweiterungskarten überprüft, die installiert worden sind. Danach beginnt der Mikroprozessor mit dem eigentlichen Hochfahrvorgang. Während des Hochfahrvorgangs kann der BIOS-Code den Mikroprozessor anweisen, zu einem Codeabschnitt mit Instruktionen für den Mikroprozessor zum Lesen des ersten Abschnitts des Systemdisketten-, Festplatten- oder CD-ROM-Laufwerks zu springen. Der Mikroprozessor lädt dann das Betriebssystem zum Starten tatsächlicher Rechnerabläufe.
- Das Betriebssystem Windows® ist wohl das meistverbreitete Betriebssystem für Arbeitsplatzrechner. Es ist insofern ein "offenes" System, als es an verschiedene Computersysteme und an wechselnde Hardware bei jedem gegebenen Computersystem anpassbar ist. Wegen dieser Offenheit benötigt das Windows®-Betriebssystem zum Starten wenigstens teilweise beträchtliche Zeit. Für einige Bediener kann diese Verzögerung ein Ärgernis darstellen, und in einigen Beispielfällen kann der Startvorgang die Art und Weise, wie ein System arbeitet, störend beeinflussen.
- Zum Beispiel sind Aufsatzcomputer mit Fernsehsystemen verbundene Arbeitsplatzrechner, die sowohl analoge als auch digitale Fernsehfähigkeiten und Rechnerfähigkeiten, wie Internetzugang, verbinden. Es wird erwartet, dass Bediener von Aufsatzcomputern diese Rechner als normalen Elektronikanwendungen ähnlich betrachten. Daher sind die Bediener oft nicht bereit, Verzögerungen beim Starten oder Fehlermeldungen auf ihren Fernsehbildschirmen hinzunehmen. Zum Beispiel könnte ein Bediener in einem Bild-in-Bild-System gleichzeitig ein Spiel spielen, das unter dem Windows®-Betriebssystem läuft, und fernsehen. Bei einem Absturz des Spiels könnte eine Fehlermeldung auf dem Bildschirm erscheinen, die beim normalen Fernsehen stört. Wenigstens für eine kurze Zeit würde das Fernsehbild vom Computerabsturz beeinträchtigt sein.
- In grundsätzlich allen Fällen würden Bediener von einer schnelleren Initiierung von Programmabläufen profitieren. Dies könnte in wenigstens drei Bereichen geschehen. Wenn der Rechner anfangs eingeschaltet wird, wäre ein schnellstmöglicher Beginn von Abläufen wünschenswert. Zweitens wäre es wünschenswert, den Rechner bei einem Programmfehler oder einem Absturz so schnell wie möglich neuzustarten. Ebenso könnten manche Bediener bei Auftreten von einer Vielzahl von Problemen während des Rechnerbetriebs wünschen, einfach den Rechner neuzustarten. Dadurch könnten sie vermeiden, sich mit einem Problem auseinanderzusetzen und die Quelle des Problems zu identifizieren.
- Gängige Computersysteme haben einige Fähigkeiten zum Beschleunigen der Initiierung des Computersystems. Zum Beispiel ist die Nutzung einer "Schnell an (fast on)"-Fähigkeit bekannt, die die ganze oder einen Teil der POST-Routine umgeht. Ebenso haben einige Laptops eine Unterbrechung/Wiederaufnahmefunktion. Wenn er will, kann der Bediener einen Unterbrechungsknopf drücken, und alle Einstellungen des Computers werden gespeichert. Wenn der Computer danach hochgefahren wird, erkennt der Computer, dass eine Unterbrechung eingetreten war, und nimmt sofort Abläufe exakt dort wieder auf, wo der Computer zuvor aufgehört hat. Zusätzlich arbeiten einige Computer in einem "Immer an"-Modus, wobei ein Systemneustart außer bei einem Problem nie notwendig ist. Beispielsweise wird Windows®98 eine Fortgeschrittene Konfigurations- und Energieschnittstellenfunktion (Advanced configuration and power interface function, ACPI-Funktion) haben, welche einem Computersystem ähnlich ist, das nie ausgeschaltet wird. Einige einfache Computersysteme, so wie persönliche Datenassistenten (PDA, personal data assistant), nutzen ein sogenanntes Echtzeitbetriebssystem (RTOS, real time operating system), um einen schnellen Start des Computers zu ermöglichen.
- Andere Methoden, die das Wiederherstellen oder Neustarten eines Betriebssystems betreffen, sind in EP-A-838 753, EP-A- 516 159 und US-A-5 325 532 offenbart.
- In "Fast DOS Soft Boot", IBM Technical Disclosure Bulletin, Vol.37, Nr. 028 von Februar 1994 ist offenbart, wie ein DOS-Softboot implementiert werden kann. Ein vollständiges DOS-Systemspeicherabbild wird komprimiert und in einem erweiterten Speicher gespeichert. Ein Realmodus BIOS-CBIOS liest und lädt das gespeicherte Systemabbild auf Drücken einer Schneller-Softboot-Taste durch den Bediener hin: das Abbild wird dekomprimiert und wiederhergestellt, wenn eine Verifikation der Datenintegrität erfolgreich war. Andernfalls fährt CBIOS das System wieder von einer Diskette oder Festplatte hoch.
- Ebenso offenbart EP-A-838 753 ein Computersystem, bei dem eine vollständige Kopie des Betriebssystems in einem flüchtigen Speichergerät gespeichert wird und bei Bedarf für einen Neustart eines Computers
24 verwendet wird. - US-A-5 089 058 offenbart ein Computerbackupsystem, bei dem eine dynamische Datensicherung eingebaut ist, die zum Speichern von Zustandsänderungen des Hauptcomputers von einer Adresstabelle Gebrauch macht.
- Keine der oben beschriebenen Techniken hilft bei einem Programmabsturz. In jedem dieser Fälle muss wenigstens ein beträchtlicher Teil des Hochfahrvorgangs nach einem Absturz wiederholt werden. Dies kann eine beträchtliche Verzögerung nach sich ziehen und behindert die Gestaltung einer nahtlosen Erscheinung für den Systembediener. Daher besteht ein zunehmender Bedarf für Methoden, die Betriebssysteme zu schnellerem Initiieren und Neustarten befähigen, beispielsweise nach einem Absturz oder beim anfänglichen Einschalten besonders von offenen Betriebssystemen. Genauso wäre es in Verbindung mit spezialisierten Computersystemen, so wie Aufsatzcomputern, wünschenswert, normale Rechnerabläufe für den Bediener unsichtbar zu machen.
- Zusammenfassung
- Gemäß einem Aspekt der vorliegenden Erfindung umfasst ein Verfahren zum Verhindern eines Systemfehlers das Bilden eines Abbildes für ein Betriebssystem, das an eine spezielle Konfiguration angepasst ist. Das Abbild wird dann gespeichert. Bei Erfassung eines Programmfehlers wird das Abbild in den Systemspeicher geladen.
- Kurzbeschreibung der Zeichnung
-
1 ist eine schematische Darstellung einer Ausführungsform der Erfindung; -
2 ist ein Flussdiagramm eines schnellen Initiierungsprogrammes; -
3 zeigt ein Blockdiagramm eines Computersystems, das die Ausführungsform der Erfindung aus1 implementieren könnte; -
4 ist eine detailliertere schematische Darstellung des Basisbetriebssystemabbildes aus1 ; -
5 ist ein Flussdiagramm für ein Programm zum Verhindern eines Systemfehlers; -
6 ist eine schematische Abbildung davon, wie das Basisabbild erzeugt und verwendet wird; -
7 ist ein Flussdiagramm, das eine Initiierung eines Betriebssystems gemäß einer Ausführungsform der Erfindung zeigt; -
8 ist ein Flussdiagramm einer anderen Ausführungsform entsprechend2 ; und -
9 ist ein Flussdiagramm, das den Ablauf einer Ausführungsform der Erfindung nach einem Programmabsturz zeigt. - Detaillierte Beschreibung
- In Bezug auf
1 kann ein Festplattenlaufwerk10 eine Anzahl von Dateien für ein Betriebssystem, wie das Windows® Betriebssystem, speichern. Typische Dateien12 wären Bedienerdateien, Registrierungsdateien und andere Betriebssystemdateien. Eine spezielle Partition14 stellt einen Bereich für ein neues Basisabbild16 und ein Basisbetriebssystemabbild18 bereit. - Das Basisbetriebssystemabbild
18 kann ein gespeichertes virtuelles Abbild sein, das bei einer schaffenden Herkunftseinrichtung für die Herstellung von Rechnern im Voraus geladen werden könnte. Das Abbild spiegelt eine Systemkonfiguration für ein Basiscomputersystem mit einem vorbestimmten Satz von Hardware- und Softwarekonfigurationsparametern wider. Diese Parameter können auf einen bestimmten Rechner anwendbar sein, wie er ursprünglich konfiguriert ist, oder es kann ein hypothetischer Konfigurationssatz sein, der genau der Konfiguration des Rechners entspricht oder nicht. Das Basisbetriebssystemabbild18 kann zum Beispiel Anfangsregistereinstellungen, Geräteeinstellungen, Basisspeicherseitendateien und so weiter umfassen. Kurz, es schließt alles ein, was während der Laufzeit in den Speicher geladen worden ist, einschließlich zugehörigen Anwendungen und einer Bedienershell. - Grundsätzlich umfasst das Abbild alle notwendigen Parameter für ein Betriebssystem wie Windows® zum Betreiben einer tatsächlichen oder hypothetischen Rechnerkonfiguration. Es entspricht der Information über die Register und den Speicher, die während der Betriebssystembootsequenz für die vorbestimmte Basiscomputerkonfiguration entwickelt wird. Daher ist das Abbild effektiv ein virtuelles Abbild des Betriebssystems nach dem Hochfahren mit den vorbestimmten Charakteristika, analog zu einem Konfigurationsschnappschuss. Das Abbild
18 umfasst Information über den Speicher und die Register einer tatsächlichen oder hypothetischen Basismaschine nach der Hochfahrzeit. - Beim Start wird die in der speziellen Plattenpartition
14 enthaltene Information in den Systemspeicher22 übertragen, wie von Block20 angedeutet. Auf diese Art und Weise ist es nicht notwendig, den normalen Betriebssystemhochfahrvorgang zu durchlaufen, weil diese Funktion für die Grundkonfiguration in der Tat im Voraus ausgeführt wurde. Als Ergebnis kann der Betriebssystembetrieb schneller begonnen werden. - Besonders bei offenen Betriebssystemen wie Windows® kann die Hochfahrzeit wegen der Anzahl von Konfigurationen, die untersucht und gespeichert werden müssen, beträchtlich sein. In einer veranschaulichenden Ausführungsform kann die Datei, die mit dem virtuellen Abbild assoziiert ist, relativ groß sein. Beispielsweise kann in einem System mit einer großen Anzahl von unterschiedlichen Hardware- und Softwarekonfigurationseinstellungen das Abbild eine relativ große Datenmenge aufweisen. Deswegen kann die Nutzung von Funktionen mit sehr niedrigem Pegel zum Codieren der Datei wünschenswert sein, die sehr schnell gelesen werden können. Daher kann die Initiierungszeit für ein System wie das Windows®-Betriebssystem von einer Zeitdauer in der Größenordnung einer Minute oder so auf eine Zeit in der Größenordnung von Sekunden bei gängigen Übertragungsraten von Festplatten reduziert werden.
- Ein Beispiel für den Betrieb einer veranschaulichenden Ausführungsform könnte einen Aufsatzcomputer umfassen, der einen Fernsehtuner und ein Videospiel in einem Bildschirm in einer Bildschirmbildanzeige betreibt. Wenn ein Neustart des Systems notwendig wird, wäre ein nahtloses Eintreten des Übergangs wünschenswert. Und zwar wäre ein Neustart des Systems wünschenswert, ohne dass der Bediener eine signifikante Veränderung im Videospiel oder im Fernsehbild feststellt.
- Durch schnelles Übertragen eine Abbildes des Betriebssystems zum Systemspeicher und Erlangen der aktuellen Einstellungen können beide Anzeigen aufrechterhalten werden. Die aktuellen Einstellungsinformationen könnten die Anwendungen (z.B. das Videospiel, den Spielstand, den Fernsehtuner und die Kanaleinstellung) umfassen.
- Dieses Abbild könnte in viel kürzerer Zeit geladen werden, als zum Neustart eines offenen Betriebssystems für den Computer erforderlich wäre. Durch Übertragen des Abbildes und der Software zum Implementieren des Abbildes kann das System schnell gestartet werden, ohne in einer maßgeblichen Art und Weise auf die Erwartungen des Bedieners störend einzuwirken.
- Wiederum in Bezug auf
1 umfasst die spezielle Plattenpartition14 auch ein neues Basisabbild16 . Das Abbild16 kann nach einem Wechsel der Software- oder Hardwarekonfiguration des Computersystems gespeichert werden. Das Computersystem kann zum automatischen Speichern dieser Veränderungen im Speicherplatz16 eingerichtet werden, so dass das Betriebssystem unter Beachtung der neuen Software- und Hardwarekonfiguration schnell wieder initialisiert werden kann, wann immer es notwendig ist. - Dieser Ansatz ist grundsätzlich verschieden von dem, der in gängigen offenen Betriebssystemen verwendet wird. Weil diese Systeme offene Systeme sind, beginnen sie jedesmal bei einem Neustart oder einer Wieder-Initiierung des Systems mit dem Abfragen aller Einstellungen und Konfigurationen. Das dauert einige Zeit, sichert aber die Berücksichtigung einen großen Anzahl von Variationen, ohne verschiedene Betriebssysteme für verschiedene Umstände zu erfordern. Der in
1 gezeigte Ansatz funktioniert im Wesentlichen gegensätzlich. Er erfasst ein anfängliches virtuelles Abbild und passt dieses Abbild danach je nach Notwendigkeit neu an. Tatsächlich trifft er eine Annahme über eine Grundkonfiguration, speichert dieses Abbild zum Vermeiden der Notwendigkeit einer komplizierten Hochfahrsequenz, und modifiziert dieses Abbild dann, wie es durch die Entwicklung des Computersystems notwendig wird. - Ein beispielhafter Ablauf für ein schnelles Initiierungsprogramm, gezeigt in
2 , beginnt mit dem Bereitstellen eines offenen Betriebssystems, wie in Block120 angedeutet. Danach wird ein Basisabbild wie hier beschrieben gebildet und gespeichert, wie in den Blöcken122 und124 gezeigt. Nachdem das System hochgefahren ist (Block126 ), wird das Abbild in den Speicher geladen (Block128 ). Die Steuerung wird dann an das Betriebssystem übertragen, wie in Block130 angezeigt. - Ein beispielhaftes Computersystem
23 , gezeigt in3 , umfasst einen mit dem Systemspeicher22 verbundenen Prozessor24 . Der Prozessor24 und der Systemspeicher22 können durch eine Brücke26 mit einem Bus28 verbunden sein. Der Bus28 kann jeder konventioneller Bus sein, der in Computersystemen verwendet wird, wie der Peripheral-Component-Interconnect(PCI)-Bus. In der dargestellten Ausführungsform können Videogeräte30 , zum Beispiel ein Fernsehtuner oder ein Monitor, mit dem Bus28 verbunden sein. Eine zweite Brücke32 ist ebenfalls zwischen Bus28 und einen anderen Bus34 gekoppelt. Der Bus34 kann ein konventioneller Extended-Industry-System-Architecture(EISA)-Bus oder jeder andere konventionelle Bus sein. In der dargestellten Ausführungsform verbindet eine Eingangs-/Ausgangsschnittstelle36 den Bus34 mit einer Maus40 und einer Tastatur38 . Ebenso schließt eine Schnittstelle42 eine Festplatte10 an, die die vorher beschriebenen Dateien12 ,16 und18 enthält. - Andere Computersysteme einschließlich solcher, die als Aufsatzcomputer verwendet werden, können unter Verwendung der Abbilder
16 und18 initiiert oder neugestartet werden. Diese Geräte könnten dieselbe allgemeine Konfiguration haben wie oben beschrieben, könnten aber beispielsweise Geräte zum Bereitstellen von mehr Videofunktionen30 haben. Die Aufsatzcomputer weisen ein Modem für Internetverbindungen auf und akzeptieren einen Bus wie einen Universal-Serial-Bus (USB) zum Anschließen wünschenswerter Peripheriegeräte wie einer Tastatur, Disketten- oder CD-ROM-Laufwerke usw. Normalerweise verwenden sie ein Fernsehgerät als Monitor. - Nun in Bezug auf
4 , enthält das Basisabbild18 einen virtuellen Gerätetreiber (VxD)102 , eine Anwendung-Programm-Schnittstelle (API)100 und einen VxD und Ausführung102 . Die VxD API100 kann zum Beispiel die Geräteeingangs/Ausgangssteuerungs-API sein, die mit den Windows®-32Bit-Betriebssystemen bereitgestellt wird. Die API100 initiiert den VxD102 und veranlasst den VxD102 dazu, das Basisabbild18 oder das neue Abbild16 zu erzeugen. - Die zugehörigen Anwendungen
106 sind kritische Programmanwendungen, die vorteilhaft in einer nahtlosen Weise sogar nach einem Absturz ablaufen. Beispielsweise in einem Aufsatzcomputer laufen die für eine digitale Fernsehfunktion verantwortlichen Anwendungsprogramme wünschenswerterweise in einer nahtlosen Art und Weise, so dass der Bediener im Fall eines Absturzes, beispielsweise bei einer Windows®-Anwendung wie einem Spiel, den Absturz bei seinem oder ihrem digitalen Fernsehbild nicht bemerken würde. Diese zugehörigen Anwendungen106 können mit dem Abbild16 oder18 , der API100 und dem VxD und Ausführung102 geladen werden. - Der virtuelle Maschinenmanager (VMM)
104 ist ein bei Windows®-32Bit-Betriebssystemen verfügbarer Manager. Der VxD102 kann den VMM104 nach Anwendungsstatusinformationen abfragen. Beispielsweise kann der VxD102 den VMM104 verwenden, um zu entscheiden, ob ein Absturz stattgefunden hat. Ein VMM-Befehl kann eingehakt werden, um festzustellen, ob eine allgemeine Schutzverletzung oder eine Programmfehleranzeige ausgegeben wurde, was die Entdeckung eines Absturzes anzeigt. - Das Register
112 ist eine Zustandsdatenbank, so wie die Windows®-Registrierung. Die Registrierung112 ist nicht Teil des Abbildes16 oder18 , sondern stellt die neuesten Informationen über die Hardware- und Softwarekonfigurationen bereit. Sie wird vom Abbild18 verwendet, um das System (nach einem Absturz) mit allen Einstellungen zurückzubringen, die direkt vor dem Absturz existierten. In anderen Worten können bei der Wiederherstellung des Systems die letzten Einstellungen unter Verwendung von durch die zugehörigen Anwendungen106 von der Registrierung112 erhaltenen Informationen abgerufen werden. Zum Beispiel kann bei einer Aufsatzcomputeranwendung der beim Absturz gesehene Fernsehkanal von der Registrierung112 erhalten werden. - Der gemeinsame Speicher
110 ermöglicht dem Basisabbild18 , mit dem Systemmanagementmodus(SMM)speicher108 zu kommunizieren. Wie in4 angedeutet, läuft der SMM in einem geschützten Systemmanagementspeicherbereich. Dieser Bereich existiert im Ring 0 und ist stark geschützt. Daher können der VxD und die Ausführung102 eventuell nicht direkt auf den SMM-Speicher108 zugreifen. Auf einen gemeinsamer Speicher110 wird von VxD102 zugegriffen. Der gemeinsame Speicher kann vorteilhaft dem Betriebssystem, so wie dem Windows®-Betriebssystem, unbekannt sein. Wenn der gemeinsame Speicher110 nicht speicherkonform zum Betriebssystem ist, kann das Betriebssystem nicht auf ihn zugreifen. Jedoch kann der VxD102 auf den Speicher110 zugreifen, um Kommunikation zwischen dem Systemmanagementmodusspeicher108 und dem VxD und Ausführung102 zuzulassen. - Ein Programm zum Verhindern von Systemversagen, gezeigt in
5 , beginnt mit dem Bilden eines Abbildes einer Grundkonfiguration, wie in Block132 angezeigt. Das Abbild wird gespeichert (Block134 ). Wenn ein Programmfehler entdeckt wird (Raute136 ), wird das Abbild geladen (Block138 ). - Nun in Bezug auf
6 , wird das Abbild16 oder18 durch die Ausführung102 erzeugt. Der VxD und Ausführung102 werden an einem Punkt aufgerufen, an dem die zugehörigen Anwendungen und die Bedienershell geladen und zum Abfragen des VxD API100 nach einem Aufwachsignal bereit sind. Das Abbild kann den vollständigen Speicherzustand der Maschine einschließlich Hardwareregistern des Prozessors und der Geräte enthalten, zusammen mit einigen Systemdateien. Das Abbild kann in der Computerherstellungsanlage erzeugt werden, aber neue Abbilder können durch denselben VxD-Aufruf erzeugt werden, beispielsweise bei einer Änderung der Systemkonfiguration. Beispielsweise wäre das Speichern eines neuen Abbildes wünschenswert, wenn eine neue zugehörige Anwendung hinzugefügt werden würde. - Wenn gewünscht wird, das Abbild zum Beispiel nach einem Systemabsturz wiederherzustellen, lädt der SMM das Abbild in den Systemspeicher
22 und gibt die Steuerung an den VxD102 weiter, wie in Block108 angezeigt. Der VxD102 vervollständigt die Wiederherstellung und kehrt dann von dem Eintrag in der API100 , wo er aufgerufen wurde, zurück. Die zugehörigen Anwendungen106 sind dann bereit zum Einsatz und dürfen weiterlaufen. Sie fragen jeweils den VxD und Ausführung102 durch die API100 ab, wie von den Pfeilen "A" angedeutet, stellen fest, dass sie wach sind, und rufen ihre Konfigurationszustände ab. Dadurch scheinen für den Bediener die zugehörigen Anwendungen nahtlos abzulaufen. Sie erscheinen quasi ununterbrochen im selben Zustand, in dem sie vor dem Crash waren. - In der Tat ist der VxD fähig, die Funktionalitäten des Kernlevels des Windows®-Betriebssystems zu ergänzen und zu erweitern. Natürlich kann dieselbe Funktionalität auch in den Betriebssystemkern geschrieben werden, wenn man Zugang zum Betriebssystemkern hat. Durch Einsatz des VxD kann eine gewünschte Funktionalität zu existierenden Betriebssystemkernen hinzugefügt werden.
- Die Verwendung des virtuellen Abbildes in Verbindung mit Betriebssysteminitiierung, veranschaulicht in
7 , kann in bestimmten Ausführungsformen beginnen, nachdem das DOS (disk operating system)-Booten vervollständigt ist. Wenn gewünscht, kann eine verkürzte DOS-Bootsequenz durch Entfernen einer Vielzahl von nicht wesentlichen Abläufen initiiert werden. Beispielsweise kann die ganze oder ein Teil der POST-Routine unterdrückt werden. Wie in Block50 gezeigt, beginnt die Initiierungssequenz mit einem schnellen DOS-Booten im Realmodus. Bei Block52 schaltet die Bootsequenz in den geschützten Modus, und die DOS-Bootsequenz wird fortgesetzt. - Bei Block
54 beginnt die Betriebssysteminitiierungssequenz. Anfangs kann die Sequenz, wie in Schritt56 angedeutet, in den Systemmanagementmodus schalten. Die Verwendung des Systemmanagementmodus kann vorteilhaft sein, weil er in einem stark geschützten Adressraum arbeitet. Auerdem fährt der SMM trotz einer Anzahl relativ schwerwiegender Systemfehler fort, zu operieren. - Als nächstes prüft die Betriebssysteminitiierungssequenz, ob das Betriebssystem zum erste Mal initiiert worden ist, wie in Raute
58 angezeigt. Wenn das der Fall ist, wird ein Erstes-Mal-Geladen-Flag geändert, so dass das System beim nächsten Mal weiß, dass das Betriebssystem nicht zum ersten Mal initiiert wurde (siehe Block60 ). - Wurde das Betriebssystem nicht zum ersten Mal geladen, wird bei Raute
62 eine Überprüfung in einer Konfigurationsdatenbank nach irgendwelchen Veränderungen der Computerkonfiguration gegenüber der Grundkonfiguration durchgeführt. Eine Möglichkeit zum Implementieren dieser Funktion ist das Setzen eines Flags bei jedem Neustart des Systems. Die Überprüfung bei Block62 kann dann entscheiden, ob das Flag einen Neustart anzeigt, was die Generierung eines neuen Basisabbildes nahelegt. Wenn das Flag nicht gesetzt ist, springt der Ablauf weiter, und die Ausführung102 wird ausgeführt (Block68 ). Wenn Änderungen gemacht worden sind, wird bei64 ein neues Basisabbild generiert und bei66 gespeichert. Das gespeicherte Abbild wird dann in den Systemspeicher22 (Block67 ) übertragen, und die Ausführung wird ausgeführt (Block68 ). - Die Echtzeitausführung
102 vollführt Planung, lädt Programme und lässt sie zusammen ablaufen. Sie umfasst einige, aber nicht alle Funktionalitäten eines Echtzeitbetriebssystems (Real Time Operating System, RTOS). Ein RTOS kann auch beispielsweise externe Geräte verwalten. Daher umfasst ein RTOS eine Ausführung. - Die Echtzeitausführung
102 läuft in Ring 0 unter anderen, besser sichtbaren Prozessen ab. Sie wird zum Ermöglichen einer Ausweitung des Betriebssystemkerns verwendet, der eventuell nicht für die hier beschriebene Funktionalität zugänglich (nach der Tat) ist, weil er vorprogrammiert ist. Die Ausführungsfunktionalität könnte jedoch bei der Entwicklung eines neuen Betriebssystems in den Kern integriert werden. Die Ausführung implementiert dann die Betriebssystemfunktionalität mit der Hilfe einer speziellen Plattenpartition14 . - Die Bereitstellung des virtuellen Abbildes ist nicht nur bei der Initiierung nützlich, sondern auch bei der Vielzahl von Umständen, die einen Neustart des Betriebssystems erforderlich machen. Der wichtigste Umstand ist ein Programmfehler oder -absturz. Ein Absturz ist ein Programmfehler, der von Hardware- oder Softwareproblemen verursacht wird. Ein Programm kann in Reaktion auf eine Ausnahme, eine Endlosschleife, eine Wettbewerbssituation, einen Ressourcenmangel oder eine Speicherverletzung abstürzen.
- Normalerweise schaltet der Bediener beim Absturz einer Anwendung das System aus und startet es in der Hoffnung neu, dadurch das Problem zu beheben. Ebenso könnte der Bediener einfach das Computersystem neustarten, wenn er mit einer gegebenen Situation nicht zurechtkommt, um herauszufinden, ob das Problem dadurch gelöst wird. In jedem Fall ist durch die Verwendung des virtuellen Abbildes eine schnelle und effiziente Überwindung dieser Probleme in einer nahtlosen Art und Weise möglich. Es ist insofern eine nahtlose Lösung, als der Bediener oft keine oder wenig Ahnung hat, was tatsächlich passiert ist, und vielleicht nie eine korrigierende Aktion ausführen muss.
- Ein beispielhaftes Softwareprogramm zum Implementieren des oben beschriebenen Programms, gezeigt in
8 , schließt den Schritt des Bildens eines Abbildes einer Basissystemkonfiguration (Block140 ) mit ein. Als nächstes wird ein virtueller Gerätetreiber erstellt, wie in Block142 angedeutet, und das in Block140 gebildete Abbild sowie der in Block142 erstellte Gerätetreiber werden gespeichert, was in Block144 angezeigt wird. Wenn eine schnelle Aktivierung gewünscht wird, werden das Abbild und der virtuelle Gerätetreiber geladen, wie in Blöcken146 und148 dargestellt. - In Bezug auf
9 entscheidet der Kern bei Raute70 , ob ein Absturz stattgefunden hat oder nicht. Wenn der Kern in Betrieb ist und entscheidet, dass ein Absturz stattgefunden hat, kann der Kern korrigierende Aktionen vornehmen, wie in Block72 gezeigt. Wenn der Kern nicht in Betrieb ist oder keinen Absturz ermittelt hat, wird bei Raute74 überprüft, ob der Systemmanagementmodus den Absturz festgestellt hat. - Der Systemmanagementmodus überwacht eine Anzahl verschiedener Absturzumstände und ermittelt routinemäßig eine Vielzahl verschiedener Fehler. Andere Systemfehlerdetektoren, einschließlich der wechselnd als Herzschlagüberwachungen, Watchdog-Timer und Absturzdetektoren beschriebenen, können ebenso verwendet werden. In jedem Fall entdecken die Systeme irgendein Fehlersymptom wie ein Hängen, ein Fehlen von Busoperationen oder ein anderes System, das mit einem Absturz verbunden ist.
- Wenn bei Raute
74 entweder vom Systemverwaltungmodus oder auf eine andere Weise ein Absturz entdeckt wird, wird bei Raute76 eine Überprüfung durchgeführt, ob eine Bewältigung des Problems allein durch Schließen der Anwendung möglich ist oder nicht. Ist dies der Fall, wird die Anwendung bei Block72 lediglich geschlossen. Der Systemverwaltungsmodus oder der andere Absturzdetektor kann einen Cache haben, der über verschiedene, möglicherweise auftretende Fehler Informationen bereitstellt. Der Cache, der auf dem Festplattenlaufwerk10 gespeichert werden kann, stellt Informationen über die beste Art und Weise für die Behandlung dieser Fehler bereit. Gehört der Fehler zu denen, bei welchen das Problem allein durch Schließen der Anwendung bewältigt werden kann, wäre eine Ausführung dieses Ansatzes normalerweise wünschenswert. - Wenn die gespeicherte Cacheinformation nahe legt, dass ein einfaches Schließen der Anwendung nicht möglich ist, wird bei Raute
78 eine Überprüfung ausgeführt, ob die Ausführung ausgeführt werden sollte oder nicht. Wiederum wird der Cache überprüft, um zu entscheiden, ob der Einsatz des virtuellen Abbildes das Problem bewältigen wird oder nicht. Wenn nicht, geht der Ablauf weiter zu einem Reset80 , und das System wird in einer konventionellen Weise zurückgesetzt. Wenn die Cacheinformation andeutet, dass das virtuelle Abbild zum Bewältigen des Problems verwendet werden könnte, wird der VxD initiiert, wie in Block82 angezeigt. Danach wird in Block84 das virtuelle Abbild aufgerufen, und die Ausführung übernimmt bei86 die Steuerung. Die Ausführung bringt das System unter Verwendung des vordefinierten virtuellen Abbildes hoch, wie es ursprünglich in das System geladen wurde, oder wie es wie zuvor beschrieben modifiziert wurde, um geänderten Systemkonfigurationen Rechnung zu tragen. - Daher kann das virtuelle Abbild eines Basisabbildes oder eines neuen Basisabbildes nicht nur die Initiierung des Betriebssystems beschleunigen, sondern auch ein nützliches Werkzeug für die Absturzbehandlung bereitstellen. Zusätzlich kann das virtuelle Abbild bei vielen Anwendungen, einschließlich des Aufsatzcomputers, normale Rechnerabläufe in einer Weise anpassen, die einen nahtlosen Eindruck beim Bediener hinterlässt. Und zwar bemerkt der Bediener vielleicht nie die mit der Initiierung verbundene Zeitverzögerung, oder der Bediener kann nach dem meisten Absturzumständen effektiv vor nachteiligen Folgen des Absturzes bewahrt werden. Beispielsweise bei Aufsatzcomputern beeinträchtigt der Absturz das normale Fernsehbild meist nicht, weil er schnell bearbeitet wird.
- Während die Erfindung in Bezug auf eine begrenzte Anzahl von Ausführungsformen beschrieben wurde, wird der Fachmann zahlreiche Modifikationen und Abwandlungen annehmen. Es ist beabsichtigt, dass die beigefügten Ansprüche all solche Modifikationen und Abwandlungen abdecken, die in den Bereich der Erfindung fallen.
Claims (8)
- Verfahren zum Verhindern eines Computersystemfehlers, wobei das Computersystem einen Systemspeicher und einen Speicher aufweist, und wobei ein offenes Betriebssystem in einem solchen Computersystem implementiert ist, welches umfaßt: Bilden eines Abbildes einer speziellen Computersystemkonfiguration umfassend Parameter für das Betriebssystem, um das Computersystem zu betreiben, wobei das Abbild Information über den Speicher und die Register des Computersystems umfaßt, welche während der Betriebssystem-Bootsequenz für das Computersystem erstellt wird; Speichern des Abbildes im Speicher; Erfassen eines Fehlers eines Programms, welches auf dem Betriebssystem läuft; und wenn ein Programmfehler erfaßt wird, automatisches Laden des Abbildes in den Systemspeicher.
- Verfahren nach Anspruch 1, welches ein automatisches Aktualisieren des Abbildes umfaßt, um Veränderungen der Systemkonfiguration zu berücksichtigen.
- Verfahren nach Anspruch 1, welches ein Laden des Abbildes in einem geschützten Modus umfaßt.
- Verfahren nach Anspruch 3, welches ein Laden des Abbildes im Systemmanagementmodus umfaßt.
- Verfahren nach Anspruch 1, welches ein Bereitstellen von Information darüber umfaßt, wie verschiedene Programmfehler zu behandeln sind, und ein Prüfen der Information, wenn ein Programmfehler ermittelt wird.
- Verfahren nach Anspruch 1, bei welchem ein virtueller Gerätetreiber läuft, das Abbild auf den Systemspeicher übertragen wird und eine Ausführung abläuft, welche die Steuerung von dem Kernbereich nach einem Programmfehler übernimmt.
- Verfahren nach Anspruch 1, welches ein Speichern des Abbildes des Betriebssystems während des Verfahrens zur Herstellung des Computersystems umfaßt.
- Verfahren nach Anspruch 1, welches ein Speichern eines virtuellen Gerätetreibers zusammen mit dem Abbild umfaßt.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/070,419 US6173417B1 (en) | 1998-04-30 | 1998-04-30 | Initializing and restarting operating systems |
US70419 | 1998-04-30 | ||
PCT/US1999/008032 WO1999057632A2 (en) | 1998-04-30 | 1999-04-13 | Initializing and restarting operating systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69923085D1 DE69923085D1 (de) | 2005-02-10 |
DE69923085T2 true DE69923085T2 (de) | 2005-12-08 |
Family
ID=22095171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69923085T Expired - Lifetime DE69923085T2 (de) | 1998-04-30 | 1999-04-13 | Initialisieren und wiederanlaufen von betriebssystemen |
Country Status (11)
Country | Link |
---|---|
US (2) | US6173417B1 (de) |
EP (1) | EP1137987B1 (de) |
JP (1) | JP3598272B2 (de) |
KR (1) | KR100430468B1 (de) |
CN (1) | CN1118750C (de) |
AT (1) | ATE286606T1 (de) |
AU (1) | AU3492299A (de) |
DE (1) | DE69923085T2 (de) |
GB (1) | GB2353381B (de) |
TW (1) | TW428143B (de) |
WO (1) | WO1999057632A2 (de) |
Families Citing this family (173)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19752615C1 (de) * | 1997-11-27 | 1999-04-08 | Siemens Nixdorf Inf Syst | Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems |
US6675233B1 (en) * | 1998-03-26 | 2004-01-06 | O2 Micro International Limited | Audio controller for portable electronic devices |
US6895448B2 (en) * | 1998-03-26 | 2005-05-17 | O2 Micro, Inc. | Low-power audio CD player for portable computers |
US6954804B2 (en) * | 1998-03-26 | 2005-10-11 | Micro, Inc. | Controller for portable electronic devices |
KR100283243B1 (ko) * | 1998-05-11 | 2001-03-02 | 구자홍 | 운영체제의 부팅방법 |
US6922831B1 (en) * | 1998-06-04 | 2005-07-26 | Gateway Inc. | Method and system for providing software utilizing a restore medium and a network |
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US8234477B2 (en) * | 1998-07-31 | 2012-07-31 | Kom Networks, Inc. | Method and system for providing restricted access to a storage medium |
US6336194B1 (en) | 1998-10-29 | 2002-01-01 | International Business Machines Corporation | Program products for repositioning an input/output device without knowledge of current positioning of the device |
US6343335B1 (en) * | 1998-10-29 | 2002-01-29 | International Business Machines Corporation | System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry |
US6339799B1 (en) * | 1998-10-29 | 2002-01-15 | International Business Machines Corporation | Method of repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry |
US6360334B1 (en) * | 1998-11-30 | 2002-03-19 | Rockwell Collins, Inc. | Method and apparatus for verifying a software configuration of a distributed system |
US6295611B1 (en) * | 1998-12-14 | 2001-09-25 | Sun Microsystems, Inc.. | Method and system for software recovery |
US6487718B1 (en) * | 1999-03-31 | 2002-11-26 | International Business Machines Corporation | Method and apparatus for installing applications in a distributed data processing system |
US6453461B1 (en) * | 1999-06-09 | 2002-09-17 | Compaq Information Technologies Group, L.P. | Method and apparatus for testing ASL plug and play code in an ACPI operating system |
US6446139B1 (en) * | 1999-06-28 | 2002-09-03 | Adaptec, Inc. | Multiple chip single image BIOS |
EP1085396A1 (de) * | 1999-09-17 | 2001-03-21 | Hewlett-Packard Company | Betrieb von gesicherten Zustand in einer Computerplattform |
US6584587B1 (en) * | 1999-10-14 | 2003-06-24 | Sony Corporation | Watchdog method and apparatus |
US7089300B1 (en) * | 1999-10-18 | 2006-08-08 | Apple Computer, Inc. | Method and apparatus for administering the operating system of a net-booted environment |
US7337360B2 (en) * | 1999-10-19 | 2008-02-26 | Idocrase Investments Llc | Stored memory recovery system |
US6594780B1 (en) * | 1999-10-19 | 2003-07-15 | Inasoft, Inc. | Operating system and data protection |
US7111307B1 (en) | 1999-11-23 | 2006-09-19 | Microsoft Corporation | Method and system for monitoring and verifying software drivers using system resources including memory allocation and access |
US6754855B1 (en) * | 1999-12-01 | 2004-06-22 | Microsoft Corporation | Automated recovery of computer appliances |
US6883120B1 (en) * | 1999-12-03 | 2005-04-19 | Network Appliance, Inc. | Computer assisted automatic error detection and diagnosis of file servers |
US6636963B1 (en) * | 1999-12-30 | 2003-10-21 | Cardiac Pacemakers, Inc. | Quick starting for microprocessor-based system by retrieving a target state memory image and a target state data structure from an image storage medium |
US6487464B1 (en) * | 2000-02-25 | 2002-11-26 | Intel Corporation | Power-on software for robust boot |
US6934817B2 (en) * | 2000-03-31 | 2005-08-23 | Intel Corporation | Controlling access to multiple memory zones in an isolated execution environment |
US6957332B1 (en) * | 2000-03-31 | 2005-10-18 | Intel Corporation | Managing a secure platform using a hierarchical executive architecture in isolated execution mode |
US6769058B1 (en) * | 2000-03-31 | 2004-07-27 | Intel Corporation | Resetting a processor in an isolated execution environment |
US6728907B1 (en) * | 2000-04-14 | 2004-04-27 | Microsoft Corporation | System and method for self-diagnosing system crashes |
US6560719B1 (en) * | 2000-05-17 | 2003-05-06 | Unisys Corporation | Method for recovery of original registry key file data |
US6715016B1 (en) * | 2000-06-01 | 2004-03-30 | Hitachi, Ltd. | Multiple operating system control method |
US7130930B1 (en) * | 2000-06-16 | 2006-10-31 | O2 Micro Inc. | Low power CD-ROM player with CD-ROM subsystem for portable computer capable of playing audio CDs without supply energy to CPU |
US6976162B1 (en) | 2000-06-28 | 2005-12-13 | Intel Corporation | Platform and method for establishing provable identities while maintaining privacy |
US7793111B1 (en) | 2000-09-28 | 2010-09-07 | Intel Corporation | Mechanism to handle events in a machine with isolated execution |
EP1195679A1 (de) * | 2000-10-06 | 2002-04-10 | Hewlett-Packard Company, A Delaware Corporation | Betriebssystemwiederanlauf mit externem Sicherungsmedia in einer kopflosen Computerinstanz |
GB2367656A (en) * | 2000-10-06 | 2002-04-10 | Hewlett Packard Co | Self-repairing operating system for computer entities |
US6757838B1 (en) * | 2000-10-13 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Hardware independent implementation of computer system BIOS recovery |
US7089449B1 (en) * | 2000-11-06 | 2006-08-08 | Micron Technology, Inc. | Recovering a system that has experienced a fault |
US7526349B2 (en) * | 2000-12-01 | 2009-04-28 | O2Micro International Limited | Low power digital audio decoding/playing system for computing devices |
US7890741B2 (en) * | 2000-12-01 | 2011-02-15 | O2Micro International Limited | Low power digital audio decoding/playing system for computing devices |
US7522964B2 (en) | 2000-12-01 | 2009-04-21 | O2Micro International Limited | Low power digital audio decoding/playing system for computing devices |
US7522966B2 (en) * | 2000-12-01 | 2009-04-21 | O2Micro International Limited | Low power digital audio decoding/playing system for computing devices |
US7818443B2 (en) * | 2000-12-01 | 2010-10-19 | O2Micro International Ltd. | Low power digital audio decoding/playing system for computing devices |
US7522965B2 (en) * | 2000-12-01 | 2009-04-21 | O2Micro International Limited | Low power digital audio decoding/playing system for computing devices |
US6807630B2 (en) * | 2000-12-15 | 2004-10-19 | International Business Machines Corporation | Method for fast reinitialization wherein a saved system image of an operating system is transferred into a primary memory from a secondary memory |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US6907600B2 (en) | 2000-12-27 | 2005-06-14 | Intel Corporation | Virtual translation lookaside buffer |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
GB0105793D0 (en) * | 2001-03-09 | 2001-04-25 | Ritchie Gordon | Computer system manager |
US6950893B2 (en) | 2001-03-22 | 2005-09-27 | I-Bus Corporation | Hybrid switching architecture |
FR2824646B1 (fr) * | 2001-05-09 | 2003-08-15 | Canal Plus Technologies | Procede de selection d'une image de logiciel executable |
US6883091B2 (en) * | 2001-05-30 | 2005-04-19 | Hewlett-Packard Development Company, L.P. | Reducing boot times via intrusion monitoring |
US7191440B2 (en) * | 2001-08-15 | 2007-03-13 | Intel Corporation | Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor |
US7024555B2 (en) | 2001-11-01 | 2006-04-04 | Intel Corporation | Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment |
US7631196B2 (en) * | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7124273B2 (en) | 2002-02-25 | 2006-10-17 | Intel Corporation | Method and apparatus for translating guest physical addresses in a virtual machine environment |
US7343484B2 (en) * | 2002-03-28 | 2008-03-11 | O2Micro International Limited | Personal computer integrated with personal digital assistant |
US7424623B2 (en) * | 2002-03-28 | 2008-09-09 | O2 Micro International Limited | Personal computer integrated with personal digital assistant |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
CN1293477C (zh) | 2002-04-03 | 2007-01-03 | 鲍尔凯斯特公司 | 为计算机和存储资源的管理使用分离的映像 |
US7565517B1 (en) * | 2002-04-03 | 2009-07-21 | Symantec Corporation | Retargeting a captured image to new hardware while in a pre-boot environment |
EP1351145A1 (de) * | 2002-04-04 | 2003-10-08 | Hewlett-Packard Company | Rechnerfehlerbehebung und Notifizierungssystem |
US7139890B2 (en) | 2002-04-30 | 2006-11-21 | Intel Corporation | Methods and arrangements to interface memory |
US6820177B2 (en) | 2002-06-12 | 2004-11-16 | Intel Corporation | Protected configuration space in a protected environment |
US7142674B2 (en) * | 2002-06-18 | 2006-11-28 | Intel Corporation | Method of confirming a secure key exchange |
US6990656B2 (en) * | 2002-06-27 | 2006-01-24 | Microsoft Corporation | Dynamic metabase store |
US6924667B2 (en) * | 2002-07-19 | 2005-08-02 | O2Micro International Limited | Level shifting and level-shifting amplifier circuits |
NZ520786A (en) * | 2002-08-14 | 2005-06-24 | Daniel James Oaeconnell | Method of booting a computer system using a memory image of the post boot content of the system RAM memory |
US20080059785A1 (en) * | 2002-08-14 | 2008-03-06 | Ti Technologies Limited | Method and apparatus for shutting down a computer system |
US7313684B2 (en) * | 2002-08-14 | 2007-12-25 | T1 Technologies Limited | Method and apparatus for booting a computer system |
US20040059905A1 (en) * | 2002-09-19 | 2004-03-25 | Soulier George R. | Method and apparatus for short-power cycle detection |
US7124322B1 (en) * | 2002-09-24 | 2006-10-17 | Novell, Inc. | System and method for disaster recovery for a computer network |
US7730155B1 (en) * | 2002-10-01 | 2010-06-01 | Apple Inc. | Method and apparatus for dynamically locating resources |
US8336044B2 (en) * | 2002-10-09 | 2012-12-18 | Rpx Corporation | Method and system for deploying a software image |
US7024581B1 (en) | 2002-10-09 | 2006-04-04 | Xpoint Technologies, Inc. | Data processing recovery system and method spanning multiple operating system |
US6895347B2 (en) * | 2002-10-15 | 2005-05-17 | Remote Data Systems, Inc. | Computerized methods for data loggers |
US7165181B2 (en) * | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
US7100037B2 (en) * | 2002-11-27 | 2006-08-29 | Intel Corporation | Method for reducing BIOS resume time from a sleeping state |
US7152169B2 (en) * | 2002-11-29 | 2006-12-19 | Intel Corporation | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state |
US6999913B2 (en) * | 2002-12-10 | 2006-02-14 | John Alan Hensley | Emulated read-write disk drive using a protected medium |
US20040117532A1 (en) * | 2002-12-11 | 2004-06-17 | Bennett Steven M. | Mechanism for controlling external interrupts in a virtual machine system |
US20040117318A1 (en) * | 2002-12-16 | 2004-06-17 | Grawrock David W. | Portable token controlling trusted environment launch |
US6993649B2 (en) | 2002-12-17 | 2006-01-31 | John Alan Hensley | Method of altering a computer operating system to boot and run from protected media |
US20040128345A1 (en) * | 2002-12-27 | 2004-07-01 | Robinson Scott H. | Dynamic service registry |
US7900017B2 (en) | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
US20040128465A1 (en) * | 2002-12-30 | 2004-07-01 | Lee Micheil J. | Configurable memory bus width |
US20040128528A1 (en) * | 2002-12-31 | 2004-07-01 | Poisner David I. | Trusted real time clock |
US7076802B2 (en) | 2002-12-31 | 2006-07-11 | Intel Corporation | Trusted system clock |
US7017039B2 (en) * | 2002-12-31 | 2006-03-21 | John Alan Hensley | Method of booting a computer operating system to run from a normally unsupported system device |
US7500092B2 (en) * | 2003-01-17 | 2009-03-03 | International Business Machines Corporation | Hardware abstraction for set-top box operating systems |
US7340638B2 (en) * | 2003-01-30 | 2008-03-04 | Microsoft Corporation | Operating system update and boot failure recovery |
US20040193953A1 (en) * | 2003-02-21 | 2004-09-30 | Sun Microsystems, Inc. | Method, system, and program for maintaining application program configuration settings |
US7318171B2 (en) * | 2003-03-12 | 2008-01-08 | Intel Corporation | Policy-based response to system errors occurring during OS runtime |
DE10320827A1 (de) * | 2003-05-08 | 2004-12-09 | Siemens Ag | Verfahren zur Softwareanpassung |
US7680957B1 (en) * | 2003-05-09 | 2010-03-16 | Symantec Operating Corporation | Computer system configuration representation and transfer |
US8095783B2 (en) | 2003-05-12 | 2012-01-10 | Phoenix Technologies Ltd. | Media boot loader |
US7136994B2 (en) * | 2003-05-13 | 2006-11-14 | Intel Corporation | Recovery images in an operational firmware environment |
US7822831B2 (en) * | 2003-07-31 | 2010-10-26 | International Business Machines Corporation | Method, system and program product for preserving and restoring mobile device user settings |
US20050044292A1 (en) * | 2003-08-19 | 2005-02-24 | Mckeen Francis X. | Method and apparatus to retain system control when a buffer overflow attack occurs |
US7287197B2 (en) * | 2003-09-15 | 2007-10-23 | Intel Corporation | Vectoring an interrupt or exception upon resuming operation of a virtual machine |
US7739521B2 (en) * | 2003-09-18 | 2010-06-15 | Intel Corporation | Method of obscuring cryptographic computations |
US7610611B2 (en) * | 2003-09-19 | 2009-10-27 | Moran Douglas R | Prioritized address decoder |
CN100334556C (zh) * | 2003-09-30 | 2007-08-29 | 宏达国际电子股份有限公司 | 在中央处理器当机时进行的开机方法及其计算机*** |
US7177967B2 (en) * | 2003-09-30 | 2007-02-13 | Intel Corporation | Chipset support for managing hardware interrupts in a virtual machine system |
US20050080934A1 (en) | 2003-09-30 | 2005-04-14 | Cota-Robles Erik C. | Invalidating translation lookaside buffer entries in a virtual machine (VM) system |
US7636844B2 (en) * | 2003-11-17 | 2009-12-22 | Intel Corporation | Method and system to provide a trusted channel within a computer system for a SIM device |
US20050108171A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform |
US20050108534A1 (en) * | 2003-11-19 | 2005-05-19 | Bajikar Sundeep M. | Providing services to an open platform implementing subscriber identity module (SIM) capabilities |
TWI222566B (en) * | 2003-11-21 | 2004-10-21 | Infowize Technologies Corp | Multimedia real-time system operation method |
US8156343B2 (en) | 2003-11-26 | 2012-04-10 | Intel Corporation | Accessing private data about the state of a data processing machine from storage that is publicly accessible |
US8037314B2 (en) * | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US20050152539A1 (en) * | 2004-01-12 | 2005-07-14 | Brickell Ernie F. | Method of protecting cryptographic operations from side channel attacks |
WO2005078264A1 (ja) * | 2004-02-13 | 2005-08-25 | Bosch Corporation | 車両用データのバックアップ方法 |
US7802085B2 (en) | 2004-02-18 | 2010-09-21 | Intel Corporation | Apparatus and method for distributing private keys to an entity with minimal secret, unique information |
US20050216920A1 (en) * | 2004-03-24 | 2005-09-29 | Vijay Tewari | Use of a virtual machine to emulate a hardware device |
US7356735B2 (en) * | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
US7620949B2 (en) | 2004-03-31 | 2009-11-17 | Intel Corporation | Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment |
US20050240815A1 (en) * | 2004-04-13 | 2005-10-27 | Sony Corporation | Modular imaging of computer software for system install and restore |
US7886136B2 (en) * | 2004-05-21 | 2011-02-08 | Samsung Electronics Co., Ltd. | Computer system, method, and medium for switching operating system |
JP4233492B2 (ja) * | 2004-06-02 | 2009-03-04 | 富士通マイクロエレクトロニクス株式会社 | アドレス変換装置 |
JP2008502988A (ja) * | 2004-06-15 | 2008-01-31 | ティー1 テクノロジーズ リミテッド | コンピュータシステムのブート方法および装置 |
US20050288056A1 (en) * | 2004-06-29 | 2005-12-29 | Bajikar Sundeep M | System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module |
US7305592B2 (en) * | 2004-06-30 | 2007-12-04 | Intel Corporation | Support for nested fault in a virtual machine environment |
US7467328B2 (en) * | 2004-09-03 | 2008-12-16 | Hewlett-Packard Development Company, L.P. | Kernel configuration recovery |
US7853826B2 (en) * | 2004-09-24 | 2010-12-14 | Phoenix Technologies, Ltd. | Operating system transfer and launch without performing post |
US7840962B2 (en) * | 2004-09-30 | 2010-11-23 | Intel Corporation | System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time |
US8146078B2 (en) | 2004-10-29 | 2012-03-27 | Intel Corporation | Timer offsetting mechanism in a virtual machine environment |
US20060100982A1 (en) * | 2004-11-08 | 2006-05-11 | International Business Machines Corporation | Storage configuration loader with automatic error recovery |
US8924728B2 (en) * | 2004-11-30 | 2014-12-30 | Intel Corporation | Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information |
US7529921B2 (en) * | 2004-12-17 | 2009-05-05 | Cardiac Pacemakers, Inc. | Fast initialization of medical device system having multiple operating systems |
US8533777B2 (en) | 2004-12-29 | 2013-09-10 | Intel Corporation | Mechanism to determine trust of out-of-band management agents |
US7509530B2 (en) * | 2005-01-19 | 2009-03-24 | Sonic Solutions | Method and system for use in restoring an active partition |
US7395405B2 (en) * | 2005-01-28 | 2008-07-01 | Intel Corporation | Method and apparatus for supporting address translation in a virtual machine environment |
US7516315B2 (en) * | 2005-03-18 | 2009-04-07 | Research In Motion Ltd. | Electronic device having an alterable configuration and methods of manufacturing and configuring the same |
US7590839B2 (en) * | 2005-03-22 | 2009-09-15 | Qnx Software Systems Gmbh & Co. Kg | System employing fast booting of application programs |
US7430629B2 (en) * | 2005-05-12 | 2008-09-30 | International Business Machines Corporation | Internet SCSI communication via UNDI services |
US7809957B2 (en) | 2005-09-29 | 2010-10-05 | Intel Corporation | Trusted platform module for generating sealed data |
US7500090B2 (en) * | 2005-09-29 | 2009-03-03 | Hewlett-Packard Development Company, L.P. | Operating environment configuration system and method |
US7506203B2 (en) * | 2005-11-10 | 2009-03-17 | International Business Machines Corporation | Extracting log and trace buffers in the event of system crashes |
US20070214345A1 (en) * | 2006-03-10 | 2007-09-13 | Fleming John C | System and method for porting an operating system |
US7950020B2 (en) * | 2006-03-16 | 2011-05-24 | Ntt Docomo, Inc. | Secure operating system switching |
US8014530B2 (en) | 2006-03-22 | 2011-09-06 | Intel Corporation | Method and apparatus for authenticated, recoverable key distribution with no database secrets |
US8234359B2 (en) * | 2006-05-24 | 2012-07-31 | Absolute Software Corp. | System and method for remotely re-imaging a computer system |
US7886190B2 (en) * | 2006-09-29 | 2011-02-08 | Intel Corporation | System and method for enabling seamless boot recovery |
US8131986B2 (en) * | 2006-09-29 | 2012-03-06 | Lenovo (Singapore) Pte. Ltd. | System and method for boot loading of programs within a host operating environment having one or more linked guest operating systems |
US20070143591A1 (en) * | 2007-02-23 | 2007-06-21 | Richard Dellacona | Method for non-destructive restoration of a corrupted operating system |
CN101317784B (zh) * | 2007-06-08 | 2011-09-07 | 深圳迈瑞生物医疗电子股份有限公司 | 多配置模块设备及其模块自动配置方法 |
KR101398935B1 (ko) * | 2008-04-29 | 2014-06-27 | 삼성전자주식회사 | 가상화를 이용한 시스템 복원 방법 및 장치 |
US8843742B2 (en) * | 2008-08-26 | 2014-09-23 | Hewlett-Packard Company | Hypervisor security using SMM |
KR20100041309A (ko) * | 2008-10-14 | 2010-04-22 | 삼성전자주식회사 | 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템 |
WO2010048492A2 (en) * | 2008-10-24 | 2010-04-29 | Citrix Systems, Inc. | Methods and systems for providing a modifiable machine base image with a personalized desktop environment in a combined computing environment |
US8744806B2 (en) | 2008-10-29 | 2014-06-03 | Sevone, Inc. | Scalable performance management system |
US8775780B2 (en) * | 2009-02-27 | 2014-07-08 | Keicy Chung | System for multi-boot of a central processing unit using internal registers that direct an operating system to boot into disjoint memory spaces |
TW201106271A (en) * | 2009-08-14 | 2011-02-16 | Insyde Software Corp | Method of switching different operating systems in computer |
CN102012823A (zh) * | 2009-09-04 | 2011-04-13 | 中兴通讯股份有限公司 | 一种快速重新启动计算机的方法和装置 |
KR101027415B1 (ko) | 2009-12-18 | 2011-04-11 | 한국과학기술원 | 차량용 운영체제의 관리 시스템, 관리 방법 및 오류 검출 방법 |
US8686955B2 (en) * | 2010-03-11 | 2014-04-01 | Apple Inc. | Device, method, and graphical user interface for performing character entry |
US9465601B2 (en) | 2010-04-20 | 2016-10-11 | International Business Machines Corporation | Pluggable activation engine extensions via virtual disks |
KR101731422B1 (ko) * | 2010-10-04 | 2017-04-28 | 삼성전자주식회사 | 가상화 환경에서의 장애 복구 장치 및 방법 |
KR20120036209A (ko) | 2010-10-07 | 2012-04-17 | 삼성전자주식회사 | 컴퓨팅 시스템에서 부트 이미지의 크기를 최적화하는 부팅이미지 생성방법 |
US8495351B2 (en) * | 2010-10-13 | 2013-07-23 | International Business Machines Corporation | Preparing and preserving a system configuration during a hot upgrade |
CN102508734B (zh) * | 2011-09-30 | 2015-06-03 | Tcl集团股份有限公司 | 操作***恢复方法及智能设备 |
US9542172B2 (en) | 2013-02-05 | 2017-01-10 | Apple Inc. | Automatic updating of applications |
US9250922B2 (en) | 2013-02-28 | 2016-02-02 | Qualcomm Incorporated | Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot |
US9261932B2 (en) * | 2013-03-15 | 2016-02-16 | Microchip Technology Incorporated | Minimizing switchover time in a hot swappable program memory |
US9563457B2 (en) | 2013-11-18 | 2017-02-07 | Bitdefender IPR Management Ltd. | Enabling a secure environment through operating system switching |
JP2015114750A (ja) | 2013-12-10 | 2015-06-22 | 富士通株式会社 | 調査用プログラム,情報処理装置及び情報処理方法 |
CN105786547A (zh) * | 2014-12-26 | 2016-07-20 | 中兴通讯股份有限公司 | 一种实现操作***重启的方法和装置 |
CN106126397A (zh) * | 2016-06-19 | 2016-11-16 | 乐视控股(北京)有限公司 | 程序崩溃消息的处理方法及*** |
US10540172B2 (en) * | 2017-07-24 | 2020-01-21 | Sevone, Inc. | System, method, and apparatus for zero downtime operating system transformation |
KR102103593B1 (ko) * | 2019-07-29 | 2020-04-23 | 김창석 | 외장형 운영체제 구동 장치 및 그 방법 |
CN114741233A (zh) * | 2020-12-23 | 2022-07-12 | 华为技术有限公司 | 快速启动方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5089958A (en) | 1989-01-23 | 1992-02-18 | Vortex Systems, Inc. | Fault tolerant computer backup system |
US5179695A (en) | 1990-09-04 | 1993-01-12 | International Business Machines Corporation | Problem analysis of a node computer with assistance from a central site |
US5297282A (en) | 1991-05-29 | 1994-03-22 | Toshiba America Information Systems, Inc. | Resume processing function for the OS/2 operating system |
US5325532A (en) | 1992-09-25 | 1994-06-28 | Compaq Computer Corporation | Automatic development of operating system boot image |
US5696897A (en) * | 1994-01-31 | 1997-12-09 | Sun Microsystems, Inc. | Method and apparatus for a multi-layer system quiescent suspend and resume operation |
US5504905A (en) * | 1994-05-17 | 1996-04-02 | International Business Machines Corporation | Apparatus for communicating a change in system configuration in an information handling network |
US5710930A (en) * | 1995-08-04 | 1998-01-20 | Intel Corporation | Apparatus and a method for allowing an operating system of a computer system to persist across a power off and on cycle |
US5752032A (en) * | 1995-11-21 | 1998-05-12 | Diamond Multimedia Systems, Inc. | Adaptive device driver using controller hardware sub-element identifier |
US5864657A (en) * | 1995-11-29 | 1999-01-26 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system |
US5956507A (en) * | 1996-05-14 | 1999-09-21 | Shearer, Jr.; Bennie L. | Dynamic alteration of operating system kernel resource tables |
AU4353297A (en) | 1996-09-17 | 1998-04-14 | Radisys Corporation | Method and apparatus for encapsulating a protected-mode operating system within a real-time, protected-mode operating system |
US5935242A (en) | 1996-10-28 | 1999-08-10 | Sun Microsystems, Inc. | Method and apparatus for initializing a device |
US5991544A (en) * | 1997-12-09 | 1999-11-23 | Nortel Networks Corporation | Process and apparatus for managing a software load image |
US6098158A (en) * | 1997-12-18 | 2000-08-01 | International Business Machines Corporation | Software-enabled fast boot |
US6101601A (en) * | 1998-04-20 | 2000-08-08 | International Business Machines Corporation | Method and apparatus for hibernation within a distributed data processing system |
-
1998
- 1998-04-30 US US09/070,419 patent/US6173417B1/en not_active Expired - Lifetime
-
1999
- 1999-04-12 TW TW088105795A patent/TW428143B/zh active
- 1999-04-13 WO PCT/US1999/008032 patent/WO1999057632A2/en active IP Right Grant
- 1999-04-13 AU AU34922/99A patent/AU3492299A/en not_active Abandoned
- 1999-04-13 AT AT99916655T patent/ATE286606T1/de not_active IP Right Cessation
- 1999-04-13 DE DE69923085T patent/DE69923085T2/de not_active Expired - Lifetime
- 1999-04-13 JP JP2000547539A patent/JP3598272B2/ja not_active Expired - Lifetime
- 1999-04-13 GB GB0022497A patent/GB2353381B/en not_active Expired - Fee Related
- 1999-04-13 KR KR10-2000-7012023A patent/KR100430468B1/ko not_active IP Right Cessation
- 1999-04-13 EP EP99916655A patent/EP1137987B1/de not_active Expired - Lifetime
- 1999-04-13 CN CN99805640A patent/CN1118750C/zh not_active Expired - Fee Related
- 1999-05-10 US US09/309,178 patent/US6393560B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6393560B1 (en) | 2002-05-21 |
CN1118750C (zh) | 2003-08-20 |
ATE286606T1 (de) | 2005-01-15 |
AU3492299A (en) | 1999-11-23 |
GB2353381A (en) | 2001-02-21 |
JP3598272B2 (ja) | 2004-12-08 |
US6173417B1 (en) | 2001-01-09 |
KR100430468B1 (ko) | 2004-05-10 |
DE69923085D1 (de) | 2005-02-10 |
EP1137987B1 (de) | 2005-01-05 |
CN1299483A (zh) | 2001-06-13 |
GB2353381B (en) | 2003-06-18 |
WO1999057632A2 (en) | 1999-11-11 |
KR20010043130A (ko) | 2001-05-25 |
EP1137987A2 (de) | 2001-10-04 |
JP2002513964A (ja) | 2002-05-14 |
WO1999057632A3 (en) | 1999-12-16 |
TW428143B (en) | 2001-04-01 |
GB0022497D0 (en) | 2000-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69923085T2 (de) | Initialisieren und wiederanlaufen von betriebssystemen | |
DE69428010T2 (de) | Verfahren und Einrichtung zur Sicherung und Rückspeicherung des Zustands eines CPVs | |
DE102007012448B4 (de) | Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung eines System-BIOS | |
DE69635409T2 (de) | Ein rechnersystem mit unbewachter auf-anfrage-verfügbarkeit | |
DE69906995T2 (de) | Hochlauffehler-wiederherstellung | |
DE69620055T2 (de) | Mehrfachbenutzerrechnersystem | |
DE69015084T2 (de) | Rechnersystem mit Steuereinheit zur Steuerung der Energieversorgung einer Speichereinheit. | |
DE60037606T2 (de) | Rechner mit urladungsfähigem sicherem Programm | |
JP3072048B2 (ja) | 計算機システムおよび計算機システムのソフトウェア故障回復方法 | |
DE69733912T2 (de) | Computersystem mit Wiederaufnahmefunktion und Verfahren dafür | |
DE4228755C2 (de) | Unterbrechungseinrichtung für ein Mikroprozessorsystem und zugehöriges Verfahren | |
DE102016200514A1 (de) | Verfahren und Vorrichtungen für gesteuerte Wiederherstellung von Fehlerinformationen zwischen unabhängig voneinander betreibbaren Prozessoren | |
DE69817170T2 (de) | Emulation von unterbrechungsmechanismus in einem multiprozessorsystem | |
DE112005002404T5 (de) | Selbstüberwachung und Aktualisierung von Firmware über ein Netzwerk | |
DE69522034T2 (de) | Rücksetzungsschaltung für elektronische Anordnung | |
DE112013002254T5 (de) | Wiederherstellen aus einer Altbetriebssystemumgebung zu einer UEFI-Preboot-Umgebung | |
DE4309532A1 (de) | Verfahren zur Einrichtung zum Sichern einer Systemabbildung auf eine permanente Speichereinrichtung | |
JPH03278126A (ja) | 計算機システム立上げ方式 | |
DE10296798T5 (de) | SMM-Lader und -Ausführungsmechanismus für Komponentensoftware für mehrere Architekturen | |
DE112004001887B4 (de) | Optimierung der SMI-Behandlung und -Initialisierung | |
DE102005001451A1 (de) | Informationsverarbeitungsvorrichtung und Spannungsversorgungs-Steuerungsverfahren | |
DE102006026714A1 (de) | Verfahren und System zum Aufrechterhalten eines Systemmanagement-BIOS | |
DE10231938A1 (de) | Computersystem mit mehreren Sicherungs-Verwaltungsprozessoren zur Handhabung eines Ausfalls eines eingebetteten Prozessors | |
DE602004007754T2 (de) | Verfahren und Vorrichtung zur Feststellung einer Prozessorenbelastung | |
DE69413625T2 (de) | Informationsverarbeitungssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |