DE4026912A1 - Computersystem - Google Patents

Computersystem

Info

Publication number
DE4026912A1
DE4026912A1 DE4026912A DE4026912A DE4026912A1 DE 4026912 A1 DE4026912 A1 DE 4026912A1 DE 4026912 A DE4026912 A DE 4026912A DE 4026912 A DE4026912 A DE 4026912A DE 4026912 A1 DE4026912 A1 DE 4026912A1
Authority
DE
Germany
Prior art keywords
bios
memory
data
access
record
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.)
Ceased
Application number
DE4026912A
Other languages
English (en)
Inventor
Richard Bealkowski
Jun John Wiley Blackledge
Doyle Stanfill Cronk
Richard Alan Dayan
Scott Gerard Kinnear
George D Kovach
Jun Matthew Stephen Palka
Robert Sachsenmaier
Kevin Marshall Zyvoloski
Jerry Duane Dixon
Andrew Boyce Mcneill
Edward Irving Wachtel
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE4026912A1 publication Critical patent/DE4026912A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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 vorliegende Erfindung bezieht sich auf ein Computersystem und insbesondere auf ein Gerät zum Schutz des auf einem Massenspeicher eines Computer­ systems gespeicherten Basis Eingabe-/Ausgabe Systems, im folgenden kurz als BIOS (Basic Input/Output System) bezeichnet.
Personal-Computersysteme haben allgemein eine weit­ verbreitete Verwendung zur Bereitstellung von Com­ puterleistung für viele Segmente der heutigen modernen Gesellschaft gefunden. Personal-Computersysteme können gewöhnlich definiert werden als ein Tisch-, ein auf dem Boden stehender oder als ein tragbarer Mikrocomputer, der aus einer Systemeinheit besteht, die einen einzel­ nen Systemprozessor, einen Anzeigemonitor, eine Tasta­ tur, eine oder mehrere Diskettenlaufwerke, einen Fest­ plattenspeicher und wahlweise einen Drucker umfaßt. Eine der unterscheidenden Eigenschaften dieser Systeme ist die Verwendung einer Mutter- oder Systemplatine, um diese Komponenten elektrisch miteinander zu verbinden. Diese Systeme sind in erster Linie dazu entworfen, um einem einzelnen Benutzer unabhängige Computerleistung zur Verfügung zu stellen und sind für den Kauf durch Einzelpersonen oder kleine Firmen mit einem billigen Preis versehen. Beispiele solcher Personal-Computer­ systeme schließen den IBM Personal Computer AT und das IBM Personal System/2 Modelle 30, 50, 60, 70 und 80 ein.
Diese Systeme können in zwei allgemeine Familien klassifiziert werden. Die erste Familie, auf die ge­ wöhnlich Bezug genommen wird als Modelle der Familie 1 benutzen eine Busleitungsarchitektur für die der IBM Personal Computer AT als Beispiel dient. Die zweite Familie, auf die Bezug genommen wird als Modelle der Familie II, benutzen die MICROKANAL-Busleitungs­ architektur, für die das IBM Personal System/2 Modelle 50 bis 80 als Beispiele dienen.
An frühen Beispielen der Personal-Computersysteme der Familie I, wie an dem IBM Personal Computer, wurde erkannt, daß Softwareverträglichkeit von äußerster Wichtigkeit ist. Um dieses Ziel zu erreichen, wurde eine isolierende Schicht von systemresidentem Code, auf den auch Bezug genommen wird als "MICROCODE", zwischen der Hardware und der Software erstellt. Dieser Code stellte eine funktionsfähige Schnittstelle zwischen dem Anwendungsprogramm/Betriebssystem eines Benutzers und dem Gerät zur Verfügung, um den Benutzer von der Sorge um die Eigenschaften der Hardwaregeräte zu befreien. Schließlich entwickelte sich der Code zu einem BIOS, um das Hinzufügen neuer Geräte zu dem System zu ermög­ lichen, während gleichzeitig das Anwendungsprogramm von den Besonderheiten der Hardware isoliert wurde. Die Wichtigkeit von BIOS war unmittelbar klar, da es den Betreiber eines Gerätes von der Abhängigkeit von be­ stimmten Hardwareeigenschaften des Gerätes befreite und es dem Betreiber des Gerätes eine Zwischenschnitt­ stelle für das Gerät zur Verfügung stellte. Da BIOS ein integraler Teil des Systems war und die Datenübertra­ gung in den und aus dem Systemprozessor steuerte, war es auf der Systemplatine untergebracht und wurde dem Benutzer in einem Festwertspeicher, künftig als ROM (Read Only Memory) bezeichnet, ausgeliefert. Beispiels­ weise belegte das BIOS in dem IBM Personal Computer 8K des ROM, der auf der Platine untergebracht war.
Mit der Einführung neuer Modelle der Personal Computer Familie mußte das BIOS aktualisiert und erweitert werden, um neue Hardware und Eingabe/Ausgabe-Geräte, im folgenden als I/O(Input/Output)-Geräte bezeichnet, an­ zuschließen. Erwartungsgemäß nahm BIOS an Speichergröße zu. Beispielsweise belegte das BIOS in dem IBM Personal Computer AT 32 KBytes des ROM.
Heute werden mit der Entwicklung neuer Technologien Personal-Computersysteme der Modelle der Familie II noch hochentwickelter und werden dem Kunden noch häufiger verfügbar gemacht. Da die Technologie sich rasch ändert und neue I/O-Geräte zu den Personal- Computersystemen hinzugefügt werden, ist die Modifi­ kation des BIOS ein bedeutsames Problem im Entwick­ lungszyklus des Personal-Computersystems geworden.
Beispielsweise wurde mit der Einführung des IBM Personal Systems/2 mit MIKROKANAL-Architektur ein wichtiges neues BIOS, das als erweitertes BIOS oder ABIOS bekannt ist, entwickelt. Um die Software­ kompatibilität aufrecht zu erhalten, mußte jedoch das BIOS der Modelle der Familie I eingeschlossen sein in das der Modelle der Familie II. Das BIOS der Familie I wurde bekannt als Kompatibilitäts-BIOS oder als CBIOS. Wie jedoch vorher im Hinblick auf den IBM Personal Computer AT erläutert wurde, waren nur 32 KBytes des ROM auf der Platine untergebracht. Glücklicherweise konnte das System auf 96 KBytes des ROM erweitert werden. Unglücklicherweise erwies sich dies wegen der Systemgrenzen als die maximale für BIOS verfügbare Kapazität. Glücklicherweise konnten auch mit der Hinzufügung von ABIOS, ABIOS und CBIOS noch in 96 K des ROM hineingezwängt werden, jedoch blieb nur ein kleiner Prozentsatz der 96 K ROM-Fläche verfügbar.
Aufgrund dieser Probleme und dem Wunsch, die Modifikation in dem BIOS der Familie II so spät wie möglich in dem Entwicklungszyklus vorzunehmen, wurde es notwendig, Teile des BIOS auszulagern. Dies wurde durch Speichern von Teilen des BIOS auf einer Massenspeicher­ einrichtung wie einer Festplatte erreicht. Da eine Platte sowohl Schreib- als auch Lesemöglichkeiten zur Verfügung stellt, wurde es möglich, den eigentlichen BIOS Code auf der Platte zu modifizieren. Während die Platte einen schnellen und wirksamen Weg zur Speiche­ rung des BIOS Code zur Verfügung stellt, erhöht sie trotzdem stark die Wahrscheinlichkeit, daß der BIOS Code verfälscht wird. Da das BIOS ein integraler Teil des Betriebssystems ist, könnte ein verfälschtes BIOS zu verheerenden Ergebnissen und in vielen Fällen zu einem vollständigen Ausfall und zur Fehlfunktion des Systems führen. Daher wurde es ganz offenkundig, das ein Mittel zum Verhindern einer unberechtigten Modi­ fikation des BIOS Codes auf der Festplatte höchst wünschenswert war.
Ein Ziel der vorliegenden Erfindung ist es, ein Computersystem zur Verfügung zu stellen, das ein Gerät besitzt zum Verhindern unberechtigter Änderungen des BIOS, das auf einer Speichereinrichtung mit direktem Zugriff in dem Computersystem gespeichert ist.
Gemäß der vorliegenden Erfindung wird jetzt ein Computersystem zur Verfügung gestellt, das umfaßt:
einen Systemprozessor,
einen Festwertspeicher,
einen Hauptspeicher mit wahlfreiem Zugriff,
und zumindest eine Speichereinrichtung mit direktem Zugriff, die in der Lage ist, eine Reihe von Daten­ sätzen zu speichern.
Dieses System ist weiter dadurch gekennzeichnet, daß es enthält:
Initialisierungsmittel, die in dem Festwertspeicher enthalten sind, zum Initialisieren des Systempro­ zessors und zum Erzeugen eines Rückstellsignals für die Speichereinrichtung mit direktem Zugriff, um den Zugriff zu den Datensätzen zuzulassen,
Lademittel zum Laden von Datensätzen aus der Speicher­ einrichtung mit direktem Zugriff in den Hauptspeicher, wobei das Lademittel in einer schützbaren Unterteilung der Speichereinrichtung mit direktem Zugriff gespeichert ist und das Lademittel aus der Speicher­ einrichtung mit direktem Zugriff durch die Initialisie­ rungsmittel in den Hauptspeicher gelesen wird, wobei das Initialisierungsmittel das Lademittel aktiviert,
ein im Hauptspeicher untergebrachtes Programmabbild, das in der schützbaren Unterteilung der Speichereinrichtung mit direktem Zugriff gespeichert ist, wobei das im Hauptspeicher untergebrachte Pro­ grammabbild von der Speichereinrichtung mit direktem Zugriff durch das Lademittel gelesen wird, um ein im Hauptspeicher untergebrachtes Programm zu erzeugen,
Schutzmittel zum Schützen der schützbaren Unterteilung der Speichereinrichtung mit direktem Zugriff, wobei das Schutzmittel durch das im Hauptspeicher untergebrachte Programm aktiviert wird, um unberechtigten Zugriff auf das Lademittel und das im Hauptspeicher untergebrachte Programmabbild zu verhindern.
Bei Betrachtung der vorliegenden Erfindung von einem zweiten Gesichtspunkt wird jetzt zur Verfügung gestellt, ein Gerät zum Schützen des BIOS in einem Personal-Computersystem, das einen Prozessor besitzt zum Aktivieren eines Betriebssystems, einen Festwertspeicher, einen Speicher mit wahlfreiem Zugriff und zumindest eine Speichereinrichtung mit direktem Zugriff, wobei das Gerät enthält:
eine Steuereinheit für die Speichereinrichtung mit direktem Zugriff, die ein Schutzmittel für das Schützen einer Region der Speichereinrichtung mit direktem Zugriff besitzt, wobei das Schutzmittel Zugriff auf die geschützte Region als Antwort auf ein Rückstellsignal erlaubt,
einen Stamm-Start-Datensatz, der in der geschützten Region der Speichereinrichtung mit direktem Zugriff enthalten ist, wobei der Stamm-Start-Datensatz ein aktivierbares Codesegment besitzt, das Mittel zum Laden von Information aus der Speichereinrichtung mit direktem Zugriff besitzt,
einen ersten Teil des BIOS, der in dem Festwertspeicher enthalten ist, wobei der erste Teil des BIOS den Systemprozessor initialisiert und das Erzeugen eines Rückstellsignals für die Steuereinheit der Speichereinrichtung mit direktem Zugriff einleitet, um dem Systemprozessor den Zugriff zum Stamm-Start- Datensatz zu ermöglichen, um den Stamm-Start-Datensatz in den Speicher mit wahlfreiem Zugriff zu laden,
einen restlichen Teil des BIOS, der in der geschützten Region der Speichereinrichtung mit direktem Zugriff enthalten ist, wobei der restliche Teil des BIOS durch das aktivierbare Codesegment in den Speicher mit wahl­ freiem Zugriff als Antwort auf den ersten Teil des BIOS geladen wird, der die Steuerung dem aktivierbaren Code­ segment überträgt, wobei das aktivierbare Codesegment die Steuerung dem restlichen Teil des BIOS überträgt, um das Betriebssystem zu starten und der restliche Teil des BIOS das Schutzmittel aktiviert, um den Zugriff zu der geschützten Region der Speichereinrichtung mit direktem Zugriff während normaler Operationen des Betriebssystems zu verhindern.
Bei Betrachtung der Erfindung von einem dritten Gesichtspunkt wird jetzt ein Gerät zum Schutz eines im System untergebrachten Programms eines Personal- Computersystems zur Verfügung gestellt, wobei das Computersystem besitzt: einen Prozessor, einen Festwertspeicher, einen Hauptspeicher und zumindest eine Speichereinrichtung mit direktem Zugriff, die in der Lage ist, eine Reihe von Datensätzen zu speichern, wobei das Gerät enthält:
ein erstes Programm, das in dem Festwertspeicher ent­ halten ist, wobei das erste Programm den Systempro­ zessor initialisiert und weiter das Erzeugen eines Rückstellsignals für die Speichereinrichtung mit direktem Zugriff aufruft, um Zugriff auf die Datensätze zu ermöglichen,
ein Lademittel zum Laden von Datensätzen aus der Speichereinrichtung mit direktem Zugriff in den Hauptspeicher, wobei das Lademittel auf einer schützbaren Unterteilung der Speichereinrichtung mit direktem Zugriff gespeichert ist und das Lademittel von der Speichereinrichtung mit direktem Zugriff in den Hauptspeicher durch das erste Programm gelesen wird, wobei das erste Programm das Lademittel aktiviert,
ein im Hauptspeicher untergebrachtes Programmabbild, das in der schützbaren Unterteilung der Speicherein­ richtung mit direktem Zugriff gespeichert ist, wobei das im Hauptspeicher untergebrachte Programmabbild von der Speichereinrichtung mit direktem Zugriff in den Hauptspeicher durch das Lademittel gelesen wird, um ein im Hauptspeicher untergebrachtes Programm zu erzeugen,
Mittel zum Schützen der schützbaren Unterteilung der Speichereinrichtung mit direktem Zugriff, wobei das Schutzmittel durch das im Hauptspeicher untergebrachte Programm aktiviert wird, um einen unberechtigten Zugriff auf das Lademittel und das im Hauptspeicher untergebrachte Programmabbild zu verhindern.
Beim Betrachten der Erfindung von einem vierten Gesichtspunkt wird jetzt ein Gerät zur Verfügung gestellt zum Verhindern des unberechtigten Zugriffs zum BIOS, das in einer Massenspeichereinrichtung in einem Personalcomputersystem gespeichert ist, welches einen Systemprozessor besitzt, wobei die Massenspeicherein­ richtung eine Reihe von Datenblocks speichern kann, die zwischen einem ersten und zweiten Datenblockextrem definiert sind, von dem Systemprozessor auf das BIOS in der Form einzelner definierbarer angrenzender Datenblocks zugegriffen werden kann und das BIOS sich von einem dritten Datenblockextrem zu einem vierten Datenblockextrem erstreckt, wobei die dritten und vierten Extreme durch die ersten und zweiten Extreme begrenzt sind und das Gerät enthält:
  • a) ein Steuergerät, das zwischen dem Systemprozessor und der Massenspeichereinrichtung angeschlossen ist, um eine Eingabe- oder Ausgabeanforderung des Systemprozessors in die physikalischen Eigenschaf­ ten der Massenspeichereinrichtung umzuformen, wobei die Eingabe-/Ausgabeanforderungen in der Form einzeln definierbarer angrenzender Daten­ blocks vorliegen,
  • b) erste logische Mittel zum Aufrufen der Erzeugung eines Rückstellsignals,
  • c) zweite logische Mittel zum Erzeugen eines zweiten Signals zum Verhindern des Zugriffs auf den BIOS Code, und
  • d) Schutzmittel, die auf das Rückstellsignal ansprechen, um den Zugriff auf den BIOS Code zu gestatten, wobei das Schutzmittel auf das zweite Signal zum Festsetzen einer Grenze an dem dritten Datenblock anspricht, um den Zugriff auf den BIOS Code während der normalen Ausführung von authorisierten Programmen durch den System­ prozessor zu verhindern.
Unter Betrachtung der vorliegenden Erfindung von einem fünften Gesichtspunkt wird jetzt ein Verfahren zum Schützen des BIOS in einem Personal-Computersystem zur Verfügung gestellt, wobei das System einen Systemprozessor, einen Festwertspeicher, einen Speicher mit wahlfreiem Zugriff und eine Speichereinrichtung mit direktem Zugriff einschließt, und das Verfahren die folgenden Schritte enthält:
  • a) Speichern eines ersten Teiles des BIOS in dem Festwertspeicher, wobei der erste Teil des BIOS Mittel zum Initialisieren des Systems einschließt,
  • b) Speichern eines Stamm-Start-Datensatzes und eines restlichen Teiles des BIOS in einer schützbaren Unterteilung auf der Speichereinrichtung mit direktem Zugriff, wobei der restliche Teil des BIOS während normaler Operationen des Personal- Computersystems in dem Speicher mit wahlfreiem Zugriff untergebracht ist,
  • c) Initialisieren des Systems und Aufrufen der Erzeugung eines Rückstellsignals, das zu der Speichereinrichtung mit direktem Zugriff geschickt wird,
  • d) Entfernen des Schutzes für die schützbare Unterteilung, um dem Systemprozessor es zu erlauben, auf dem Stamm-Start-Datensatz und den restlichen Teil des BIOS zuzugreifen, wobei der Schutz als Antwort auf das Rückstellsignal weg­ fällt,
  • e) Laden des Stamm-Start-Datensatzes in den Speicher mit wahlfreiem Zugriff, wobei der Stamm-Start- Datensatz ein aktivierbares Codesegment einschließt,
  • f) Übertragen der Steuerung zu dem aktivierbaren Codesegment, um den restlichen Teil des BIOS in den Speicher mit wahlfreiem Zugriff zu laden, und
  • g) Übertragen der Steuerung auf den restlichen Teil des BIOS in dem Speicher mit wahlfreiem Zugriff, wobei der restliche Teil des BIOS den Schutz auf der schützbaren Unterteilung festlegt, um den unberechtigten Zugriff zum Stamm-Start-Datensatz und zum restlichen Teil des BIOS zu verhindern, die in der schützbaren Unterteilung auf der Speichereinrichtung mit direktem Zugriff gespeichert sind.
Vorzugsweise schließt das Verfahren weiter den Schritt (h) des Überprüfens ein, ob der Stamm-Start-Datensatz mit dem System kompatibel ist, durch Vergleichen von in dem ersten Teil des BIOS gespeicherten Daten mit ent­ sprechenden Daten, die im Stamm-Start-Datensatz gespeichert sind.
Weiterhin schließt ein bevorzugtes Verfahren der vor­ liegenden Erfindung den Schritt (i) der Überprüfung ein, ob der Stamm-Start-Datensatz mit dem Systemprozessor kompatibel ist, durch Vergleichen von Daten des Festwertspeichers mit entsprechenden Daten, die in dem Stamm-Start-Datensatz enthalten sind.
In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung, das später beschrieben wird, wird ein Computersystem zur Verfügung gestellt, das enthält: einen Systemprozessor, einen Speicher mit wahlfreiem Zugriff, einen Festwertspeicher und zumin­ dest eine Speichereinrichtung mit direktem Zugriff.
Eine Steuereinheit für den Speicher mit direktem Zugriff, die zwischen dem Systemprozessor und der Speichereinrichtung mit direktem Zugriff angeschlossen ist, enthält ein Mittel zum Schützen einer Region der Speichereinheit. Die geschützte Region der Speicherein­ richtung enthält einen Stamm-Start-Datensatz und ein BIOS Abbild. Als Antwort auf ein Rückstellsignal erlaubt das Schutzmittel den Zugriff zu der geschützten Region, um das Laden des Stamm-Start-Datensatzes in den Speicher mit wahlfreiem Zugriff zu ermöglichen. Im Betrieb lädt der Stamm-Start-Datensatz weiter das BIOS Abbild in den Speicher mit wahlfreiem Zugriff. Das BIOS, das sich jetzt im Speicher mit wahlfreiem Zugriff befindet, wird aktiviert und erzeugt ein zweites Signal, das das Schutzmittel aktiviert um den Zugriff auf die Region auf der Platte zu verhindern, die den Stamm-Start-Datensatz und das BIOS Abbild enthält. BIOS startet dann das Betriebssystem, um den Betrieb des Systems zu beginnen.
Insbesondere enthält der Festwertspeicher einen ersten Teil des BIOS. Der erste Teil des BIOS initialisiert den Systemprozessor, die Speichereinrichtung mit direktem Zugriff und stellt das Schutzmittel zurück, um den Stamm-Start-Datensatz von der geschützten Region oder Unterteilung auf der Speichereinrichtung mit direktem Zugriff in den Speicher mit wahlfreiem Zugriff einzulesen. Der Stamm-Start-Datensatz schließt ein Datensegment und ein ausführbares Codesegment ein. Das Datensegment schließt Daten ein, die die Systemhardware darstellen und eine Systemkonfiguration, die durch den Stamm-Start-Datensatz unterstützt wird. Der erste BIOS-Teil bestätigt, daß der Stamm-Start-Datensatz mit der Systemhardware kompatibel ist durch Überprüfen, daß die Daten vom Datensegment des Stamm-Start-Datensatzes übereinstimmen mit den Daten, die im ersten BIOS-Teil enthalten sind und die die Konfiguration aus System­ prozessor, Systemplatine und I/O-Platine darstellen.
Wenn der Stamm-Start-Datensatz mit der Systemhardware kompatibel ist, steuert der erste BIOS-Teil den System­ prozessor so, daß er das ausführbare Codesegment des Stamm-Start-Datensatzes ausführt. Das ausführbare Code­ segment bestätigt, daß die Systemkonfiguration sich nicht geändert hat und lädt den BIOS-Teil aus der Speichereinrichtung mit direktem Zugriff in den Speicher mit wahlfreiem Zugriff. Das ausführbare Code­ segment überprüft dann die Echtheit des restlichen BIOS-Teiles und veranlaßt den Systemprozessor mit dem Ausführen des BIOS, das sich jetzt im Speicher mit wahlfreiem Zugriff befindet, zu beginnen. Das jetzt im Speicher mit wahlfreiem Zugriff sich befindende BIOS erzeugt das zweite Signal zum Schutz der Plattenunterteilung, die das restliche BIOS enthält und startet dann das Betriebssystem, um den Betrieb des Personal-Computersystems zu beginnen. Die Unterteilung, die das restliche BIOS enthält, ist geschützt, um den Zugriff zu dem BIOS Code auf der Platte zu verhindern, und damit die Integrität des BIOS Codes zu schützen.
Ein Computersystem gemäß der vorliegenden Erfindung umfaßt ein Gerät zum Schützen des auf die Platte geladenen BIOS, das billig zu implementieren und im wesentlichen für den Endbenutzer transparent ist, so daß es die kommerzielle Akzeptanz des Computersystems nicht beeinträchtigt.
Ein Ausführungsbeispiel der vorliegenden Erfindung wird jetzt in Verbindung mit den Zeichnungen beschrieben.
Fig. 1 zeigt eine Schnittansicht eines Personal- Computersystems, die eine Systemplatine zeigt, die mit einer Vielzahl von Speichereinrichtungen mit direktem Zugriff verbunden ist;
Fig. 2 zeigt ein Systemblockdiagramm für das Personal-Computersystem nach Fig. 1;
Fig. 3 zeigt eine Speichereinteilung für den ROM BIOS, der auf der Platine enthalten ist;
Fig. 4 zeigt ein Flußdiagramm, das den Gesamtprozeß für das Laden eines BIOS-Abbildes von einer Speichereinrichtung mit direktem Zugriff beschreibt;
Fig. 5 zeigt das Satzformat für den Stamm-Start- Datensatz;
Fig. 6A zeigt ein Flußdiagramm, das die Funktion der Routine für das einleitende Laden des BIOS beschreibt, die im folgenden als IBL (Initial BIOS Load)-Routine bezeichnet wird;
Fig. 6B zeigt ein Flußdiagramm, das die Schritte für das Laden eines BIOS-Abbildes von einer Festplatte beschreibt;
Fig. 6C zeigt ein Flußdiagramm, das die Schritte für das Laden des BIOS von einer Diskette beschreibt,;
Fig. 6D zeigt ein Flußdiagramm, das mehr Einzelheiten beim Prüfen der Kompatibilität zwischen dem Stamm-Start-Datensatz und der Platine/dem Prozessor beschreibt;
Fig. 7 zeigt ein genaueres Flußdiagramm, das die Funktion des aktivierbaren Codesegmentes des Stamm-Start-Datensatzes beschreibt;
Fig. 8 ist ein Blockdiagramm für die Steuereinheit der Speichereinrichtung mit direktem Zugriff;
Fig. 9 ist ein Flußdiagramm, das die Funktion einer Plattensteuereinheit zeigt, um das Medium für das erstmalige Laden des BIOS, nachfolgend kurz bezeichnet als IBL (Initial BIOS Load), das auf einer Platteneinheit gespeichert ist, zu schützen; und
Fig. 10 ist ein Flußdiagramm, das ein Verfahren zum Schutz des BIOS Abbildes zeigt.
Die folgende genauere Beschreibung bezieht sich auf die beste gegenwärtig ins Auge gefaßte Art für das Ausführen der Erfindung. Diese Beschreibung soll nicht in einem begrenzenden Sinn verstanden werden, sondern wurde lediglich zum Zweck der Erläuterung der allge­ meinen Prinzipien der Erfindung erstellt, da der Schutzumfang der Erfindung am besten durch die ange­ fügten Patentansprüche definiert wird.
Es wird auf die Zeichnungen und insbesondere auf die Fig. 1 Bezug genommen. Dort ist eine perspektivische Schnittansicht eines Personal-Computersystems 10 dargestellt, das eine Reihe von Speichereinrichtungen 12-16 mit direktem Zugriff besitzt, die im folgenden als DASD (direct access storage devices) bezeichnet werden, und die mit einer Systemplatine 24 durch eine Reihe von I/O-Steckern 18 verbunden sind. Ein Netzteil 22 liefert elektrische Leistung in bekannter Weise an das System 10. Die Platine 24 enthält einen Systempro­ zessor, der unter der Steuerung von Computerinstruk­ tionen arbeitet, um Informationen einzugeben, zu ver­ arbeiten und auszugeben.
Im Gebrauch ist das Personal-Computersystem 10 haupt­ sächlich entworfen für das Zurverfügungstellen von unabhängiger Computerleistung für eine kleine Gruppe von Benutzern oder einen einzelnen Benutzer und es ist mit einem billigen Preis für den Kauf durch Einzelper­ sonen oder kleine Firmen versehen. Im Betrieb arbeitet der Systemprozessor unter einem Betriebssystem wie z. B. IBM′s OS/2 Betriebssystem oder PC DOS. Diese Art von Betriebssystem schließt eine BIOS-Schnittstelle zwischen den DASD 12-16 und dem Betriebssystem ein. Ein Teil des BIOS ist nach der Funktion in Module unter­ teilt und auf ihn wird nachstehend Bezug genommen als ROM-BIOS. BIOS stellt eine Schnittstelle zwischen der Hardware und der Software des Betriebssystems zur Ver­ fügung, um Programmierer oder Benutzer zu befähigen, ihre Maschinen ohne ein in die Tiefe gehendes Wissen der Funktion eines bestimmten Gerätes zu programmieren.
Beispielsweise erlaubt ein BIOS-Diskettenmodul einem Programmierer, das Diskettenlaufwerk ohne eine in die Tiefe gehende Kenntnis der Hardware des Diskettenlauf­ werkes zu programmieren. Daher kann eine Anzahl von Diskettenlaufwerken, die von verschiedenen Gesell­ schaften entworfen und hergestellt werden, in dem System benutzt werden. Dies verringert nicht nur die Kosten des Systems 10, sondern erlaubt es einem Be­ nutzer, aus einer Reihe von Diskettenlaufwerken eines auszuwählen.
Vor dem Verbinden der oben beschriebenen Struktur mit der vorliegenden Erfindung mag eine Zusammenfassung der allgemeinen Funktion des Personal-Computersystems 10 einen Rückblick wert sein. Es wird auf Fig. 2 Bezug genommen. Dort ist ein Blockdiagramm des Personal- Computersystems 10 gezeigt. Fig. 2 erläutert die Kompo­ nenten der Platine 24 und die Verbindung der Platine 24 mit den I/O-Steckern 18 und anderer Hardware des Personal-Computersystems. Auf der Platine 24 befindet sich der Systemprozessor 26, der durch eine lokale Bus­ leitung 28 mit einer Speichersteuereinheit 30 verbunden ist, die weiter mit einem Speicher 32 mit wahlfreiem Zugriff, nachfolgend als RAM (random access memory) bezeichnet, verbunden ist. Während jeder geeignete Mikroprozessor verwendet werden kann, ist ein geeigne­ ter Mikroprozessor der 80386, der von INTEL verkauft wird.
Während die vorliegende Erfindung nachfolgend mit besonderer Bezugnahme auf das Blockdiagramm des Systems der Fig. 2 beschrieben wird, versteht es sich am Beginn der Beschreibung, die folgt, daß damit zu rechnen ist, daß die Verfahren gemäß der vorliegenden Erfindung mit anderen Hardwarekonfigurationen der Platine benutzt werden können. Beispielsweise könnte der System­ prozessor ein INTEL 80286 oder 80486 Mikroprozessor sein.
Zugreifbar durch den Prozessor ist eine Platinen­ identifizierungsnummer, als Platinen-ID bezeichnet. Die Platinen-ID ist für die Platine eindeutig und identi­ fiziert die Art der verwendeten Platine. Beispiels­ weise kann die Platinen-ID fest verdrahtet sein durch Verwendung von Schaltern, um durch einen I/O-Anschluß des Systemprozessors 26 gelesen zu werden.
Die lokale Busleitung 28 ist desweiteren über eine Bussteuereinheit 34 mit einem Nur-Lese-Speicher 36, nachfolgend als ROM (read only memory) bezeichnet, verbunden, der sich auf der Platine 24 befindet.
Ein zusätzlicher nichtflüchtiger Speicher 58, im folgenden abgekürzt als NVRAM (non-volatile random access memory) bezeichnet, ist mit dem Mikroprozessor 26 durch eine serielle/parallele Schnittstelle 40 verbunden, die weiter mit der Bussteuereinheit 34 verbunden ist. Der nichtflüchtige Speicher kann in CMOS Technologie mit Batteriesicherung ausgeführt sein, um die Information festzuhalten, wann immer der Strom von dem System entfernt wird. Da das ROM normalerweise auf der Platine untergebracht ist, werden Modell- und Untermodellwerte, die im ROM gespeichert sind, dazu benutzt, um den Systemprozessor und die Systemplatinen-I/O-Konfiguration zu identifizieren. Daher identifizieren diese Werte den Prozessor und die Platinen-I/O-Konfiguration. Der NVRAM wird benutzt, um die Systemkonfigurationsdaten zu speichern. D. h. der NVRAM enthält Werte, die die augenblickliche Kon­ figuration des Systems beschreiben. Z. B. enthält der NVRAM Informationen, die die Kapazität einer Festplatte oder einer Diskette, die Art der Anzeige, den Speicherumfang, die Zeit, das Datum, usw. beschreiben. Außerdem werden die Modell- und Untermodellwerte, die im ROM gespeichert, sind immer dann in den NVRAM kopiert, wenn ein spezielles Konfigurationsprogramm, wie die SET Normalkonfiguration, ausgeführt wird. Der Zweck des SET Konfigurationsprogramms ist es, Werte, die die Konfiguration des Systems kennzeichnen, im NVRAM zu speichern. Daher sind für ein richtig konfiguriertes System die Modell- und Untermodellwerte im NVRAM gleich den Modell- und Untermodellwerten, die im ROM gespeichert sind. Wenn diese Werte nicht gleich sind, zeigt dies an, daß die Konfiguration des Systems geändert wurde. Es wird auf Fig. 6D Bezug genommen, wo dieses Merkmal in Kombination mit dem Laden des BIOB ausführlicher erläutert ist.
Die Erläuterung wird mit Bezug auf Fig. 2 fortgesetzt. Die Bussteuereinheit 34 ist weiter über die I/O- Platinen-Busleitung 43 mit den I/O-Steckern 18, der seriellen/parallelen Schnittstelle 40 und einer peripheren Steuereinheit 42 verbunden. Die periphere Steuereinheit 42 ist weiter mit einer Tastatur 44, einer Maus 46, einer Diagnosekonsole 47 und einer Diskettensteuereinheit 64 verbunden. Außer mit dem NVRAM 58 ist die serielle/parallele Schnittstelle 40 weiter mit einem seriellen Anschlußpunkt 48 und einem parallelen Anschlußpunkt 50 verbunden, um Informationen für einen Drucker, ein Gerät für gedruckte Maschinenausgabe usw. einzugeben oder von ihnen ent­ gegenzunehmen. In bekannter Weise kann die lokale Busleitung 28 mit einer Steuereinheit 52 für einen schnellen Zwischenspeicher, der im folgenden als Cache bezeichnet wird, einem Cache-Speicher 68, einem Co-Prozessor 54 und einer DMA-Steuereinheit 56 ver­ bunden sein.
Der Systemprozessor 26 steuert seine interne Funktion wie auch die Schnittstellen mit anderen Elementen des Personal-Computersystems 10. Beispielsweise ist der Systemprozessor 26 derart dargestellt, als mit einer I/O-Karte 60 für die Schnittstelle eines kleinen Computersystems, kurz als SCSI (small computer system interface) bezeichnet, verbunden, die weiter verbunden ist mit einem DASD, wie beispielsweise einem Festplattenlaufwerk 62. Es versteht sich, daß ein anderes als ein SCSI Plattenlaufwerk als Festplatte gemäß der Erfindung benutzt werden kann. Zusätzlich zu der Festplatte 62 kann der Systemprozessor 26 mit der Diskettensteuereinheit 64 konfrontiert werden, die ein Diskettenlaufwerk 66 steuert. Bezüglich der Terminolo­ gie ist daran zu denken, daß der Ausdruck "Festplatte" ein Festplattenlaufwerk 62 beschreibt, während der Ausdruck "Diskette" auch ein Diskettenlaufwerk 66 beschreibt.
Vor der vorliegenden Erfindung konnte das ROM 36 den gesamten BIOS Code enthalten, der als Schnittstelle zwischen dem Betriebssystem und der Hardwareperipherie diente. Gemäß einem Gesichtspunkt der vorliegenden Er­ findung ist der ROM 36 jedoch zweckensprechend verändert, um nur einen Teil des BIOS zu speichern. Dieser Teil, wenn er von dem Systemprozessor 26 aktiviert wird, gibt entweder von der Festplatte 62 oder der Diskette 66 einen zweiten oder restlichen Teil des BIOS ein auf den nachstehend als BIOS Abbild Bezug genommen wird.
Dies BIOS Abbild ersetzt den ersten Teil des BIOS, und da es ein wesentlicher Teil des Systems ist, ist es im Hauptspeicher, wie dem RAM 32, untergebracht. Der erste Teil des BIOS (ROM-BIOS), der im ROM 36 gespeichert ist, wird generell im Hinblick auf die Fig. 3 und 4 erklärt und genauer im Hinblick auf die Fig. 6A-6D. Der zweite Teil des BIOS (BIOS Abbild) wird erläutert im Hinblick auf die Fig. 5, und das Laden des BIOS Abbildes mit Bezug auf die Fig. 7. Ein anderer Vorteil des Ladens eines BIOS Abbildes von dem DASD ist die Fähigkeit, das BIOS direkt in den RAM 32 des Systempro­ zessors zu laden. Da das Zugreifen auf den RAM viel schneller erfolgt als das Zugreifen auf den ROM, wird eine bedeutsame Verbesserung der Verarbeitungsgeschwin­ digkeit des Computersystems erzielt.
Die Erklärung geht jetzt weiter mit der Operation des BIOS im ROM 36 und mit dem Vorgang des Ladens des BIOS Abbildes entweder von der Festplatte oder Diskette. Im allgemeinen führt der ROM-BIOS eine Vorprüfung des Systems durch und lädt einen BIOS Stamm-Start-Datensatz in den RAM. Der Stamm-Start-Datensatz schließt ein Datensegment ein, das Gültigkeitsprüfinformation aufweist, und ein Codesegment, das aktivierbaren Code besitzt. Der aktivierbare Code benutzt die Daten­ information, um die Hardwarekompatibilität und die Systemkonfiguration zu bestätigen. Nach dem Prüfen auf Haidwarekompatibilität und richtiger Systemkonfigura­ tion lädt der aktivierbare Code das BIOS Abbild in den RAM. Das BIOS Abbild tritt an die Stelle des ROM-BIOS und lädt das Betriebssystem, um den Betrieb der Maschine zu beginnen.
Aus Gründen der Klarheit wird auf das aktivierbare Codesegment des Stamm-Start-Datensatzes Bezug genommen als MBR (master boot record) Code, während auf das Datensegment Bezug genommen wird als auf MBR Daten.
Es wird auf Fig. 3 Bezug genommen. Dort ist ein Hauptspeicherabbild gezeigt, das die verschiedenen Codemodule zeigt, aus denen der ROM-BIOS besteht. Der ROM-BIOS schließt ein einen Modul 70 für den Selbsttest beim Einschalten Stufe I, nachfolgend kurz als POST (power on self-test) bezeichnet, einen Modul 72 für das erstmalige Laden des BIOS, nachfolgend kurz als IBL (Initial BIOS Load) bezeichnet, einen Diskettenmodul 74, einen Festplattenmodul 76, einen Videomodul 78, einen Modul 80 für die Diagnosekonsole und Hardwarekompatibilitätsdaten 82. Kurz gesagt, POST Stufe I 70 führt die Systemvorinitialisierung und Tests durch. Die IBL Routine 72 bestimmt, ob das BIOS Abbild von der Festplatte oder Diskette zu laden ist, prüft die Kompatibilität und lädt den Stamm-Start- Datensatz. Der Diskettenmodul 74 stellt die Eingabe/Ausgabefunktionen für ein Diskettenlaufwerk zur Verfügung. Der Festplattenmodul 76 steuert die Ein-/Ausgabe für eine Festplatte oder dergleichen. Der Videomodul 78 steuert Ausgabefunktionen für eine Video-I/O-Steuereinheit, die weiter mit einer Video­ anzeige verbunden ist. Modul 80 für eine Diagnose­ konsole sorgt für die Steuerung eines diagnostischen Anzeigegerätes des Systems. Die Hardwarekompatibili­ tätsdaten schließen solche Werte wie Systemmodell- und Untermodellwerte ein, die später mit Hinblick auf Fig. 5 beschrieben werden.
Es wird jetzt auf die Fig. 4 Bezug genommen. Dort ist ein Prozeßüberblick über das Laden eines BIOS Abbildes in das System entweder von der Festplatte oder der Diskette dargestellt. Wenn das System eingeschaltet ist, wird der Systemprozessor über einen Vektor zu dem Einstiegspunkt des POST Stufe I, Schritt 100 gesteuert. POST Stufe I initialisiert das System und prüft nur diejenigen Systemfunktionen, die benötigt werden, um das BIOS Abbild von dem ausgewählten DASD zu laden, Schritt 102. Insbesondere initialisiert POST Stufe die Prozessor/Platinenfunktionen, die Diagnosekonsole, das Speicheruntersystem, Unterbrechungssteuerungen, Zeitgeber, das DMA Untersystem, die Festplatten-BIOS- Routine (Festplattenmodul 76) und, falls nötig, die Disketten-BIOS-Routine (Diskettenmodul 74).
POST Stufe I steuert den Systemprozessor über einen Vektor zu der IBL Routine, die in dem IBL Modul 72 eingeschlossen ist. Die IBL Routine bestimmt zuerst, ob das BIOS Abbild auf der Festplatte gespeichert ist oder von der Diskette geladen werden kann und lädt zweitens den Stamm-Start-Datensatz von dem ausgewählten Medium (ent­ weder Platte oder Diskette) in den RAM, Schritt 104. Der Stamm-Start-Datensatz schließt die MBR Daten und den MBR Code ein. Die MBR Daten werden für Prüfzwecke benutzt, und der MBR Code wird ausgeführt, um das BIOS Abbild zu laden. Eine genauere Beschreibung der Operation der IBL Routine wird mit Bezug auf die Fig. 6A-6D gegeben.
Es wird weiter auf Fig. 4 Bezug genommen. Nachdem die IBL Routine den Stamm-Start-Datensatz in den RAM lädt, wird der Systemprozessor über einen Vektor zu der Anfangsadresse des MBR Codes gesteuert, um die Ausführung zu beginnen, Schritt 106. Der MBR Code führt eine Reihe von Gültigkeitstests durch, um die Echtheit des BIOS Abbildes zu bestimmen und die Konfiguration des Systems zu prüfen. Für ein besseres Verständnis der Operation des MBR Codes wird die Aufmerksamkeit auf Fig. 7 der Zeichnungen gelenkt, in der der MBR Code näher beschrieben ist.
Auf der Basis dieser Gültigkeitstests lädt der MBR Code das BIOS Abbild in den RAM und überträgt die Steuerung zu dem unlängst geladenen BIOS Abbild im Hauptspeicher, Schritt 108. Insbesondere wird das BIOS Abbild in den Adressenraum geladen, der vorher vom ROM-BIOS besetzt war. D. h. wenn der ROM-BIOS adressiert wird von E0000H-FFFFFH dann wird das BIOS Abbild in diesem Adressraum des RAM geladen und ersetzt so den ROM-BIOS. Die Steue­ rung wird dann zu der POST Stufe II übertragen, die in dem unlängst geladenen BIOS Abbild eingeschlossen ist, wodurch der ROM-BIOS aufgegeben wird. POST Stufe II, jetzt im RAM, initialisiert und testet das restliche System, um den Anfang des Betriebssystems zu laden, Schritte 110-114.
Bevor die Stufe II POST die Steuerung dem Betriebs­ system überträgt, setzt die Stufe II POST ein Schutz­ mittel zum Verhindern des Zugriffs auf die Platten­ unterteilung, die das BIOS Abbild enthält. Für eine genauere Diskussion dieses Schutzprozesses wird auf die Fign. 8-10 Bezug genommen. Es sei bemerkt, daß während eines Warmstartes der Prozessor durch einen Vektor auf den Schritt 108 gesteuert wird, unter Umgehung der Schritte 100-106.
Aus Gründen der Klarheit ist es an diesem Punkt ange­ bracht, eine Darstellung des Formates des Stamm-Start- Datensatzes zu erläutern. Der Stamm-Start-Datensatz ist in Fig. 5 dargestellt. Der Start-Datensatz schließt das aktivierbare Codesegment 120 und Datensegmente 122-138 ein. Das MBR Codesegment 120 schließt DASD abhängigen Code ein, der verantwortlich ist für das Prüfen der Identität des ROM-BIOS, für das Prüfen, daß der IBL Start-Datensatz kompatibel ist mit dem System, für das Prüfen der Systemkonfiguration und für das Laden des BIOS Abbildes aus dem ausgewählten DASD (Platte oder Diskette). Die Datensegmente 122-138 schließen Informationen ein, um das Medium zu identifizieren, den Stamm-Start-Datensatz zu identifizieren und zu prüfen, das BIOS Abbild zu lokalisieren und es zu laden.
Der Stamm-Start-Datensatz wird identifiziert durch eine Start-Satz-Signatur 122. Die Start-Datensatz-Signatur 122 kann ein eindeutiges Bitmuster wie eine Zeichenfolge "ABC" in den ersten drei Bytes des Satzes sein. Die Integrität des Stamm-Start-Datensatzes wird durch einen Prüfsummenwert 132 geprüft, der mit einem berechneten Prüfsummenwert verglichen wird, wenn der Start-Datensatz geladen wird. Die Datensegmente schließen weiter zumindest einen ID-Wert 134 für eine kompatible Platine und Werte 136 für ein kompatibles Modell und Untermodell ein. Der Platinen-ID-Wert des Stamm-Start-Datensatzes definiert die Platine, für die der Stamm-Start-Datensatz gültig ist. In ähnlicher Weise definieren die Modell- und Untermodellwerte des Stamm-Start-Datensatzes die Konfiguration aus Prozessor und I/O-Platine, für die der Stamm-Start-Datensatz gültig ist. Es sei bemerkt, daß die Signatur des Start-Datensatzes und die Prüfsumme einen gültigen Stamm-Start-Datensatz identifizieren, während seine Platinen ID, seine Modell- und Untermodellvergleiche dazu benutzt werden, einen Stamm-Start-Datensatz zu identifizieren, der mit dem System verträglich ist, und um zu bestimmen, ob die Systemkonfiguration gültig ist. Ein anderer Wert, das Start-Datensatz-Muster 124 wird benutzt, um die Gültigkeit des ROM-BIOS zu bestimmen. Das Start-Datensatz-Muster 124 wird mit einem entsprechenden Musterwert verglichen, der im ROM gespeichert ist. Wenn die Werte übereinstimmen, zeigt dies an, daß ein gültiger ROM-BIOS das Laden eines BIOS Abbildes von dem ausgewählten Medium aufgerufen hat.
Die folgende Beschreibung beschreibt weiter jeden der Werte in dem Stamm-Start-Datensatz und ihre Funktionen näher:
MBR Identifizierung (122)
Die ersten drei Bytes eines IBL Start-Satzes können aus drei Zeichen bestehen wie "ABC". Diese Signatur wird benutzt, um einen Start-Satz zu identifizieren.
MBR Codesegment (120)
Dieser Code prüft die Kompatibilität des Start-Satzes mit der Platine und dem Prozessor durch Vergleichen mit entsprechenden Platinenidentifizierungs- und Modell-/ Untermodellwerten. Wenn diese Werte übereinstimmen, lädt es das BIOS Abbild von dem gewählten Speichermedium in den RAM des Systems. Wenn die Prüfsumme des Systemabbildes (BIOS Abbild in den Speicher geladen) gültig ist und keine Ladefehler des Speichermediums auftreten, überträgt der MBR Code die Steuerung an die POST Stufe II Routine des System­ abbildes.
MBR Muster (124)
Das erste Feld des IBL Start-Satz Datensegmentes enthält ein Muster wie z.B. eine Zeichenfolge "ROM-BIOS 1989". Diese Folge wird benutzt, um den ROM-BIOS durch Vergleich des Startmusterwertes mit dem entsprechenden im ROM gespeicherten Wert (ROM-Muster) zu bestätigen.
MBR Versionsdaten (126)
Der Stamm-Start-Datensatz schließt ein Versionsdatum für die Benutzung durch ein Aktualisierungshilfsprogramm ein.
Systemunterteilungszeiger (128)
Das Datensegment enthält einen auf den Anfang des Unterteilungsbereiches des Speichermediums des Systems hinweisender Zeiger zur Verwendung durch Stufe II POST. Auf der IBL Diskette besitzt der Zeiger das Spur-Kopf- Sektor-Format, auf einer Platte hat der Zeiger das Format der relativen Blockadresse (RBA).
Systemunterteilungsart (130)
Die Systemunterteilungsart zeigt die Struktur der Unterteilung des Speichermediums des Systems an. Es gibt drei Arten von Systemunterteilungsstrukturen - voll, minimal und nicht vorhanden. Die volle System­ unterteilung enthält zusätzlich zu dem BIOS Abbild und dem Stamm-Start-Datensatz das Einstellungshilfsprogramm und Diagnoseprogramme. Die minimale Systemunterteilung enthält nur das BIOS Abbild und den Stamm-Start- Datensatz.
Es kann vorkommen, daß ein System keinen Zugriff zu einer Festplatte mit einem IBL Abbild hat. In diesem Fall zeigt die Systemunterteilungsart "nicht vorhanden" an. Das IBL kommt dann von der Diskette. Diese drei Arten der Systemunterteilung ermöglichen Flexibilität dabei, wieviel Platz die Systemunterteilung auf dem Speichermedium beansprucht.
Prüfsummenwert (132)
Der Prüfsummenwert des Datensegmentes wird initialisiert, um eine gültige Prüfsumme für die Aufzeichnungslänge (1,5 KBytes) des Stamm-Start- Datensatz-Codes zu erzeugen.
MBR Platinen-ID-Wert (134)
Das Datensegment schließt einen Wert ein, wie beispielsweise eine Folge von Worten, die kompatible Platinen-ID′s definieren. Jedes Wort besteht aus einer 16-Bit-Platinen-ID und die Folge wird abgeschlossen durch einen Wortwert von 0. Wenn die Platinen-ID eines Systems mit dem Platinen-ID-Wert in dem Stamm-Start- Datensatz Übereinstimmt, genauer mit einem der Worte in der Folge, ist das IBL Abbild des Speichermediums kompatibel mit der Systemplatine. Wenn die Platinen-ID des Systems nicht mit dem Platinen-ID-Wert in dem Stamm-Start-Datensatz übereinstimmt, ist das IBL Abbild des Speichermediums nicht kompatibel mit der Systemplatine.
MBR Modell- und Untermodellwerte (136)
Das Datensegment schließt Werte ein, wie beispielsweise eine Folge von Worten, die kompatible Prozessoren definieren. Jedes Wort besteht aus einem Modell- und einem Untermodellwert und die Folge wird durch einen Wortwert von 0 abgeschlossen. Wenn der (im ROM gespeicherte) Modell- und Untermodellwert des Systems mit einem der Worte in der Folge übereinstimmt, ist das IBL Abbild des Speichermediums kompatibel mit dem Systemprozessor. Wenn die ROM Modell- und ROM Untermodellwerte nicht mit irgendeinem Wort der Folge übereinstimmen, ist das IBL Abbild des Speichermediums nicht kompatibel mit dem Systemprozessor.
MBR Abbildlänge (138)
Die IBL Abbildlänge wird initialisiert auf die Anzahl der Abbildblöcke des Speichermediums. Mit anderen Worten, wenn das BIOS Abbild in vier Blöcke unterteilt ist, ist die Abbildlänge 4, was auf 4 Blockzeiger/- Längenfelder hinweist. Gewöhnlich wird diese Länge auf 1 eingestellt, da das Abbild des Speichermediums ein durchgehender 128K Block ist.
MBR Sektorgröße des Speichermediums (138)
Dieser Wortwert wird initialisiert auf die Sektorengröße des Speichermediums in Bytes pro Sektor.
Blockzeiger des Abbildes des Speichermediums (138)
Der Blockzeiger des Abbildes des Speichermediums lokalisiert einen Systemabbildblock auf dem Speichermedium. Normalerweise gibt es nur einen Zeiger, da das Abbild des Speichermediums als ein durchgehender Block gespeichert wird. Auf einer IBL Diskette haben die Zeiger das Spur-Kopf-Sektor-Format; auf einer Platte haben die Zeiger das Format der relativen Blockadresse.
Blocklänge des Abbildes des Speichermediums (138)
Die Blocklänge des Abbildes des Speichermediums zeigt den Umfang (in Sektoren) des Blockes an, der sich an dem entsprechenden Zeiger des Abbildblockes befindet. Im Falle eines 128K durchgehenden Abbildes des Speichermediums, das Raum für BASIC einschließt, ist dieses Feld auf 265 gesetzt, was anzeigt, daß der BIOS Abbildblock 256 Sektoren (512 Bytes/Sektor) umfaßt, beginnend an der Stelle des Zeigers für den Abbildblock des Speichermediums.
Es wird auf die Fig. 6A-6D Bezug genommen. Dort ist ein genaueres Flußdiagram der Arbeitsweise der IBL Routine dargestellt. Unter normalen Umständen lädt die IBL Routine den Stamm-Start-Datensatz von der Systemfestplatte in den RAM an einer bestimmten Adresse und steuert dann den Systemprozessor über einen Vektor so, daß er mit dem Aktivieren des Codesegmentes des Starmm-Start-Datensatzes beginnt. Die IBL Routine enthält auch Vorkehrungen für einen Diskettenmodus, in welchem der Stamm-Start-Datensatz von der Diskette geladen werden kann. Jedoch gestattet es die IBL Routine nicht, den Diskettenmodus durchzuführen, wenn das System das IBL Medium auf einer Festplatte enthält und ein gültiges Passwort im NVRAM vorhanden ist. Der Benutzer hat die Wahl, das Passwort in den NVRAM zu setzen. Der Zweck, zu verhindern, daß der Disketten­ modus bewirkt wird, besteht darin, daß das Laden eines unberechtigten BIOS Abbildes von der Diskette verhindert wird. Mit anderen Worten wird der Disketten­ modus nur benutzt, wenn eine Systemfestplatte nicht funktionsfähig ist und der Benutzer (durch Nicht­ setzen des Passwortes) den Wunsch angezeigt hat, in der Lage zu sein, von der Diskette zu laden. Wenn die IBL Routine nicht in der Lage ist, den Stamm-Start- Datensatz von einem Speichermedium zu laden, wird eine Fehlernachricht generiert und das System angehalten.
Es wird jetzt auf die Fig. 6A Bezug genommen. Unter normalen Umständen enthält das System eine Systemfest­ platte, die die IBL Routine initialisiert, Schritt 150. Für Zwecke der Erläuterung wird angenommen, daß die Festplatte für das Laufwerk C des Personal-Computer­ systems konfiguriert ist. In ähnlicher Weise wird angenommen, daß das Laufwerk A als Diskettenlaufwerk bezeichnet ist. Die IBL Routine prüft dann das Laufwerk C, um zu bestimmen, ob es das IBL Medium enthält, Schritt 152. Die Aufmerksamkeit wird auf die Fig. 68 gelenkt, die im einzelnen diesen Vorgang beschreibt. Die IBL Routine beginnt das Lesen von der Festplatte an den drei letzten Sektoren und fährt mit dem Lesen unter Vermindern des Medienzeigers für 99 Sektoren fort oder bis ein gültiger Stamm-Start-Datensatz gefunden ist. Wenn ein Stamm-Start-Datensatz gefunden ist, wird er auf Kompatibilität von Systemplatine und Prozessor geprüft, Schritt 156. Wenn er nicht kompatibel mit der Systemplatine oder dem Prozessor ist, dann wird ein Fehler gemeldet, Schritt 158. Es erfolgt eine Rückbe­ ziehung auf den Schritt 152. Wenn kein Stamm-Start- Datensatz in den letzten 99 Sektoren der Festplatte (primäre Festplatte) gefunden wird, wird ein Fehler gemeldet, Schritt 154.
Es folgt eine Rückbeziehung auf den Schritt 156. Wenn ein Stamm-Start-Datensatz gefunden ist, wird eine Reihe von Gültigkeitsprüfungen durchgeführt, um zu bestimmen, ob der Stamm-Start-Datensatz mit dem Computersystem kompatibel ist. Zusätzlich wird die Konfiguration des Systems geprüft. Die Aufmerksamkeit wird auf Fig. 6D gelenkt. Wenn der Stamm-Start-Datensatz mit der Platinen-ID, dem Modell- und Untermodell kompatibel ist und wenn weiterhin die Systemkonfiguration sich nicht geändert hat, wird der Stamm-Start-Datensatz geladen und das Codesegment des Stamm-Start-Datensatzes wird aktiviert, Schritt 160.
Es folgt eine Rückbeziehung auf die Schritte 154 und 158. Wenn ein Fehler beim Laden des Stamm-Start-Daten­ satzes von der Festplatte auftritt oder wenn eine Festplatte nicht verfügbar ist, bestimmt die IBL Routine, ob ein gültiges Passwort in dem NVRAM enthalten ist, Schritt 162. Dieses Passwort bestimmt, ob das BIOS Abbild von der Diskette geladen werden kann. Es ist zu beachten, daß das Passwort nur vorhanden ist, wenn es von dem Benutzer durch Ablaufen eines Installationshilfsprogramms installiert wurde. Wenn ein Passwort im NVRAM installiert wurde, wird verhindert, daß das BIOS Abbild von der Diskette geladen wird, Schritt 164. Dies erlaubt es dem Benutzer, die Integrität der Systemoperation sicherzustellen, indem er veranlaßt, daß das System nur mit dem BIOS Abbild auf der Festplatte geladen wird. Das Passwort kann die Form einer im NVRAM gespeicherten Zeichenfolge annehmen.
Es erfolgt eine Rückbeziehung zu Schritt 162. Wenn ein gültiges Passwort im NVRAM nicht vorhanden ist, und damit das Laden des BIOS Abbildes von der Diskette ermöglicht wird, initialisiert die IBL Routine das Diskettenuntersystem, Schritt 166. Die IBL Routine bestimmt dann, ob das Laufwerk A das IBL Medium auf einer Diskette enthält, Schritt 168. Wenn das Laufwerk A das IBL Medium nicht enthält, wird ein Fehler generiert, um den Benutzer darauf hinzuweisen, daß eine ungültige Diskette in das Laufwerk eingeführt wurde, Schritt 170. Das System hält dann an, Schritt 172. Für eine genauere Erläuterung des Schrittes 168 wird die Aufmerksamkeit auf Fig. 6C gelenkt.
Es erfolgt eine Rückbeziehung auf den Schritt 168. Nachdem das Laufwerk A auf das IBL Medium geprüft wurde, wird der Stamm-Start-Datensatz in den RAM geladen und das Codesegment, das in dem Stamm-Start-Datensatz enthalten ist, wird ausgeführt, Schritt 160. Es ist wichtig, an­ zumerken, daß für die Diskette die IBL Routine nicht die Gültigkeitsprüfungen einschließt, die bei dem Fest­ plattensystem benutzt werden. Der Grund für das Fehlen der Gültigkeitsprüfungen ist das Laden eines nicht kompatiblen IBL Abbildes von der Diskette. Wenn beispielsweise ein neuer Prozessor dem System hinzu­ geführt wird, wird ein neues BIOS Abbild auf der Diskette enthalten sein. Da ein neuer Prozessor Gültigkeitsfehler verursacht, wenn von der Festplatte geladen wird, sorgt die IBL Routine für die Möglich­ keit, diese Prüfungen durch Laden des BIOS Abbildes von der Diskette zu umgehen.
Kurz zusammengefaßt wird der Stamm-Start-Datensatz auf Kom­ patibilität mit dem System geprüft durch Vergleich der Werte für die Systemplatinen ID und der Prozessor Modell-/Untermodellwerte mit den Werten des Stamm-Start-Datensatzes. Für die Platte wird diese Prüfung zuerst in der IBL Routine 72 durchgeführt und dann wieder in dem IBL Start-Satz. Die erste Prüfung (in der IBL Routine) wird vorgenommen, um sicherzustellen, daß der Start-Satz mit dem System kompatibel ist. Die zweite Prüfung (in dem Start-Satz) wird vorgenommen, um sicherzustellen, daß ein kompatibler ROM die Steuerung dem Start-Satz übergab. Es ist zu beachten, daß die in dem Platten-Start-Satz vorgenommene Prüfung bei einem kompatiblen ROM niemals fehlschlägt, da die IBL Routine die Kompatibilität bereits geprüft hat. Im Gegensatz dazu wird die Kom­ patibilitätsprüfung für die Diskette nicht durchge­ führt. Die Kompatibilität Platine/Prozessor wird nur während der Aktivierung des Disketten-Start-Satzes durchgeführt. Diese Methode erlaubt zukünftige Modi­ fikationen beim Laden eines neuen BIOS Abbildes von einer Bezugsdiskette.
Im Hinblick auf die Beschreibung der IBL Routine von Fig. 6A wird die Erläuterung nun fortschreiten zu einem umfassenden und vollen Verständnis der Gültig­ keitsprüfungen, die oben abgehandelt wurden. In Fig. 6B ist ein ausführliches Flußdiagramm des Schrittes 152 der Fig. 6A dargestellt, um zu bestimmen, ob ein gültiger Stamm-Start-Datensatz sich im Laufwerk C befindet. Das Verfahren beginnt durch Gewinnen der Laufwerkspara­ meter, um die IBL Routine in die Lage zu versetzen, auf das Laufwerk C zuzugreifen, Schritt 200. Eine IBL Lade­ stelle wird auf die letzten drei Sektoren der Platte eingestellt (die letzten drei Sektoren enthalten nor­ malerweise den Stamm-Start-Datensatz), Schritt 202. Ein Ladezählerfeld, das die Anzahl der Versuche anzeigt, einen Stamm-Start-Datensatz von der Platte zu lesen, wird auf 1 gesetzt, Schritt 204. Die drei Sektoren werden von der Platte in die IBL Ladelokation gelesen, Schritt 206. Wenn ein Lesefehler eines Plattenlaufwerks auftritt, wird er gemeldet, Schritte 208-210. Der Prozeß springt dann mit einer Fehleranzeige zurück, Schritte 212-214.
Es erfolgt eine Rückbeziehung auf Schritt 208. Wenn keine Laufwerksfehler auftreten, wird der Plattensatz nach der Stamm-Start-Datensatz-Signatur abgesucht, Schritt 216. Die Start-Datensatz-Signatur z.B. die Zeichen "ABC" werden mit den ersten 3 Bytes des Plattensatzes verglichen. Wenn der Plattensatz eine gültige Start-Satz-Signatur aufweist (Zeichen "ABC"), und die berechnete Prüfsumme des Plattensatzes, der in den Speicher geladen wurde, der Start-Satz-Prüfsumme gleicht, wird der Plattensatz als ein gültiger Start-Satz ohne Fehler angezeigt, Schritt 218. Der Prozeß springt dann zurück, Schritt 214.
Es erfolgt eine Rückbeziehung auf den Schritt 216. Wenn die Start-Satz-Signatur oder Prüfsumme ungültig ist, wird die Ladezählung um 1 erhöht, Schritt 220. Die Ladezählung wird dann mit einer vorgegebenen Konstanten wie beispielsweise 99 verglichen, Schritt 222. Wenn 99 Versuche, einen Stamm-Start-Datensatz zu lesen, fehl schlugen, wird ein Fehler angezeigt und der Prozeß springt zurück, Schritt 224, 212 und 214. Wenn weniger als 99 Versuche unternommen wurden, einen Stamm-Start-Datensatz zu lesen, wird die IBL Ladestelle um 1 verringert und 3 neue Sektoren werden von der neuen Ladestelle gelesen, Schritte 226 und 206. Wenn daher ein gültiger IBL Stamm-Start-Datensatz nicht von den letzten 99 Sektoren (equivalent zu 33 Kopien) geladen werden kann, dann wird eine Fehlerbedingung gesetzt und die Steuerung springt zu der IBL Routine zurück.
In Fig. 6C ist ein genaues Flußdiagramm für das Laden des Stamm-Start-Datensatzes von der Diskette im Laufwerk A dargestellt. Zuerst werden die Parameter des Diskettenlaufwerkes abgerufen, um auf das Laufwerk A zuzugreifen, Schritt 230. Die IBL Ladestelle wird auf die letzten 3 Sektoren auf der Diskette (Zylinder, Kopf und Sektor-Format) eingestellt, Schritt 232. Die letzten 3 Sektoren werden gelesen, Schritt 234. Wenn ein Diskettenlaufwerksfehler erkannt wird, wird ein Fehler angezeigt, Schritte 236-238. Eine Fehlerbedingung wird gesetzt und die Steuerung springt zur IBL Routine zurück, Schritte 240-242.
Wenn im Schritt 236 kein Laufwerksfehler erkannt wird, wird der Diskettensatz auf die Stamm-Start-Satz- Signatur geprüft und die Prüfsumme berechnet, Schritt 244. Wenn die Start-Satz-Signatur fehlt oder die Prüfsumme ungültig ist, wird ein Fehler angezeigt und die Steuerung der IBL Routine zurückgegeben, Schritte 244, 246, 240 und 242. Wenn eine gültige Start- Satz-Signatur und eine gültige Prüfsumme erkannt werden, wird eine Anzeige gesetzt und die Steuerung der IBL Routine zurückgegeben, Schritte 248 und 242. Es ist zu beachten, daß beim Diskettenladen die IBL Routine nicht das Speichermedium durchsucht wie beim Laden der Festplatte. Daher muß beim Diskettenladen das IBL Speichermedium an einer bestimmten Speicherstelle der Diskette gespeichert sein.
Schließlich zeigt Fig. 6D wie die IBL Routine auf Kompatibilität der Systemplatine und des Prozessors prüft und auf eine richtige Systemkonfiguration. Der Stamm-Start-Datensatz wird auf Kompatibilität mit der Systemplatine geprüft durch Vergleichen des Platinen- ID-Wertes des Start-Satzes mit der Platinen ID des Systems, die von dem Systemprozessor gelesen wird, Schritt 260. Wenn die Platinen ID des Systems nicht mit dem Platinen ID-Wert des Start-Satzes überein­ stimmt, zeigt dies an, daß dieser Stamm-Start-Datensatz nicht kompatibel ist mit der Platine. Ein Fehler wird angezeigt, und die Steuerung springt zu der IBL Routine zurück, Schritte 262, 264 und 266.
Wenn der Stamm-Start-Datensatz mit der Platine kompatibel ist, wird der Stamm-Start-Datensatz auf Kompatibilität mit dem Prozessor geprüft, Schritt 268. Der Modell- und Untermodellwert des Start-Satzes werden mit dem Modellwert und dem Untermodellwert, die im ROM gespeichert sind, verglichen. Eine Nichtübereinstimmung zeigt an, daß wahrscheinlich ein neuer Prozessor eingefügt wurde und dieser Start-Satz nicht kompatibel ist mit dem neuen Prozessor. Ein Fehler wird angezeigt, und die Steuerung zu der IBL Routine zurückgeführt, Schritte 270, 264 und 266. Wenn der Stamm-Start-Datensatz mit der Platine und dem Prozessor kompatibel ist, prüft der Prozeß, um zu bestimmen, ob der NVRAM zuverlässig ist, Schritt 272. Wenn der NVRAM unzuverlässig ist, wird ein Fehler angezeigt und die Steuerung der IBL zurückgegeben, Schritt 274 und 266. Wenn der NVRAM zuverlässig ist, wird die Systemkonfiguration geprüft, Schritt 276. Eine Änderung in der Systemkonfiguration wird angezeigt, wenn die im NVRAM gespeicherten Modell­ und Untermodellwerte nicht mit den im ROM gespeicherten Modell- und Untermodellwerten übereinstimmen. Es ist zu beachten, daß dieser letzte Vergleich nur einen Konfigurationsfehler anzeigt. Wenn ein Konfigurations­ fehler angezeigt wird, wird ein Fehler für den Benutzer generiert. Dieser Fehler benachrichtigt den Benutzer, daß die Konfiguration des Systems sich geändert hat seit das SET-Konfigurationsprogramm das letzte Mal ablief. Der Benutzer wird von der geänderten Konfiguration benachrichtigt und die Steuerung springt zu der IBL Routine zurück, Schritte 278, 264 und 266. Dieser Fehler selbst ist nicht verhängnisvoll, er benachrichtigt aber den Benutzer, daß die SET- Konfiguration (Konfigurationsprogramm) aktiviert werden muß. Es erfolgt eine Rückbeziehung auf den Schritt 276. Wenn die Systemmodell-/Untermodellwerte übereinstimmen, wird eine Komptabilitätsanzeige gesetzt und die Routine springt zurück, Schritte 276, 274 und 266. Daher wird die Kompatibilität zwischen dem Stamm-Start-Datensatz und dem System zusammen mit der Bestimmung geprüft, ob die Systemkonfiguration modifiziert wurde.
Nachdem die IBL Routine den Stamm-Start-Datensatz in den RAM lädt, überträgt sie die Steuerung zu der Anfangs­ adresse des MBR-Code. Es wird auf Fig. 7 Bezug genom­ men. Das aktivierbare Codesegment des Stamm-Start- Datensatzes überprüft zuerst das MBR Muster gegenüber dem Muster im ROM, Schritt 300. Wenn das Muster in dem Stamm-Start-Datensatz nicht mit dem Muster im ROM übereinstimmt, wird ein Fehler generiert und das System hält an, Schritte 302 und 305. Die Prüfung auf Gleichheit zwischen den Mustern des ROM und dem Stamm-Start-Datensatz stellt sicher, daß der Stamm-Start-Datensatz, der entweder von der Platte oder Diskette geladen wurde, kompatibel ist mit dem ROM auf der Platine. Es erfolgt eine Rückbeziehung auf den Schritt 300. Wenn das Muster im ROM mit dem Muster im Stamm-Start-Datensatz übereinstimmt, vergleicht der MBR Code den Platinen-ID-Wert des Systems, den Modell- und Untermodellwert mit den entsprechenden Werten des Stamm-Start-Datensatzes, Schritt 304. Dieser Vorgang wurde ausführlich mit Bezug auf die Fig. 6D diskutiert. Wenn die Werte nicht übereinstimmen, ist der Stamm-Start-Datensatz nicht kompatibel mit der Systemplatine und dem Prozessor oder die Systemkon­ figuration hat sich geändert, und ein Fehler wird generiert, Schritt 306. Das System hält dann an, Schritt 305.
Es erfolgt eine Rückbeziehung auf den Schritt 304. Wenn der Platinen-ID-Wert des System, der Modell- und Untermodellwert mit den entsprechenden Werten des Stamm-Start-Datensatzes übereinstimmen, lädt der MBR-Code das BIOS Abbild von dem ausgewählten Speichermedium in den RAM des Systems, Schritt 308. Wenn ein Ladefehler beim Lesen der Daten auftritt, Schritt 310, wird ein Fehler generiert und das System hält an, Schritte 312 und 305. Es erfolgt eine Rückbeziehung auf den Schritt 310. Wenn kein Ladefehler auftritt, wird eine Prüfsumme für das BIOS Abbild im Speicher berechnet, Schritt 314. Wenn die Prüfsumme ungültig ist, wird ein Fehler generiert und das System hält an, Schritte 318 und 305. Es erfolgt eine Rückbeziehung auf den Schritt 316. Wenn die Prüfsumme gültig ist, werden die Systemunterteilungszeiger gespeichert, Schritt 320 und der Systemprozessor wird über einen Vektor zur POST Stufe II gesteuert, um das Laden des Systems zu beginnen, Schritt 322.
In Fig. 8 ist ein Blockdiagramm einer intelligenten Plattensteuereinheit 350 zur Steuerung der Datenbe­ wegung zwischen einem Plattenlaufwerk 351 und dem Systemprozessor gezeigt. Es versteht sich, daß die Plattensteuereinheit 350 in die Adapterkarte 60 eingesetzt werden kann, während das Plattenlaufwerk 351 in dem Laufwerk 62 der Fig. 2 eingeschlossen sein kann. Eine geeignete Plattensteuereinheit 350 ist der Schnittstellenadapter für kleine Computersysteme, kurz als SCSI Adapter bezeichnet, der eine Teilenummer 33F8740 besitzt und von der International Business Machines Corporation hergestellt wird. Es versteht sich, daß die Plattensteuereinheit 350 einen Micro­ prozessor 352 enthält, der zur Steuerung seiner internen Operationen als auch seiner Schnittstellen zu den anderen Elementen des Plattenuntersystems und des Systemprozessors unter seinem eigenen internen Taktgeber arbeitet. Der Mikroprozessor 352 ist über eine Instruktionsbusleitung 354 mit einem Festwert­ speicher (ROM) 356 verbunden, der Instruktionen speichert, die die Plattensteuereinheit 350 ausführt, um die Datenbewegung zwischen dem Plattenlaufwerk und dem Systemprozessor zu verarbeiten und zu steuern. Es versteht sich ebenso, daß die Plattensteuereinheit 350 einen Speicher mit wahlfreiem Zugriff einschließen kann, der für das Speichern oder Wiederauffinden von Daten mit dem Mikroprozessor 352 verbunden ist. Die Datenbewegung zwischen der Plattensteuereinheit 350 und dem Systemprozessor wird über die Datenbusleitung 358 und die Instruktionsbusleitung 360 bewirkt.
Ein Rückstellsignal auf der Leitung 362 stellt die Logik der Plattensteuereinheit zurück oder initialisiert sie bei der Netzstromeinschaltfolge oder während einer Systemrückstellung. Das Rückstellsignal wird durch die Logik der Platine generiert und kann die Form eines Kanalrücksetzsignals annehmen wie das durch die MIKROKANAL-Normalarchitektur der IBM zur Verfügung gestellt wird, die beschrieben ist im "IBM Personal System/2 Seminar Proceedings" Vol. 5, Nr. 3, Mai 1987, veröffentlicht durch die International Business Machines Corporation, Entry Systems Division. Darüber hinaus kann das Rückstellsignal effektiv durch das BIOS aufgerufen werden durch Ausgeben einer besonderen Bitkonfiguration an einen I/O-Anschluß des Systempro­ zessors, mit dem die Platinenlogik verbunden ist.
Der Mikroprozessor 352 liefert in bekannter Weise alle Schnittstellen- und Taktsignale, um eine wirksame Übertragung von Daten zwischen dem Plattenlaufwerk und dem Systemprozessor zu bewirken. Aus Gründen der Klarheit werden nur die für das Verständnis der Erfin­ dung wichtigen Signale dargestellt. Es versteht sich, daß andere Signale und Leitungen, wie beispielsweise eine Datenbusleitung 364 benutzt werden, aber hier nicht dargestellt werden, da sie nicht für das Verständnis der vorliegenden Erfindung wichtig sind. Es versteht sich weiter, daß nur diejenigen Programme oder Routinen im Hinblick auf Fig. 9 erläutert werden, die im ROM 356 gespeichert und für das Verständnis der vorliegenden Erfindung wichtig sind.
In Fig. 9 ist ein Flußdiagramm der Lese-, Schreib- und Schutzfunktionen der Plattensteuereinheit dargestelft, die durch die Funktion der im ROM 356 gespeicherten Routinen bewirkt werden. Im Betrieb wird eine Platteninstruktion vom Prozessor aufgerufen und zu der Plattensteuereinheit 350 übertragen. Die Plattensteuer­ einheit empfängt und interpretiert die Instruktion, um die bezeichnete Operation durchzuführen, Schritt 400. Die Plattensteuereinheit bestimmt zuerst, ob dies eine Schreiboperation ist, in der Daten von dem Systempro­ zessor in die Hardware des Plattenlaufwerkes gespeichert werden, Schritt 402. Wenn die Instruktion eine Schreibinstruktion ist, werden Daten vom System­ prozessor im relativen Blockadressen-Format, kurz als RBA Format bezeichnet, gespeichert.
Vor dem Fortsetzen der obigen Diskussion mag eine kurze Erklärung des relativen Blockadressen-Formates, das einer Massenspeichereinrichtung, wie einer Platte, zugeordnet ist, sinnvoll sein. RBA ist ein Schema, in dem Daten in einem Massenspeicher in Blöcken vorgegebener Größe durch fortlaufende Zahlen adressiert werden, d. h. einzeln definierbare durchgehende Datenblöcke. Z.B. kann der Systemprozessor, wenn eine Blockgröße von 1024 Bytes angenommen wird, ungefähr 10 000 Blöcke bei einer 10 Megabyte Platte adressieren. D.h. der Systemprozessor kann das Plattenspeicher­ medium in Ausdrücken von N Blöcken adressieren, wobei N im Bereich von 0-9999 liegt. Es wurde entdeckt, daß die Benutzung von RBA ein sehr schnelles und wirkungsvolles Verfahren zur Adressierung eines Massenspeichers für die Art von Betriebssystemen zur Verfügung stellt, die für Personal-Computersysteme der vorliegenden Erfindung benutzt werden.
Zur Erleichterung werden die folgenden Annahmen ge­ macht: 1. die Platte kann eine Gesamtzahl von N Blöcken tragen, 2. der Systemprozessor überträgt einen K Block, wobei K größer als oder gleich 0 ist und kleiner als oder gleich (N-1), 3. die Plattensteuereinheit kann einen maximal adressierbaren Block M einstellen, der Zugriff zu den Datenblöcken erlaubt, wobei K kleiner ist als M, und verweigert Zugriff auf Datenblöcke, wenn K größer als oder gleich M ist. Es ist zu beachten, daß durch Setzen von M kleiner als N eine schützbare Region auf der Platte erzeugt wird von M bis N-1 Blöcken. Dieses Merkmal erlaubt dem IBL Medium geschützt zu werden, wie unten erläutert wird.
Die Diskussion wird unter Bezugnahme auf Fig. 9 fort­ gesetzt. Die Daten werden von der Platte im RBA Format empfangen, Schritt 404. Die Plattensteuereinheit be­ stimmt dann, ob der empfangene Block K kleiner ist als der maximale Blockwert M, wobei M kleiner ist als N, Schritt 406. Wenn K kleiner als M ist, dann wandelt die Plattensteuereinheit das RBA Format in das besondere Format für die Massenspeichereinrichtung um, wie in das Zylinder-Kopf-Sektor (ZKS) Format für eine Festplatte, Schritt 408. Beispielsweise könnte die Plattensteuer­ einheit durch Verwendung einer Suchtabelle die RBA Adressen in eine eindeutige Zylinder-Kopf-Sektor-Stelle umwandeln. Ein anderes Verfahren ist die Benutzung einer Umwandlungsformel, um RBA in ZKS umzuwandeln. Für eine Platte mit 1 Kopf, 64 Zylindern und 96 Sektoren gilt: Kopf = 0, Zylinder = Quotient RBA/(96) und Sektoren = Rest RBA/(96). Nach dem Umwandeln des RBA Formates in ein ZKS Format werden die Daten auf die Platte geschrieben an der umgewandelten ZKS Stelle, Schritt 410. Die Plattensteuereinheit wartet dann auf eine weitere Instruktion des Systemprozessors, Schritt 412.
Es erfolgt eine Rückbeziehung auf den Schritt 406, wenn die empfangene RBA größer als der maximal eingestellte RBA Wert ist, wird der Zugriff verweigert, Schritt 414. D. h., wenn K größer ist oder gleich M, wird der K Block nicht auf die Platte geschrieben. Es ist zu beachten, daß wenn das IBL Medium in den Blöcken von M bis N-1 gespeichert ist, daß dann das IBL Medium vor dem Schreiben geschützt wird.
Wenn im Schritt 402 die Instruktion vom Systemprozessor keine Schreibinstruktion ist, wird sie darauf geprüft, ob sie eine Leseinstruktion ist, Schritt 416. Wenn die Instruktion eine Leseinstruktion ist, sendet der Systemprozessor das RBA Format für die angeforderten Daten, Schritt 418. Die Plattensteuereinheit bestimmt dann, ob die gewünschte RBA (K) kleiner als die maximal eingestellte RBA (M) ist. Wenn die gewünschte RBA (K) kleiner als die maximal eingestellte RBA (M) ist, dann wandelt die Plattensteuereinheit die RBA in das geeig­ nete ZKS Format und liest die Daten von der Platte, Schritte 422 und 424. Die Daten werden dann zu dem Systemprozessor übertragen, Schritt 412.
Wenn im Schritt 420 die empfangene RBA (K) größer oder gleich der maximal eingestellten RBA (M) ist, wird der Zugriff verweigert, Schritt 426. Wenn das IBL Medium zwischen M Blöcken und (N-1) Blöcken gespeichert ist, wird der Zugriff zu diesem Bereich verweigert. Es ist zu beachten, daß in diesem Fall das IBL Medium auch gegen Kopieren geschützt ist.
Wenn im Schritt 416 die Instruktionen keine Schreib­ oder Leseinstruktion ist, wird geprüft, ob sie eine Instruktion zum Einstellen der maximalen RBA ist, Schritt 428. Diese Instruktion erlaubt der Platten­ steuereinheit einen schützbaren Bereich oder eine Unterteilung auf der Hardware des Plattenlaufwerkes zu schaffen. Diese Instruktion erlaubt der Plattensteuer­ einheit, M zwischen 0 und N Blöcken einzustellen, Schritt 430. Es ist wichtig zu beachten, daß wenn die Plattensteuereinheit rückgestellt wird (durch das Rückstellsignal), daß dann M so eingestellt wird, daß die maximale Anzahl von Blöcken verfügbar ist. D.h., wenn die Plattensteuereinheit rückgestellt wird, M = N. Im wesentlichen wird der Schutz für den schützbaren Be­ reich beseitigt beim Rückstellen der Plattensteuerein­ heit, wodurch Zugriff zu dem Bereich gestattet wird. Wenn jedoch die Instruktion zum Setzen der maximalen RBA einmal ausgeführt wurde, erlaubt nur eine Rück­ stellinstruktion oder eine andere Instruktion zum Einstellen der maximalen RBA den Zugriff zum schütz­ baren Bereich. Begrifflich kann das Einstellen der maximalen RBA gedacht werden als das Errichten eines Zaunes, der den Zugriff zu dem Bereich oberhalb des Launes schützt, während er ihn zu dem Bereich unterhalb des Zaunes erlaubt. Die Plattensteuereinheit springt dann zurück, um dann auf eine andere Instruktion zu warten, Schritt 412.
Es erfolgt eine Rückbeziehung auf den Schritt 428. Wenn die Instruktion keine Lese- oder Schreibinstruktion oder keine Instruktion zum Setzen der maximalen RBA ist, wird geprüft, ob eine andere Instruktion für die Plattensteuereinheit vorliegt und diese ausgeführt, Schritt 432. Diese Instruktionen benutzen den einge­ stellten maximalen RBA Wert, sind aber für das Verständnis der vorliegenden Erfindung nicht wichtig und werden hier aus Gründen der Kürze nicht darge­ stellt. Die Plattensteuereinheit springt dann zurück und erwartet eine andere Instruktion, Schritt 412.
Die Erläuterung schreitet nun fort zu dem Vorgang des Ladens und Schützens des IBL Mediums im Hinblick auf die fortschreitende Diskussion. Im allgemeinen wird die Plattensteuereinheit, die das IBL Medium enthält, von einem Kaltstart (Netzstrom ein) oder einem Warm­ start rückgestellt. Dies veranlaßt, daß die maximale RBA (M) auf N gesetzt wird, d.h. der Zaun wird entfernt, wodurch Zugriff auf das IBL Medium möglich ist. Dies ist erforderlich, um dem System zu erlauben, das IBL Medium zu laden, um den Betrieb zu beginnen. Nachdem das IBL Medium einmal geladen und aktiviert ist, wird der Zaun errichtet (Einstellen der maximalen RBA unter dem IBL Medium), um den Zugriff zu dem auf der Platte gespeicherten IBL Medium zu verhindern.
In Fig. 10 ist ein Flußdiagramm gezeigt, das den Schutz des IBL Mediums bewirkt. Von einer Einschaltbedingung her wird das System initialisiert und BIOS leitet die Aktivität in der Logik der Platine ein, um eine Rück­ stellbedingung an die Plattensteuereinheit zu senden, Schritte 450 und 452. Das Rücksetzsignal beseitigt den Zaun und erlaubt dem Systemprozessor, auf das IBL Medium zuzugreifen, das vorher auf der Platte in dem Bereich von Block M bis Block N gespeichert wurde. Das System lädt das IBL Medium, wie vorher mit Bezug auf die Fig. 4-7 beschrieben wurde, Schritt 454. Während der IBL Ladefolge wird die POST Stufe II ausgeführt, Schritt 456. Eine der Aufgaben der POST Stufe II ist es, die Instruktion zum Einstellen der maximalen RBA zu aktivieren, wobei die maximale RBA auf die ersten Blöcke des IBL Mediums gesetzt wird, die mit M bezeichnet sind, Schritt 458. M ist abhängig von der Art der Unterteilung (keine, teileweise oder volle), wie es vorher erklärt wurde. Dies bewirkt das Aufrichten des Zaunes, der den Zugriff zu dem IBL Medium verhindert, während er den Zugriff zu den anderen Regionen der Platte zuläßt. Das Betriebssystem wird dann in normaler Weise gestartet, Schritt 460.
Wenn das System von einer Warmstartbedingung gestartet wird, erhält die Platinenlogik den Befehl, die Platten­ steuereinheit durch die POST Stufe II rückzustellen, Schritte 462 und 464. Dies veranlaßt, daß der Zaun ab­ gebaut wird. In diesem Falle wird das IBL Medium nicht wieder geladen, da es bereits im RAM vorhanden ist. Da jedoch der Schutz für das IBL Medium eliminiert wurde, muß der POST Stufe II aktiviert werden, um den Zaun wieder aufzubauen, Schritte 456 und 458. Der Zaun wird aufgerichtet und schützt das IBL Medium und das System wird dann in normaler Weise neu gestartet, Schritt 460.
Es ist ein Verfahren und ein Gerät für den Schutz des Zugriffs zu dem auf einer Massenspeichereinrichtung, wie einer Platteneinheit, gespeicherten IBL Medium gezeigt worden. Das IBL Medium wird geschützt durch Adressieren des Massenspeichers in Blöcken und durch Einsetzen eines maximalen Blockes auf den das System bei normaler Operation zugreifen kann. Das IBL Medium ist fortlaufend in denjenigen Blöcken zwischem dem zugreifbaren maximalen Block und der Gesamtzahl der Blöcke gespeichert, die von der Platteneinheit getragen werden. Ein der Plattensteuereinheit zugeführtes Rück­ stellsignal eliminiert den zugänglichen maximalen Block, um dem System das Adressieren des IBL Mediums zu ermöglichen. Das Rückstellsignal wird während einer Einschalt- oder einer Warmsstartbedingung erzeugt, um den Zugriff auf das IBL Medium zu gestatten, um das System zu starten.
Während die Erfindung in Verbindung mit einem bevor­ zugtem Ausführungsbeispiel erläutert wurde, versteht es sich, daß viele Variationen den Fachleuten einfallen und das der Schutzumfang der Erfindung nur durch die hier folgenden Patentansprüche bestimmt wird.

Claims (25)

1. Computersystem (10) enthaltend:
einen Systemprozessor (26), einen Festwertspeicher (36), einen Hauptspeicher (32) mit wahlfreiem Zugriff und zumindest eine Speichereinrichtung (62) mit direktem Zugriff, die eine Reihe von Datensätzen speichern kann,
dadurch gekennzeichnet, daß das System (10) weiter enthält:
Initialisierungsmittel, die in dem Festwert­ speicher (36) enthalten sind zum Initialisieren des Systemprozessors (26) und zum Erzeugen eines Rückstellsignals für die Speichereinrichtung (62) mit direktem Zugriff, um den Zugriff auf die Datensätze zu ermöglichen,
Lademittel zum Laden von Datensätzen aus der Speichereinrichtung (62) mit direktem Zugriff in den Hauptspeicher (32), wobei die Lademittel in einer schützbaren Unterteilung der Speicherein­ richtung (62) mit direktem Zugriff gespeichert sind und die Lademittel aus der Speichereinrich­ tung (62) mit direktem Zugriff in den Haupt­ speicher (32) durch die Initialisierungsmittel gelesen werden, wobei das Initialisierungsmittel das Lademittel aktiviert,
ein im Hauptspeicher untergebrachtes Programm­ abbild, das in der schützbaren Unterteilung der Speichereinrichtung (62) mit direktem Zugriff gespeichert ist, wobei das im Hauptspeicher untergebrachte Programmabbild aus der Speicher­ einrichtung (62) mit direktem Zugriff in den Hauptspeicher (32) durch das Lademittel gelesen wird, um ein im Hauptspeicher untergebrachtes Programm zu erzeugen,
Schutzmittel zum Schützen der schützbaren Unter­ teilung der Speichereinrichtung (62) mit direktem Zugriff, wobei das Schutzmittel durch das im Hauptspeicher untergebrachte Programm aktiviert wird, um den unberechtigten Zugriff auf das Lade­ mittel und das im Hauptspeicher befindliche Pro­ grammabbild zu verhindern.
2. Computersystem (10) nach Anspruch 1, bei dem der Festwertspeicher (36) einen ersten Teil des Basis Eingabe-/Ausgabesystems, im folgenden kurz BIOS (basic input/output system) bezeichnet, speichert und bei dem das im Hauptspeicher untergebrachte Programmabbild ein restlicher Teil des BIOS ist.
3. Computersystem (10) nach Anspruch 1 oder 2, bei dem das Lademittel weiter ein Mittel zur Gültigkeitsprüfung enthält, um zu bestätigen, daß das System (10) mit dem im Hauptspeicher untergebrachten Programm kompatibel ist.
4. Computersystem (10) nach den Ansprüchen 2 oder 3, bei dem das Lademittel einen Stamm-Start-Datensatz enthält, der ein aktivierbares Codesegment zum Bewirken des Ladens des im Hauptspeicher unterge­ brachten Programms besitzt, wobei das Initialisie­ rungsmittel die Steuerung zu dem aktivierbaren Codesegment überträgt, um das Laden des im Haupt­ speicher untergebrachten Programmabbildes in den Hauptspeicher (32) zu bewirken.
5. Computersystem (10) nach einem der Ansprüche 1 bis 4, bei dem das Initialisierungsmittel einen Selbsttest beim Einschalten enthält, wobei das Mittel zum Selbsttest beim Einschalten nur diejenigen Systemfunktionen initialisiert und testet, die notwendig sind, um das im Hauptspeicher untergebrachte Programm zu laden.
6. Computersystem (10) nach Anspruch 5, bei dem das Mittel für den Selbsttest beim Einschalten die Funktionen des Systemprozessors (26), die Speicheruntersysteme und die ein Untersystem bildende Speichereinrichtung (62) mit direktem Zugriff initialisiert.
7. Computersystem (10) nach einem der Ansprüche 1 bis 6, bei dem das Mittel zur Gültigkeitsprüfung Daten enthält, die die Art des Systemprozessors (26) und die Konfiguration einer Systemplatine (24), die mit dem Systemprozessor (26) verbunden ist, darstellen.
8. Computersystem (10) nach einem der Ansprüche 1 bis 7, bei dem zumindest eine Speichereinrichtung (26) mit direktem Zugriff ein Festplattenlaufwerk enthält, wobei das Lademittel Datensätze von dem Festplattenlaufwerk in den Hauptspeicher (32) lädt.
9. Computersystem (10) nach Anspruch 8, bei dem das Festplattenlaufwerk eine Plattensteuereinheit enthält und bei dem weiter der Systemprozessor (26) Datensätze zu der Plattensteuereinheit in Blöcken überträgt, die ein Format besitzen, das die Blöcke sequentiell numeriert, und bei dem weiter der Stamm-Start-Datensatz und der restliche Teil des BIOS wirksam in den höherstellig numerierten Blöcken gespeichert sind.
10. Computersystem (10) nach Anspruch 8 oder 9, in dem das Schutzmittel das Einsetzen eines adressierbaren maximalen Blocks umfaßt, wobei der adressierbare maximale Block der niederstelligst numerierte Block des Stamm-Start-Datensatzes und des restlichen Teiles des BIOS ist, wobei das Schutzmittel den Zugriff auf Blöcke, die größer oder gleich als der adressierbare maximale Block sind, verhindert, während sie Zugriff auf Blöcke kleiner als der adressierbare maximale Block erlaubt.
11. Computersystem (10) nach Anspruch 10, bei dem das Initialisierungsmittel die Erzeugung des Rückstellsignals als Antwort auf das Zuführen des Netzstromes zu dem System (10) einleitet.
12. Computersystem (10) nach Anspruch 10, bei dem das Initialisierungsmittel das Erzeugen des Rückstellsignals als Antwort auf eine Rückstell­ bedingung, die dem System (10) zugeführt wird, einleitet.
13. Computersystem (10) nach einem der Ansprüche 1 bis 12, bei dem der Stamm-Start-Datensatz weiter ein Datensegment enthält, das die Hardwarekonfigura­ tion des Systems (10) darstellt, das kompatibel mit dem Stamm-Start-Datensatz ist und bei dem der Festwertspeicher (36) Daten enthält, die eine Hardwarekonfiguration des System­ prozessors (26) darstellen, wobei vor dem Laden des restlichen Teiles des BIOS in den Hauptspeicher (32) der erste Teil des BIOS die Hardwarekonfigurationsdaten des Stamm-Start- Datensatzes mit den Hardwarekonfigurationsdaten des Festwertspeichers (36) verglichen wird, um zu überprüfen, ob der Stamm-Start-Datensatz mit dem Systemprozessor (26) kompatibel ist.
14. Computersystem (10) nach Anspruch 13, bei dem das Datensegment des Stamm-Start-Datensatzes einen Wert einschließt, der eine Systemplatine (24) darstellt, die kompatibel mit dem Stamm-Start- Datensatz ist und bei dem weiter die Systemplatine (24) ein Mittel enthält zum eindeutigen Identifizieren der Systemplatine (24), um zu überprüfen, ob der Stamm-Start-Datensatz mit der Systemplatine (24) kompatibel ist.
15. Computersystem (10) nach Anspruch 13 oder 14, bei dem die Hardwarekonfigurationsdaten auf dem Stamm-Start-Datensatz einen Modellwert und einen Untermodellwert einschließen, wobei der Modellwert einen Systemprozessor (26) identifiziert, der mit dem Stamm-Start-Datensatz kompatibel ist, und der Untermodellwert eine I/O-Konfiguration einer Systemplatine (24) darstellt, die kompatibel mit dem Stamm-Start-Datensatz ist, und bei dem weiterhin der Festwertspeicher (36) einen entsprechenden Modellwert enthält, der den Systemprozessor (26) identifiziert und einen Untermodellwert, der die I/O-Konfiguration der Systemplatine (24) darstellt, wobei der Modell­ und der Untermodellwert des Stamm-Start- Datensatzes mit dem entsprechenden Modell- und Untermodellwert des Festwertspeichers (36) verglichen werden, um zu Überprüfen, ob der Stamm-Start-Datensatz mit dem Systemprozessor (26) und der I/O-Konfiguration der Systemplatine (24) kompatibel ist.
16. Computersystem (10) nach einem der Ansprüche 1 bis 15, weiter enthaltend einen nichtflüchtigen Speicher mit wahlfreiem Zugriff (58), der elektrisch mit dem Systemprozessor (26) verbunden ist, wobei der nichtflüchtige Speicher mit wahlfreiem Zugriff (58) Daten enthält, die die Systemkonfigurationen darstellen und die aktualisiert werden, wenn die Konfiguration des Systems (10) geändert wird, wobei der erste Teil des BIOS die Daten in dem nichtflüchtigen Speicher (58) mit wahlfreiem Zugriff mit entsprechenden Daten in dem Festwertspeicher (36) vergleicht, um zu bestimmen, ob die Konfiguration des Systems (10) sich geändert hat.
17. Computersystem (10) nach einem der Ansprüche 1 bis 16, bei dem die Speichereinrichtung (62) mit direktem Zugriff eine Festplatte enthält.
18. Computersystem (10) nach Anspruch 17, bei dem der Systemprozessor (26) Datensätze in Blöcken zu der Plattensteuereinheit überträgt, die ein Format besitzen, das die Blöcke sequentiell numeriert, und in dem weiter der Stamm-Start-Datensatz und der restliche Teil des BIOS effektiv in den höherstellig numerierten Blöcken gespeichert sind.
19. Computersystem (10) nach Anspruch 17 oder 18, bei dem das Schutzmittel das Einstellen eines Blockes mit maximaler Adresse umfaßt, wobei der Block mit maximaler Adresse der niedrigst numerierte Block des Stamm-Start-Datensatzes und des restlichen Teiles des BIOS ist, wobei das Schutzmittel den Zugriff auf Blöcke mit gleicher oder höherer Adresse als der des Blockes mit maximaler Adresse verhindert, während es den Zugriff auf Blöcke mit kleinerer Adresse als der des maximal adressierbaren Blockes zuläßt.
20. Gerät zum Verhindern des unberechtigten Zugriffs auf das in einer Massenspeichereinrichtung (62) in einem Personal-Computersystem (10) gespeicherten BIOS, das einen Systemprozessor (26) besitzt, wobei die Massenspeichereinrichtung (62) eine Reihe von Datenblöcken speichern kann, die zwischen einem ersten und zweiten äußersten Datenblock definiert sind, wobei auf das BIOS durch den Systemprozessor (26) in der Form einzeln definierbarer angrenzender Datenblöcke zugegriffen werden kann, wobei das BIOS sich erstreckt von einem dritten äußersten Datenblock zu einem vierten äußersten Datenblock, wobei die dritten und vierten Extreme von den ersten und zweiten Extremen begrenzt sind, das Gerät enthaltend:
ein mit dem Systemprozessor (26) und der Massen­ speichereinrichtung (62) verbundenes Steuergerät zum Umformen einer Eingabe- oder Ausgabeanforde­ rung des Systemprozessors (26) in die physikalischen Eigenschaften der Massenspeicher­ einrichtung (26), wobei die Eingabe/Ausgabe­ anforderungen in der Form einzeln definierbarer angrenzender Datenblöcke vorliegen,
erste logische Mittel zum Einleiten der Erzeugung eines Rückstellsignals,
zweite logische Mittel zum Erzeugen eines zweiten Signals zum Verhindern eines Zugriffs auf den BIOS Code und
Schutzmittel, die auf das Rückstellsignal ansprechen, um den Zugriff auf den BIOS Code zu erlauben, und die auf das zweite Signal ansprechen zum Setzen einer Grenze beim dritten Datenblock, um den Zugriff auf den BIOS Code während der normalen Ausführung berechtigter Programme durch den Systemprozessor (26) zu verhindern.
21. Gerät nach Anspruch 20, bei dem die Massenspeichereinrichtung (62) eine Festplatte enthält, die Eingabe/Ausgabeanforderungen in der Form eines Zylinder-Kopf-Sektor-Formates trägt und bei dem weiter die Steuereinheit die Umwandlung vom Datenblockformat in das Zylinder-Kopf-Sektor- Format vornimmt.
22. Gerät nach Anspruch 20 oder 21, bei dem das Steuergerät eine SCSI Adapterkarte einschließt, die auf den Systemprozessor (26) anspricht.
23. Gerät nach Anspruch 22, bei dem das erste logische Mittel die Erzeugung des Rückstellsignals als Antwort auf eine Einschaltbedingung für den Systemprozessor (26) einleitet.
24. Gerät nach Anspruch 23, bei dem das erste logische Mittel das Erzeugen des Rückstellsignals als Antwort auf eine Eingabe von einer mit dem System (10) verbundene Tastatur einleitet.
25. Verfahren zum Schützen des BIOS in einem Personal-Computersystem (10), wobei das System (10) einen Systemprozessor (26) einschließt, einen Festwertspeicher (36), einen Speicher (32) mit wahlfreiem Zugriff und eine Speichereinrichtung mit direktem Zugriff, wobei das Verfahren die Schritte umfaßt:
  • a) Speichern eines ersten Teiles des BIOS in dem Festwertspeicher (36), wobei der erste Teil des BIOS Mittel zum Initialisieren des Systems (10) einschließt,
  • b) Speichern eines Stamm-Start-Datensatzes und eines restlichen Teiles des BIOS in einer schützbaren Unterteilung auf der Speicher­ einrichtung (62) mit direktem Zugriff, wobei der restliche Teil des BIOS in dem Speicher (32) während normaler Operationen des Systems (10) untergebracht ist,
  • c) Initialisieren des Systems (10) und Hervorrufen der Erzeugung eines Rückstell­ signals, das zu der Speichereinrichtung (62) mit direktem Zugriff geschickt wird,
  • d) Entfernen des Schutzes für die schützbare Unterteilung, um den Systemprozessor (26) auf den Stamm-Start-Datensatz und den restlichen Teil des BIOS zugreifen zu lassen, wobei der Schutz als Antwort auf das Rückstellsignal entfernt wird,
  • e) Laden des Stamm-Start-Datensatzes in den Speicher (32) mit wahlfreiem Zugriff, wobei der Stamm-Start-Datensatz ein aktivierbares Codesegment einschließt,
  • f) Übertragen der Steuerung auf das aktivierbare Codesegment, um den restlichen Teil des BIOS in den Speicher (32) mit wahlfreiem Zugriff zu laden, und
  • g) Übertragen der Steuerung auf den restlichen Teil des BIOS in dem Speicher (32) mit wahlfreiem Zugriff, wobei der restliche Teil des BIOS den Schutz auf der schützbaren Unterteilung einsetzt, um unberechtigten Zugriff zum Stamm-Start-Datensatz und dem restlichen Teil des BIOS, der in der schützbaren Unterteilung auf der Speichereinrichtung (62) mit direktem Zugriff gespeichert ist, zu verhindern.
DE4026912A 1989-08-25 1990-08-25 Computersystem Ceased DE4026912A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/398,820 US5022077A (en) 1989-08-25 1989-08-25 Apparatus and method for preventing unauthorized access to BIOS in a personal computer system

Publications (1)

Publication Number Publication Date
DE4026912A1 true DE4026912A1 (de) 1991-02-28

Family

ID=23576925

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69027165T Expired - Fee Related DE69027165T2 (de) 1989-08-25 1990-07-04 Verfahren und Gerät zum Schutz eines Rechnersystems
DE4026912A Ceased DE4026912A1 (de) 1989-08-25 1990-08-25 Computersystem

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69027165T Expired - Fee Related DE69027165T2 (de) 1989-08-25 1990-07-04 Verfahren und Gerät zum Schutz eines Rechnersystems

Country Status (17)

Country Link
US (1) US5022077A (de)
EP (1) EP0417889B1 (de)
JP (1) JPH0754463B2 (de)
KR (1) KR930004902B1 (de)
CN (1) CN1017942B (de)
AT (1) ATE138748T1 (de)
AU (1) AU635551B2 (de)
BR (1) BR9004199A (de)
CA (1) CA2020520C (de)
DE (2) DE69027165T2 (de)
GB (1) GB9012948D0 (de)
HK (1) HK203196A (de)
IL (1) IL95229A0 (de)
MX (1) MX171879B (de)
MY (1) MY106706A (de)
NZ (1) NZ234712A (de)
SG (1) SG44409A1 (de)

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5136713A (en) * 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
GB9003890D0 (en) * 1990-02-21 1990-04-18 Rodime Plc Method and apparatus for controlling access to and corruption of information in computer systems
JPH03276337A (ja) * 1990-03-27 1991-12-06 Toshiba Corp マイクロコントローラ
EP0449242A3 (en) * 1990-03-28 1992-10-28 National Semiconductor Corporation Method and structure for providing computer security and virus prevention
US5193174A (en) * 1990-07-23 1993-03-09 International Business Machines Corporation System for automatically redirecting information to alternate system console in response to the comparison of present and default system configuration in personal computer system
US5214695A (en) * 1990-07-23 1993-05-25 International Business Machines Corporation Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
US5128995A (en) * 1990-07-23 1992-07-07 International Business Machines Corp. Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
FR2671205B1 (fr) * 1990-12-27 1995-01-20 Telemecanique Procede de controle de l'utilisation d'un poste de travail informatique par mot de passe et poste de travail informatique mettant en óoeuvre ce procede.
US5432946A (en) * 1991-04-11 1995-07-11 International Business Machines Corp. LAN server personal computer with unattended activation capability
WO1992021087A1 (en) * 1991-05-13 1992-11-26 Hill, William, Stanley Method and apparatus for preventing 'disease' damage in computer systems
US5388267A (en) * 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
JP2637310B2 (ja) * 1991-06-19 1997-08-06 富士通株式会社 システムインストール制御装置
DE4123126C1 (de) * 1991-07-12 1992-06-25 Man Roland Druckmaschinen Ag, 6050 Offenbach, De
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5257379A (en) * 1991-09-04 1993-10-26 International Business Machines Corporation Establishing synchronization of hardware and software I/O configuration definitions
US5826075A (en) * 1991-10-16 1998-10-20 International Business Machines Corporation Automated programmable fireware store for a personal computer system
US5388266A (en) * 1992-03-30 1995-02-07 International Business Machines Corporation Management of data objects used intain state information for shared data at a local complex
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5432939A (en) * 1992-05-27 1995-07-11 International Business Machines Corp. Trusted personal computer system with management control over initial program loading
US5408664A (en) * 1992-06-19 1995-04-18 Silicon Graphics, Incorporated System and Method for booting computer for operation in either of two byte-order modes
US5379342A (en) * 1993-01-07 1995-01-03 International Business Machines Corp. Method and apparatus for providing enhanced data verification in a computer system
US6357000B1 (en) 1993-01-29 2002-03-12 Microsoft Corporation Method and system for specified loading of an operating system
JPH06242957A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd プログラム実行制御装置
US5542077A (en) * 1993-09-10 1996-07-30 Compaq Computer Corporation Personal computer with CMOS memory not having a separate battery
US5651139A (en) * 1993-12-23 1997-07-22 International Business Machines Corporation Protected system partition read/write access on a SCSI controlled DASD
CN1053507C (zh) * 1994-10-07 2000-06-14 邵通 计算机硬盘读写控制装置
US5768568A (en) * 1994-04-29 1998-06-16 International Business Machines Corp. System and method for initializing an information processing system
US5864698A (en) * 1994-08-24 1999-01-26 Packard Bell Nec Disk based bios
US5537540A (en) * 1994-09-30 1996-07-16 Compaq Computer Corporation Transparent, secure computer virus detection method and apparatus
US6421776B1 (en) * 1994-10-14 2002-07-16 International Business Machines Corporation Data processor having BIOS packing compression/decompression architecture
US5692187A (en) * 1995-02-14 1997-11-25 General Magic Shadow mechanism having masterblocks for a modifiable object oriented system
US5819306A (en) * 1995-02-14 1998-10-06 General Magic Shadow mechanism for a modifiable object oriented system
US5835594A (en) * 1996-02-09 1998-11-10 Intel Corporation Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage
US5712973A (en) * 1996-05-20 1998-01-27 International Business Machines Corp. Wireless proximity containment security
US6330648B1 (en) * 1996-05-28 2001-12-11 Mark L. Wambach Computer memory with anti-virus and anti-overwrite protection apparatus
US5822614A (en) * 1996-05-31 1998-10-13 Unisys Corporation Self-identifying peripheral device
US6530019B1 (en) * 1996-06-12 2003-03-04 Dell U.S.A., L.P. Disk boot sector for software contract enforcement
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US5819087A (en) * 1996-07-19 1998-10-06 Compaq Computer Corporation Flash ROM sharing between processor and microcontroller during booting and handling warm-booting events
US5844986A (en) * 1996-09-30 1998-12-01 Intel Corporation Secure BIOS
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
US5892943A (en) * 1996-12-30 1999-04-06 Standard Microsystems Corp. Shared bios ROM warm boot
US6560701B1 (en) 1997-02-10 2003-05-06 International Business Machines Corporation Alternate boot record
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
JPH11143718A (ja) * 1997-11-05 1999-05-28 Nec Corp Bios格納並びに制御方法
KR100441171B1 (ko) * 1998-02-20 2004-10-14 삼성전자주식회사 플래쉬롬과램을이용한펌웨어구현방법
US6269374B1 (en) * 1998-05-26 2001-07-31 International Business Machines Corporation Method and apparatus for updating checksums of data structures
WO1999066383A2 (en) * 1998-06-15 1999-12-23 Dmw Worldwide, Inc. Method and apparatus for assessing the security of a computer system
US6138240A (en) * 1998-06-19 2000-10-24 Compaq Computer Corporation Secure general purpose input/output pins for protecting computer system resources
JP3937598B2 (ja) * 1998-07-14 2007-06-27 株式会社デンソー 電子制御装置
US6401208B2 (en) 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6735696B1 (en) * 1998-08-14 2004-05-11 Intel Corporation Digital content protection using a secure booting method and apparatus
US6493749B2 (en) * 1998-08-17 2002-12-10 International Business Machines Corporation System and method for an administration server
US6327660B1 (en) 1998-09-18 2001-12-04 Intel Corporation Method for securing communications in a pre-boot environment
US7380140B1 (en) * 1998-12-30 2008-05-27 Spyrus, Inc. Providing a protected volume on a data storage device
US6546489B1 (en) 1999-03-04 2003-04-08 Western Digital Ventures, Inc. Disk drive which provides a secure boot of a host computer system from a protected area of a disk
US6618810B1 (en) 1999-05-27 2003-09-09 Dell Usa, L.P. Bios based method to disable and re-enable computers
US6647494B1 (en) 1999-06-14 2003-11-11 Intel Corporation System and method for checking authorization of remote configuration operations
CN1091903C (zh) * 1999-06-28 2002-10-02 李增胜 防止cih等病毒破坏计算机主板bios的方法
US6487465B1 (en) * 1999-11-01 2002-11-26 International Business Machines Corporation Method and system for improved computer security during ROM Scan
TW452733B (en) * 1999-11-26 2001-09-01 Inventec Corp Method for preventing BIOS from viruses infection
US7231513B1 (en) * 1999-12-17 2007-06-12 Intel Corporation Dynamically linked basic input/output system
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7082615B1 (en) 2000-03-31 2006-07-25 Intel Corporation Protecting software environment in isolated execution
US7111176B1 (en) 2000-03-31 2006-09-19 Intel Corporation Generating isolated bus cycles for isolated execution
US6957332B1 (en) 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6990579B1 (en) 2000-03-31 2006-01-24 Intel Corporation Platform and method for remote attestation of a platform
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US6507904B1 (en) * 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7356817B1 (en) 2000-03-31 2008-04-08 Intel Corporation Real-time scheduling of virtual machines
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6996710B1 (en) 2000-03-31 2006-02-07 Intel Corporation Platform and method for issuing and certifying a hardware-protected attestation key
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US7089418B1 (en) 2000-03-31 2006-08-08 Intel Corporation Managing accesses in a processor for isolated execution
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6880048B1 (en) * 2000-06-08 2005-04-12 Palm, Source, Inc. Method and apparatus for fault-tolerant update of flash ROM contents
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
US6678833B1 (en) 2000-06-30 2004-01-13 Intel Corporation Protection of boot block data and accurate reporting of boot block contents
US6976163B1 (en) 2000-07-12 2005-12-13 International Business Machines Corporation Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein
US7069452B1 (en) * 2000-07-12 2006-06-27 International Business Machines Corporation Methods, systems and computer program products for secure firmware updates
GB0020438D0 (en) 2000-08-18 2000-10-04 Hewlett Packard Co Security apparatus
GB0020371D0 (en) * 2000-08-18 2000-10-04 Hewlett Packard Co Apparatus and method for establishing trust
US7389427B1 (en) 2000-09-28 2008-06-17 Intel Corporation Mechanism to secure computer output from software attack using isolated execution
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US6414513B1 (en) 2000-10-03 2002-07-02 International Business Machines Corporation Customized system-readable hardware/firmware integrated circuit version information
US7215781B2 (en) * 2000-12-22 2007-05-08 Intel Corporation Creation and distribution of a secret value between two devices
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
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
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7117376B2 (en) * 2000-12-28 2006-10-03 Intel Corporation Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations
US6976172B2 (en) * 2000-12-28 2005-12-13 Intel Corporation System and method for protected messaging
US7028184B2 (en) * 2001-01-17 2006-04-11 International Business Machines Corporation Technique for digitally notarizing a collection of data streams
US6990444B2 (en) 2001-01-17 2006-01-24 International Business Machines Corporation Methods, systems, and computer program products for securely transforming an audio stream to encoded text
US6691213B1 (en) * 2001-02-28 2004-02-10 Western Digital Ventures, Inc. Computer system and method for accessing a protected partition of a disk drive that lies beyond a limited address range of a host computer's BIOS
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7272831B2 (en) * 2001-03-30 2007-09-18 Intel Corporation Method and apparatus for constructing host processor soft devices independent of the host processor operating system
US20030037237A1 (en) * 2001-04-09 2003-02-20 Jean-Paul Abgrall Systems and methods for computer device authentication
US6976136B2 (en) 2001-05-07 2005-12-13 National Semiconductor Corporation Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
CA2490695C (en) * 2001-06-29 2014-08-12 Michael Alfred Hearn Security system and method for computers
US6862681B2 (en) 2001-07-16 2005-03-01 International Business Machines Corporation Method and system for master boot record recovery
US6549980B2 (en) 2001-07-19 2003-04-15 Dell Pruducts L.P. Manufacturing process for software raid disk sets in a computer system
US7036020B2 (en) * 2001-07-25 2006-04-25 Antique Books, Inc Methods and systems for promoting security in a computer system employing attached storage devices
US7925894B2 (en) * 2001-07-25 2011-04-12 Seagate Technology Llc System and method for delivering versatile security, digital rights management, and privacy services
US7165137B2 (en) * 2001-08-06 2007-01-16 Sandisk Corporation System and method for booting from a non-volatile application and file storage device
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
DE10142537A1 (de) * 2001-08-30 2003-03-20 Adp Gauselmann Gmbh Verfahren zur Aktivierung einer in einem Gehäuse angeordneten Steuereinheit, die gegen ein Ausspähen von Daten geschützt ist
US7237126B2 (en) * 2001-09-28 2007-06-26 Hewlett-Packard Development Company, L.P. Method and apparatus for preserving the integrity of a management subsystem environment
US20040054952A1 (en) * 2002-09-13 2004-03-18 Morrow James W. Device verification system and method
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7103771B2 (en) * 2001-12-17 2006-09-05 Intel Corporation Connecting a virtual token to a physical token
US20030126454A1 (en) * 2001-12-28 2003-07-03 Glew Andrew F. Authenticated code method and apparatus
US20030126453A1 (en) * 2001-12-31 2003-07-03 Glew Andrew F. Processor supporting execution of an authenticated code instruction
US7308576B2 (en) * 2001-12-31 2007-12-11 Intel Corporation Authenticated code module
US7480806B2 (en) * 2002-02-22 2009-01-20 Intel Corporation Multi-token seal and unseal
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
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7028149B2 (en) * 2002-03-29 2006-04-11 Intel Corporation System and method for resetting a platform configuration register
US20030191943A1 (en) * 2002-04-05 2003-10-09 Poisner David I. Methods and arrangements to register code
US20030196096A1 (en) * 2002-04-12 2003-10-16 Sutton James A. Microcode patch authentication
US7076669B2 (en) * 2002-04-15 2006-07-11 Intel Corporation Method and apparatus for communicating securely with a token
US20030196100A1 (en) * 2002-04-15 2003-10-16 Grawrock David W. Protection against memory attacks following reset
US7058807B2 (en) * 2002-04-15 2006-06-06 Intel Corporation Validation of inclusion of a platform within a data center
US7127548B2 (en) * 2002-04-16 2006-10-24 Intel Corporation Control register access virtualization performance improvement in the virtual-machine architecture
US7139890B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Methods and arrangements to interface memory
US7114051B2 (en) * 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
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
US7392415B2 (en) * 2002-06-26 2008-06-24 Intel Corporation Sleep protection
US20040003321A1 (en) * 2002-06-27 2004-01-01 Glew Andrew F. Initialization of protected system
US6996748B2 (en) * 2002-06-29 2006-02-07 Intel Corporation Handling faults associated with operation of guest software in the virtual-machine architecture
US7124327B2 (en) * 2002-06-29 2006-10-17 Intel Corporation Control over faults occurring during the operation of guest software in the virtual-machine architecture
US7296267B2 (en) * 2002-07-12 2007-11-13 Intel Corporation System and method for binding virtual machines to hardware contexts
EP1795991A1 (de) * 2002-07-30 2007-06-13 Fujitsu Limited Verfahren und Gerät zur Wiedergabe von Information mit einem Sicherheitsmodul
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
US7082525B2 (en) * 2002-10-02 2006-07-25 Sandisk Corporation Booting from non-linear memory
US20040078497A1 (en) * 2002-10-17 2004-04-22 Nalawadi Rajeev K. Method and apparatus for detecting configuration change
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US20040117318A1 (en) * 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
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
US7076802B2 (en) * 2002-12-31 2006-07-11 Intel Corporation Trusted system clock
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7424709B2 (en) * 2003-09-15 2008-09-09 Intel Corporation Use of multiple virtual machine monitors to handle privileged events
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
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
US7366305B2 (en) * 2003-09-30 2008-04-29 Intel Corporation Platform and method for establishing trust without revealing identity
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
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
US20050133582A1 (en) * 2003-12-22 2005-06-23 Bajikar Sundeep M. Method and apparatus for providing a trusted time stamp in an open platform
US7178015B2 (en) * 2004-01-12 2007-02-13 Hewlett-Packard Development Company, L.P. Security measures in a partitionable computing system
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
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
US20050257016A1 (en) * 2004-05-17 2005-11-17 Brian Boles Digital signal controller secure memory partitioning
US7490070B2 (en) 2004-06-10 2009-02-10 Intel Corporation Apparatus and method for proving the denial of a direct proof signature
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
US7694121B2 (en) * 2004-06-30 2010-04-06 Microsoft Corporation System and method for protected operating system boot using state validation
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7343496B1 (en) * 2004-08-13 2008-03-11 Zilog, Inc. Secure transaction microcontroller with secure boot loader
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
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
US8533777B2 (en) * 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
CN100416448C (zh) * 2005-08-25 2008-09-03 深圳市研祥智能科技股份有限公司 计算机系统及其配置方法
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
CN100421075C (zh) * 2006-01-25 2008-09-24 英业达股份有限公司 Bios程序启始区更新系统以及方法
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US8028166B2 (en) * 2006-04-25 2011-09-27 Seagate Technology Llc Versatile secure and non-secure messaging
US8429724B2 (en) 2006-04-25 2013-04-23 Seagate Technology Llc Versatile access control system
US7539890B2 (en) * 2006-04-25 2009-05-26 Seagate Technology Llc Hybrid computer security clock
KR20080004773A (ko) * 2006-07-06 2008-01-10 삼성전자주식회사 하드 디스크의 액세스 타임 자동 설정 방법 및 그 장치
US8037291B2 (en) * 2007-01-29 2011-10-11 Hewlett-Packard Development Company, L.P. Master boot record management
US8132253B2 (en) * 2008-04-21 2012-03-06 Dell Products L.P. Memory security override protection for manufacturability of information handling systems
CN102467426B (zh) * 2010-11-08 2015-01-28 英业达股份有限公司 在bios中禁止外接卡选项只读内存的方法
JP6070115B2 (ja) * 2012-11-28 2017-02-01 日本電気株式会社 情報処理装置、bmcおよびbiosアップデート方法
US9036284B1 (en) * 2013-09-16 2015-05-19 Seagate Technology Llc Isolated shingled bands of fractional tracks
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
CN107220553A (zh) * 2017-05-25 2017-09-29 郑州云海信息技术有限公司 一种保护bios芯片中存储的内容的装置及控制芯片
US10623432B2 (en) 2017-06-21 2020-04-14 International Business Machines Corporation Mitigating security risks utilizing continuous device image reload with data integrity
EP3759591B1 (de) 2018-08-03 2023-09-27 Hewlett-Packard Development Company, L.P. Bios-persönlichkeiten
US11574060B2 (en) 2019-04-24 2023-02-07 International Business Machines Corporation Secure initial program load
CN111258617B (zh) * 2019-12-31 2022-03-25 联想(北京)有限公司 一种电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3931504A (en) * 1972-02-07 1976-01-06 Basic Computing Arts, Inc. Electronic data processing security system and method
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
US4593353A (en) * 1981-10-26 1986-06-03 Telecommunications Associates, Inc. Software protection method and apparatus
JPS5897724A (ja) * 1981-12-04 1983-06-10 Mitsubishi Electric Corp 初期プログラムロ−ド方法
US4525599A (en) * 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
US4785361A (en) * 1982-11-08 1988-11-15 Vault Corporation Method and apparatus for frustrating the unauthorized copying of recorded data
JPS59167873A (ja) * 1983-03-14 1984-09-21 Toshiba Corp 磁気デイスク装置のデ−タ保護機構
US4562306A (en) * 1983-09-14 1985-12-31 Chou Wayne W Method and apparatus for protecting computer software utilizing an active coded hardware device
US4577289A (en) * 1983-12-30 1986-03-18 International Business Machines Corporation Hardware key-on-disk system for copy-protecting magnetic storage media
US4748561A (en) * 1984-05-14 1988-05-31 Mark Brown Method of protecting computer software
US4747139A (en) * 1984-08-27 1988-05-24 Taaffe James L Software security method and systems
CA1238427A (en) * 1984-12-18 1988-06-21 Jonathan Oseas Code protection using cryptography
JPS61201357A (ja) * 1985-03-02 1986-09-06 Nec Corp 情報処理装置
US4688169A (en) * 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US4685056A (en) * 1985-06-11 1987-08-04 Pueblo Technologies, Inc. Computer security device
US4685055A (en) * 1985-07-01 1987-08-04 Thomas Richard B Method and system for controlling use of protected software
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US4796220A (en) * 1986-12-15 1989-01-03 Pride Software Development Corp. Method of controlling the copying of software
JPH01154226A (ja) * 1987-12-10 1989-06-16 Nec Corp Bios内蔵ハードディスク装置システム
FR2629231A1 (fr) * 1988-03-24 1989-09-29 Salzmann Jean Loup Dispositif de protection des ordinateurs contre les programmes malveillants appeles " virus "
JPH0223427A (ja) * 1988-07-13 1990-01-25 Toshiba Corp パーソナルコンピュータ

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
in: IBM Technical Disclosure Bulletin Vol. 29, NO. 10, März 1987, S. 4384-4386 *
Steffen Dirk, Paßwortschutz für Festplatten, in: DDESIGN & ELEKTRONIK, Ausgabe 8 vom 12.4.1988, S. 74-76 *
Two-Level Data Security System for IBM Personal Computer *

