Ich habe darüber nachgedacht, wie, wenn ich meine Zieltafel programmiere, die PROGRAMMER die Zieltafel basierend auf den in der ausführbaren Datei vorhandenen Informationen programmiert, was meiner Meinung nach durch das Linkerskript erfolgt, die verschiedenen Dateien verbindet und Informationen von .init erzeugt, .text, .data, .fini, usw.Welche Änderungen werden am Code-Segment vorgenommen, wenn Unternehmen Softwareupdates bereitstellen?
Ich frage mich, wenn zum Beispiel Apple ein iOS-Update ausgibt, das zum Beispiel 100MB groß ist, hat dieses Update seine eigenen Variablen - globale statische const, initialisiert, nicht initialisiert usw. Dies würde zu einer neuen Speicherzuordnung führen. Also, wenn dieses Update installiert auf dem Prozessor von einem iPhone dann wie funktioniert das? Gibt es noch zusätzlichen Speicher im .init, .text, .data, usw. Abschnitt des Betriebssystemcodes für solche zukünftigen Updates?
PS: Ich könnte einige technische Fehler in meiner Beschreibung oben gemacht haben, werde ich alle Bearbeitungen, um es zu schätzen wissen
Ähm, normalerweise ersetzt es nur die alten Sachen. Kein Grund, es zu behalten, oder? Also kein Grund, "Platz" für zukünftiges Zeug zu haben, weil es sowieso übergeschrieben wird. – AbstractDissonance
Was meinst du damit ersetzt die alten Sachen? das neue Update ist definitiv nicht die gleiche Größe wie die ältere dann wie? Ich glaube nicht, dass die gesamte Betriebssystemsoftware neu installiert wird – Anurag
Überhaupt gewundert, warum Sie normalerweise nach solch einem Update neu starten müssen? Sie müssen das laufende Betriebssystem nicht im Speicher aktualisieren, da Sie die Dateien auf dem Datenträger aktualisieren und neu starten können, damit die neuen Dateien geladen werden. – Macmade