DE102021004887A1 - Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug - Google Patents

Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug Download PDF

Info

Publication number
DE102021004887A1
DE102021004887A1 DE102021004887.3A DE102021004887A DE102021004887A1 DE 102021004887 A1 DE102021004887 A1 DE 102021004887A1 DE 102021004887 A DE102021004887 A DE 102021004887A DE 102021004887 A1 DE102021004887 A1 DE 102021004887A1
Authority
DE
Germany
Prior art keywords
image
information technology
technology system
program
storage medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021004887.3A
Other languages
English (en)
Inventor
Thorsten Wilmer
Thomas Bolemann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mercedes Benz Group AG
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
Priority to DE102021004887.3A priority Critical patent/DE102021004887A1/de
Priority to PCT/EP2022/075913 priority patent/WO2023052166A1/de
Publication of DE102021004887A1 publication Critical patent/DE102021004887A1/de
Pending legal-status Critical Current

Links

Images

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

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

Die Erfindung betrifft ein Verfahren zum Betrieb eines informationstechnischen Systems (ITS), wobei wenigstens ein komprimiertes Programm-Abbild (c-Image) in einen Arbeitsspeicher (RAM) geladen wird. Das erfindungsgemäße Verfahren ist 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-Image) 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-Image) einen eingefrorenen Zustand zumindest eines lauffähigen, initialisierten Programms umfasst und das wenigstens eine komprimierte Programm-Abbild (c-Image) 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.

Description

  • 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.
  • 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.
  • 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.
  • Suspend-to-Disk und Suspend-to-RAM können auch von virtuellen Maschinen eingesetzt werden. Ferner sind differentielle Softwareupdates bekannt.
  • 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.
  • 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.
  • Aus der US 8,990,806 B2 ist zudem ein Verfahren zur Erzeugung maßgeschneiderter virtueller Maschinen bekannt.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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:
    • - Laden des zu aktualisierenden komprimierten Programm-Abbilds in den Arbeitsspeicher des informationstechnischen Systems und dortiges Dekomprimieren;
    • - Anwendung einer dekomprimierten differentiellen Softwareaktualisierung auf das dekomprimierte Programm-Abbild;
    • - Komprimieren des aktualisierten Programm-Abbilds und Ablegen des komprimierten aktualisierten Programm-Abbilds im nichtflüchtigen Speichermedium des informationstechnischen Systems.
  • 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.
  • 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.
  • 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.
  • Softwareupdates werden dabei typischerweise pro Programm-Abbild ausgeführt.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Dabei zeigen:
    • 1 eine Prinzipdarstellung einer Erzeugung und Implementierung eines wenigstens ein initialisiertes, also lauffähiges Programm umfassenden Programm-Abbilds in ein informationstechnisches System;
    • 2 eine vereinfachte Darstellung eines Speicherinhalts eines nichtflüchtigen Speichermediums eines Entwicklersystems und des informationstechnischen Systems; und
    • 3 eine vereinfachte Darstellung einer Belegung eines Arbeitsspeichers des informationstechnischen Systems nach dem Lade- und Dekomprimierungsvorgang wenigstens eines komprimierten Programm-Abbilds.
  • 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 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.
  • 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.
  • 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-Image 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.
  • 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-Image gegenüber einer unkomprimierten Speicherung reduzieren.
  • Das komprimierte Programm-Abbild c-Image 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-Image kabelgebunden oder drahtlos in das nichtflüchtige Speichermedium NVM des informationstechnischen Systems ITS kopiert werden. Ein komprimiertes Programm-Abbild c-Image kann verschiedene Programme wie ein Betriebssystem und/oder Applikationssoftware umfassen. Dies ermöglicht es dem informationstechnischen System ITS mehrere Dienste anzubieten. So sind in 1 solche Dienste, beziehungsweise Funktionalitäten FU1, FU2, FU3 durch Boxen angedeutet.
  • Zum Starten des informationstechnischen Systems ITS wird dann im Verfahrensschritt 104 zumindest ein komprimiertes Programm-Abbild c-Image 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-Image 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.
  • 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 2 durch eine gestrichelte Linie voneinander abgegrenzt.
  • Das nichtflüchtige Speichermedium NVM umfasst einen Bootloader BL mit einem in 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.
  • Ferner umfasst das nichtflüchtige Speichermedium NVM verschiedene Speicherbereiche KERN1-c-Image, KERN2-c-Image, VM1-c-lmage, VM2-c-Image, VM3-c-Image, welche einzelnen physikalischen bzw. virtuellen Prozessoren PU, also virtuellen Maschinen, zugeordnete Teile zumindest eines komprimierten Programm-Abbilds c-Image umfassen. Im nichtflüchtigen Speichermedium NVM können auch mehr als ein komprimiertes Programm-Abbild c-Image gespeichert werden. Das nichtflüchtige Speichermedium NVM kann weitere Speicherbereiche VM...-c-Image 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.
  • 3 zeigt eine beispielhafte Belegung des Arbeitsspeichers RAM nach dem Laden eines komprimierten Programm-Abbilds c-Image 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-Image 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-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. 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.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 7664944 B2 [0006]
    • US 20180336053 A1 [0007]
    • US 8990806 B2 [0008]
    • US 8185884 B2 [0009]
    • US 10019253 B2 [0010]

Claims (12)

  1. Verfahren zum Betrieb eines informationstechnischen Systems (ITS), wobei wenigstens ein komprimiertes Programm-Abbild (c-Image) 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-Image) 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-Image) einen eingefrorenen Zustand zumindest eines lauffähigen, initialisierten Programms umfasst und das wenigstens eine komprimierte Programm-Abbild (c-Image) 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.
  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-Image) verwendet wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass wenigstens ein Programm-Abbild (c-Image, dc-Image) ein Abbild eines Betriebssystems und/oder wenigstens einer Applikationssoftware umfasst.
  4. 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.
  5. 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-Image) zur Ausführung auf dem informationstechnischen System (ITS) aus dem nichtflüchtigen Speichermedium (NVM) in den Arbeitsspeicher (RAM) nachgeladen wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass wenigstens zwei komprimierte Programm-Abbilder (c-Image) zur Ausführung auf dem informationstechnischen System (ITS) seriell hintereinander oder parallel in den Arbeitsspeicher (RAM) geladen werden.
  7. 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-Image) zumindest die folgenden Verfahrensschritte durchgeführt werden: - Laden des zu aktualisierenden komprimierten Programm-Abbilds (c-Image) in den Arbeitsspeicher (RAM) des informationstechnischen Systems (ITS) und dortiges Dekomprimieren; - Anwendung einer dekomprimierten differentiellen Softwareaktualisierung auf das dekomprimierte Programm-Abbild (dc-Image); - Komprimieren des aktualisierten Programm-Abbilds und Ablegen des komprimierten aktualisierten Programm-Abbilds im nichtflüchtigen Speichermedium (NVM) des informationstechnischen Systems (ITS).
  8. 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.
  9. 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.
  10. Informationstechnisches System (ITS) nach Anspruch 9, gekennzeichnet durch eine Ausführung als eingebettetes System.
  11. 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.
  12. Fahrzeug, gekennzeichnet durch wenigstens ein informationstechnisches System (ITS) nach Anspruch 10 oder 11.
DE102021004887.3A 2021-09-28 2021-09-28 Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug Pending DE102021004887A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102021004887.3A DE102021004887A1 (de) 2021-09-28 2021-09-28 Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug
PCT/EP2022/075913 WO2023052166A1 (de) 2021-09-28 2022-09-19 Verfahren zum betrieb eines informationstechnischen systems, informationstechnisches system und fahrzeug

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021004887.3A DE102021004887A1 (de) 2021-09-28 2021-09-28 Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug

Publications (1)

Publication Number Publication Date
DE102021004887A1 true DE102021004887A1 (de) 2023-03-30

Family

ID=83898062

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021004887.3A Pending DE102021004887A1 (de) 2021-09-28 2021-09-28 Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug

Country Status (2)

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

Citations (5)

* 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
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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004055051B3 (de) * 2004-11-15 2005-10-13 Siemens Ag Schneller Systemstart für eingebettete Systeme
EP2333660B1 (de) * 2009-12-04 2016-10-05 ST-Ericsson SA Verfahren und Vorrichtung zur Bereitstellung einer logischen Datenansicht, die in einem nichtflüchtigen Speicher gespeichert sind
US10521218B2 (en) * 2017-10-09 2019-12-31 Microsoft Technology Licensing, Llc Enhanced techniques for updating software
WO2020124354A1 (en) * 2018-12-18 2020-06-25 Intel Corporation Computing method and apparatus with multi-phase/level boot

Patent Citations (5)

* 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
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

Also Published As

Publication number Publication date
WO2023052166A1 (de) 2023-04-06

Similar Documents

Publication Publication Date Title
DE102007048920B4 (de) System und Verfahren zum Kommunizieren von Informationen zwischen einer Mehrzahl von Informationsverarbeitungssystemen
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE112012004893B4 (de) Implementieren eines Software-Abbildes auf mehreren Zielen unter Verwendung einer Datenstromtechnik
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE10003108B4 (de) Verfahren und Computersystem zum Durchführen einer Softwareinstallation
DE60008929T2 (de) Schnellstart eines mikroprozessorbasierten systems
DE112011103880T5 (de) Direktes Migrieren von Software-Abbildern mit Streaming-Technik
DE102007012448A1 (de) Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung und Fernkonfigurierung eines System-BIOS
DE60210434T2 (de) Betriebssystemselektor und Datenplattenspeicher
DE112011100323T5 (de) Architekturübergreifende Migration virtueller Maschinen
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE112012005146T5 (de) Verfahren und System zum Anwenden einer Programmkorrektur auf ein virtuelles Abbild
DE19846398C2 (de) Verfahren zum Simulieren eines Computerspeichergeräts
DE202015101633U1 (de) Computersystem und Speichervorrichtung
DE112016007336B4 (de) Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm
DE102021130897A1 (de) Elektronische steuerungseinheit, softwareaktualisierungsverfahren, softwareaktualisierungsprogramm und elektronisches steuerungssystem
DE112013004788T5 (de) Pinning von Boot-Daten zum schnelleren Booten
DE112010005509T5 (de) Robotersystemsteuerverfahren und eine Vorrichtung davon
DE112020002785T5 (de) Verfahren für ein virtualisierungssystem auf container-grundlage
DE102021004887A1 (de) Verfahren zum Betrieb eines informationstechnischen Systems, informationstechnisches System und Fahrzeug
EP2596429B1 (de) Verfahren zum ausführen eines dienstprogramms, computersystem und computerprogrammprodukt
DE102004055051B3 (de) Schneller Systemstart für eingebettete Systeme
DE102011006283A1 (de) Systeme und Verfahren, um viele periphere Einrichtungen mit einem einzelnen peripheren Anwendungscode zu steuern
DE112018007748T5 (de) Berechnungsverfahren und Vorrichtung mit Mehrphasen/stufen-Start
EP2521035B1 (de) Verfahren und Anordnung zur Konfigurierung einer Ressource für eine virtuelle Laufzeitumgebung

Legal Events

Date Code Title Description
R012 Request for examination validly filed