WO2023052166A1 - Method for operating an information technology system, information technology system, and vehicle - Google Patents

Method for operating an information technology system, information technology system, and vehicle Download PDF

Info

Publication number
WO2023052166A1
WO2023052166A1 PCT/EP2022/075913 EP2022075913W WO2023052166A1 WO 2023052166 A1 WO2023052166 A1 WO 2023052166A1 EP 2022075913 W EP2022075913 W EP 2022075913W WO 2023052166 A1 WO2023052166 A1 WO 2023052166A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
information technology
technology system
program
storage medium
Prior art date
Application number
PCT/EP2022/075913
Other languages
German (de)
French (fr)
Inventor
Thorsten Wilmer
Thomas Bolemann
Original Assignee
Mercedes-Benz Group AG
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 Mercedes-Benz Group AG filed Critical Mercedes-Benz Group AG
Publication of WO2023052166A1 publication Critical patent/WO2023052166A1/en

Links

Classifications

    • 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/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the invention relates to a method for operating an information technology system of the type defined in more detail in the preamble of claim 1, an information technology system of the type defined in more detail in the preamble of claim 9 and a vehicle with such an information technology system.
  • the information technology system In order to be able to use an information technology system such as a computer, a mobile terminal device, an embedded system, a server or the like, the information technology system must first be made ready for use, i.e. it must be started or booted.
  • programs are usually loaded from a physical storage medium and executed by a computing unit such as a processor, which enables the use of individual hardware components of the information technology system.
  • Simple programs are loaded first, which gradually allow the execution of more complex programs. Examples of programs are drivers, firmware, operating systems and application software to provide certain functionalities.
  • bootloader files required to start certain programs can be searched for and reloaded on a storage medium. To improve user comfort, a particularly short start-up time is desirable.
  • the image of the main memory content is written by the information technology system, in this case the computer, itself to the physical storage medium when suspend-to-disk is carried out.
  • Suspend-to-Disk and Suspend-to-RAM can also be used by virtual machines. Furthermore, differential software updates are known.
  • US Pat. No. 7,664,944 B2 discloses a method for booting from a compressed program image.
  • the program image is also referred to as a so-called image.
  • the method enables space-saving storage of a boot environment and an operating system and possibly further files or programs on a storage medium such as a CD.
  • a boot environment for starting a computer can be provided and an operating system can be installed on the computer from the CD.
  • a method for distributing differential software updates for virtual machines is known from US 2018/0336053 A1.
  • the distribution of software updates to virtual machines used in different cloud computing environments is facilitated with the aid of the method disclosed in the publication.
  • the status, also referred to as a snapshot, of an initial virtual machine is frozen and this snapshot distributed to the various cloud computing environments. Due to the operation of the virtual machines in the cloud computing environments, the states of the respective virtual machines change over time.
  • the procedure checks how much the individual states of the virtual machines have changed from the snapshot, i.e. the initial state. If the change is within a certain tolerance threshold, software updates are distributed. However, if the changes are too large, no software updates are distributed.
  • US Pat. No. 8,185,884 B2 discloses a system and a method for updating software running in a virtual machine. With the aid of the method disclosed in the publication, it is possible to update software running on a virtual machine when the virtual machine itself is not running. This saves computing resources and time when performing software updates.
  • US Pat. No. 10,019,253 B2 discloses systems and methods for updating so-called hot-pluggable devices.
  • firmware updates for the hot-pluggable devices can be carried out and the hot-pluggable devices can continue to be used after the firmware update without an operating system of hardware using the hot-pluggable devices having to be restarted.
  • the present invention is based on the object of specifying an improved method for operating an information technology system, through the use of which the information technology system can be switched particularly quickly from a deactivated mode to an operational mode and which allows a reduction in the memory size of a storage medium installed in the information technology system.
  • this object is achieved by a method for operating an information technology system having the features of claim 1.
  • Advantageous refinements and developments as well as an information technology The system on which the method is used and a vehicle with such an information technology system result from the dependent claims.
  • At least one compressed program image stored in a non-volatile storage medium of the information technology system is loaded into a main memory of the information technology system and loaded there for execution on at least one processor of the information technology system information technology system decompressed, wherein the at least one decompressed program image includes a frozen state of an executable, initialized program, or corresponds to this, wherein the at least one compressed program image on a developer system external to the information technology system by loading and initializing program code from a non-volatile storage medium of the developer system was created in a main memory of the developer system.
  • the information technology system can be started particularly quickly with the aid of the method according to the invention. It is not necessary to load program code from a storage medium into the main memory of the information technology system and to initialize a corresponding program, but rather an executable program image is loaded directly into the main memory, which can be executed directly by a processor of the information technology system. since the program image comprises a frozen state of an executable program. The processor only has to be informed of relevant interrupt commands before execution, so that the corresponding program is executed at the point at which it was also frozen.
  • the use of a compressed program image also benefits the shortened start-up time of the information technology system, since the memory size (e.g. in megabytes) of the program image is reduced compared to an uncompressed program image, which means that the program image can be transferred more quickly from the non-volatile storage medium to the RAM is transferrable. Due to the reduced size of the program image, it is also possible to increase the memory size of the to reduce non-volatile storage medium of the information technology system. Furthermore, the size of the non-volatile storage medium can also be reduced by directly storing an executable program in its frozen state. This requires less memory space than the program code for initializing a non-executable program and storing the constants, variables and/or parameters required to initialize the program. Since the program image was generated on a developer system, there is no need to store the corresponding program code modules of the non-executable, uninitialized program on the information technology system.
  • the program image was generated on a developer system, there is no need to store the corresponding program code
  • the information technology system can be, for example, an embedded system such as a control unit of a vehicle subsystem, a personal computer, a mobile terminal device such as a smartphone, or a computer network such as a computing cluster.
  • the compressed program image does not necessarily have to be stored on the computer that is to be started.
  • the compressed program image can also be read from a non-volatile storage medium such as a hard drive or an SSD of a computer in the computing cluster and transmitted to the computer to be started via wide area network (WAN), for example via Ethernet.
  • WAN wide area network
  • the compressed program image is generated on the developer system as follows:
  • the developer system for example a personal computer or a system similar to the information technology system such as an embedded system, includes a non-volatile storage medium with data.
  • Data relevant to the compressed program image for example program code parts of one or more programs, are read from the non-volatile storage medium and transferred to a main memory of the developer system.
  • the program code parts for generating an executable, i.e. runnable, program are initialized in the main memory of the developer system.
  • the non-volatile storage medium comprises at least one storage area from which a processor can be cold-booted.
  • a corresponding boot driver contains driver code in order to put interfaces of an information technology system (ie also of the developer system) into a state in which a corresponding processor can also use these interfaces. This includes, for example, the initialization of network registers, Memory registers, CAN registers and the like.
  • the non-volatile storage medium also includes a boot loader with a hypervisor for starting processors.
  • the boot loader or the hypervisor assigns the program parts to be executed by the respective processors or processor cores to one or more processors of the developer system.
  • a dynamic linker and a program to be executed are optimized in such a way that addresses are not randomized when stored. This simplifies the allocation of which code parts are stored or loaded in which memory areas. Accordingly, a memory allocator is built in such a way that it allocates memory deterministically, i.e. without randomness. Static scheduling is used to achieve reproducible execution of a boot process.
  • the processor or cores are frozen and all memory areas assigned to the corresponding processor or processors are read out and the program image to be generated is generated from the data read out.
  • the interrupt commands are also stored in the program image, with which the hypervisor informs a respective processor at which point the respective program is to be continued later on the information technology system.
  • an event is sent that signals the corresponding hardware and/or software components that the freeze is now taking place. This is used to release temporary data, such as cashes. This allows the memory size of the compressed program image to be generated to be further reduced.
  • This compressed program image of an executable program or executable programs is then transferred from the developer system to the information technology system and stored there in the non-volatile storage medium.
  • the completed compressed program image can be transferred from the developer system to the information technology system in any desired manner.
  • the compressed program image during the manufacture of the information technology system or when installing the information technology system in a higher-level structure, so for example the integration of an embedded system in a vehicle into which information technology systems are introduced.
  • the information technology system is in communication with the developer system, for example via a WAN. This is the case, for example, when the developer system and the information technology system are each formed by a computer in a computing cluster.
  • the bootloader writes zero to the main memory of the information technology system, thus deleting any data still present in the main memory. This initializes the working memory. Now the compressed program image is loaded into the main memory and decompressed there. This loading process takes a second, for example. After this period of time, an executable program is available, which would have taken nine seconds boot time with a classic boot process, for example. This saved eight seconds of boot time.
  • the information technology system is, for example, an embedded system used in a vehicle, after the continuation of the (on the developer system) frozen, executable program in the processor, i.e. after "thawing", a so-called service discovery is carried out by the information technology system, to make the functionalities provided by executing the program image visible in the vehicle, since vehicle-specific data, such as the coding or the presence of other hardware components, may only be provided when this service discovery has been carried out or when the current coding is available .
  • vehicle-specific data such as the coding or the presence of other hardware components
  • processor is used to represent a computing unit such as a central processing unit (CPU) or a graphics processing unit (GPU), or the computing cores comprised by a CPU or GPU are used.
  • a processor can be a CPU (e.g. with eight cores) or a specific core of the CPU.
  • a physical processor can be a CPU.
  • a virtual processor can be a processor simulated or emulated by a virtual machine.
  • the information technology system is able to use virtual machines.
  • a virtual machine provides a physical processor that does not actually exist but is simulated or emulated.
  • the virtual machine can include one or more processors.
  • Several virtual machines can also be run on the information technology system at the same time.
  • the virtual machines can have the same structure or a different structure, i.e. computer architecture. It is also possible for a virtual machine to run on a virtual machine. This is also referred to as "nested virtualization".
  • At least one program image comprises or corresponds to an image of an operating system and/or at least one application software.
  • a program image can therefore include an operating system or correspond to it.
  • a program image can also include application software or a plurality of programs, such as a plurality of application programs or one or more operating systems and/or one or more application programs.
  • the execution of programs can be distributed to physical and/or virtual processors as desired.
  • an operating system can be executed by a first processor and application software can be executed by a further physical or virtual processor.
  • a program can also be executed simultaneously by a plurality of processors if the processors have a comparatively low computing power or the corresponding program requires a minimum computing power which cannot be provided by one processor alone.
  • An operating system can be, for example, Linux, Windows or AUTOSAR.
  • Application software can be, for example, a word processing program, a spreadsheet program or also a parking assistant, a navigation service, a remote diagnosis program or an engine controller.
  • a further advantageous embodiment of the method also provides that, for loading and storing data, memory areas of a non-volatile storage medium and/or a main memory are addressed according to a defined pattern, with free memory areas being filled with an empty value.
  • the empty value can be, for example, a binary zero or a hexadecimal value such as "F", or consecutive values, for example "000" or "FFFFFFF".
  • a compression or decompression process of the program image can be accelerated and simplified by addressing memory areas with a deterministic, ie fixed pattern and by providing empty values. This means that empty memory areas, such as pages, do not have to be rewritten. This also favors the accelerated implementation of software updates, which will be discussed below. In particular, the memory area otherwise used by temporary files during the boot process is written with the empty value(s).
  • At least one further compressed program image for execution on the information technology system is reloaded from the non-volatile memory into the working memory and decompressed.
  • the time it takes to bring the information technology system from the deactivated mode to the ready-to-use mode can be further reduced.
  • a program image is loaded and executed, which provides basic functions that are required particularly quickly. This can be the operating system of the information technology system, for example. Functionalities that are less important, for example the media player or navigation device functionality related to the example of the vehicle, can then be reloaded later.
  • the memory size of the non-volatile The program images stored on the storage medium can also be larger than the storage size of the main memory.
  • the parking assistant service can be terminated if the vehicle is driving above a critical speed on a road and the distance monitoring service can then be activated accordingly.
  • a further advantageous embodiment of the method according to the invention also provides that at least two compressed program images are loaded serially one after the other or in parallel into the main memory for execution on the information technology system. If the program images are, for example, particularly relevant and therefore early required programs, they can be loaded into the working memory at the same time in order to be ready for use early on. If, on the other hand, the functionality provided by one program image is less important than that of the other program image, the important program image and then the less important program image can be loaded into the main memory and executed accordingly on the processor or processors .
  • At least the following method steps are carried out to update at least one program image stored in the non-volatile storage medium of the information technology system:
  • a differential software update means that only the code blocks that contain changes are exchanged.
  • the memory areas in which code modules are stored advantageously remain the same after the software update. If certain code blocks are no longer required, the corresponding memory areas are filled with the empty value. If new code modules are added, they are appended to the following memory areas that are still free.
  • a corresponding software update can also have been generated by the developer system.
  • the developer system converts a program to be updated into an executable state and feeds the uncompressed image of the program and the uncompressed image of the updated program version to a binary difference generation.
  • the resulting difference file is then compressed and distributed as a software update. Because the components of the old and new software versions have carried out the same storage operations, the difference image can be kept particularly small. Also, a dynamic linker is instructed to create memory layout similar to an old version.
  • Memory areas for example pages, which have been assigned to a specific processor and/or virtual machine but are no longer used can then be explicitly released again, for example by a hypervisor.
  • a digital signature is preferably checked before, during and/or after the decompression and/or compression. This makes it possible to improve cyber security when carrying out the method according to the invention, i.e. to operate the information technology system in a particularly secure manner.
  • a signature check can be used to prevent corrupted and/or damaged Code modules are introduced into the information technology system. This makes attacks on the information technology system more difficult.
  • the signature check can take place before, during or also after the decompression and/or compression. This allows, for example, before each loading and execution of a specific program to be checked whether it has not been manipulated in the meantime. If a software update has been carried out, this can also ensure that only a correctly updated program is stored in the form of a compressed, updated program image in the non-volatile storage medium of the information technology system. For this purpose, a signature check of the updated, decompressed program image is carried out, for example, and then the signature is checked again after the compressed, updated program image has been stored.
  • An information technology system comprises in each case at least one processor, a main memory and a non-volatile storage medium, with the components of the information technology system mentioned being set up to carry out a method described above.
  • the information technology system can be, for example, a personal computer (PC), a mobile device such as a smartphone, tablet computer or the like, an embedded system or a computing cluster.
  • the processor can be a single or multi-core CPU.
  • a graphics card i.e. a GPU, can also be used as a processor.
  • the compressed program image generated by the developer system is stored in the non-volatile storage medium, for example a flash memory, in particular an SSD or a hard disk, and loaded into the main memory for execution and executed by the processor.
  • the program image can also be executed in a virtual machine. Individual programs can be executed by a physical processor and individual programs by a virtual processor, i.e. in the virtual machine. If the information technology system is a computer cluster, the compressed program image can also be stored on a computer other than the computer on which the corresponding program is or is to be executed.
  • the Main memory and/or the non-volatile storage medium can also each be distributed over a number of hardware components.
  • the information technology system is preferably an embedded system.
  • at least two of the components processor, main memory and/or non-volatile storage medium are integrated on a common system-on-a-chip (SOC). SOCs are used as particularly space-saving and cost-effective solutions for implementing embedded systems.
  • a vehicle includes such an information technology system.
  • This enables vehicle control units to be started and functions to be provided particularly quickly. As a result, the comfort for vehicle occupants when using the vehicle can be improved.
  • Certain certifications require services provided in the vehicle, such as the monitoring of a rear area of the vehicle using a reversing camera, to be operational particularly quickly. With the help of the method according to the invention and the information technology system according to the invention, this can be guaranteed when used in a vehicle.
  • FIG. 2 shows a simplified representation of a memory content of a non-volatile storage medium of a developer system and of the information technology system
  • FIG. 3 shows a simplified representation of an occupancy of a working memory of the information technology system after the loading and decompression process of at least one compressed program image.
  • FIG. 1 shows a developer system ES and an information technology system ITS.
  • the information technology system ITS can, for example, be an embedded system, for example a control unit of a vehicle subsystem.
  • the information technology system ITS comprises at least one non-volatile storage medium NVM, at least one processor PU and at least one main memory RAM. At least two of these hardware components, all three hardware components in the example in FIG. 1, can be integrated on a common system-on-a-chip SOC.
  • the information technology system ITS can have, for example, a single-core or multi-core CPU and/or a GPU as the processor PU.
  • One or more virtual machines can also be executed on the information technology system ITS.
  • the aim of a method according to the invention is to operate the information technology system ITS in such a way that it can be switched from an idle or deactivated mode to an operational mode as quickly as possible.
  • the main memory RAM of the information technology system ITS includes at least one initialized, executable program, which is executed by the processor PU.
  • a normal start-up process i.e. a start-up process of an information technology system ITS known from the prior art, also referred to as a boot process, provides that the program code stored in the non-volatile storage medium NVM is loaded into the main memory RAM and initialized there before the program is executed by the processor . This loading and initializing of program code is reflected in a longer starting time for booting the information technology system ITS into the standby mode.
  • this method step ie the initialization of program code, is outsourced to the developer system ES, which is external to the information technology system ITS.
  • program code is loaded from the non-volatile storage medium NVM of the developer system ES into the main memory RAM of the developer system ES and initialized there in method step 102.
  • the developer system ES is frozen. At least from the content of the main memory RAM, which includes the processor PU of the developer system ES assigned program content, a compressed program image c-image created.
  • interrupt commands are also included in the program image, which tell a processor at which point a running program was frozen and later to "thaw" to be continued again.
  • An interrupt controller of a respective processor can thus be configured with these interrupt commands.
  • the memory areas of the main memory RAM can be initialized with an empty value such as zero or F by a memory management device. Compression allows the memory size of the compressed program image c-image to be reduced compared to uncompressed storage.
  • the compressed program image c-image is extracted from the developer system ES in method step 103 and introduced into the information technology system ITS.
  • the introduction into the information technology system ITS can be done in any way.
  • the compressed program image c-image can be copied to the non-volatile storage medium NVM of the information technology system ITS by cable or wirelessly.
  • a compressed program image c-image can include various programs such as an operating system and/or application software. This enables the information technology system ITS to offer several services. Such services or functionalities FU1, FU2, FU3 are indicated by boxes in FIG.
  • the decompressed program image dc-image comprises at least one program, for example an operating system, that has already been initialized and can be executed by a processor PU.
  • the information technology system ITS Before the corresponding program is executed, the information technology system ITS must be put into a state in which the processor PU or the cores of the processor PU can use relevant interfaces.
  • a corresponding Boot driver contains data relevant for the initialization, for example for the initialization of network registers, memory registers, CAN registers and the like.
  • FIG. 2 shows the content of the non-volatile storage medium NVM. Shown is both the memory content of the non-volatile storage medium NVM of the developer system ES (after initialization) and of the information technology system ITS, with the memory content NVM-ES of the developer system ES corresponding to the memory content NVM-ITS of the information technology system ITS, supplemented by a memory area SB1, from which a virtual machine or a processor PU can be cold booted.
  • the memory area SB1 is missing in the memory content of the NVM-ITS, since the information technology system ITS does not have to be booted to switch to the ready-to-operate mode.
  • the two memory contents NVM-ES, NVM-ITS are delimited from one another in FIG. 2 by a dashed line.
  • the non-volatile storage medium NVM includes a boot loader BL with a hypervisor HV shown in FIG. 3 for starting virtual machines and/or processors PU.
  • the boot loader BL is able to allocate programs or program sections to be executed to individual processors PU (and/or virtual machines).
  • the bootloader BL can also, for example in an embedded system used in a vehicle, send a signal, whereby the embedded system carries out a so-called "service discovery" after the "thawing" of the frozen programs, i.e. the execution of the programs by the / the processor(s) of the information technology system ITS to offer the functionalities FU1, FU2, FU3 in the vehicle.
  • the service discovery can also be carried out periodically.
  • the non-volatile storage medium NVM includes different memory areas KERN1-c-Image, KERN2-c-Image, VM1-c-Image, VM2-c-Image, VM3-c-Image, which individual physical or virtual processors PU, ie virtual machines , Associated parts include at least one compressed program image c-image. More than one compressed program image c-image can also be stored in the non-volatile storage medium NVM.
  • the non-volatile storage medium NVM can include further storage areas VM... -c-Image.
  • the non-volatile storage medium NVM can include persistent user data PND. This can be a configuration, a log and/or the like, for example. The persistent payload data PND are not overwritten, particularly in the case of a software update.
  • FIG. 3 shows an exemplary assignment of the main memory RAM after loading a compressed program image c-image into the main memory RAM and unpacking there, ie decompression.
  • the box KERN1 symbolizes a first processor PU, or at least a core of the processor PU, assigned program section of the decompressed program image dc-image and the box KERN2 the program section assigned to a second processor PU, or at least a second core of the processor PU .
  • the boxes VM1, VM2 and VM3 correspond analogously to the various virtual machines assigned program sections of the decompressed program image dc-image.
  • the working memory RAM includes a hypervisor HV for carrying out the service discovery, software updates and for managing the virtual machines and/or processor(s).
  • the program sections assigned to the individual processors PU or cores and/or virtual machines can be part of a single program or multiple programs and enable one or multiple different functionalities FU1, FU2, FU3 to be provided.
  • the first and second cores of a processor PU execute a media player provided by a vehicle infotainment system.
  • a first virtual machine then executes a parking or maneuvering assistant, for example, and thus enables images from a reversing camera of the vehicle to be displayed on a display in the vehicle.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