Also Published As

Publication number Publication date
DE69027165T2 (de) 1996-12-12
AU635551B2 (en) 1993-03-25
CN1017942B (zh) 1992-08-19
MY106706A (en) 1995-07-31
AU5999390A (en) 1991-02-28
EP0417889A3 (en) 1992-03-18
JPH0391838A (ja) 1991-04-17
HK203196A (en) 1996-11-15
CA2020520A1 (en) 1991-02-26
NZ234712A (en) 1993-04-28
KR930004902B1 (ko) 1993-06-10
MX171879B (es) 1993-11-22
EP0417889A2 (de) 1991-03-20
CA2020520C (en) 1995-08-15
KR910005162A (ko) 1991-03-30
GB9012948D0 (en) 1990-08-01
EP0417889B1 (de) 1996-05-29
US5022077A (en) 1991-06-04
ATE138748T1 (de) 1996-06-15
SG44409A1 (en) 1997-12-19
JPH0754463B2 (ja) 1995-06-07
IL95229A0 (en) 1991-06-10
BR9004199A (pt) 1991-09-03
CN1049923A (zh) 1991-03-13
DE69027165D1 (de) 1996-07-04

Similar Documents

Publication Publication Date Title
DE4026912A1 (de) Computersystem
DE4026911A1 (de) Computersystem
DE60037606T2 (de) Rechner mit urladungsfähigem sicherem Programm
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE69534867T2 (de) Verfahren und System zur Lieferung geschützter Gerätetreiber
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
DE60018807T2 (de) Verfahren und vorrichtung zur wiederherstellung der konfiguration eines rechners
DE60210434T2 (de) Betriebssystemselektor und Datenplattenspeicher
EP0468625B1 (de) Personalrechnersystem mit geschütztem Speicher für die Schnittstelle und System-Utility-Programme
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE19882696B4 (de) Speichertransaktionen auf einem Bus geringer Leitungsanzahl
DE19918640A1 (de) Verfahren und System zum Liefern einer kundenspezifischen Softwareinstallation an ein Computersystem
DE60221620T2 (de) Datenspeichergerät zum Speichern von Daten in unbeschriebenen Zonen eines Speichermediums
DE112004001605T5 (de) Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
US5291600A (en) Recovery of in-core disk data
CH619309A5 (de)
DE60100848T2 (de) Virtuelles rom für geräte-aufzählung
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE112009000344T5 (de) Zugriffsrechte auf eine Speicher-Map
EP0182044A2 (de) Einleitungsapparat für eine Datenverarbeitungsanlage mit mehreren Ein- und Ausgängen und ein mit einer gemeinsamen Sammelleitung verbundenes Speichersteuergerät
DE102005025399A1 (de) System und Verfahren zur SCSI- und SAS-Hardwarevalidierung
DE102005037855A1 (de) System und Verfahren zum Speichern von Benutzerdaten in einer Partitionsdatei oder zum Verwenden einer Partitionsdatei, die Benutzerdaten enthält
EP0871125A1 (de) Logikmodul für Systemänderungen eines Computers mit PC-Architektur
DE10393859T5 (de) Entkoppelter Hardwarekonfigurationsmanager

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection