DE69923085T2 - Initialisieren und wiederanlaufen von betriebssystemen - Google Patents

Initialisieren und wiederanlaufen von betriebssystemen Download PDF

Info

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
Application number
DE69923085T
Other languages
English (en)
Other versions
DE69923085D1 (de
Inventor
John Merrill
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE69923085D1 publication Critical patent/DE69923085D1/de
Application granted granted Critical
Publication of DE69923085T2 publication Critical patent/DE69923085T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

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 aus 1 implementieren könnte;
  • 4 ist eine detailliertere schematische Darstellung des Basisbetriebssystemabbildes aus 1;
  • 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 entsprechend 2; 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 Festplattenlaufwerk 10 eine Anzahl von Dateien für ein Betriebssystem, wie das Windows® Betriebssystem, speichern. Typische Dateien 12 wären Bedienerdateien, Registrierungsdateien und andere Betriebssystemdateien. Eine spezielle Partition 14 stellt einen Bereich für ein neues Basisabbild 16 und ein Basisbetriebssystemabbild 18 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 Basisbetriebssystemabbild 18 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 Systemspeicher 22 übertragen, wie von Block 20 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 Plattenpartition 14 auch ein neues Basisabbild 16. Das Abbild 16 kann nach einem Wechsel der Software- oder Hardwarekonfiguration des Computersystems gespeichert werden. Das Computersystem kann zum automatischen Speichern dieser Veränderungen im Speicherplatz 16 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 Block 120 angedeutet. Danach wird ein Basisabbild wie hier beschrieben gebildet und gespeichert, wie in den Blöcken 122 und 124 gezeigt. Nachdem das System hochgefahren ist (Block 126), wird das Abbild in den Speicher geladen (Block 128). Die Steuerung wird dann an das Betriebssystem übertragen, wie in Block 130 angezeigt.
  • Ein beispielhaftes Computersystem 23, gezeigt in 3, umfasst einen mit dem Systemspeicher 22 verbundenen Prozessor 24. Der Prozessor 24 und der Systemspeicher 22 können durch eine Brücke 26 mit einem Bus 28 verbunden sein. Der Bus 28 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äte 30, zum Beispiel ein Fernsehtuner oder ein Monitor, mit dem Bus 28 verbunden sein. Eine zweite Brücke 32 ist ebenfalls zwischen Bus 28 und einen anderen Bus 34 gekoppelt. Der Bus 34 kann ein konventioneller Extended-Industry-System-Architecture(EISA)-Bus oder jeder andere konventionelle Bus sein. In der dargestellten Ausführungsform verbindet eine Eingangs-/Ausgangsschnittstelle 36 den Bus 34 mit einer Maus 40 und einer Tastatur 38. Ebenso schließt eine Schnittstelle 42 eine Festplatte 10 an, die die vorher beschriebenen Dateien 12, 16 und 18 enthält.
  • Andere Computersysteme einschließlich solcher, die als Aufsatzcomputer verwendet werden, können unter Verwendung der Abbilder 16 und 18 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 Videofunktionen 30 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 Basisabbild 18 einen virtuellen Gerätetreiber (VxD) 102, eine Anwendung-Programm-Schnittstelle (API) 100 und einen VxD und Ausführung 102. Die VxD API 100 kann zum Beispiel die Geräteeingangs/Ausgangssteuerungs-API sein, die mit den Windows®-32Bit-Betriebssystemen bereitgestellt wird. Die API 100 initiiert den VxD 102 und veranlasst den VxD 102 dazu, das Basisabbild 18 oder das neue Abbild 16 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 Anwendungen 106 können mit dem Abbild 16 oder 18, der API 100 und dem VxD und Ausführung 102 geladen werden.
  • Der virtuelle Maschinenmanager (VMM) 104 ist ein bei Windows®-32Bit-Betriebssystemen verfügbarer Manager. Der VxD 102 kann den VMM 104 nach Anwendungsstatusinformationen abfragen. Beispielsweise kann der VxD 102 den VMM 104 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 Registrierung 112 ist nicht Teil des Abbildes 16 oder 18, sondern stellt die neuesten Informationen über die Hardware- und Softwarekonfigurationen bereit. Sie wird vom Abbild 18 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 Anwendungen 106 von der Registrierung 112 erhaltenen Informationen abgerufen werden. Zum Beispiel kann bei einer Aufsatzcomputeranwendung der beim Absturz gesehene Fernsehkanal von der Registrierung 112 erhalten werden.
  • Der gemeinsame Speicher 110 ermöglicht dem Basisabbild 18, mit dem Systemmanagementmodus(SMM)speicher 108 zu kommunizieren. Wie in 4 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ührung 102 eventuell nicht direkt auf den SMM-Speicher 108 zugreifen. Auf einen gemeinsamer Speicher 110 wird von VxD 102 zugegriffen. Der gemeinsame Speicher kann vorteilhaft dem Betriebssystem, so wie dem Windows®-Betriebssystem, unbekannt sein. Wenn der gemeinsame Speicher 110 nicht speicherkonform zum Betriebssystem ist, kann das Betriebssystem nicht auf ihn zugreifen. Jedoch kann der VxD 102 auf den Speicher 110 zugreifen, um Kommunikation zwischen dem Systemmanagementmodusspeicher 108 und dem VxD und Ausführung 102 zuzulassen.
  • Ein Programm zum Verhindern von Systemversagen, gezeigt in 5, beginnt mit dem Bilden eines Abbildes einer Grundkonfiguration, wie in Block 132 angezeigt. Das Abbild wird gespeichert (Block 134). Wenn ein Programmfehler entdeckt wird (Raute 136), wird das Abbild geladen (Block 138).
  • Nun in Bezug auf 6, wird das Abbild 16 oder 18 durch die Ausführung 102 erzeugt. Der VxD und Ausführung 102 werden an einem Punkt aufgerufen, an dem die zugehörigen Anwendungen und die Bedienershell geladen und zum Abfragen des VxD API 100 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 VxD 102 weiter, wie in Block 108 angezeigt. Der VxD 102 vervollständigt die Wiederherstellung und kehrt dann von dem Eintrag in der API 100, wo er aufgerufen wurde, zurück. Die zugehörigen Anwendungen 106 sind dann bereit zum Einsatz und dürfen weiterlaufen. Sie fragen jeweils den VxD und Ausführung 102 durch die API 100 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 Block 50 gezeigt, beginnt die Initiierungssequenz mit einem schnellen DOS-Booten im Realmodus. Bei Block 52 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 Schritt 56 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 Block 60).
  • 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 Block 62 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ührung 102 wird ausgeführt (Block 68). Wenn Änderungen gemacht worden sind, wird bei 64 ein neues Basisabbild generiert und bei 66 gespeichert. Das gespeicherte Abbild wird dann in den Systemspeicher 22 (Block 67) übertragen, und die Ausführung wird ausgeführt (Block 68).
  • 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 Plattenpartition 14.
  • 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 (Block 140) mit ein. Als nächstes wird ein virtueller Gerätetreiber erstellt, wie in Block 142 angedeutet, und das in Block 140 gebildete Abbild sowie der in Block 142 erstellte Gerätetreiber werden gespeichert, was in Block 144 angezeigt wird. Wenn eine schnelle Aktivierung gewünscht wird, werden das Abbild und der virtuelle Gerätetreiber geladen, wie in Blöcken 146 und 148 dargestellt.
  • In Bezug auf 9 entscheidet der Kern bei Raute 70, 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 Block 72 gezeigt. Wenn der Kern nicht in Betrieb ist oder keinen Absturz ermittelt hat, wird bei Raute 74 ü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 Raute 76 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 Block 72 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 Festplattenlaufwerk 10 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 Reset 80, 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 Block 82 angezeigt. Danach wird in Block 84 das virtuelle Abbild aufgerufen, und die Ausführung übernimmt bei 86 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)

  1. 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.
  2. Verfahren nach Anspruch 1, welches ein automatisches Aktualisieren des Abbildes umfaßt, um Veränderungen der Systemkonfiguration zu berücksichtigen.
  3. Verfahren nach Anspruch 1, welches ein Laden des Abbildes in einem geschützten Modus umfaßt.
  4. Verfahren nach Anspruch 3, welches ein Laden des Abbildes im Systemmanagementmodus umfaßt.
  5. 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.
  6. 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.
  7. Verfahren nach Anspruch 1, welches ein Speichern des Abbildes des Betriebssystems während des Verfahrens zur Herstellung des Computersystems umfaßt.
  8. Verfahren nach Anspruch 1, welches ein Speichern eines virtuellen Gerätetreibers zusammen mit dem Abbild umfaßt.