The invention relates to a method for operating an information technology system (ITS), wherein at least one compressed program image (c-Image) is loaded onto a working memory (RAM). The method according to the invention is characterized in that upon starting the information technology system (ITS), at least one compressed program image (c-Image) which is stored on a non-volatile memory medium (NVM) of the information technology system (ITS) is stored onto a working memory (RAM) of the information technology system (ITS) and is decompressed in the working memory in order to be ran on at least one processor (PU) of the information technology system (ITS), wherein the at least one decompressed program image (dc-Image) comprises a frozen state of at least one initialized program which can be ran, and the at least one compressed program image (c-Image) is generated on a developer system (ES), which is external to the information technology system (ITS), by loading program code from a non-volatile memory medium (NVM) of the developer system (ES) onto a working memory (RAM) of the developer system (ES) and initializing same.

Description

Mercedes-Benz Group AG Mercedes-Benz Group AG
Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug Method for operating an information technology system, information technology system and vehicle
Die Erfindung betrifft ein Verfahren zum Betrieb eines informationstechnischen Systems nach der im Oberbegriff von Anspruch 1 näher definierten Art, ein informationstechnisches System nach der im Oberbegriff von Anspruch 9 näher definierten Art sowie ein Fahrzeug mit einem solchen informationstechnischen System. The invention relates to a method for operating an information technology system of the type defined in more detail in the preamble of claim 1, an information technology system of the type defined in more detail in the preamble of claim 9 and a vehicle with such an information technology system.
Um ein informationstechnisches System wie einen Computer, ein mobiles Endgerät, ein eingebettetes System, einen Server oder dergleichen nutzen zu können, muss das informationstechnische System erst in einen einsatzbereiten Zustand überführt werden, sprich gestartet bzw. gebootet werden. Hierzu werden meist aus einem physischen Speichermedium Programme geladen und von einer Recheneinheit wie einem Prozessor ausgeführt, was die Nutzung einzelner Hardwarekomponenten des informationstechnischen Systems ermöglicht. Dabei werden zuerst einfache Programme geladen, welche nach und nach das Ausführen komplexerer Programme erlauben. Beispiele für Programme sind Treiber, Firmware, Betriebssysteme sowie Applikationssoftware zur Bereitstellung bestimmter Funktionalitäten. Mit Hilfe eines sogenannten Bootloaders können zum Starten bestimmter Programme erforderliche Dateien gezielt auf einem Speichermedium gesucht und nachgeladen werden. Zur Verbesserung des Nutzerkomforts ist eine besonders kurze Startzeitdauer erwünscht. In order to be able to use an information technology system such as a computer, a mobile terminal device, an embedded system, a server or the like, the information technology system must first be made ready for use, i.e. it must be started or booted. For this purpose, programs are usually loaded from a physical storage medium and executed by a computing unit such as a processor, which enables the use of individual hardware components of the information technology system. Simple programs are loaded first, which gradually allow the execution of more complex programs. Examples of programs are drivers, firmware, operating systems and application software to provide certain functionalities. With the help of a so-called bootloader, files required to start certain programs can be searched for and reloaded on a storage medium. To improve user comfort, a particularly short start-up time is desirable.
Dies betrifft insbesondere eingebettete Systeme wie ein Steuergerät eines Fahrzeugs. So ist beispielsweise bei einem Park- bzw. Rangierassistenten das Anzeigen von Kamerabildern einer Rückfahrkamera auf einer Anzeige im Fahrzeug innerhalb einer festgelegten Zeitdauer zertifizierungsrelevant. Analog kann der Nutzerkomfort leiden, wenn Fahrzeuginsassen vergleichsweise lange warten müssen, bis beispielsweise ein Infotainmentsystem gestartet und ein Programm zur Widergabe von Medien geladen ist. Zur Reduktion der Startzeitdauer von Computern aus einem Ruhezustand beziehungsweise aus einem Standby-Modus ist „Suspend-to-Disk“ und „Suspend-to- RAM“ bekannt. Bei Suspend-to-RAM werden alle nicht benötigten Komponenten des Rechners nach Möglichkeit deaktiviert oder abgeschaltet, wodurch die Stromaufnahme des Computers weitestgehend reduziert wird. Der Arbeitsspeicher wird weiterhin bestromt, damit er seinen Inhalt während des Standby-Modus erhalten kann. Beim Reaktivieren des Computers werden dann die deaktivierten Komponenten wieder aktiviert. Der Computer kann somit besonders schnell weiter genutzt werden. Bei Suspend-to-Disk wird der Inhalt des Arbeitsspeichers hingegen auf die Festplatte bzw. SSD geschrieben. Danach wird der Computer in einen weitestgehend stromlosen Zustand versetzt. Dabei wird auch die Bestromung des Arbeitsspeichers eingestellt, wodurch der im Arbeitsspeicher gespeicherte Inhalt verloren geht. Nach Reaktivieren des Computers wird dann der auf die Festplatte geschriebene Inhalt des Arbeitsspeichers zurück in den Arbeitsspeicher geladen und der Computer kann weiter benutzt werden. Das Abbild des Arbeitsspeicherinhalts, auch als Image bezeichnet, schreibt das informationstechnische System, hier also der Computer, bei der Durchführung von Suspend-to-Disk selbst auf das physische Speichermedium. This applies in particular to embedded systems such as a vehicle control unit. For example, in the case of a parking or maneuvering assistant, the display of camera images from a reversing camera on a display in the vehicle within a specified period of time is relevant to certification. Similarly, user comfort can suffer if vehicle occupants have to wait a comparatively long time until, for example, an infotainment system is started and a program for playing media is loaded. “Suspend-to-Disk” and “Suspend-to-RAM” are known for reducing the start-up time of computers from an idle state or from a standby mode. With Suspend-to-RAM, all components of the computer that are not required are deactivated or switched off if possible, which reduces the computer's power consumption as much as possible. The memory continues to be powered so that it can preserve its contents during standby mode. When the computer is reactivated, the deactivated components are reactivated. The computer can therefore continue to be used particularly quickly. With suspend-to-disk, on the other hand, the contents of the main memory are written to the hard disk or SSD. The computer is then placed in a largely de-energized state. This also stops the power supply to the main memory, which means that the content stored in the main memory is lost. After the computer is reactivated, the contents of the main memory written to the hard disk are loaded back into the main memory and the computer can continue to be used. The image of the main memory content, also referred to as an image, is written by the information technology system, in this case the computer, itself to the physical storage medium when suspend-to-disk is carried out.
Suspend-to-Disk und Suspend-to-RAM können auch von virtuellen Maschinen eingesetzt werden. Ferner sind differentielle Softwareupdates bekannt. Suspend-to-Disk and Suspend-to-RAM can also be used by virtual machines. Furthermore, differential software updates are known.
Die US 7,664,944 B2 offenbart ein Verfahren zum Booten von einem komprimierten Programm-Abbild. Das Programm-Abbild wird auch als sogenanntes Image bezeichnet. Das Verfahren ermöglicht ein platzsparendes Speichern einer Boot-Umgebung und eines Betriebssystems und gegebenenfalls weiterer Dateien bzw. Programme auf einem Speichermedium wie einer CD. Mit Hilfe des auf der CD gespeicherten komprimierten Images kann somit eine Boot-Umgebung zum Starten eines Computers bereitgestellt werden und ein Betriebssystem von der CD auf dem Computer installiert werden. US Pat. No. 7,664,944 B2 discloses a method for booting from a compressed program image. The program image is also referred to as a so-called image. The method enables space-saving storage of a boot environment and an operating system and possibly further files or programs on a storage medium such as a CD. With the help of the compressed image stored on the CD, a boot environment for starting a computer can be provided and an operating system can be installed on the computer from the CD.
Aus der US 2018/0336053 A1 ist ein Verfahren zum Verteilen differentieller Softwareupdates für virtuelle Maschinen bekannt. Mit Hilfe des in der Druckschrift offenbarten Verfahrens wird die Verteilung von Softwareupdates an in verschiedenen Cloudcomputing-Umgebungen genutzte virtuelle Maschinen erleichtert. Dabei wird der Zustand, auch als Snapshot bezeichnet, einer Ausgangs-virtuellen Maschine eingefroren und dieser Snapshot an die verschiedenen Cloudcomputing-Umgebungen verteilt. Durch den Betrieb der virtuellen Maschinen in den Cloudcomputing-Umgebungen verändern sich die Zustände der jeweiligen virtuellen Maschinen mit der Zeit. Das Verfahren prüft, wie stark sich die einzelnen Zustände der virtuellen Maschinen von Snapshot, also dem Ausgangszustand, geändert haben. Liegt die Änderung innerhalb einer gewissen Toleranzschwelle, so werden Softwareupdates verteilt. Sind die Änderungen hingegen zu groß, werden keine Softwareupdates verteilt. A method for distributing differential software updates for virtual machines is known from US 2018/0336053 A1. The distribution of software updates to virtual machines used in different cloud computing environments is facilitated with the aid of the method disclosed in the publication. The status, also referred to as a snapshot, of an initial virtual machine is frozen and this snapshot distributed to the various cloud computing environments. Due to the operation of the virtual machines in the cloud computing environments, the states of the respective virtual machines change over time. The procedure checks how much the individual states of the virtual machines have changed from the snapshot, i.e. the initial state. If the change is within a certain tolerance threshold, software updates are distributed. However, if the changes are too large, no software updates are distributed.
Aus der US 8,990,806 B2 ist zudem ein Verfahren zur Erzeugung maßgeschneiderter virtueller Maschinen bekannt. A method for generating tailor-made virtual machines is also known from US Pat. No. 8,990,806 B2.
Ferner offenbart die US 8,185,884 B2 ein System und ein Verfahren zum Aktualisieren von in einer virtuellen Maschine ausgeführten Software. Mit Hilfe des in der Druckschrift offenbarten Verfahrens ist es möglich, auf einer virtuellen Maschine ausgeführte Software zu aktualisieren, wenn die virtuelle Maschine selbst nicht ausgeführt wird. Hierdurch können Rechenressourcen sowie Zeit bei der Durchführung von Softwareaktualisierungen eingespart werden. Furthermore, US Pat. No. 8,185,884 B2 discloses a system and a method for updating software running in a virtual machine. With the aid of the method disclosed in the publication, it is possible to update software running on a virtual machine when the virtual machine itself is not running. This saves computing resources and time when performing software updates.
Zudem offenbart die US 10,019,253 B2 Systeme und Verfahren zur Aktualisierung sogenannter Hot-Pluggable Devices. Hierdurch können beispielsweise Firmwareupdates für die Hot-Pluggable Devices durchgeführt werden und die Hot-Pluggable Devices nach der Firmwareaktualisierung weiter genutzt werden, ohne dass ein Betriebssystem einer die Hot-Pluggable Devices verwendenden Hardware neu gestartet werden muss. In addition, US Pat. No. 10,019,253 B2 discloses systems and methods for updating so-called hot-pluggable devices. In this way, for example, firmware updates for the hot-pluggable devices can be carried out and the hot-pluggable devices can continue to be used after the firmware update without an operating system of hardware using the hot-pluggable devices having to be restarted.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zum Betrieb eines informationstechnischen Systems anzugeben, durch dessen Anwendung das informationstechnische System besonders schnell aus einem deaktivierten Modus in einen betriebsbereiten Modus versetzbar ist und welches eine Reduktion einer Speichergröße eines im informationstechnischen System verbauten Speichermediums erlaubt. The present invention is based on the object of specifying an improved method for operating an information technology system, through the use of which the information technology system can be switched particularly quickly from a deactivated mode to an operational mode and which allows a reduction in the memory size of a storage medium installed in the information technology system.
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zum Betrieb eines informationstechnischen Systems mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen sowie ein informationstechnisches System, auf welchem das Verfahren zur Anwendung kommt sowie ein Fahrzeug mit einem solchen informationstechnischen System ergeben sich aus den hiervon abhängigen Ansprüchen. According to the invention, this object is achieved by a method for operating an information technology system having the features of claim 1. Advantageous refinements and developments as well as an information technology The system on which the method is used and a vehicle with such an information technology system result from the dependent claims.
Bei einem Verfahren zum Betrieb eines informationstechnischen Systems der eingangs genannten Art, wird erfindungsgemäß beim Starten des informationstechnischen Systems wenigstens ein in einem nichtflüchtigen Speichermedium des informationstechnischen Systems abgelegtes komprimiertes Programm-Abbild in einen Arbeitsspeicher des informationstechnischen Systems geladen und dort zur Ausführung auf wenigstens einem Prozessor des informationstechnischen Systems dekomprimiert, wobei das wenigstens eine dekomprimierte Programm-Abbild einen eingefrorenen Zustand eines lauffähigen, initialisierten Programms umfasst, beziehungsweise diesem entspricht, wobei das wenigstens eine komprimierte Programm-Abbild auf einem zum informationstechnischen System externen Entwicklersystem durch das Laden und Initialisieren von Programmcode aus einem nichtflüchtigen Speichermedium des Entwicklersystems in einen Arbeitsspeicher des Entwicklersystems erstellt wurde. In a method for operating an information technology system of the type mentioned at the outset, when the information technology system is started, at least one compressed program image stored in a non-volatile storage medium of the information technology system is loaded into a main memory of the information technology system and loaded there for execution on at least one processor of the information technology system information technology system decompressed, wherein the at least one decompressed program image includes a frozen state of an executable, initialized program, or corresponds to this, wherein the at least one compressed program image on a developer system external to the information technology system by loading and initializing program code from a non-volatile storage medium of the developer system was created in a main memory of the developer system.
Mit Hilfe des erfindungsgemäßen Verfahrens lässt sich das informationstechnische System besonders schnell starten. So ist es nicht erforderlich, Programmcode von einem Speichermedium in den Arbeitsspeicher des informationstechnischen Systems zu laden und ein entsprechendes Programm zu initialisieren, sondern es wird direkt ein lauffähiges Programm-Abbild in den Arbeitsspeicher geladen, welches direkt von einem Prozessor des informationstechnischen Systems ausführbar ist, da das Programm- Abbild einen eingefrorenen Zustand eines lauffähigen Programms umfasst. Dabei müssen dem Prozessor vor der Ausführung lediglich relevante Interrupt-Befehle mitgeteilt werden, damit das entsprechende Programm an der Stelle ausgeführt wird, an der es auch eingefroren wurde. The information technology system can be started particularly quickly with the aid of the method according to the invention. It is not necessary to load program code from a storage medium into the main memory of the information technology system and to initialize a corresponding program, but rather an executable program image is loaded directly into the main memory, which can be executed directly by a processor of the information technology system. since the program image comprises a frozen state of an executable program. The processor only has to be informed of relevant interrupt commands before execution, so that the corresponding program is executed at the point at which it was also frozen.
Die Nutzung eines komprimierten Programm-Abbilds begünstigt zudem die verkürzte Startzeitdauer des informationstechnischen Systems, da somit die Speichergröße (beispielsweise in Megabyte) des Programm-Abbilds gegenüber einem unkomprimierten Programm-Abbild reduziert wird, wodurch das Programm-Abbild schneller aus dem nichtflüchtigen Speichermedium in den Arbeitsspeicher übertragbar ist. Aufgrund der reduzierten Größe des Programm-Abbilds ist es zudem möglich, eine Speichergröße des nichtflüchtigen Speichermediums des informationstechnischen Systems zu reduzieren. Ferner lässt sich die Größe des nichtflüchtigen Speichermediums auch dadurch reduzieren, dass direkt ein lauffähiges Programm in seinem eingefrorenen Zustand gespeichert wird. Dieses benötigt weniger Speicherplatz als der Programmcode zum Initialisieren eines nicht lauffähigen Programms sowie das Speichern der zum Initialisieren des Programms erforderlicher Konstanten, Variablen und/oder Parameter. Da das Programm-Abbild auf einem Entwicklersystem erzeugt wurde, entfällt das Erfordernis, die entsprechenden Programmcodebausteine des nicht lauffähigen, nicht initialisierten Programms auf dem informationstechnischen System zu speichern. The use of a compressed program image also benefits the shortened start-up time of the information technology system, since the memory size (e.g. in megabytes) of the program image is reduced compared to an uncompressed program image, which means that the program image can be transferred more quickly from the non-volatile storage medium to the RAM is transferrable. Due to the reduced size of the program image, it is also possible to increase the memory size of the to reduce non-volatile storage medium of the information technology system. Furthermore, the size of the non-volatile storage medium can also be reduced by directly storing an executable program in its frozen state. This requires less memory space than the program code for initializing a non-executable program and storing the constants, variables and/or parameters required to initialize the program. Since the program image was generated on a developer system, there is no need to store the corresponding program code modules of the non-executable, uninitialized program on the information technology system.
Bei dem informationstechnischen System kann es sich beispielsweise um ein eingebettetes System wie ein Steuergerät eines Fahrzeuguntersystems, einen Personal Computer, ein mobiles Endgerät wie ein Smartphone oder auch einen Rechnerverband wie ein Rechencluster handeln. Im Falle eines Rechenclusters muss das komprimierte Programm-Abbild nicht zwangsweise in dem Rechner gespeichert sein, welcher gestartet werden soll. So kann das komprimierte Programm-Abbild in diesem Fall beispielsweise auch von einem nichtflüchtigen Speichermedium wie einer Festplatte oder einer SSD eines Rechners des Rechenclusters ausgelesen und per Wide-Area-Network (WAN), beispielsweise über Ethernet, an den zu startenden Rechner übertragen werden. The information technology system can be, for example, an embedded system such as a control unit of a vehicle subsystem, a personal computer, a mobile terminal device such as a smartphone, or a computer network such as a computing cluster. In the case of a computing cluster, the compressed program image does not necessarily have to be stored on the computer that is to be started. In this case, for example, the compressed program image can also be read from a non-volatile storage medium such as a hard drive or an SSD of a computer in the computing cluster and transmitted to the computer to be started via wide area network (WAN), for example via Ethernet.
Die Erzeugung des komprimierten Programm-Abbilds auf dem Entwicklersystem läuft wie folgt ab: Das Entwicklersystem, beispielsweise ein Personal Computer oder auch ein dem informationstechnischen System ähnliches System wie ein eingebettetes System, umfasst ein nichtflüchtiges Speichermedium mit Daten. Für das komprimierte Programm- Abbild relevante Daten, beispielsweise Programmcodeteile eines oder mehrerer Programme, werden aus dem nichtflüchtigen Speichermedium ausgelesen und in einen Arbeitsspeicher des Entwicklersystems übertragen. Im Arbeitsspeicher des Entwicklersystems werden die Programmcodeteile zur Erzeugung eines ausführbaren, also lauffähigen Programms initialisiert. Das nichtflüchtige Speichermedium umfasst dabei wenigstens einen Speicherbereich, aus dem ein Prozessor kalt gebootet werden kann. Ein entsprechender Boottreiber beinhaltet dabei Treibercode, um Schnittstellen eines informationstechnischen Systems (also auch des Entwicklersystems) in einen Zustand zu versetzen, in dem ein entsprechender Prozessor diese Schnittstellen auch nutzen kann. Dies umfasst beispielsweise die Initialisierung von Netzwerkregistern, Speicherregistern, CAN-Registern und dergleichen. Ferner umfasst das nichtflüchtige Speichermedium einen Bootloader mit Hypervisor zum Starten von Prozessoren. Der Bootloader bzw. der Hypervisor ordnet dabei einem oder mehreren Prozessoren des Entwicklersystems, die von den jeweiligen Prozessoren, beziehungsweise Prozessorkernen, auszuführenden Programmteile zu. Ein dynamischer Linker und ein auszuführendes Programm sind so optimiert, dass beim Speichern Adressen nicht randomisiert werden. Dies vereinfacht die Zuordnung, in welchen Speicherbereichen welche Codeteile abgelegt bzw. geladen werden. Dementsprechend ist ein Memory Allocator so gebaut, dass er deterministisch, das heißt ohne Zufall, den Speicher allokiert. Es wird ein statisches Scheduling verwendet, um eine reproduzierbare Ausführung eines Bootprozesses zu erreichen. The compressed program image is generated on the developer system as follows: The developer system, for example a personal computer or a system similar to the information technology system such as an embedded system, includes a non-volatile storage medium with data. Data relevant to the compressed program image, for example program code parts of one or more programs, are read from the non-volatile storage medium and transferred to a main memory of the developer system. The program code parts for generating an executable, i.e. runnable, program are initialized in the main memory of the developer system. In this case, the non-volatile storage medium comprises at least one storage area from which a processor can be cold-booted. A corresponding boot driver contains driver code in order to put interfaces of an information technology system (ie also of the developer system) into a state in which a corresponding processor can also use these interfaces. This includes, for example, the initialization of network registers, Memory registers, CAN registers and the like. The non-volatile storage medium also includes a boot loader with a hypervisor for starting processors. The boot loader or the hypervisor assigns the program parts to be executed by the respective processors or processor cores to one or more processors of the developer system. A dynamic linker and a program to be executed are optimized in such a way that addresses are not randomized when stored. This simplifies the allocation of which code parts are stored or loaded in which memory areas. Accordingly, a memory allocator is built in such a way that it allocates memory deterministically, i.e. without randomness. Static scheduling is used to achieve reproducible execution of a boot process.
Nach dem Initialisieren des oder der Programme wird der oder werden die Prozessoren, beziehungsweise Kerne, eingefroren und es werden alle Speicherbereiche, die dem oder den entsprechenden Prozessoren zugeordnet sind, ausgelesen und aus diesen ausgelesenen Daten das zu erzeugende Programm-Abbild generiert. Im Programm- Abbild werden auch die Interrupt-Befehle gespeichert, mit denen der Hypervisor einem jeweiligen Prozessor mitteilt, an welcher Stelle das jeweilige Programm dann später auf dem informationstechnischen System fortgesetzt werden soll. Vor dem Einfrieren des oder der Prozessoren bzw. Kerne, wird ein Event gesendet, das entsprechenden Hardware- und/oder Softwarekomponenten signalisiert, dass jetzt das Einfrieren erfolgt. Dies wird dazu genutzt, temporäre Daten, zum Beispiel Cashes, freizugeben. Hierdurch lässt sich die Speichergröße des zu erzeugenden komprimierten Programm-Abbilds weiter reduzieren. After the initialization of the program or programs, the processor or cores are frozen and all memory areas assigned to the corresponding processor or processors are read out and the program image to be generated is generated from the data read out. The interrupt commands are also stored in the program image, with which the hypervisor informs a respective processor at which point the respective program is to be continued later on the information technology system. Before the processor or core(s) freezes, an event is sent that signals the corresponding hardware and/or software components that the freeze is now taking place. This is used to release temporary data, such as cashes. This allows the memory size of the compressed program image to be generated to be further reduced.
Dieses komprimierte Programm-Abbild eines lauffähigen Programms bzw. lauffähiger Programme wird dann vom Entwicklersystem in das informationstechnische System übertragen und dort im nichtflüchtigen Speichermedium gespeichert. This compressed program image of an executable program or executable programs is then transferred from the developer system to the information technology system and stored there in the non-volatile storage medium.
Eine Übertragung des fertiggestellten komprimierten Programm-Abbilds aus dem Entwicklersystem in das informationstechnische System kann auf beliebige Art und Weise erfolgen. Beispielsweise kann das komprimierte Programm-Abbild während der Herstellung des informationstechnischen Systems bzw. beim Verbau des informationstechnischen Systems in einer übergeordneten Struktur, also beispielsweise der Integration eines eingebetteten Systems in ein Fahrzeug, in das informationstechnische System eingebracht werden. Auch ist es denkbar, dass das informationstechnische System in Kommunikationsverbindung mit dem Entwicklersystem steht, beispielsweise über ein WAN. Dies ist beispielsweise der Fall, wenn das Entwicklersystem und das informationstechnische System jeweils von einem Rechner eines Rechenclusters ausgebildet werden. The completed compressed program image can be transferred from the developer system to the information technology system in any desired manner. For example, the compressed program image during the manufacture of the information technology system or when installing the information technology system in a higher-level structure, so for example the integration of an embedded system in a vehicle into which information technology systems are introduced. It is also conceivable that the information technology system is in communication with the developer system, for example via a WAN. This is the case, for example, when the developer system and the information technology system are each formed by a computer in a computing cluster.
Zum Starten des informationstechnischen Systems beschreibt der Bootloader den Arbeitsspeicher des informationstechnischen Systems mit Null, löscht somit die eventuell im Arbeitsspeicher noch vorhandenen Daten. Hierdurch wird der Arbeitsspeicher initialisiert. Nun wird das komprimierte Programm-Abbild in den Arbeitsspeicher geladen und dort dekomprimiert. Dieser Ladevorgang dauert beispielsweise eine Sekunde. Nach dieser Zeitdauer steht ein lauffähiges Programm zur Verfügung, was bei einem klassischen Bootvorgang beispielsweise neun Sekunden Bootzeit gebraucht hätte. Somit konnten acht Sekunden Bootzeit eingespart werden. To start the information technology system, the bootloader writes zero to the main memory of the information technology system, thus deleting any data still present in the main memory. This initializes the working memory. Now the compressed program image is loaded into the main memory and decompressed there. This loading process takes a second, for example. After this period of time, an executable program is available, which would have taken nine seconds boot time with a classic boot process, for example. This saved eight seconds of boot time.
Handelt es sich bei dem informationstechnischen System beispielsweise um ein in einem Fahrzeug genutztes eingebettetes System, wird nach dem Fortführen des (auf dem Entwicklersystem) eingefrorenen, lauffähigen Programms im Prozessor, also nach dem „Auftauen“, vom informationstechnischen System ein sogenanntes Service Discovery durchgeführt, um die durch Ausführung des Programm-Abbilds bereitgestellte Funktionalitäten im Fahrzeug sichtbar zu machen, da fahrzeugspezifische Daten wie zum Beispiel die Kodierung oder das Vorhandensein von anderen Hardwarekomponenten, erst dann erfolgen darf, wenn dieser Service Discovery durchgeführt wurde bzw. wenn die jeweils aktuelle Kodierung vorliegt. If the information technology system is, for example, an embedded system used in a vehicle, after the continuation of the (on the developer system) frozen, executable program in the processor, i.e. after "thawing", a so-called service discovery is carried out by the information technology system, to make the functionalities provided by executing the program image visible in the vehicle, since vehicle-specific data, such as the coding or the presence of other hardware components, may only be provided when this service discovery has been carried out or when the current coding is available .
Generell ist es auch möglich, dass im nichtflüchtigen Speichermedium des informationstechnischen Systems weitere Programm- bzw. Datenabbilder gespeichert sind, die statische Daten enthalten, welche nach Abruf nachgeladen werden können. Hierbei kann es sich beispielsweise um Kartendaten oder angelernte künstliche neuronale Netze handeln. In general, it is also possible for further program or data images to be stored in the non-volatile storage medium of the information technology system, which images contain static data which can be reloaded after retrieval. This can be, for example, map data or trained artificial neural networks.
Der Begriff „Prozessor“ wird stellvertretend für eine Recheneinheit wie eine Central Processing Unit (CPU) oder auch eine Graphics Processing Unit (GPU), beziehungsweise die von einer CPU oder GPU umfassten Rechenkerne verwendet. Ein Prozessor kann also beispielsweise eine CPU (mit bspw. acht Kernen) oder auch ein bestimmter Kern der CPU sein. The term "processor" is used to represent a computing unit such as a central processing unit (CPU) or a graphics processing unit (GPU), or the computing cores comprised by a CPU or GPU are used. A processor can be a CPU (e.g. with eight cores) or a specific core of the CPU.
Eine vorteilhafte Weiterbildung des erfindungsgemäßen Verfahrens sieht vor, dass wenigstens ein physischer oder wenigstens ein virtueller Prozessor zur Ausführung des dekomprimierten Programm-Abbilds verwendet wird. Bei einem physischen Prozessor kann es sich beispielsweise um eine CPU handeln. Bei einem virtuellen Prozessor kann es sich um einen von einer virtuellen Maschine simulierten bzw. emulierten Prozessor handeln. Mit anderen Worten ist das informationstechnische System dazu in der Lage, virtuelle Maschinen einzusetzen. So wird mittels einer virtuellen Maschine durch einen physischen Prozessor ein real nichtexistierendes aber simuliertes bzw. emuliertes informationstechnisches System bereitgestellt. Die virtuelle Maschine kann ein oder mehrere Prozessoren umfassen. Es können auch gleichzeitig mehrere virtuelle Maschinen auf dem informationstechnischen System ausgeführt werden. Die virtuellen Maschinen können denselben Aufbau oder auch einen unterschiedlichen Aufbau, sprich Rechnerarchitektur, aufweisen. Auch ist es möglich, dass eine virtuelle Maschine auf einer virtuellen Maschine läuft. Dies wird auch als „nested virtualization“ bezeichnet. An advantageous development of the method according to the invention provides that at least one physical or at least one virtual processor is used to execute the decompressed program image. For example, a physical processor can be a CPU. A virtual processor can be a processor simulated or emulated by a virtual machine. In other words, the information technology system is able to use virtual machines. A virtual machine provides a physical processor that does not actually exist but is simulated or emulated. The virtual machine can include one or more processors. Several virtual machines can also be run on the information technology system at the same time. The virtual machines can have the same structure or a different structure, i.e. computer architecture. It is also possible for a virtual machine to run on a virtual machine. This is also referred to as "nested virtualization".
Entsprechend einer weiteren vorteilhaften Ausgestaltung des erfindungsgemäßen Verfahrens umfasst, beziehungsweise entspricht wenigstens ein Programm-Abbild einem Abbild eines Betriebssystems und/oder wenigstens einer Applikationssoftware. Ein Programm-Abbild kann also ein Betriebssystem umfassen, beziehungsweise diesem entsprechen. Ein Programm-Abbild kann auch eine Applikationssoftware oder auch mehrere Programme, wie mehrere Applikationsprogramme oder ein oder mehrere Betriebssysteme und/oder ein oder mehrere Applikationsprogramme umfassen. Die Verteilung der Ausführung von Programmen auf physische und/oder virtuelle Prozessoren kann beliebig erfolgen. So kann beispielsweise ein Betriebssystem von einem ersten Prozessor ausgeführt werden und eine Applikationssoftware von einem weiteren physischen oder virtuellen Prozessor ausgeführt werden. Es kann auch ein Programm gleichzeitig von mehreren Prozessoren ausgeführt werden, falls die Prozessoren eine vergleichsweise geringe Rechenleistung aufweisen bzw. das entsprechende Programm eine Mindestrechenleistung erfordert, welche von einem Prozessor alleine nicht bereitgestellt werden kann. Bei einem Betriebssystem kann es sich beispielsweise um Linux, Windows oder AUTOSAR handeln. Bei einer Applikationssoftware kann es sich beispielsweise um ein Textverarbeitungsprogramm, ein Tabellenkalkulationsprogramm oder auch um einen Parkassistenten, ein Navigationsdienst, ein Ferndiagnoseprogramm oder eine Motorsteuerung handeln. According to a further advantageous embodiment of the method according to the invention, at least one program image comprises or corresponds to an image of an operating system and/or at least one application software. A program image can therefore include an operating system or correspond to it. A program image can also include application software or a plurality of programs, such as a plurality of application programs or one or more operating systems and/or one or more application programs. The execution of programs can be distributed to physical and/or virtual processors as desired. For example, an operating system can be executed by a first processor and application software can be executed by a further physical or virtual processor. A program can also be executed simultaneously by a plurality of processors if the processors have a comparatively low computing power or the corresponding program requires a minimum computing power which cannot be provided by one processor alone. An operating system can be, for example, Linux, Windows or AUTOSAR. Application software can be, for example, a word processing program, a spreadsheet program or also a parking assistant, a navigation service, a remote diagnosis program or an engine controller.
Eine weitere vorteilhafte Ausgestaltung des Verfahrens sieht ferner vor, dass zum Laden und Speichern von Daten Speicherbereiche eines nichtflüchtigen Speichermediums und/oder eines Arbeitsspeichers nach einem festgelegten Muster adressiert werden, wobei freie Speicherbereiche mit einem Leer-Wert gefüllt werden. Bei dem Leer-Wert kann es sich beispielsweise um eine binäre Null oder einen Hexadezimalwert wie „F“, beziehungsweise aneinandergereihte Werte, also beispielsweise „000“ oder „FFFFFFF“ handeln. Durch die Adressierung von Speicherbereichen mit einem deterministischen, also festgelegten Muster und dem Vorsehen von Leer-Werten kann ein Kompressions- bzw. Dekompressionsvorgang des Programm-Abbilds beschleunigt und vereinfacht werden. So müssen leere Speicherbereiche, beispielsweise Seiten, nicht erneut geschrieben werden. Dies begünstigt auch das beschleunigte Durchführen von Softwareaktualisierungen, worauf im Folgenden noch eingegangen wird. Insbesondere wird der beim Bootvorgang sonst von temporären Dateien verwendete Speicherbereich mit dem/den Leer-Wert(en) beschrieben. A further advantageous embodiment of the method also provides that, for loading and storing data, memory areas of a non-volatile storage medium and/or a main memory are addressed according to a defined pattern, with free memory areas being filled with an empty value. The empty value can be, for example, a binary zero or a hexadecimal value such as "F", or consecutive values, for example "000" or "FFFFFFF". A compression or decompression process of the program image can be accelerated and simplified by addressing memory areas with a deterministic, ie fixed pattern and by providing empty values. This means that empty memory areas, such as pages, do not have to be rewritten. This also favors the accelerated implementation of software updates, which will be discussed below. In particular, the memory area otherwise used by temporary files during the boot process is written with the empty value(s).
Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens wird nach dem Starten des informationstechnischen Systems wenigstens ein weiteres komprimiertes Programm-Abbild zur Ausführung auf dem informationstechnischen System aus dem nichtflüchtigen Speicher in den Arbeitsspeicher nachgeladen und dekomprimiert. Hierdurch lässt sich die Zeitdauer, um das informationstechnische System aus dem deaktivierten Modus in den einsatzbereiten Modus zu führen, weiter reduzieren. So wird zuerst ein solches Programm-Abbild geladen und ausgeführt, welches grundlegende, besonders schnell erforderliche Funktionen bereitstellt. Dabei kann es sich beispielsweise um das Betriebssystem des informationstechnischen Systems handeln. Weniger wichtige Funktionalitäten, auf das Beispiel des Fahrzeugs bezogen beispielsweise die Funktionalität Mediaplayer oder Navigationsgerät, können dann später nachgeladen werden. Dabei kann die Speichergröße der im nichtflüchtigen Speichermedium gespeicherten Programm-Abbilder auch größer sein, als die Speichergröße des Arbeitsspeichers. So können dann vormals geladene und ausgeführte Programm-Abbilder ausgetauscht werden, wenn ihre Funktionalität nicht mehr benötigt wird, jedoch die von einem anderen Programm-Abbild bereitgestellte Funktionalität benötigt wird. So kann beispielsweise der Dienst Parkassistent beendet werden, wenn das Fahrzeug über einer kritischen Geschwindigkeit auf einer Straße fährt und dann entsprechend der Dienst Abstandsüberwachung aktiviert werden. According to a further advantageous embodiment of the method, after the information technology system has been started, at least one further compressed program image for execution on the information technology system is reloaded from the non-volatile memory into the working memory and decompressed. As a result, the time it takes to bring the information technology system from the deactivated mode to the ready-to-use mode can be further reduced. First, such a program image is loaded and executed, which provides basic functions that are required particularly quickly. This can be the operating system of the information technology system, for example. Functionalities that are less important, for example the media player or navigation device functionality related to the example of the vehicle, can then be reloaded later. The memory size of the non-volatile The program images stored on the storage medium can also be larger than the storage size of the main memory. In this way, previously loaded and executed program images can then be exchanged when their functionality is no longer required, but the functionality provided by another program image is required. For example, the parking assistant service can be terminated if the vehicle is driving above a critical speed on a road and the distance monitoring service can then be activated accordingly.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht ferner vor, dass wenigstens zwei komprimierte Programm-Abbilder zur Ausführung auf dem informationstechnischen System seriell hintereinander oder parallel in den Arbeitsspeicher geladen werden. Handelt es sich bei den Programm-Abbildern beispielsweise um besonders relevante und daher früh erforderliche Programme, so können diese gleichzeitig in den Arbeitsspeicher geladen werden, um beide früh einsatzbereit zu sein. Ist hingegen die von einem Programm-Abbild bereitgestellte Funktionalität weniger wichtig, als die des anderen Programm-Abbilds, so kann zuerst das wichtige Programm-Abbild und dann das weniger wichtige Programm-Abbild in den Arbeitsspeicher geladen und entsprechend auf dem oder den Prozessoren ausgeführt werden. A further advantageous embodiment of the method according to the invention also provides that at least two compressed program images are loaded serially one after the other or in parallel into the main memory for execution on the information technology system. If the program images are, for example, particularly relevant and therefore early required programs, they can be loaded into the working memory at the same time in order to be ready for use early on. If, on the other hand, the functionality provided by one program image is less important than that of the other program image, the important program image and then the less important program image can be loaded into the main memory and executed accordingly on the processor or processors .
Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens werden zur Aktualisierung wenigstens eines im nichtflüchtigen Speichermedium des informationstechnischen Systems abgelegten Programm-Abbilds zumindest die folgenden Verfahrensschritte durchgeführt: According to a further advantageous embodiment of the method, at least the following method steps are carried out to update at least one program image stored in the non-volatile storage medium of the information technology system:
- Laden des zu aktualisierenden komprimierten Programm-Abbilds in den Arbeitsspeicher des informationstechnischen Systems und dortiges Dekomprimieren;- Loading the compressed program image to be updated into the main memory of the information technology system and decompressing it there;
- Anwendung einer dekomprimierten differentiellen Softwareaktualisierung auf das dekomprimierte Programm-Abbild; - applying a decompressed differential software update to the decompressed program image;
- Komprimieren des aktualisierten Programm-Abbilds und Ablegen des komprimierten aktualisierten Programm-Abbilds im nichtflüchtigen Speichermedium des informationstechnischen Systems. - Compressing the updated program image and storing the compressed updated program image in the non-volatile storage medium of the information technology system.
Die Durchführung differentieller Softwareaktualisierungen ermöglicht es, die Dateigröße eines Updates zu verringern, wodurch ein entsprechendes Softwareupdate schneller an das informationstechnische System übertragen werden kann und dort schneller installiert werden kann. Eine differentielle Softwareaktualisierung meint, dass lediglich die Codebausteine ausgetauscht werden, welche Änderungen umfassen. In vorteilhafter Weise bleiben die Speicherbereiche, in den Codebausteine abgelegt werden, nach der Softwareaktualisierung gleich. Werden bestimmte Codebausteine nicht mehr benötigt, so werden die entsprechenden Speicherbereiche mit dem Leer-Wert gefüllt. Kommen neue Codebausteine hinzu, werden diese an folgende, noch freie Speicherbereiche angehängt. Durch das Speichern eines aktualisierten Programm-Abbilds in komprimierter Form lässt sich die Dateigröße auch des aktualisierten Programm-Abbilds gering halten. Performing differential software updates makes it possible to reduce the file size of an update, which means that a corresponding software update is available more quickly the information technology system can be transferred and installed there faster. A differential software update means that only the code blocks that contain changes are exchanged. The memory areas in which code modules are stored advantageously remain the same after the software update. If certain code blocks are no longer required, the corresponding memory areas are filled with the empty value. If new code modules are added, they are appended to the following memory areas that are still free. By storing an updated program image in compressed form, the file size of the updated program image can also be kept small.
Ein entsprechendes Softwareupdate kann ebenfalls vom Entwicklersystem erzeugt worden sein. Hierzu überführt das Entwicklersystem ein zu aktualisierendes Programm in einen lauffähigen Zustand und führt das unkomprimierte Abbild des Programms sowie das unkomprimierte Abbild der aktualisierten Programmversion einer binären Differenzerzeugung zu. Die hieraus resultierende Differenzdatei wird dann komprimiert und als Softwareupdate verteilt. Dadurch, dass die Komponenten der alten und neuen Softwareversion die gleichen Speicheroperationen durchgeführt haben, kann das Differenz-Abbild besonders klein gehalten werden. Außerdem wird ein dynamischer Linker so angewiesen, dass er zu einer alten Version ähnliches Speicherlayout erzeugt. A corresponding software update can also have been generated by the developer system. For this purpose, the developer system converts a program to be updated into an executable state and feeds the uncompressed image of the program and the uncompressed image of the updated program version to a binary difference generation. The resulting difference file is then compressed and distributed as a software update. Because the components of the old and new software versions have carried out the same storage operations, the difference image can be kept particularly small. Also, a dynamic linker is instructed to create memory layout similar to an old version.
Speicherbereiche, beispielsweise Seiten, die einem bestimmten Prozessor und/oder virtuellen Maschine zugeordnet wurden, jetzt aber nicht mehr benutzt werden, können dann explizit wieder freigegeben werden, beispielsweise durch einen Hypervisor. Dies hat den Vorteil, dass im Programm-Abbild diese Speicherbereiche, sprich Seiten, mit dem Leer-Wert, also beispielsweise mit Null, gefüllt werden und entsprechend nicht mehr beschrieben werden müssen. Memory areas, for example pages, which have been assigned to a specific processor and/or virtual machine but are no longer used can then be explicitly released again, for example by a hypervisor. This has the advantage that in the program image these memory areas, i.e. pages, are filled with the empty value, i.e. with zero for example, and accordingly no longer have to be written to.
Softwareupdates werden dabei typischerweise pro Programm-Abbild ausgeführt. Software updates are typically carried out for each program image.
Bevorzugt erfolgt vor, während und/oder nach dem Dekomprimieren und/oder Komprimieren eine Prüfung einer digitalen Signatur. Hierdurch lässt sich die Cybersicherheit bei der Durchführung des erfindungsgemäßen Verfahrens verbessern, sprich das informationstechnische System besonders sicher betreiben. Mit Hilfe einer Signaturprüfung kann verhindert werden, dass korrumpierte und/oder beschädigte Codebausteine in das informationstechnische System eingeschleust werden. Hierdurch werden Angriffe auf das informationstechnische System erschwert. A digital signature is preferably checked before, during and/or after the decompression and/or compression. This makes it possible to improve cyber security when carrying out the method according to the invention, i.e. to operate the information technology system in a particularly secure manner. A signature check can be used to prevent corrupted and/or damaged Code modules are introduced into the information technology system. This makes attacks on the information technology system more difficult.
Die Signaturprüfung kann wie erwähnt vor, während oder auch nach dem Dekomprimieren und/oder Komprimieren erfolgen. Hierdurch lässt sich beispielsweise vor jedem Laden und Ausführen eines bestimmten Programms prüfen, ob dieses nicht zwischenzeitlich manipuliert wurde. Wurde eine Softwareaktualisierung durchgeführt, so kann hierdurch auch sichergestellt werden, dass nur ein korrekt aktualisiertes Programm in Form eines komprimierten aktualisierten Programm-Abbilds im nichtflüchtigen Speichermedium des informationstechnischen Systems abgelegt wird. Hierzu wird beispielsweise eine Signaturprüfung des aktualisierten dekomprimierten Programm- Abbilds durchgeführt und dann nach Ablegen des komprimierten aktualisierten Programm-Abbilds die Signatur erneut geprüft. As mentioned, the signature check can take place before, during or also after the decompression and/or compression. This allows, for example, before each loading and execution of a specific program to be checked whether it has not been manipulated in the meantime. If a software update has been carried out, this can also ensure that only a correctly updated program is stored in the form of a compressed, updated program image in the non-volatile storage medium of the information technology system. For this purpose, a signature check of the updated, decompressed program image is carried out, for example, and then the signature is checked again after the compressed, updated program image has been stored.
Ein erfindungsgemäßes informationstechnisches System umfasst jeweils wenigstens einen Prozessor, einen Arbeitsspeicher und ein nichtflüchtiges Speichermedium, wobei die genannten Komponenten des informationstechnischen Systems zur Durchführung eines im vorigen beschriebenen Verfahrens eingerichtet sind. Wie bereits erwähnt kann es sich bei dem informationstechnischen System beispielsweise um einen Personal Computer (PC), ein mobiles Endgerät wie ein Smartphone, Tabletcomputer oder dergleichen, ein eingebettetes System oder auch ein Rechencluster handeln. Bei dem Prozessor kann es sich um eine Ein- oder Mehrkern-CPU handeln. Generell kann beispielsweise auch eine Grafikkarte, sprich eine GPU, als Prozessor verwendet werden. Das vom Entwicklersystem erzeugte komprimierte Programm-Abbild wird im nichtflüchtigen Speichermedium, beispielsweise einem Flashspeicher, insbesondere einer SSD oder einer Festplatte, gespeichert und zur Ausführung in den Arbeitsspeicher geladen und vom Prozessor ausgeführt. Die Ausführung des Programm-Abbilds kann auch in einer virtuellen Maschine erfolgen. Es können einzelne Programme von einem physischen Prozessor und einzelne Programme von einem virtuellen Prozessor, sprich in der virtuellen Maschine, ausgeführt werden. Handelt es sich bei dem informationstechnischen System um ein Rechencluster, so kann das komprimierte Programm-Abbild auch auf einem anderen Rechner gespeichert sein, als auf dem Rechner, auf dem das entsprechende Programm ausgeführt wird, bzw. werden soll. Der Arbeitsspeicher und/oder das nichtflüchtige Speichermedium können auch jeweils auf mehrere Hardwarekomponenten verteilt sein. An information technology system according to the invention comprises in each case at least one processor, a main memory and a non-volatile storage medium, with the components of the information technology system mentioned being set up to carry out a method described above. As already mentioned, the information technology system can be, for example, a personal computer (PC), a mobile device such as a smartphone, tablet computer or the like, an embedded system or a computing cluster. The processor can be a single or multi-core CPU. In general, a graphics card, i.e. a GPU, can also be used as a processor. The compressed program image generated by the developer system is stored in the non-volatile storage medium, for example a flash memory, in particular an SSD or a hard disk, and loaded into the main memory for execution and executed by the processor. The program image can also be executed in a virtual machine. Individual programs can be executed by a physical processor and individual programs by a virtual processor, i.e. in the virtual machine. If the information technology system is a computer cluster, the compressed program image can also be stored on a computer other than the computer on which the corresponding program is or is to be executed. The Main memory and/or the non-volatile storage medium can also each be distributed over a number of hardware components.
Bevorzugt handelt es sich bei dem informationstechnischen System um ein eingebettetes System. Dabei sind in einer besonders bevorzugten Ausgestaltung zumindest zwei der Komponenten Prozessor, Arbeitsspeicher und/oder nichtflüchtiges Speichermedium auf einem gemeinsamen System-on-a-Chip (SOC) integriert. SOCs werden als besonders platzsparende und kostengünstige Lösungen zur Implementierung eingebetteter Systeme verwendet. The information technology system is preferably an embedded system. In a particularly preferred embodiment, at least two of the components processor, main memory and/or non-volatile storage medium are integrated on a common system-on-a-chip (SOC). SOCs are used as particularly space-saving and cost-effective solutions for implementing embedded systems.
Erfindungsgemäß umfasst ein Fahrzeug ein solches informationstechnisches System. Dies ermöglicht ein besonders schnelles Starten von Fahrzeugsteuergeräten und Bereitstellen von Funktionen. Hierdurch lässt sich der Komfort für Fahrzeuginsassen bei der Nutzung des Fahrzeugs verbessern. Für bestimmte Zertifizierungen ist es erforderlich, dass im Fahrzeug bereitgestellte Dienste, wie beispielsweise die Überwachung eines rückwärtigen Bereichs des Fahrzeugs mit Hilfe einer Rückfahrkamera, besonders schnell einsatzfähig sind. Mit Hilfe des erfindungsgemäßen Verfahrens und des erfindungsgemäßen informationstechnischen Systems lässt sich dies bei der Anwendung in einem Fahrzeug gewährleisten. According to the invention, a vehicle includes such an information technology system. This enables vehicle control units to be started and functions to be provided particularly quickly. As a result, the comfort for vehicle occupants when using the vehicle can be improved. Certain certifications require services provided in the vehicle, such as the monitoring of a rear area of the vehicle using a reversing camera, to be operational particularly quickly. With the help of the method according to the invention and the information technology system according to the invention, this can be guaranteed when used in a vehicle.
Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens ergeben sich auch aus den Ausführungsbeispielen, welche nachfolgend unter Bezugnahme auf die Figuren näher beschrieben werden. Further advantageous refinements of the method according to the invention also result from the exemplary embodiments which are described in more detail below with reference to the figures.
Dabei zeigen: show:
Fig. 1 eine Prinzipdarstellung einer Erzeugung und Implementierung eines wenigstens ein initialisiertes, also lauffähiges Programm umfassenden Programm-Abbilds in ein informationstechnisches System; 1 shows a schematic representation of a generation and implementation of a program image comprising at least one initialized, ie executable, program in an information technology system;
Fig. 2 eine vereinfachte Darstellung eines Speicherinhalts eines nichtflüchtigen Speichermediums eines Entwicklersystems und des informationstechnischen Systems; und 2 shows a simplified representation of a memory content of a non-volatile storage medium of a developer system and of the information technology system; and
Fig. 3 eine vereinfachte Darstellung einer Belegung eines Arbeitsspeichers des informationstechnischen Systems nach dem Lade- und Dekomprimierungsvorgang wenigstens eines komprimierten Programm- Abbilds. Figur 1 zeigt ein Entwicklersystem ES und ein informationstechnisches System ITS. Bei dem informationstechnischen System ITS kann es sich beispielsweise um ein eingebettetes System, beispielsweise ein Steuergerät eines Fahrzeuguntersystems, handeln. Das informationstechnische System ITS umfasst wenigstens ein nichtflüchtiges Speichermedium NVM, wenigstens einen Prozessor PU und wenigstens einen Arbeitsspeicher RAM. Zumindest zwei dieser Hardwarekomponenten, in dem Beispiel in Figur 1 alle drei Hardwarekomponenten, können auf einem gemeinsamen System-on-a- Chip SOC integriert sein. Das informationstechnische System ITS kann als Prozessor PU beispielsweise eine Einkern- oder Mehrkern-CPU und/oder auch eine GPU aufweisen. Auf dem informationstechnischen System ITS kann auch eine oder mehrere virtuelle Maschinen ausgeführt werden. 3 shows a simplified representation of an occupancy of a working memory of the information technology system after the loading and decompression process of at least one compressed program image. FIG. 1 shows a developer system ES and an information technology system ITS. The information technology system ITS can, for example, be an embedded system, for example a control unit of a vehicle subsystem. The information technology system ITS comprises at least one non-volatile storage medium NVM, at least one processor PU and at least one main memory RAM. At least two of these hardware components, all three hardware components in the example in FIG. 1, can be integrated on a common system-on-a-chip SOC. The information technology system ITS can have, for example, a single-core or multi-core CPU and/or a GPU as the processor PU. One or more virtual machines can also be executed on the information technology system ITS.
Ziel eines erfindungsgemäßen Verfahrens ist es, das informationstechnische System ITS so zu betreiben, dass es aus einem Ruhe- bzw. deaktivierten Modus möglichst schnell in einen betriebsbereiten Modus versetzt werden kann. Im betriebsbereiten Modus umfasst der Arbeitsspeicher RAM des informationstechnischen Systems ITS zumindest ein initialisiertes, lauffähiges Programm, welches vom Prozessor PU ausgeführt wird. Ein gewöhnlicher Startvorgang, also ein aus dem Stand der Technik bekannter Startvorgang eines informationstechnischen Systems ITS, auch als Bootvorgang bezeichnet, sieht vor, dass im nichtflüchtigen Speichermedium NVM gespeicherter Programmcode in den Arbeitsspeicher RAM geladen und dort initialisiert wird, bevor das Programm vom Prozessor ausgeführt wird. Dieses Laden und Initialisieren von Programmcode schlägt sich in einer verlängerten Startzeit zum Hochfahren des informationstechnischen Systems ITS in den Bereitschaftsmodus nieder. The aim of a method according to the invention is to operate the information technology system ITS in such a way that it can be switched from an idle or deactivated mode to an operational mode as quickly as possible. In the ready-to-operate mode, the main memory RAM of the information technology system ITS includes at least one initialized, executable program, which is executed by the processor PU. A normal start-up process, i.e. a start-up process of an information technology system ITS known from the prior art, also referred to as a boot process, provides that the program code stored in the non-volatile storage medium NVM is loaded into the main memory RAM and initialized there before the program is executed by the processor . This loading and initializing of program code is reflected in a longer starting time for booting the information technology system ITS into the standby mode.
Erfindungsgemäß wird dieser Verfahrensschritt, also das Initialisieren von Programmcode, in das zum informationstechnischen System ITS externe Entwicklersystem ES ausgelagert. So wird in einem Verfahrensschritt 101 aus dem nichtflüchtigen Speichermedium NVM des Entwicklersystems ES Programmcode in den Arbeitsspeicher RAM des Entwicklersystems ES geladen und dort im Verfahrensschritt 102 initialisiert. Nach dem Initialisieren wird das Entwicklersystem ES eingefroren. Zumindest aus dem Inhalt des Arbeitsspeichers RAM, welcher die dem Prozessor PU des Entwicklersystems ES zugeordnete Programminhalte umfasst, wird ein komprimiertes Programm-Abbild c-lmage erzeugt. Dabei werden neben den Speicherbereichen des Arbeitsspeichers RAM, die dem oder den Prozessoren PU bzw. Kernen zugeordnet sind auch sogenannte Interrupt-Befehle in das Programm-Abbild inkludiert, welche einem Prozessor mitteilen an welcher Stelle ein laufendes Programm eingefroren wurde und später zum „Auftauen“ wieder fortgesetzt werden soll. Mit diesen Interrupt-Befehlen lässt sich also ein Interrupt Controller eines jeweiligen Prozessors konfigurieren. According to the invention, this method step, ie the initialization of program code, is outsourced to the developer system ES, which is external to the information technology system ITS. In a method step 101, program code is loaded from the non-volatile storage medium NVM of the developer system ES into the main memory RAM of the developer system ES and initialized there in method step 102. After initialization, the developer system ES is frozen. At least from the content of the main memory RAM, which includes the processor PU of the developer system ES assigned program content, a compressed program image c-image created. In addition to the memory areas of the main memory RAM, which are assigned to the processor(s) PU or cores, so-called interrupt commands are also included in the program image, which tell a processor at which point a running program was frozen and later to "thaw" to be continued again. An interrupt controller of a respective processor can thus be configured with these interrupt commands.
Die Speicherbereiche des Arbeitsspeichers RAM können durch eine Speicherverwaltungseinrichtung mit einem Leer-Wert wie Null oder F initialisiert werden. Durch das Komprimieren lässt sich die Speichergröße des komprimierten Programm- Abbilds c-lmage gegenüber einer unkomprimierten Speicherung reduzieren. The memory areas of the main memory RAM can be initialized with an empty value such as zero or F by a memory management device. Compression allows the memory size of the compressed program image c-image to be reduced compared to uncompressed storage.
Das komprimierte Programm-Abbild c-lmage wird im Verfahrensschritt 103 aus dem Entwicklersystem ES extrahiert und in das informationstechnische System ITS eingebracht. Das Einbringen in das informationstechnische System ITS kann auf beliebige Art und Weise erfolgen. Beispielsweise kann das komprimierte Programm- Abbild c-lmage kabelgebunden oder drahtlos in das nichtflüchtige Speichermedium NVM des informationstechnischen Systems ITS kopiert werden. Ein komprimiertes Programm- Abbild c-lmage kann verschiedene Programme wie ein Betriebssystem und/oder Applikationssoftware umfassen. Dies ermöglicht es dem informationstechnischen System ITS mehrere Dienste anzubieten. So sind in Figur 1 solche Dienste, beziehungsweise Funktionalitäten FU1 , FU2, FU3 durch Boxen angedeutet. The compressed program image c-image is extracted from the developer system ES in method step 103 and introduced into the information technology system ITS. The introduction into the information technology system ITS can be done in any way. For example, the compressed program image c-image can be copied to the non-volatile storage medium NVM of the information technology system ITS by cable or wirelessly. A compressed program image c-image can include various programs such as an operating system and/or application software. This enables the information technology system ITS to offer several services. Such services or functionalities FU1, FU2, FU3 are indicated by boxes in FIG.
Zum Starten des informationstechnischen Systems ITS wird dann im Verfahrensschritt 104 zumindest ein komprimiertes Programm-Abbild c-lmage aus dem nichtflüchtigen Speichermedium NVM des informationstechnischen Systems ITS in den Arbeitsspeicher RAM des informationstechnischen Systems ITS geladen und dort zu einem dekomprimierten Programm-Abbild dc-lmage entpackt. Das dekomprimierte Programm- Abbild dc-lmage umfasst dementsprechend zumindest ein bereits initialisiertes, von einem Prozessor PU ausführbares Programm, beispielsweise ein Betriebssystem. Vor einer Ausführung des entsprechenden Programms muss das informationstechnische System ITS noch in einen Zustand versetzt werden, in dem der Prozessor PU bzw. die Kerne des Prozessors PU relevante Schnittstellen benutzen können. Ein entsprechender Boottreiber beinhaltet für die Initialisierung relevante Daten, beispielsweise zur Initialisierung von Netzwerkregistern, Speicherregistern, CAN-Registern und dergleichen. To start the information technology system ITS, in method step 104 at least one compressed program image c-image is then loaded from the non-volatile storage medium NVM of the information technology system ITS into the main memory RAM of the information technology system ITS and is unpacked there to form a decompressed program image dc-image . Accordingly, the decompressed program image dc-image comprises at least one program, for example an operating system, that has already been initialized and can be executed by a processor PU. Before the corresponding program is executed, the information technology system ITS must be put into a state in which the processor PU or the cores of the processor PU can use relevant interfaces. A corresponding Boot driver contains data relevant for the initialization, for example for the initialization of network registers, memory registers, CAN registers and the like.
Figur 2 zeigt den Inhalt des nichtflüchtigen Speichermediums NVM. Dargestellt ist sowohl der Speicherinhalt des nichtflüchtigen Speichermediums NVM des Entwicklersystems ES (nach der Initialisierung) und des informationstechnischen Systems ITS, wobei der Speicherinhalt NVM-ES des Entwicklersystems ES dem Speicherinhalt NVM-ITS des informationstechnischen Systems ITS entspricht, ergänzt durch einen Speicherbereich SB1, von dem eine virtuelle Maschine bzw. ein Prozessor PU kalt gebootet werden kann. Der Speicherbereich SB1 fehlt hingegen im Speicherinhalt NVM-ITS, da das informationstechnische System ITS zum Versetzen in den betriebsbereiten Modus nicht gebootet werden muss. Die beiden Speicherinhalte NVM-ES, NVM-ITS sind in Figur 2 durch eine gestrichelte Linie voneinander abgegrenzt. FIG. 2 shows the content of the non-volatile storage medium NVM. Shown is both the memory content of the non-volatile storage medium NVM of the developer system ES (after initialization) and of the information technology system ITS, with the memory content NVM-ES of the developer system ES corresponding to the memory content NVM-ITS of the information technology system ITS, supplemented by a memory area SB1, from which a virtual machine or a processor PU can be cold booted. By contrast, the memory area SB1 is missing in the memory content of the NVM-ITS, since the information technology system ITS does not have to be booted to switch to the ready-to-operate mode. The two memory contents NVM-ES, NVM-ITS are delimited from one another in FIG. 2 by a dashed line.
Das nichtflüchtige Speichermedium NVM umfasst einen Bootloader BL mit einem in Figur 3 dargestellten Hypervisor HV, zum Starten von virtuellen Maschinen und/oder Prozessoren PU. Mit anderen Worten ist der Bootloader BL dazu in der Lage einzelnen Prozessoren PU (und/oder virtuellen Maschinen) jeweils auszuführende Programme oder Programmabschnitte zuzuteilen. Der Bootloader BL kann auch, beispielsweise bei einem in einem Fahrzeug verwendeten eingebetteten System, ein Signal senden, wodurch das eingebettete System eine sogenannte „Service Discovery“ durchführt, um nach dem „Auftauen“ der eingefrorenen Programme, also dem Ausführen der Programme durch den/die Prozessor(en) des Informationstechnischen Systems ITS, die Funktionalitäten FU1, FU2, FU3 im Fahrzeug anzubieten. Der Service Discovery kann auch periodisch durchgeführt werden. The non-volatile storage medium NVM includes a boot loader BL with a hypervisor HV shown in FIG. 3 for starting virtual machines and/or processors PU. In other words, the boot loader BL is able to allocate programs or program sections to be executed to individual processors PU (and/or virtual machines). The bootloader BL can also, for example in an embedded system used in a vehicle, send a signal, whereby the embedded system carries out a so-called "service discovery" after the "thawing" of the frozen programs, i.e. the execution of the programs by the / the processor(s) of the information technology system ITS to offer the functionalities FU1, FU2, FU3 in the vehicle. The service discovery can also be carried out periodically.
Ferner umfasst das nichtflüchtige Speichermedium NVM verschiedene Speicherbereiche KERN1-c-lmage, KERN2-c-lmage, VM1-c-lmage, VM2-c-lmage, VM3-c-lmage, welche einzelnen physikalischen bzw. virtuellen Prozessoren PU, also virtuellen Maschinen, zugeordnete Teile zumindest eines komprimierten Programm-Abbilds c-lmage umfassen. Im nichtflüchtigen Speichermedium NVM können auch mehr als ein komprimiertes Programm-Abbild c-lmage gespeichert werden. Das nichtflüchtige Speichermedium NVM kann weitere Speicherbereiche VM... -c-lmage umfassen. Ferner kann das nichtflüchtige Speichermedium NVM persistente Nutzdaten PND umfassen. Hierbei kann es beispielsweise um eine Konfiguration, ein Logbuch und/oder dergleichen handeln. Die persistenten Nutzdaten PND werden insbesondere bei einer Softwareaktualisierung nicht überschrieben. Furthermore, the non-volatile storage medium NVM includes different memory areas KERN1-c-Image, KERN2-c-Image, VM1-c-Image, VM2-c-Image, VM3-c-Image, which individual physical or virtual processors PU, ie virtual machines , Associated parts include at least one compressed program image c-image. More than one compressed program image c-image can also be stored in the non-volatile storage medium NVM. The non-volatile storage medium NVM can include further storage areas VM... -c-Image. Furthermore, the non-volatile storage medium NVM can include persistent user data PND. This can be a configuration, a log and/or the like, for example. The persistent payload data PND are not overwritten, particularly in the case of a software update.
Figur 3 zeigt eine beispielhafte Belegung des Arbeitsspeichers RAM nach dem Laden eines komprimierten Programm-Abbilds c-lmage in den Arbeitsspeicher RAM und einem dortigen Entpacken, also Dekomprimieren. Die Box KERN1 symbolisiert einen ersten Prozessor PU, bzw. zumindest einem Kern des Prozessors PU, zugeordneten Programmabschnitt des dekomprimierten Programm-Abbilds dc-lmage und die Box KERN2 die einem zweiten Prozessor PU, bzw. wenigstens einem zweiten Kern des Prozessors PU, zugeordneten Programmabschnitt. Die Boxen VM1 , VM2 und VM3 entsprechen analog die verschiedenen virtuellen Maschinen zugeordneten Programmabschnitte des dekomprimierten Programm-Abbilds dc-lmage. FIG. 3 shows an exemplary assignment of the main memory RAM after loading a compressed program image c-image into the main memory RAM and unpacking there, ie decompression. The box KERN1 symbolizes a first processor PU, or at least a core of the processor PU, assigned program section of the decompressed program image dc-image and the box KERN2 the program section assigned to a second processor PU, or at least a second core of the processor PU . The boxes VM1, VM2 and VM3 correspond analogously to the various virtual machines assigned program sections of the decompressed program image dc-image.
Ferner umfasst der Arbeitsspeicher RAM einen Hypervisor HV zur Durchführung des Service Discovery, von Softwareaktualisierungen und zum Verwalten der virtuellen Maschinen und/oder Prozessor(en). Die den einzelnen Prozessoren PU bzw. Kernen und/oder virtuellen Maschinen zugeordneten Programmabschnitte können Teil eines einzelnen Programms oder mehrerer Programme sein und das Bereitstellen einer oder auch mehrerer verschiedener Funktionalitäten FU1 , FU2, FU3 ermöglichen. Furthermore, the working memory RAM includes a hypervisor HV for carrying out the service discovery, software updates and for managing the virtual machines and/or processor(s). The program sections assigned to the individual processors PU or cores and/or virtual machines can be part of a single program or multiple programs and enable one or multiple different functionalities FU1, FU2, FU3 to be provided.
Beispielsweise führen der erste und zweite Kern eines Prozessors PU einen von einem Infotainmentsystem eines Fahrzeugs bereitgestellten Mediaplayer aus. Eine erste Virtuelle Maschine führt dann beispielsweise einen Park- bzw. Rangierassistenten aus und ermöglicht so das Anzeigen von Bildern einer Rückfahrkamera des Fahrzeugs auf einer Anzeige im Fahrzeug. For example, the first and second cores of a processor PU execute a media player provided by a vehicle infotainment system. A first virtual machine then executes a parking or maneuvering assistant, for example, and thus enables images from a reversing camera of the vehicle to be displayed on a display in the vehicle.

Claims

Mercedes-Benz Group AG Patentansprüche Mercedes-Benz Group AG patent claims
1. Verfahren zum Betrieb eines informationstechnischen Systems (ITS), wobei wenigstens ein komprimiertes Programm-Abbild (c-lmage) in einen Arbeitsspeicher (RAM) geladen wird, dadurch gekennzeichnet, dass beim Starten des informationstechnischen Systems (ITS) wenigstens ein in einem nichtflüchtigen Speichermedium (NVM) des informationstechnischen Systems (ITS) abgelegtes komprimiertes Programm-Abbild (c-lmage) in einen Arbeitsspeicher (RAM) des informationstechnischen Systems (ITS) geladen und dort zur Ausführung auf wenigstens einem Prozessor (PU) des informationstechnischen Systems (ITS) dekomprimiert wird, wobei das wenigstens eine dekomprimierte Programm-Abbild (dc-lmage) einen eingefrorenen Zustand zumindest eines lauffähigen, initialisierten Programms umfasst und das wenigstens eine komprimierte Programm-Abbild (c-lmage) auf einem zum informationstechnischen System (ITS) externen Entwicklersystem (ES) durch das Laden und Initialisieren von Programmcode aus einem nichtflüchtigen Speichermedium (NVM) des Entwicklersystems (ES) in einen Arbeitsspeicher (RAM) des Entwicklersystems (ES) erstellt wurde. 1. A method for operating an information technology system (ITS), wherein at least one compressed program image (c-image) is loaded into a working memory (RAM), characterized in that when starting the information technology system (ITS) at least one in a non-volatile Storage medium (NVM) of the information technology system (ITS) stored compressed program image (c-image) loaded into a main memory (RAM) of the information technology system (ITS) and there for execution on at least one processor (PU) of the information technology system (ITS) is decompressed, wherein the at least one decompressed program image (dc-image) comprises a frozen state of at least one executable, initialized program and the at least one compressed program image (c-image) on a developer system ( ES) was created by loading and initializing program code from a non-volatile storage medium (NVM) of the developer system (ES) into a main memory (RAM) of the developer system (ES).
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass wenigstens ein physischer oder wenigstens ein virtueller Prozessor (PU) zur Ausführung des dekomprimierten Programm-Abbilds (dc-lmage) verwendet wird. 2. The method according to claim 1, characterized in that at least one physical or at least one virtual processor (PU) for executing the decompressed program image (dc-image) is used.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass wenigstens ein Programm-Abbild (c-lmage, dc-lmage) ein Abbild eines Betriebssystems und/oder wenigstens einer Applikationssoftware umfasst. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass zum Speichern und Laden von Daten, Speicherbereiche eines nichtflüchtigen- Speichermediums (NVM) und/oder eines Arbeitsspeichers (RAM) nach einem festgelegten Muster adressiert werden, wobei freie Speicherbereiche mit einem Leer-Wert gefüllt werden. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass nach dem Starten des informationstechnischen Systems (ITS) wenigstens ein weiteres komprimiertes Programm-Abbild (c-lmage) zur Ausführung auf dem informationstechnischen System (ITS) aus dem nichtflüchtigen Speichermedium (NVM) in den Arbeitsspeicher (RAM) nachgeladen wird. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass wenigstens zwei komprimierte Programm-Abbilder (c-lmage) zur Ausführung auf dem informationstechnischen System (ITS) seriell hintereinander oder parallel in den Arbeitsspeicher (RAM) geladen werden. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass zur Aktualisierung wenigstens eines im nichtflüchtigen Speichermedium (NVM) des informationstechnischen Systems (ITS) abgelegten komprimierten Programm- Abbilds (c-lmage) zumindest die folgenden Verfahrensschritte durchgeführt werden: 3. The method according to claim 1 or 2, characterized in that at least one program image (c-Image, dc-Image) is an image of a Operating system and / or at least one application software includes. Method according to one of Claims 1 to 3, characterized in that for storing and loading data, memory areas of a non-volatile storage medium (NVM) and/or a working memory (RAM) are addressed according to a defined pattern, free memory areas having an empty value to be filled. Method according to one of Claims 1 to 4, characterized in that after starting the information technology system (ITS) at least one further compressed program image (c-image) for execution on the information technology system (ITS) from the non-volatile storage medium (NVM) reloaded into the main memory (RAM). Method according to one of Claims 1 to 5, characterized in that at least two compressed program images (c-image) are loaded serially one after the other or in parallel into the main memory (RAM) for execution on the information technology system (ITS). Method according to one of Claims 1 to 6, characterized in that at least the following method steps are carried out to update at least one compressed program image (c-image) stored in the non-volatile storage medium (NVM) of the information technology system (ITS):
- Laden des zu aktualisierenden komprimierten Programm-Abbilds (c-lmage) in den Arbeitsspeicher (RAM) des informationstechnischen Systems (ITS) und dortiges Dekomprimieren; - Loading the compressed program image (c-image) to be updated into the main memory (RAM) of the information technology system (ITS) and decompressing it there;
- Anwendung einer dekomprimierten differentiellen Softwareaktualisierung auf das dekomprimierte Programm-Abbild (dc-lmage); - Komprimieren des aktualisierten Programm-Abbilds und Ablegen des komprimierten aktualisierten Programm-Abbilds im nichtflüchtigen Speichermedium (NVM) des informationstechnischen Systems (ITS). Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass vor, während und/oder nach dem Dekomprimieren und/oder Komprimieren eine Prüfung einer digitalen Signatur erfolgt. Informationstechnisches System (ITS) mit jeweils wenigstens einem Prozessor (PU), einem Arbeitsspeicher (RAM) und einem nichtflüchtigen Speichermedium (NVM), dadurch gekennzeichnet, dass der Prozessor (PU), der Arbeitsspeicher (RAM) und das nichtflüchtige Speichermedium (NVM) zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 8 eingerichtet sind. Informationstechnisches System (ITS) nach Anspruch 9, gekennzeichnet durch eine Ausführung als eingebettetes System. Informationstechnisches System (ITS) nach Anspruch 10, dadurch gekennzeichnet, dass zumindest zwei der Komponenten Prozessor (PU), Arbeitsspeicher (RAM) und/oder nichtflüchtiges Speichermedium (NVM) auf einem gemeinsamen System-on-a-Chip (SOC) integriert sind. Fahrzeug, gekennzeichnet durch wenigstens ein informationstechnisches System (ITS) nach Anspruch 10 oder 11. - applying a decompressed differential software update to the decompressed program image (dc-image); - Compressing the updated program image and storing the compressed updated program image in the non-volatile storage medium (NVM) of the information technology system (ITS). Method according to one of Claims 1 to 7, characterized in that a digital signature is checked before, during and/or after the decompression and/or compression. Information technology system (ITS) each having at least one processor (PU), a main memory (RAM) and a non-volatile storage medium (NVM), characterized in that the processor (PU), the main memory (RAM) and the non-volatile storage medium (NVM) for Carrying out a method according to any one of claims 1 to 8 are set up. Information technology system (ITS) according to Claim 9, characterized by an embodiment as an embedded system. Information technology system (ITS) according to Claim 10, characterized in that at least two of the components processor (PU), main memory (RAM) and/or non-volatile storage medium (NVM) are integrated on a common system-on-a-chip (SOC). Vehicle, characterized by at least one information technology system (ITS) according to claim 10 or 11.
PCT/EP2022/075913 2021-09-28 2022-09-19 Method for operating an information technology system, information technology system, and vehicle WO2023052166A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021004887.3A DE102021004887A1 (en) 2021-09-28 2021-09-28 Method for operating an information technology system, information technology system and vehicle
DE102021004887.3 2021-09-28

Publications (1)

Publication Number Publication Date
WO2023052166A1 true WO2023052166A1 (en) 2023-04-06

Family

ID=83898062

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/075913 WO2023052166A1 (en) 2021-09-28 2022-09-19 Method for operating an information technology system, information technology system, and vehicle

Country Status (2)

Country Link
DE (1) DE102021004887A1 (en)
WO (1) WO2023052166A1 (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004055051B3 (en) * 2004-11-15 2005-10-13 Siemens Ag Procedure for the acceleration of a startup procedure for an application employs non-volatile memory
US7664944B2 (en) 2002-06-17 2010-02-16 Microsoft Corporation Booting from a compressed image
WO2011067343A2 (en) * 2009-12-04 2011-06-09 St-Ericsson (France) Sas Method of and apparatus for providing a logical view of data stored in an non-volatile memory
US8185884B2 (en) 2008-06-23 2012-05-22 Novell, Inc. System and method for offline updation of software in virtual machine (VM) images
US8990806B2 (en) 2012-07-31 2015-03-24 Hewlett-Packard Development Company, L.P. Customized virtual machine creation
US10019253B2 (en) 2016-02-19 2018-07-10 Dell Products L.P. Systems and methods of updating hot-pluggable devices
US20180336053A1 (en) 2017-05-19 2018-11-22 International Business Machines Corporation Managing different virtual images as a single image
US10521218B2 (en) * 2017-10-09 2019-12-31 Microsoft Technology Licensing, Llc Enhanced techniques for updating software
US20210064384A1 (en) * 2018-12-18 2021-03-04 Intel Corporation Computing method and apparatus with multi-phase/level boot

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7664944B2 (en) 2002-06-17 2010-02-16 Microsoft Corporation Booting from a compressed image
DE102004055051B3 (en) * 2004-11-15 2005-10-13 Siemens Ag Procedure for the acceleration of a startup procedure for an application employs non-volatile memory
US8185884B2 (en) 2008-06-23 2012-05-22 Novell, Inc. System and method for offline updation of software in virtual machine (VM) images
WO2011067343A2 (en) * 2009-12-04 2011-06-09 St-Ericsson (France) Sas Method of and apparatus for providing a logical view of data stored in an non-volatile memory
US8990806B2 (en) 2012-07-31 2015-03-24 Hewlett-Packard Development Company, L.P. Customized virtual machine creation
US10019253B2 (en) 2016-02-19 2018-07-10 Dell Products L.P. Systems and methods of updating hot-pluggable devices
US20180336053A1 (en) 2017-05-19 2018-11-22 International Business Machines Corporation Managing different virtual images as a single image
US10521218B2 (en) * 2017-10-09 2019-12-31 Microsoft Technology Licensing, Llc Enhanced techniques for updating software
US20210064384A1 (en) * 2018-12-18 2021-03-04 Intel Corporation Computing method and apparatus with multi-phase/level boot

Also Published As

Publication number Publication date
DE102021004887A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
DE102007048920B4 (en) System and method for communicating information between a plurality of information handling systems
DE112011104356B4 (en) Updating software images based on streaming technology
DE112012004893B4 (en) Implementing a software image on multiple targets using a data stream technique
DE19983768B4 (en) A method of executing firmware written for different instruction set architectures
DE69721438T2 (en) Method and device for initializing a computer
DE10003108B4 (en) Method and computer system for performing a software installation
DE60008929T2 (en) QUICK START OF A MICROPROCESSOR BASED SYSTEM
DE10393920B4 (en) Methods and systems for controlling virtual machines
DE69627814T2 (en) SYSTEM FOR PROVIDING A BIOS FOR THE MAIN COMPUTER
DE112011103880T5 (en) Directly migrate software images using streaming technology
DE112010003554T5 (en) Symmetrical direct migration of virtual machines
DE112012005146T5 (en) Method and system for applying a program correction to a virtual image
DE19846398C2 (en) Method for simulating a computer storage device
DE202015101633U1 (en) Computer system and storage device
DE102021130897A1 (en) ELECTRONIC CONTROL UNIT, SOFTWARE UPDATE PROCEDURE, SOFTWARE UPDATE PROGRAM AND ELECTRONIC CONTROL SYSTEM
DE112020002785T5 (en) PROCESSES FOR A CONTAINER-BASED VIRTUALIZATION SYSTEM
DE102022116740A1 (en) SYSTEM AND METHOD TO SUPPORT SMM UPDATE AND RUNTIME TELEMETRY FOR BARE METAL OPERATIONS
DE112010005509T5 (en) Robotic system control method and apparatus thereof
DE4238099C2 (en) Microprocessor with multiple operating modes
WO2023052166A1 (en) Method for operating an information technology system, information technology system, and vehicle
EP2596429B1 (en) Method for executing a utility program, computer system and computer program product
DE102004055051B3 (en) Procedure for the acceleration of a startup procedure for an application employs non-volatile memory
DE102011006283A1 (en) Systems and methods to control many peripheral devices with a single peripheral application code
DE112018007748T5 (en) Calculation method and device with multi-phase / step start
DE102020110970B3 (en) Control unit for a user interface of a motor vehicle, motor vehicle and method for operating a control unit for a user interface

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22790285

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE