-
Die Erfindung betrifft ein Verfahren zum Berarbeiten eines Systemabbilds und eine Anordnung zum Durchführen des Verfahrens. Die Erfindung betrifft weiterhin ein Computerprogramm und ein maschinenlesbares Speichermedium.
-
Stand der Technik
-
Unter einem Systemabbild, das auch als Image bezeichnet wird, ist die Abbildung eines Dateiensystems in eine Datei zu verstehen. In dieser Datei sind dann typischerweise alle Daten bzw. Dateien des abgebildeten Dateiensystems enthalten.
-
Systemabbilder bzw. Images für Linux-Systeme werden derzeit durch die Installation von Software-Paketen realisiert. Zu beachten ist hierbei, dass diese Installations-Pakete in den meisten Fällen größer sind, d. h. mehr Dateien umfassen, als für die Geräte-Funktion notwendig ist. Außerdem ist zu berücksichtigen, dass Pakete indirekt durch Abhängigkeiten aus angegebenen Paketen zusätzlich installiert werden.
-
Dies führt zu System-Installationen, die größer sind als für die Funktion des Gerätes erforderlich ist. Heutzutage werden die Systemabbilder durch Hand-Nachbearbeitung von Spezialisten, bei der unnötige Dateien identifiziert werden, oder durch maßgeschneiderte Installations-Pakete optimiert. Diese können jedoch nicht skalierbar angewendet werden. Durch den erhöhten Speicherplatzbedarf werden größere Speicherbausteine notwendig, die die Kosten des Geräts, insbesondere bei niedrigen Stoffkosten, deutlich erhöhen können. Es wird in diesem Zusammenhang auf Punkt 1 in den Figuren verwiesen.
-
Offenbarung der Erfindung
-
Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Anordnung gemäß Anspruch 8 vorgestellt. Es werden weiterhin ein Computerprogramm nach Anspruch 9 sowie ein maschinenlesbares Speichermedium mit den Merkmalen des Anspruchs 10 vorgestellt. Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung.
-
Das vorgestellte Verfahren dient zum Bearbeiten eines Systemabbilds, das eine Abbildung eines Dateiensystems darstellt, wobei jeder Datei in dem Dateiensystem ein Attribut zugeordnet ist. wobei dieses Attribut eine letzte Zugriffszeit auf diese Datei darstellt. Es werden dann zunächst die Attribute aller Dateien auf einen vorgegebenen Wert gesetzt und das Systemabbild wird ausgeführt. Dann werden alle Attribute überprüft. Abschließend werden die Dateien gelöscht, deren Attribut den voreingestellten Wert aufweisen.
-
Die beschriebene Anordnung dient zum Durchführen des vorgestellten Verfahrens und ist bspw. in einer Hardware und/oder Software implementiert. Das vorgestellte Computerprogramm umfasst Programmcodemittel zum Durchführen des Verfahrens und kann auf einem maschinenlesbaren Speichermedium abgelegt sein.
-
Mit dem vorgestellten Verfahren kann die Größe der Systemabbildungen, die auch als System-Installationen bezeichnet werden, effektiv und automatisiert verringert werden, so dass der benötigte Speicher effektiv genutzt wird. Ist es auf diese Weise möglich, kleinere Speicherbausteine einzusetzen, können die Geräte-Kosten ohne Einschränkung der Funktionalität gesenkt werden. Außerdem können Hinweise für die Optimierung der System-Installation für die Entwicklung gewonnen werden.
-
Das vorgestellte Verfahren beruht auf der Markierung aller Dateien, die als Lösch-Kandidat in einer System-Installation in Frage kommen, und der Eigenschaft des Betriebssystems oder des Prozessors, diese Markierung bei Zugriff wieder zu entfernen. Dazu wird in Ausgestaltung in einem Test-System ohne weitere Hardware das Systemabbild präpariert, alle gewünschten Funktionen ausgeführt und danach das System auf ungenutzte Dateien abgesucht. Diese werden dann gelöscht. Diese Einstellung kann später auf andere System-Installationen bereits bei der Erzeugung angewendet werden, ohne erneut ein Test-System zu verwenden. Es ist somit nicht erforderlich, eine zusätzliche Testhardware anzuschließen, bspw. Zusatzspeicher oder eine spezielle Debugger-Hardware.
-
Es wird somit eine Funktion, nämlich letzte Zugriffszeit, insbesondere moderner Filesysteme genutzt, um zu bestimmen, welche Dateien verwendet werden.
-
Alternativ kann eine Implementation auch mit Hardware-Erweiterungen oder speziellen Datei-System-Eigenschaften die gleiche Wirkung erzielen.
-
Es kann auch mit einem Speichersystem und Speicherbereichen und ggf. einer Hardware-Erweiterung anstelle eines Dateisystems und Files die gleiche Wirkung erzielt werden.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beigefügten Zeichnungen.
-
Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
-
Figurenliste
-
- 1 zeigt in einem Schaubild ein Testsystem und eine Zielhardware zur Verdeutlichung einer Ausführungsform des vorgestellten Verfahrens.
- 2 zeigt in einem Schaubild eine Erzeugung eines Systemabbilds.
-
Ausführungsformen der Erfindung
-
Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
-
In den Figuren sind Ziffern 1 bis 10 umrandet dargestellt, auf die nachfolgend, als Punkte bezeichnet, noch eingegangen wird.
-
1 zeigt in einem Schaubild ein Testsystem 50 und ein Zielsystem 52. In dem Testsystem ist bei Punkt 1 eine Systeminstallation bzw. ein Systemabbild 54 mit der Größe X dargestellt, die folgende Dateien umfasst:
- /Pfad1/Datei11
- /Pfad1/Datei12
- /Pfad1/Datei13
- /Pfad2/Datei21
- /Pfad2/Datei22
- /Pfad2/Datei23
- /Pfad3/Datei31
- /Pfad3/Datei32
- /Pfad3/Datei33
- /Pfad4/Datei41
- /Pfad4/Datei42
- /Pfad4/Datei43
-
Weiterhin ist unter Punkt 2 angezeigt: ein leeres Feld 60, das eine Datei bezeichnet, auf die nicht zugegriffen wird, ein gestricheltes Feld 62, das eine Datei bezeichnet, auf die zugegriffen wird, und ein gepunktetes Feld 64, das eine Datei bezeichnet, die ausgeschlossen wird. Entsprechend sind die weiteren Felder in dieser Darstellung wiedergegeben.
-
Weiterhin ist unter Punkt 5 in dem Zielsystem 52 das Systemabbild 54 gezeigt, mit den vorstehend benannten Dateien, wobei diese entsprechend unter der Vorgabe gemäß Punkt 2 gekennzeichnet sind. Unter Punkt 6 ist mit Bezugsziffer 70 ein Feld bezeichnet, dass eine Anwendung APP1 wiedergibt. Unter Punkt 7 sind angegeben ein Demon 72 und damit ein Prozess, der im Hintergrund läuft, sowie ein Boot-Vorgang 74.
-
Punkt 8 markiert die Dateien des Systemabbilds 54, auf die zugegriffen wird. Es ergibt sich dann ein reduziertes Systemabbild 80 und unter Punkt 10 eine Liste 82 von Dateien, auf die zugegriffen wird und die ausgenommen sind. Die Größe dieses reduzierten Systemabbilds 80 ist Y, wobei gilt Y < X.
-
Dateien, auf die zugegriffen wird, sind in diesem Fall:
- /Pfad1/Datei11
- /Pfad1/Datei13
- /Pfad2/Datei21
- /Pfad2/Datei22
- /Pfad3/Datei32
- /Pfad3/Datei33
-
Dateien, die ausgenommen sind, sind:
- /Pfad4/Datei41
- /Pfad4/Datei42
- /Pfad4/Datei43
-
Unter Punkt 9 ist eine Liste 86 gezeigt, die umfasst:
- /Pfad2/Datei23
- /Pfad3/Datei31
-
In einen Papierkorb 88 verschoben wird die Datei 90/Pfad/Datei 12.
-
2 zeigt wiederum das Systemabbild 54 und ein simuliertes System 100. Gleiche Bezugsziffern zeigen hier gleiche Komponenten bzw. Einheiten.
-
Bei modernen Datei- bzw. File-Systemen für Linux, wie bspw. ext4, btrfs, existiert ein Attribut „Access time“ (atime), nämlich ein Zahlenwert, der die letzte Zugriffszeit auf diese Datei darstellt. Dieses Attribut wird auf 0, dies entspricht dem 1.1.1970, gesetzt, also den Status auf UNACCESSED. Dies bedeutet, dass die Datei nicht verwendet wird. Wenn im späteren Verlauf irgendein Programm auf eine Datei zugreift, setzt das Betriebssystem das Attribut auf die Zeit des letzten Zugriffs, ungleich 0. Für den Ablauf wird ein Wert ungleich 0 als ACCESSED, d. h. Datei wird verwendet, interpretiert. Es wird auf Punkt 2 in den Zeichnungen verwiesen.
-
Bei einem nicht funktionellen Attribut funktioniert der Ablauf nicht.
-
Der Ablauf wird in gleicher Weise auf zwei Umgebungen ausgeführt
- • Auf der Ziel-Hardware mit einem Testsystem, siehe Punkt 3 in 1, können mehr Daten ausgemessen werden, diese dienen als Konfiguration für die nächste Umgebung.
- • Bei der Erzeugung neuer System-Installationen, in der Zeichnung Punkt 4 in 2, auf einer simulierten Hardware, d. h. Einsatz von chroot, qemuuser-static, können weniger Daten ausgemessen werden. Aufgrund der strukturellen Ähnlichkeit zum Testsystem werden Daten aus dem Testsystem auf der Ziel-Hardware verwendet.
-
chroot ist ein Linux-Programm zum temporären Umschalten auf ein neues Root-File-System. Damit wird ein Verzeichnis unter dem Pfad „<path>“, als bspw. /dir1/dir2/dir3 so umgeschaltet, dass es als „/“ mit allen Inhalten erscheint. Also wird z. B.:
/dir1/dir2/dir3 | -> | / |
/dir1/dir2/dir3/dir4 | -> | /dir4 |
/dir1/dir2/dir3/dir5/file1 | -> | /dir5/file1 |
-
Dieses wird verwendet, um temporär auf andere Systeme umzuschalten und Kommandos auf diesen Systemen auszuführen und Daten zu verändern. Es ist somit eine Art Simulation des umgeschalteten Systems ohne Booten und Hardware.
-
quemuc-user-static ist ein Paket von Linux-Programmen, die es zusätzlich erlauben, Programme für andere Prozessor-Architekturen auszuführen. Es emuliert also einen architekturfremden Prozessor. Damit ist es möglich, auf einem PC mit x86-Architektur bspw. ARM-Programme auszuführen, wenn auch deutlich langsamer.
-
Beide Programme ermöglichen es, Images von Target- bzw. Zielsystemen auf PC-Entwicklungs-Systemen auszuführen, wenn auch ohne Boot-Vorgang. Es gibt weitere Techniken, auch den Boot-Vorgang in Näherung auf einer Simulation und einer Prozessor-Emulation auszuführen. Allerdings sind diese niemals vollständig gleich zu einem wirklichen Hardware-System.
-
Der Ablauf besteht aus drei Phasen und wird auf beiden Umgebungen mit kleinen Unterschieden ausgeführt:
- 1. Alle Dateien des Systemabbilds bzw. der System-Installation werden auf UNACCESSED, d. h. Datei wird nicht verwendet, gesetzt. Dabei werden Systemverzeichnisse bzw. Systemdateien und benutzerdefinierte Verzeichnisse bzw. Dateien ausgenommen, die durch die Prozedur nicht behandelt werden sollen, siehe Punkt 5 in den Figuren.
- 2. Jetzt werden Funktionen auf dem System ausgeführt, die die Funktion des Produktes darstellen. Dabei greift das System auf Dateien bzw. Programme zu, die wiederum weitere Datei-Zugriffe durchführen. Bei allen Datei-Zugriffen werden diese Dateien dabei auf ACCESSED gesetzt, siehe Punkt 8 in den Figuren. Da das Mess-System völlig transparent arbeitet, kann diese Test-Phase auf der Ziel-Hardware auch dezentral im Zuge eines System-Tests erfolgen.
- 2.1 Auf der Ziel-Hardware mit einem Testsystem, siehe Punkt 3 in den Figuren, wird ausgeführt bzw. berücksichtigt:
- • Direkter Aufruf von Programmen bzw. Apps, siehe Punkt 6 in den Figuren, Start von Hintergrund-Diensten, d. h. Daemons oder Services, siehe Punkt 7 in den Figuren,
- • Startup und Shutdown des Systems, siehe Punkt 7 in den Figuren,
- • Laden von Kernel-Modulen für die Ziel-Hardware, siehe Punkt 7 in den Figuren,
- • Ausführung hardwarenaher Treiber, siehe Punkt 7 in den Figuren.
- 2.2 Bei der Erzeugung neuer System-Installationen, siehe Punkt 4 in den Figuren, auf einer simulierten Hardware wird ausgeführt bzw. berücksichtigt:
- • direkter Aufruf von Programmen bzw. Apps, siehe Punkt 6 in den Figuren,
- • Benutzung von Daten aus dem Testsystem auf der Ziel-Hardware, siehe Punkt 10 in den Figuren.
- 3. Als Abschluss werden alle Dateien, die immer noch auf UNACCESSED gesetzt sind, gelöscht, siehe Punkt 9 in den Figuren. Die Information über alle benutzten Dateien wird als Konfiguration abgespeichert, siehe Punkt 10 in den Figuren.
-
Das vorgestellte Verfahren kann grundsätzlich auf allen Linux-Systemen eingesetzt werden. Haben andere Betriebssysteme wie Windows, QNX vergleichbare Datei-System-Attribute, ist auch dort der Einsatz denkbar.
-
Insbesondere kleine Produkt-Installationen, wie bspw. IOT-Geräte, mit definiertem Funktionsumfang profitieren am meisten von dem vorgestellten Verfahren.
-
IOT-Geräte (IOT: Internet of things) sind Klein-Geräte des täglichen Gebrauchs, wie bspw. Waschmaschinen, Werkzeuge, Heizungssteller, Haustechnik wie Lampen usw., die mit einer Internet-Verbindung ausgestattet sind, dessen Hauptbenutzung jedoch über das Gerät erfolgt. Die Internet-Verbindung schafft für den Kunden Zusatznutzen wie:
- Lampen von Smartphone schalten,
- Kaffeestand eines Vollautomaten prüfen und nachbestellen,
- nachschauen, ob der Herd noch an ist,
- die Waschmaschine laufen lassen, wenn der Strom günstig ist.
-
IOT-Geräte sind übliche Geräte, die aber über die Internet-Verbindung auch in der digitalen Welt repräsentiert werden und denen auf diesem Wege zusätzliche, für Kunden nützliche, Funktionen zugeordnet werden oder werden können. Diese Funktionen können beispielsweise Fernsteuerungs- und Ferndiagnose-Funktionen sein.