DE69923085T 1998-04-30 1999-04-13 Initialisieren und wiederanlaufen von betriebssystemen Expired - Lifetime DE69923085T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US70419 1998-04-30
US09/070,419 US6173417B1 (en) 1998-04-30 1998-04-30 Initializing and restarting operating systems
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 (172)

* Cited by examiner, † Cited by third party
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
US6954804B2 (en) * 1998-03-26 2005-10-11 Micro, Inc. Controller for portable electronic devices
US6895448B2 (en) * 1998-03-26 2005-05-17 O2 Micro, Inc. Low-power audio CD player for portable computers
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
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
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
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
US6769058B1 (en) * 2000-03-31 2004-07-27 Intel Corporation Resetting a processor 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
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
GB2367656A (en) * 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
EP1195679A1 (de) * 2000-10-06 2002-04-10 Hewlett-Packard Company, A Delaware Corporation Betriebssystemwiederanlauf mit externem Sicherungsmedia in einer kopflosen Computerinstanz
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
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
US7522965B2 (en) * 2000-12-01 2009-04-21 O2Micro International Limited Low power digital audio decoding/playing system for computing devices
US7526349B2 (en) * 2000-12-01 2009-04-28 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
US7522966B2 (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
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
US6907600B2 (en) 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
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
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
US7124273B2 (en) 2002-02-25 2006-10-17 Intel Corporation Method and apparatus for translating guest physical addresses in a virtual machine environment
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
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
US7565517B1 (en) * 2002-04-03 2009-07-21 Symantec Corporation Retargeting a captured image to new hardware while in a pre-boot environment
AU2003226220A1 (en) 2002-04-03 2003-10-20 Powerquest Corporation Using disassociated images for computer and storage resource management
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
US7024581B1 (en) 2002-10-09 2006-04-04 Xpoint Technologies, Inc. Data processing recovery system and method spanning multiple operating system
US8336044B2 (en) * 2002-10-09 2012-12-18 Rpx Corporation Method and system for deploying a software image
US6895347B2 (en) * 2002-10-15 2005-05-17 Remote Data Systems, Inc. Computerized methods for data loggers
US7100037B2 (en) * 2002-11-27 2006-08-29 Intel Corporation Method for reducing BIOS resume time from a sleeping state
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
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
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
US7076802B2 (en) 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
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
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
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
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
CN100572782C (zh) * 2004-02-13 2009-12-23 博世株式会社 车辆数据备份方法
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 삼성전자주식회사 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템
CN102197374B (zh) * 2008-10-24 2014-04-02 思杰系统有限公司 用于在组合的计算环境中给可修改的机器基本映像提供个性化桌面环境的方法和系统
US8744806B2 (en) 2008-10-29 2014-06-03 Sevone, Inc. Scalable performance management system
WO2010099529A1 (en) * 2009-02-27 2010-09-02 Keicy Chung Central processing unit capable of multi-boot using 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 乐视控股(北京)有限公司 程序崩溃消息的处理方法及系统
WO2019023227A1 (en) * 2017-07-24 2019-01-31 Sevone, Inc. SYSTEM, METHOD AND APPARATUS FOR OPERATING SYSTEM TRANSFORMATION WITHOUT STOPPING TIME
KR102103593B1 (ko) * 2019-07-29 2020-04-23 김창석 외장형 운영체제 구동 장치 및 그 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
WO1999057632A2 (en) 1999-11-11
US6393560B1 (en) 2002-05-21
JP3598272B2 (ja) 2004-12-08
CN1299483A (zh) 2001-06-13
WO1999057632A3 (en) 1999-12-16
TW428143B (en) 2001-04-01
JP2002513964A (ja) 2002-05-14
KR100430468B1 (ko) 2004-05-10
AU3492299A (en) 1999-11-23
GB2353381B (en) 2003-06-18
CN1118750C (zh) 2003-08-20
KR20010043130A (ko) 2001-05-25
GB2353381A (en) 2001-02-21
DE69923085D1 (de) 2005-02-10
EP1137987B1 (de) 2005-01-05
ATE286606T1 (de) 2005-01-15
EP1137987A2 (de) 2001-10-04
GB0022497D0 (en) 2000-11-01
US6173417B1 (en) 2001-01-09

Similar Documents

Publication Publication Date Title
DE69923085T2 (de) Initialisieren und wiederanlaufen von betriebssystemen
DE102016200514B4 (de) Verfahren und Vorrichtungen für gesteuerte Wiederherstellung von Fehlerinformationen zwischen unabhängig voneinander betreibbaren Prozessoren
DE4309532C2 (de) Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem
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
DE68929536T2 (de) Vorrichtung und Verfahren zur Gewährleistung der Kontinuität des Betriebs in einem System
DE60018807T2 (de) Verfahren und vorrichtung zur wiederherstellung der konfiguration eines rechners
JP3072048B2 (ja) 計算機システムおよび計算機システムのソフトウェア故障回復方法
US5978911A (en) Automatic error recovery in data processing systems
DE69911026T2 (de) Synchronisation von prozessoren in einem fehlertoleranten multi-prozessor-system
DE10296798B4 (de) SMM-Lader und -Ausführungsmechanismus für Komponentensoftware für mehrere Architekturen
DE112010003049T5 (de) Dateisystem für duale Betriebssysteme
DE4228755C2 (de) Unterbrechungseinrichtung für ein Mikroprozessorsystem und zugehöriges Verfahren
DE112005002404T5 (de) Selbstüberwachung und Aktualisierung von Firmware über ein Netzwerk
DE112013002254T5 (de) Wiederherstellen aus einer Altbetriebssystemumgebung zu einer UEFI-Preboot-Umgebung
JPH03278126A (ja) 計算機システム立上げ方式
DE69907709T2 (de) Prozessüberwachung in einem rechnersystem
DE112004001887B4 (de) Optimierung der SMI-Behandlung und -Initialisierung
DE102005001451A1 (de) Informationsverarbeitungsvorrichtung und Spannungsversorgungs-Steuerungsverfahren
DE102006048115A1 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE102006026714A1 (de) Verfahren und System zum Aufrechterhalten eines Systemmanagement-BIOS
DE112004001133T5 (de) Warteschlangen-Sperren mit Monitor-Memory-Wait
DE10231938A1 (de) Computersystem mit mehreren Sicherungs-Verwaltungsprozessoren zur Handhabung eines Ausfalls eines eingebetteten Prozessors
DE602004007754T2 (de) Verfahren und Vorrichtung zur Feststellung einer Prozessorenbelastung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition