WO1999028804A2 - Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems - Google Patents

Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems Download PDF

Info

Publication number
WO1999028804A2
WO1999028804A2 PCT/DE1998/003485 DE9803485W WO9928804A2 WO 1999028804 A2 WO1999028804 A2 WO 1999028804A2 DE 9803485 W DE9803485 W DE 9803485W WO 9928804 A2 WO9928804 A2 WO 9928804A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
bios
flash
deskflash
application program
Prior art date
Application number
PCT/DE1998/003485
Other languages
English (en)
French (fr)
Other versions
WO1999028804A3 (de
Inventor
Thomas Munker
Helmut Altmann
Uwe Michel
Original Assignee
Fujitsu Siemens Computers Gmbh
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 Fujitsu Siemens Computers Gmbh filed Critical Fujitsu Siemens Computers Gmbh
Priority to DE59810185T priority Critical patent/DE59810185D1/de
Priority to AT98965590T priority patent/ATE254307T1/de
Priority to EP98965590A priority patent/EP1032871B1/de
Publication of WO1999028804A2 publication Critical patent/WO1999028804A2/de
Publication of WO1999028804A3 publication Critical patent/WO1999028804A3/de
Priority to US09/580,980 priority patent/US6591366B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Definitions

  • the invention relates to a method and an arrangement for loading data according to the features specified in the preamble of claim 1 and claim 6, respectively.
  • Data processing systems such as personal computers, usually only become fully functional after an operating system has been loaded. Even without an operating system, the data processing systems require basic functionality with which elementary operations can be carried out. Such elementary operations are, for example, routines for the input of characters via the keyboard and their output on the screen and the printer, a routine for loading the operating system for the main memory, and test routines for an automatically running self-test when the data processing system is switched on. These operations are also known as basic system routines.
  • the data required to execute these system routines are stored in a non-volatile memory module in the data processing system, for example PROM, EPROM, FLASH, etc. , saved permanently.
  • BIOS Basic Input Output System
  • the basic system routines may have a significant influence on the way a data processing system works, it may required to use a revised version of the basic system routines in the data processing system. This can be done by replacing the PROM memory module. If, instead of a non-rewritable PROM, a rewritable memory block, for example EEPROM or a FLASH block, is available in the data processing system, then the basic system routines can be loaded into this memory block.
  • a rewritable memory block for example EEPROM or a FLASH block
  • the newer operating systems do not support loading a new version of the basic system routines into the non-volatile memory chip. Only programs of an application layer of the operating system are available to the user. Programs of a kernel layer of the operating system for which access to the essential functional elements of the data processing system is allowed, the user has no access. The data processing system must therefore always be rebooted for loading a new version for basic system routines. This bootstrapping must then be done using another operating system that at least supports loading the new version of the basic system routines. If such an operating system is loaded, security mechanisms of the operating system that is actually intended for the operation of the data processing system cannot take effect. This makes it possible to access other data stored within the data processing system. This data can also be changed in an inadmissible manner by so-called viruses so that malfunctions can occur during later regular operation.
  • the present invention has for its object to provide a method and an arrangement for loading data for basic system routines of a data processing system, which largely excludes security risks when loading the data.
  • the application program and the driver program which are in the application layer or. can be called up and run in the kernel layer
  • the data processing system can be operated unchanged during the loading process with its intended operating system, which is protected against manipulation.
  • An inadmissible circumvention of the safety technology of this operating system is closed. This effectively prevents unauthorized overwriting of the basic system routines.
  • Authorization to call the application program can, for example, be assigned to users who also have administrator rights.
  • the data processing system cannot be contaminated with viruses unless the operating system contains suitable protective mechanisms.
  • the data processing system only needs to be provided with the data of the new version of the data for basic system routines. These are transferred from the application program to the driver program.
  • the driver program which cannot be accessed from the application layer, transfers the data to the non-volatile memory.
  • the application program takes over so-called location information from the file with the new data for basic system routines. On the basis of this location information, the application program breaks down the new data into packets, which are passed to the driver program provided with corresponding location information. This portionwise transfer Carrying the data affects the functioning of the operating system and other running application programs of the data processing system only insignificantly. Loading the new one
  • Data of the basic system routines can thus also be made during the regular operation of the data processing system.
  • the portion size can be adapted to the parameters of the non-volatile memory.
  • the smallest packet corresponds to the smallest storage unit of the non-volatile memory, and the largest packet corresponds to the amount of data that can be transferred to the non-volatile memory in one load.
  • the smallest amount of data is 1 byte and the largest amount of data is 64 KB.
  • the driver program is adapted to the needs of the non-volatile memory.
  • the non-volatile memories in particular the FLASH memories, are generally organized in sectors, with specific address areas being writable within individual memory sectors.
  • the deletion can only be carried out for an entire sector. If the application program now provides the information that the transferred data are intended for sector i and should be written there in the addresses k to k + n, then the driver program first determines whether it has already deleted this sector in a previous process. If this is the case, then the deletion process can be omitted at the present time and only the data have to be written to the addresses k to k + n.
  • n 1000, so that each time the data is transferred from the user program to the driver program, one KB is transferred. Such an amount of data affects the functionality of the operating system and the other running applications only very slightly.
  • the application program can also take over the functionality of the driver program described above, after which it must be determined whether a sector had already been deleted in a previous process. In this In this case, the driver program would simply follow the corresponding instructions of the application program.
  • the application program can be started by remote access.
  • This functionality enables a system administrator in a computer network to run new basic system routines in a batch run using a software distribution tool on a plurality of data processing systems Install operations.
  • the application program is called, the batch only has to transfer the necessary parameters, such as the authorization information and the new data.
  • BIOS Basic system routines
  • a non-volatile memory hereinafter referred to as flash
  • the flash is a memory chip, the memory of which is divided into sectors with a size of 64 KB. Individual bytes can be addressed and written within the sectors. A deletion can only be carried out for an entire sector.
  • the data processing system can use the BIOS stored in the flash to load an operating system into its working memory (not shown), as a result of which it is brought into an operational state.
  • the operating system has two hierarchical layers AS, KS, from which different accesses to the data processing system are possible. are borrowed. Programs arranged therein can access hardware elements of the data processing system from a kernel layer KS.
  • KS hierarchical layers
  • Programs arranged therein can access hardware elements of the data processing system from a kernel layer KS.
  • a driver program SniFlash is assigned, which is able to read data from the flash, delete data and write data into the flash.
  • the second layer of the operating system, the application layer AS is assigned application programs which are not allowed to access parts of the data processing system which impair or immediately affect the security of the operating system.
  • An application program that is arranged in this application layer AS is the application program DeskFlash, which is provided for loading a new BIOS version N_BIOS. Via the application program DeskFlash and the driver program SniFlash, data can be exchanged across the layer boundaries between application layer AS and kernel layer KS.
  • the application program DeskFlash can be carried out directly by calling the user of the data processing system.
  • the DeskFlash application program can be started by remote access using a software distribution tool.
  • a system administrator who transmits parameters to selected data processing systems via a network that connects a plurality of data processing systems can start a batch run on the respective data processing systems. In this batch run, the parameter transfers required to start the DeskFlash application program are then made.
  • the application program DeskFlash When the application program DeskFlash is started, it is checked whether the user who initiated the initialization of the application program DeskFlash belongs to the user group of the administrators. Only the group of administrators is authorized to start the application program DeskFlash. If such authorization does not exist and has not been verified using parameters as part of the alternative remote access, the execution of the DeskFlash application program is terminated. It is not possible for unauthorized persons to load a new BIOS version N_BIOS into the data processing system.
  • the application program DeskFlash first opens a file OMF in which the new BIOS data N_BIOS are made available.
  • the OMF file also contains information about which data processing system with which system boards and function blocks the new BIOS version N_BIOS is suitable for.
  • the application program DeskFlash first reads out this data in the way designated by 1 in the figure.
  • the application program DeskFlash asks the driver program SniFlash in a way designated by 4, from which the data relating to the system board and the modules located thereon, for which the previous BIOS could be used, are read from Flash. This process is carried out by the SniFlash driver program using the paths labeled 5 and 2.
  • the driver program SniFlash transmits the read data in the way designated 3 to the application program DeskFlash.
  • the data that is now available to the application program DeskFlash for the system board and the function blocks thereon of the BIOS previously available in the flash and the new BIOS data N_BIOS available in the OMF file are compared by the application program DeskFlash. If the identity is present, the existing BIOS version can be overwritten with the new BIOS version N_BIOS. Otherwise, the user is informed that there is a mismatch between the old BIOS and the new BIOS version N_BIOS, and then the application program DeskFlash is ended.
  • the application program DeskFlash now reads the data of the OMF file on route 1 and evaluates it according to predefined rules. These rules determine how header information is to be interpreted.
  • the OMF file contains this header information, from which it can be derived which contents of the OMF file are to be written to which locations in the flash. Taking this information into account, the application program DeskFlash performs a further breakdown into smaller packages, which can also contain location information - in which sector of the flash and to which address within this sector the data are to be written. The addition of this information to the packets which are transmitted via route 4 to the driver program SniFlash can only be dispensed with if it is ensured that no data loss can occur during serial transmission of the packets.
  • the first packet of data to be written in a particular sector of the flash contains the name of the sector and the starting address from which the data of the present packet and the subsequent packets must be written.
  • the data packets have a size of 1 KB, which means that the work of the operating system and other application programs running below it is only slightly impaired.
  • the driver program SniFlash receives a data packet via route 4, it first interprets the location information assigned to it. If no location information is added, it writes the data of the packet via path 5 following the previously written data into the corresponding sector of the flash. If location information is available, it is first checked whether the sector of the flash designated in the location information has already been deleted and whether data from previous packets have already been entered there. If this is the case, the. Data of the current package to the in the location information designated positions, for example starting with the address k up to the address k + 1000. If, however, the sector of the flash specified in the location information is a sector that has not yet been deleted and therefore still contains data from the old BIOS, the driver program SniFlash causes the corresponding sector of the flash to be deleted. Only then does it write the data of the package to the addresses specified in the location information.
  • the driver program SniFlash informs the application program DeskFlash via route 3 whether the writing of a data package to the flash was successful.
  • the absence of such a message or the presence of a corresponding error message causes the application program DeskFlash to make another attempt to write the data by transmitting corresponding data packets again via route 4 to the driver program SniFlash.
  • Additional measures such as user information, writing back already deleted data to the flash and the like are only initiated if the SniFlash driver program again issues an error message.
  • the user is prompted by the application program DeskFlash to reboot the data processing system. If the user does not follow this suggestion, the data processing system can continue to be operated with the old BIOS until the next boot process.

Abstract

Aus neuen Betriebssystemen, die über zwei Schichten mit verschiedenen Zugriffsrechten verfügen, kann aus Sicherheitsgründen nur aus einer Kernel-Schicht (KS), nicht aber aus einer Anwendungs-Schicht (AS) auf einen Speicher (Flash) für grundlegende Systemroutinen (BIOS) zugegriffen werden. Durch das Vorsehen je eines in der jeweiligen Schicht lauffähigen Programmes (DeskFlash, SniFlash) kann unter Einhaltung der Sicherheitsvorschriften auf den Speicher (Flash) zugegriffen werden und somit eine neue Version grundlegender Systemroutinen (N_BIOS) dem Datenverarbeitungssystem verfügbar gemacht werden.

Description

Beschreibung
Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems
Die Erfindung bezieht sich auf ein Verfahren und eine Anordnung zum Laden von Daten nach den im Oberbegriff von Anspruch 1 bzw. Anspruch 6 angegebenen Merkmalen .
Datenverarbeitungsanlagen, wie beispielsweise Personalcomputer, werden üblicherweise erst nach Laden eines Betriebssystems voll funktionsfähig . Auch ohne Betriebssystem benötigen die Datenverarbeitungsanlagen eine Grundfunktionalität, mit der elementare Operationen ausgeführt werden können. Solche elementaren Operationen sind beispielsweise Routinen für die Eingabe von Zeichen über die Tastatur sowie deren Ausgabe auf dem Bildschirm und dem Drucker, eine Routine für das Laden des Betriebssystems für den Arbeitsspeicher, sowie Prüfroutinen für einen automatisch ablaufenden Selbsttest beim Einschalten der Datenverarbeitungsanlage . Diese Operationen werden auch als grundlegende Systemroutinen bezeichnet . Die zum Ausführen dieser Syste routinen erforderlichen Daten werden in einem nichtflüchtigen Speicherbaustein der Datenverarbeitungsanlage, beispielsweise PROM, EPROM, FLASH, etc . , dauerhaft gespeichert . Man spricht dabei auch von einem BIOS (Basic Input Output System) .
Aus der Druckschrift : c' t 1997 Heft 2, Seiten 106 -110 ist es Bereits bekannt, beim Laden von BIOS-Daten geeignete Treiber- und Anwendungsprogramme aufzurufen .
Da die grundlegenden Systemroutinen die Arbeitsweise einer Datenverarbeitungsanlage wesentlich beeinflussen, ist es unter Umstän- den erforderlich, eine überarbeitete Version der grundlegenden Systemroutinen in der Datenverarbeitungsanlage einzusetzen. Dies kann durch einen Austausch des Speicherbausteins PROM erfolgen. Ist an Stelle eines nicht überschreibbaren PROMs ein überschreibbarer Speicherbaustein, beispielsweise EEPROM oder ein FLASH- Baustein in der Datenverarbeitungsanlage vorhanden, dann können die grundlegenden Systemroutinen in diesen Speicherbaustein geladen werden.
Zum Übertragen der Daten für die neuen grundlegenden Systemroutinen werden spezielle Programme verwendet, die mit herkömmlichen Betriebssystemen (Microsoft DOS) zusammenarbeiten. Beim Laden dieser gängigen Betriebsysteme wird eine Kopie der Daten aus dem nicht flüchtigen Speicher für grundlegende Systemroutinen im Arbeitsspeicher des Datenverarbeitungssystems abgelegt. Wird eine in den grundlegenden Systemroutinen definierte Funktionalität benötigt, wird auf diese Kopie im Arbeitsspeicher zurückgegriffen. Das Zusammenarbeiten mit der Kopie der grundlegenden Systemroutinen hat jedoch sicherheitstechnische Nachteile zur Folge, da die kopierten Daten vergleichsweise einfach durch Umgehen des Schreibschutzes verändert werden können. Bei neueren Betriebssystemen (IBM OS/2, Microsoft Windows 95 und Microsoft Windows NT) wird deshalb eine Lauffähigkeit angestrebt, die ohne Rückgriff auf eine Kopie der grundlegenden Systemroutinen im Arbeitsspeicher des Datenverarbeitungssystems möglich ist.
Aufgrund solcher Sicherheitsüberlegungen unterstützen die neueren Betriebsysteme das Laden einer neuen Version der grundlegenden Systemroutinen in den nicht flüchtigen Speicherbaustein nicht. Dem Benutzer stehen lediglich Programme einer Anwendungs-Schicht des Betriebsystems zur Verfügung. Auf Programme einer Kernel- Schicht des Betriebssystems, für die ein Zugriff auf für die Si- cherheit wesentliche Funktionselemente der Datenverarbeitungsanlage erlaubt ist, hat der Benutzer keinen Zugriff . Das Datenverarbeitungssystem muß deshalb für das Laden einer neuen Version für grundlegende Systemroutinen stets neu gebootet, das heißt urgeladen werden . Diese Urladung muß dann mittels eines anderen Betriebssystems erfolgen, das zumindest das Laden der neuen Version der grundlegenden Systemroutinen unterstützt . Ist ein solches Betriebssystem geladen, können Sicherheitsmechanismen des eigentlich für den Betrieb der Datenverarbeitungsanlage vorgesehenen Betriebssystems nicht wirksam werden . Dadurch wird es möglich, daß auf innerhalb der Datenverarbeitungsanlage gespeicherte sonstige Daten zugegriffen werden kann . Diese Daten können auch in unzulässiger Weise durch sogenannte Viren so verändert werden, daß bei einem späteren regulären Betrieb Funktionsstörungen auftreten können .
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren und eine Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems aufzuzeigen, das sicherheitstechnische Risiken beim Laden der Daten weitgehend ausschließt .
Diese Aufgabe wird durch die in den Patentansprüchen 1 bzw . 6 angegebenen Merkmale gelöst . Vorteilhafte Weiterbildungen der Erfindung sind in Unteransprüchen angegeben .
Durch die Verwendung von zwei unterschiedlichen Programmen, dem Anwendungsprogramm und dem Treiberprogramm, die in der Anwendungs-Schicht bzw . in der Kernel-Schicht aufrufbar und lauf fähig sind, kann die Datenverarbeitungsanlage während des Ladevorgangs unverändert mit seinem vorgesehenen, gegen Manipulation gesicherten Betriebssystem betrieben werden . Eine unzulässige Umgehung der Sicherheitstechniken dieses Betriebsystems ist damit ausge- schlössen . Ein unbefugtes Überschreiben der grundlegenden Systemroutinen wird damit wirksam verhindert . Eine Berechtigung zum Aufruf des Anwendungsprogramms kann beispielsweise solchen Benut- zern zugeordnet werden, die auch Administratorrechte haben . Eine Verseuchung der Datenverarbeitungsanlage mit Viren kann nicht erfolgen, sofern das Betriebsystem dagegen geeignete Schutzmechanismen enthält .
Dem Datenverarbeitungssystem müssen lediglich die Daten der neuen Version der Daten für grundlegende Systemroutinen zur Verfügung gestellt werden . Diese werden vom Anwendungsprogramm an das Treiberprogramm übergeben. Das Treiberprogramm, auf das aus der Anwendungs-Schicht nicht zugegriffen werden kann, überträgt die Daten in den nicht flüchtigen Speicher .
Anhand eines Datenvergleichs kann sichergestellt werden, daß nur solche neuen Systemroutinen in den nicht flüchtigen Speicher der Datenverarbeitungsanlage geladen werden, die die Hardwarekomponenten der Datenverarbeitungsanlage auch verarbeiten können. Beispielsweise wird damit sichergestellt, daß der vorhandene Typ der Systemplatine (Motherboard) und der darauf angeordneten Speicherund Funktionsbausteine mit den in den neuen Daten geforderten Typen von Platinen und Bausteinen übereinstimmen. Es ist damit sichergestellt, daß die Datenverarbeitungsanlage nach dem Ladevorgang der grundlegenden Systemroutinen voll funktionsfähig ist .
Weiterhin ist vorgesehen, dass das Anwendungsprogramm aus der Datei mit den neuen Daten für grundlegende Systemroutinen sogenannte Ortsinformationen übernimmt . Auf der Grundlage dieser Ortsinformationen zerlegt das Anwendungsprogramm die neuen Daten in Pakete, die mit entsprechenden Ortsinformationen versehen an das Treiberprogramm übergeben werden . Durch diese portionsweise Über- tragung der Daten wird die Arbeitsweise des Betriebssystems und anderer laufender Anwendungsprogramme des Datenverarbeitungssystems nur unwesentlich beeinträchtigt. Das Laden der neuen
Daten der grundlegenden Systemroutinen kann somit auch während des regulären Betriebs der Datenverarbeitungsanlage erfolgen.
Die Portionsgröße kann dabei an die Parameter des nicht flüchtigen Speichers angepaßt werden. Das kleinste Paket entspricht der kleinsten Speichereinheit des nicht flüchtigen Speichers, und das größte Paket entspricht der Datenmenge, die innerhalb eines Ladevorgangs in den nicht flüchtigen Speicher übertragen werden kann. Bei gängigen nicht flüchtigen Speichern ist die kleinste Datenmenge 1 Byte und die größte Datenmenge 64 KByte.
Das Treiberprogramm ist auf die Bedürfnisse des nicht flüch- tigen Speichers angepaßt. Die nicht flüchtigen Speicher, insbesondere die FLASH-Speicher, sind in der Regel sektorenweise organisiert, wobei innerhalb einzelner Speichersektoren bestimmte Adressbereiche beschreibbar sind. Der Löschvorgang kann jedoch stets nur für einen gesamten Sektor erfolgen. Liefert nun das Anwendungsprogramm die Information, wonach die übergebenen Daten für den Sektor i bestimmt sind und dort in die Adresse k bis k+n geschrieben werden sollen, dann stellt das Treiberprogramm zunächst fest, ob es in einem vorhergehenden Vorgang bereits diesen Sektor gelöscht hat. Ist dies der Fall, dann kann der Löschvorgang zum jetzigen Zeitpunkt entfallen und es müssen nur die Daten in die Adressen k bis k+n geschrieben werden. Ein gängiger Wert für n ist 1000, so daß bei jeder Übertragung der Daten von Anwenderprogramm zum Treiberprogramm ein KByte übertragen wird. Eine solche Datenmenge beeinträchtigt die Funktionsfähigkeit des Betriebssystems und der anderen laufenden Anwendungen nur äußerst gering. Alternativ kann auch das Anwendungsprogramm die oben beschriebene Funktionalität des Treiberprogramms übernehmen, wonach festzustellen ist, ob in einem vorhergehenden Vorgang ein Sektor bereits gelöscht worden war. In diesem Fall würde das Treiberprogramm lediglich den entsprechenden Anweisungen des Anwendungsprogramms folgen.
Gemäß einer weiteren Ausgestaltung und Weiterbildung der Er- findung kann das Anwendungsprogramm durch Remote-Zugriff gestartet werden - Anspruch 6. Durch diese Funktionalität kann ein Systemadministrator in einem Computernetzwerk im Rahmen eines Batchlaufs unter Verwendung eines Softwareverteilungstools auf einer Mehrzahl von Datenverarbeitungsanlagen neue grundlegende Systemroutinen im laufenden Betrieb installieren. Beim Aufruf des Anwendungsprogamms müssen vom Batch lediglich die erforderlichen Parameter, wie beispielsweise die Berechtigungsinformation und die neuen Daten übergeben werden.
Im Folgenden wird ein Beispiel der Erfindung anhand der Figur näher erläutert. Die Figur zeigt ein Blockschaltbild, in dem die Anordnung der Komponenten und die Übertragungsrichtungen von Daten schematisch dargestellt sind. Grundlegende System- routinen werden nachfolgend als BIOS bezeichnet. In einem Datenverarbeitungssystem ist auf einer Systemplatine (nicht dargestellt) ein nicht flüchtiger Speicher, nachfolgend als Flash bezeichnet, angeordnet. Beim Flash handelt es sich um einen Speicherbaustein, dessen Speicher in Sektoren einer Größe von 64 KByte eingeteilt ist. Innerhalb der Sektoren können einzelne Byte adressiert und beschrieben werden. Ein Löschvorgang kann jeweils nur für einen gesamten Sektor durchgeführt werden.
Das Datenverarbeitungssystem kann mit Hilfe der im Flash gespeicherten BIOS ein Betriebssystem in seinen Arbeitsspeicher (nicht dargestellt) laden, wodurch es in einen betriebsfähigen Zustand versetzt wird. Das Betriebssystem verfügt über zwei hierarchische Schichten AS, KS, von denen ausgehend un- terschiedliche Zugriffe auf das Datenverarbeitungssystem mög- lieh sind. Aus einer Kernel-Schicht KS können darin angeordnete Programme auf Hardwareelemente der Datenverarbeitungsanlage zugreifen. In der Kernel-Schicht ist unter anderem ein Treiberprogramm SniFlash zugeordnet, das in der Lage ist, aus dem Flash Daten zu lesen, Daten zu löschen und Daten in den Flash zu schreiben. Der zweiten Schicht des Betriebssystems, der Anwendungs-Schicht AS, sind Anwendungsprogramme zugeordnet, die nicht auf die Sicherheit des Betriebssystems beeinträchtigende oder umgehende Teile des Datenverarbeitungssy- stems zugreifen dürfen. Ein Anwendungsprogramm, das in dieser Anwendungs-Schicht AS angeordnet ist, ist das Anwendungsprogramm DeskFlash, das für das Laden einer neuen Bios-Version N_BIOS vorgesehen ist. Über das Anwendungsprogramm DeskFlash und das Treiberprogramm SniFlash können Daten über die Schichtgrenzen zwischen Anwendungs-Schicht AS und Kernel- Schicht KS hinweg ausgetauscht werden.
Das Anwendungsprogramm DeskFlash kann durch Aufruf des Benutzers der Datenverarbeitungsanlage unmittelbar an dieser er- folgen. Alternativ dazu kann das Anwendungsprogramm DeskFlash durch einen Remote-Zugriff mit Hilfe eines Softwareverteilungstools gestartet werden. Mit Hilfe dieses Softwareverteilungstools kann von einem Systemadministrator, der über ein Netzwerk, das eine Mehrzahl von Datenverarbeitungsanlagen verbindet, an ausgewählte Datenverarbeitungsanlagen Parameter übermitteln, die einen Batchlauf auf den jeweiligen Datenverarbeitungsanlagen starten. Im Rahmen dieses Batchlaufs erfolgen dann die für das Starten des Anwendungsprogramms DeskFlash erforderlichen Parameterübergaben.
Beim Start des Anwendungsprogramms DeskFlash wird überprüft, ob der Benutzer, der diese Initialisierung des Anwendungsprogramms DeskFlash veranlaßt hat, zu der Benutzergruppe der Administratoren gehört. Nur die Gruppe der Administratoren ist berechtigt, das Anwendungsprogramms DeskFlash zu starten. Liegt eine solche Berechtigung nicht vor und wurde sie auch nicht im Rahmen des alternativ möglichen Remote-Zugriffs anhand von Parametern nachgewiesen, wird die Ausführung des Anwendungsprogramms DeskFlash abgebrochen. Nichtberechtigten ist es damit nicht möglich, eine neue BIOS-Version N_BIOS in die Datenverarbeitungsanlage zu laden.
Konnte die erforderliche Berechtigung nachgewiesen werden, dann öffnet das Anwendungsprogramm DeskFlash zunächst eine Datei OMF, in der die neuen BIOS-Daten N_BIOS zur Verfügung gestellt sind. In der Datei OMF sind auch Informationen darüber verfügbar, für welche Datenverarbeitungsanlage mit welchen Systemplatinen und Funktionsbausteinen die vorliegende neue BIOS-Version N_BIOS geeignet ist. Diese Daten liest das Anwendungsprogramm DeskFlash auf dem in der Figur mit 1 bezeichneten Weg zunächst aus. Im zweiten Schritt fordert das Anwendungsprogramm DeskFlash auf einem mit 4 bezeichneten Weg das Treiberprogramm SniFlash auf, aus dem Flash die Daten bezüglich der Systemplatine und den darauf befindlichen Bau- steinen, für das das bisherige BIOS verwendbar war, auszulesen. Dieser Vorgang wird über die mit 5 und 2 bezeichneten Wege vom Treiberprogramm SniFlash durchgeführt. Die ausgelesenen Daten überträgt das Treiberprogramm SniFlash auf dem mit 3 bezeichneten Weg zum Anwendungsprogramm DeskFlash. Die nun dem Anwendungsprogramm DeskFlash zur Verfügung stehenden Daten zur Systemplatine und den darauf befindlichen Funktionsbausteinen der bisher im Flash vorhandenen BIOS und den in der OMF-Datei verfügbaren neuen BIOS-Daten N_BIOS werden durch das Anwendungsprogramm DeskFlash verglichen. Bei vor- liegender Identität kann die vorhandene BIOS-Version mit der neuen BIOS-Version N_BIOS überschrieben werden. Andernfalls wird dem Benutzer mitgeteilt, daß eine fehlende Übereinstimmung der alten BIOS und der neuen BIOS-Version N_BIOS vorliegt, und anschließend wird das Anwendungsprogramm DeskFlash beendet. Das Anwendungsprogramm DeskFlash liest nun auf dem Weg 1 die Daten der Datei OMF und wertet diese nach vorgegebenen Regeln aus. Diese Regeln bestimmen, wie eine Header-Information zhu interpretieren ist. Die Datei OMF enthält diese Header- Information, aus der ableitbar ist, welche Inhalte der Datei OMF an welche Stellen im Flash zu schreiben sind. Unter Berücksichtigung dieser Informationen nimmt das Anwendungsprogramm DeskFlash eine weitere Zerlegung in kleinere Pakete vor, die auch mit Ortsinformationen - in welchen Sektor des Flashs und an welche Adresse innerhalb dieses Sektors die Daten zu schreiben sind - enthalten können. Auf die Hinzufügung dieser Information zu den Paketen, die über den Weg 4 zum Treiberprograπtm SniFlash übertragen werden, kann nur dann verzichtet werden, wenn sichergestellt ist, daß bei serieller Übertragung der Pakete kein Datenverlust auftreten kann.
Das erste Paket von Daten, die in einem bestimmten Sektor des Flash geschrieben werden sollen, enthält die Bezeichnung des Sektors und die Anfangsadresse ab der die Daten des vorliegenden Pakets und der nachfolgenden Pakete geschrieben werden müssen. Die Datenpakete haben eine Größe von 1 KByte, wodurch die Arbeit des Betriebssystems und darunter laufender anderer Anwendungsprogramme nur geringfügig beeinträchtigt wird.
Erhält das Treiberprogramm SniFlash über den Weg 4 ein Datenpaket, interpretiert es zunächst die ihm zugeordnete Ortsinformation. Ist keine Ortsinformation hinzugefügt, schreibt sie die Daten des Pakets über den Weg 5 im Anschluß an die vorher geschriebenen Daten in den entsprechenden Sektor des Flash. Ist eine Ortsinformation vorhanden, wird zunächst geprüft, ob der in der Ortsinformation bezeichnete Sektor des Flash bereits gelöscht ist und schon Daten aus vorangegangenen Paketen dort eingetragen sind. Ist dies der Fall, werden die. Daten des aktuellen Pakets an die in der Ortsinformation bezeichneten Stellen, beispielsweise beginnend mit der Adresse k bis zur Adresse k+1000 geschrieben. Handelt es sich jedoch bei dem in der Ortsinformation bezeichneten Sektor des Flash um einen Sektor, der noch nicht gelöscht wurde und dem- nach noch Daten des alten BIOS enthält, dann veranlaßt das Treiberprogramm SniFlash das Löschen des entsprechenden Sektors des Flash. Erst danach schreibt es die Daten des Pakets an die in der Ortsinformation angegebenen Adressen.
Optional teilt das Treiberprogramm SniFlash dem Anwendungsprogramm DeskFlash über den Weg 3 mit, ob das Schreiben eines Datenpakets in den Flash erfolgreich vorgenommen werden konnte. Das Fehlen einer solchen Meldung oder das vorliegen einer entsprechenden Fehlermeldung veranlaßt das Anwendungsprogramm DeskFlash einen weiteren Versuch des Schreibens der Daten vorzunehmen, indem es entsprechende Datenpakete noch einmal über den Weg 4 zum Treiberprogramm SniFlash überträgt. Erst bei nochmaliger Fehlermeldung vom Treiberprogramm SniFlash werden weitere Maßnahmen wie Benutzerinformation, Zurück- schreiben bereits gelöschter Daten in den Flash und Ahnliches veranlaßt.
Wurde der Ladevorgang für alle Sektoren des Flash erfolgreich abgeschlossen, dann wird der Benutzer vom Anwendungsprogramm DeskFlash aufgefordert, das Datenverarbeitungssystem neu zu booten. Folgt der Benutzer diesem Vorschlag nicht, kann die Datenverarbeitungsanlage bis zum nächsten Bootvorgang mit dem alten BIOS weiter betrieben werden.
Obwohl die vorliegende Erfindung anhand eines Beispiels in spezieller Form erläutert wurde, wird sie dadurch nicht eingeschränkt. Ahnliche Lösungen, die andere Ausführungsformen zur Folge haben, können vom Fachmann gefunden werden, ohne daß sie außerhalb des Schutzbereichs der vorliegenden Erfin- düng liegen.

Claims

Patentansprüche
1. Verfahren zum Laden von Daten für grundlegende Systemrou¬ tinen (BIOS) eines Datenverarbeitungssystems in einen nicht flüchtigen Speicher (Flash) , das mit einem Betriebssystem be- trieben wird, das einen unmittelbaren Zugriff auf die Daten für grundlegende Systemroutinen (BIOS) des Datenverarbeitungssystems von Programmen aus seiner Kernel-Schicht (KS) zuläßt und einen entsprechenden Zugriff aus seiner Anwendungs-Schicht (AS) unterbindet, mit folgenden Schritten: - Aufruf eines Anwendungsprogramms (DeskFlash) in der Anwendungs-Schicht, wobei das Laden von Informationen bezüglich der zugehörigen Hardware-Komponenten aus einer Datei (OMF) mit neuen Daten für grundlegende Systemroutinen (N_BIOS) in den Arbeitsspeicher des Datenverarbeitungssystems veranlaßt - Überprüfung beim Aufruf des Anwendungsprogramms, ob ein Berechtigung seitens des jeweiligen Benutzers vorliegt
- Aufruf eines Treiberprogramrαs (SniFlash) in der Kernel- Schicht (KS) durch das Anwendungsprogramm (DeskFlash) , wobei das Treiberprogramm (SniFlash) zum Auslesen und Übertragen von Informationen bezüglich der vorhandenen Hardware- Komponenten aus dem nicht flüchtigen Speicher (FLASH) veranlaßt wird;
- Übergabe der Daten für grundlegende Systemroutinen (BIOS) und von Informationen zur Steuerung des Ladevorgangs dieser Daten in den nicht flüchtigen Speicher (FLASH) , vom Anwendungsprogramm (DeskFlash) zum Treiberprogramm (SniFlash) ;
- Schreiben der Daten für grundlegende Systemroutinen (BIOS) in den nicht flüchtigen Speicher (FLASH) .
2. Verfahren nach Anspruch 1, bei dem das Anwendungsprogramm (DeskFlash) einen Vergleich zur Feststellung der Zugehörigkeit der neuen Daten zur vorhandenen Hardware vornimmt und bei fehlender Übereinstimmung das Verfahren beendet.
3. Verfahren nach Anspruch 1 oder 2 bei dem das Anwendungs- Programms (DeskFlash)
- aus der Datei (OMF) mit den neuen Daten für grundlegende Systemroutinen (N BIOS) Ortsinformationen entnimmt, wohin im nicht flüchtigen Speicher (FLASH) die neuen Daten zu schreiben sind;
- die neuen Daten für grundlegende Systemroutinen (N_BIOS) in Pakete zerlegt und mit einer entsprechenden Ortsinformation paketweise an das Treiberprogramm (SniFlash) übergibt.
4. Verfahren nach Anspruch 3, bei dem das Treiberprogramm (SniFlash) zunächst alte Daten aus einem Speicherbereich des nicht flüchtigen Speichers (FLASH) löscht, in den das erhaltene Datenpaket geschrieben werden soll und anschließend den gelöschten Bereich zumindest teilweise mit den neuen Daten beschreibt.
5. Verfahren nach einem der vorhergehenden Ansprüche bei dem das Anwendungsprogramms (DeskFlash) durch Remote-Zugriff gestartet wird.
6. Anordnung zum Laden von Daten für grundlegende Systemroutinen (BIOS) eines Datenverarbeitungssystems in einen nicht flüchtigen Speicher (FLASH) , das mit einem Betriebssystem betreibbar ist, das einen unmittelbaren Zugriff auf die Daten für grundlegende Systemroutinen (BIOS) des Datenverarbei- tungssystems von Programmen aus seiner Kernel-Schicht (KS) zuläßt und einen entsprechenden Zugriff aus seiner Anwendungs-Schicht (AS) unterbindet, mit:
- einem in der Anwendungs-Schicht (AS) aufrufbaren Anwendungsprogramm (DeskFlash) ,welches das Laden von Informatio- nen bezüglich der zugehörigen Hardware-Komponenten aus eu- ner Datei (OMF mit neuen Daten für grundlegende Systemroutinen (N_BIOS) in den Arbeitsspeicher des Datenverarbeitungssystems veranlaßt,
- einem in der Kernel-Schicht (KS) durch das Anwendungspro- gra m (DeskFlash) aufrufbaren Treiberprogramm (SniFlash) zum Auslesen und Übertragen von Informationen bezüglich der vorhandenen Hardware-Komponenten aus dem nicht flüchtigen Speicher (FLASH),
- einer Koppelung des Anwendungsprogramms (DeskFlash) mit dem Treiberprogramm (SniFlash) , so daß die Daten für grundlegende Systemroutinen (BIOS) und Informationen zur Steuerung des Ladevorgangs dieser Daten in den nicht flüchtigen Speicher (FLASH) , übergeben werden können, einer Koppelung des Treiberprogramms (SniFlash) mit dem nicht flüchtigen Speicher (FLASH), so daß die Daten für grundlegende Systemroutinen (BIOS) in den nicht flüchtigen Speicher (FLASH) schreibbar sind.
PCT/DE1998/003485 1997-11-27 1998-11-26 Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems WO1999028804A2 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE59810185T DE59810185D1 (de) 1997-11-27 1998-11-26 Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems
AT98965590T ATE254307T1 (de) 1997-11-27 1998-11-26 Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems
EP98965590A EP1032871B1 (de) 1997-11-27 1998-11-26 Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems
US09/580,980 US6591366B1 (en) 1997-11-27 2000-05-30 Method and configuration for loading data for basic system routines of a data processing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19752615.2 1997-11-27
DE19752615A DE19752615C1 (de) 1997-11-27 1997-11-27 Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US09/580,980 Continuation US6591366B1 (en) 1997-11-27 2000-05-30 Method and configuration for loading data for basic system routines of a data processing system

Publications (2)

Publication Number Publication Date
WO1999028804A2 true WO1999028804A2 (de) 1999-06-10
WO1999028804A3 WO1999028804A3 (de) 1999-07-29

Family

ID=7850005

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE1998/003485 WO1999028804A2 (de) 1997-11-27 1998-11-26 Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems

Country Status (5)

Country Link
US (1) US6591366B1 (de)
EP (1) EP1032871B1 (de)
AT (1) ATE254307T1 (de)
DE (2) DE19752615C1 (de)
WO (1) WO1999028804A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591366B1 (en) * 1997-11-27 2003-07-08 Fujitsu Siemens Computer Gmbh Method and configuration for loading data for basic system routines of a data processing system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19822551A1 (de) * 1998-05-20 1999-11-25 Alcatel Sa Prozessorgesteuertes System und Verfahren zum Betrieb eines prozessorgesteuerten Systems
US6715074B1 (en) * 1999-07-27 2004-03-30 Hewlett-Packard Development Company, L.P. Virus resistant and hardware independent method of flashing system bios
US7137102B2 (en) * 2000-08-09 2006-11-14 Fujitsu Limited Program development device utilizing component, program development method and medium
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US7392541B2 (en) * 2001-05-17 2008-06-24 Vir2Us, Inc. Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments
CN1940802A (zh) * 2005-09-30 2007-04-04 鸿富锦精密工业(深圳)有限公司 解除基本输入/输出系统写保护的系统及方法
US9582262B2 (en) * 2014-06-16 2017-02-28 Wipro Limited Systems and methods for installing upgraded software on electronic devices
US11153325B1 (en) * 2020-04-30 2021-10-19 Splunk Inc. Server-based restricted access storage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2290890A (en) * 1994-06-29 1996-01-10 Mitsubishi Electric Corp Updating a basic input/output system programme
US5530858A (en) * 1993-04-01 1996-06-25 Intel Corporation Method and apparatus for background processing for PCMCIA card services

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444642A (en) * 1991-05-07 1995-08-22 General Signal Corporation Computer system for monitoring events and which is capable of automatically configuring itself responsive to changes in system hardware
EP0610677A3 (de) * 1993-02-12 1995-08-02 Ibm In zwei Modi arbeitender Kommunikationsgerätetreiber.
US5696897A (en) * 1994-01-31 1997-12-09 Sun Microsystems, Inc. Method and apparatus for a multi-layer system quiescent suspend and resume operation
US5632032A (en) * 1994-02-07 1997-05-20 International Business Machines Corporation Cross address space thread control in a multithreaded environment
US5640562A (en) * 1995-02-27 1997-06-17 Sun Microsystems, Inc. Layering hardware support code on top of an existing operating system
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US5978912A (en) * 1997-03-20 1999-11-02 Phoenix Technologies Limited Network enhanced BIOS enabling remote management of a computer without a functioning operating system
WO1999014881A2 (en) * 1997-09-16 1999-03-25 Information Resource Engineering, Inc. Cryptographic co-processor
DE19752615C1 (de) * 1997-11-27 1999-04-08 Siemens Nixdorf Inf Syst Verfahren und Anordnung zum Laden von Daten für grundlegende Systemroutinen eines Datenverarbeitungssystems
US6173417B1 (en) * 1998-04-30 2001-01-09 Intel Corporation Initializing and restarting operating systems
US20010044904A1 (en) * 1999-09-29 2001-11-22 Berg Ryan J. Secure remote kernel communication
DE19946959B4 (de) * 1999-09-30 2009-05-07 Fujitsu Siemens Computers Gmbh Verfahren zum Laden von Daten für grundlegende Systemroutinen
US7178165B2 (en) * 2001-08-20 2007-02-13 Lenovo (Signapore) Pte Ltd. Additional layer in operating system to protect system from hacking

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530858A (en) * 1993-04-01 1996-06-25 Intel Corporation Method and apparatus for background processing for PCMCIA card services
GB2290890A (en) * 1994-06-29 1996-01-10 Mitsubishi Electric Corp Updating a basic input/output system programme

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6591366B1 (en) * 1997-11-27 2003-07-08 Fujitsu Siemens Computer Gmbh Method and configuration for loading data for basic system routines of a data processing system

Also Published As

Publication number Publication date
EP1032871B1 (de) 2003-11-12
US6591366B1 (en) 2003-07-08
ATE254307T1 (de) 2003-11-15
WO1999028804A3 (de) 1999-07-29
DE59810185D1 (de) 2003-12-18
EP1032871A2 (de) 2000-09-06
DE19752615C1 (de) 1999-04-08

Similar Documents

Publication Publication Date Title
DE4214184C2 (de) Computersystem mit einem nicht-flüchtigen Speicher und Verfahren zu dessen Aktualisierung
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE69914595T2 (de) Geschütztes speichermedium für ein rechnersystem
DE10225664A1 (de) System und Verfahren zum Prüfen von Systemabrufereignissen mit Systemabrufumhüllungen
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
DE112009000612T5 (de) Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
EP1032871B1 (de) Verfahren und anordnung zum laden von daten für grundlegende systemroutinen eines datenverarbeitungssystems
EP1262856B1 (de) Programmgesteuerte Einheit
DE10324337B4 (de) Rechnersystem und zugehöriges Verfahren zum Durchführen eines Sicherheitsprogramms
EP1611517B1 (de) Programmgesteuerte einheit
WO1996028795A1 (de) Chipkarte mit geschütztem betriebssystem
DE102006060071B3 (de) Ansteuerung eines Peripheriegerätes über eine CANopen-Schnittstelle
EP1611516A2 (de) Programmgesteuerte einheit
EP1021791B1 (de) Chipkarte mit speicher für anwendungsabhängig nachladbare programme
DE60212169T2 (de) Laden von software
EP1628223B1 (de) Schreiben von Daten in einen nichtflüchtigen Speicher eines tragbaren Datenträgers
DE19946959B4 (de) Verfahren zum Laden von Daten für grundlegende Systemroutinen
EP1611515B1 (de) Programmgesteuerte einheit
EP0966711B1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
EP1033647B1 (de) Verfahren zum Übertragen eines Softwaresystems auf andere Hardwareplattformen
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems
EP2210210B1 (de) Verfahren zum laden von initialisierungs- und/oder personalisierungsdaten auf einen tragbaren datenträger
EP1318451B1 (de) Verfahren zum Ausführen eines Programms auf einem Computer
DE10315637A1 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

AK Designated states

Kind code of ref document: A3

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 1998965590

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09580980

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998965590

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1998965590

Country of ref document: EP