Warum dauern MacOS / iOS-Upgrades so lange?

11

Selbst auf einem iMac Pro dauert das Aktualisieren des Betriebssystems noch einige Zeit (möglicherweise 15 Minuten) (nachdem alles heruntergeladen wurde). Während dieser Zeit kann ich den Computer nicht benutzen.

Warum ist das so? Was macht es eigentlich? Warum ist dieser Prozess kein einfacher Neustart?

Bitte beachten Sie, dass ich nicht frage, warum ein Neustart erforderlich ist. Als Softwareentwickler weiß ich genau, warum ein Neustart erforderlich ist.

Hinweis Ein klarer Grund, warum ein Upgrade eine Weile dauern kann, ist eine Dateisystemmigration (z. B. die HFS + → APFS-Migration). Apple hat sogar einige Testmigrationen durchgeführt, bevor die letzte Sache eingeführt wurde. Die meisten Betriebssystem-Upgrades beinhalten jedoch keine Änderungen am Dateisystem AFAIK.

Diese Frage ähnelt der Frage: Warum dauert die Überprüfung des OS X-Softwareupdates so lange? über einen anderen Upgrade-Prozess, der eine Weile dauert. Es gibt Besonderheiten von MacOS und iOS, die bei der Beantwortung dieser Frage berücksichtigt werden sollten. Zum Beispiel: Beide werden mit Treibern geliefert, die für alle unterstützten Systeme erforderlich sind.

grg
quelle
6
Ich stimme dafür, diese Frage gemäß den veröffentlichten Fragenrichtlinien als "Off-Topic" zu schließen. Fragen, die fragen, warum Apple etwas getan hat, nicht getan hat oder nicht tun kann, sind vertraulich, da sie von dieser Gruppe nicht beantwortet werden können.
Fsb
5
@fsb Typische Übermoderation, die die Besucher dieser Websites abschreckt.
3
Ich habe es nicht wegen "Übermäßigung" gemacht. Die Art und Weise, wie Ihre Frage ursprünglich vor der Bearbeitung formuliert wurde, war die Frage, warum Apple einen Neustart benötigt. Die Art, wie ich es las, war nicht zum Thema. Es braucht mehr als 1 Person, um eine Frage zu schließen, es braucht 4 Stimmen. Diese Websites helfen vielen Menschen, indem sie sicherstellen, dass Fragen genaue Antworten haben und erhalten können. Weitere Informationen zum Stellen von Fragen, die gute Antworten liefern können, finden Sie unter Fragen.
Fsb
1
@fsb Es war klar vor der Bearbeitung. "Warum sind Betriebssystem-Upgrades nicht einfach ein Neustart?" ist nicht "Warum erfordern Betriebssystem-Upgrades einen Neustart?" Dann erwähnte ich "Warum ist dieser Prozess kein einfacher Neustart?" Dann erwähne ich "und starte dann neu". Sie haben die ursprüngliche Frage falsch verstanden, aber keine Sorge.
5
Dies ist eine absolut gültige Frage. Dies ist kein "Warum macht Apple X, Y oder Z", sondern "Warum dauert ein Prozess so lange?" Das ist technischer Natur. Nominierung für die Wiedereröffnung.
Allan

Antworten:

4

Warum ist dieser Prozess kein einfacher Neustart?

Die allgemeine Antwort hier ist, dass es darauf ankommt. Es hängt stark davon ab, was getan werden muss. Ein Update, das Sie an Ihrem System vornehmen, unterscheidet sich möglicherweise erheblich von meinem. Für das betreffende Update muss möglicherweise nur ein Dienst neu gestartet werden, oder es müssen möglicherweise Aktualisierungen des eigentlichen Kernels durchgeführt werden.

Warum ist das so [ich kann den Computer nicht benutzen]?

Aus dem gleichen Grund können Sie im Allgemeinen keine App (Word, Excel, Numbers, iTerm, Adobe Photoshop usw.) verwenden, die gerade aktualisiert wird. Die Dateien müssen geschlossen, gelesen, analysiert, die entsprechenden Patches / Updates kopiert und die App neu gestartet werden.

Wenn ein Betriebssystem aktualisiert wird, muss dasselbe geschehen, und dies erfolgt normalerweise (insbesondere bei Upgrades auf Kernel-Ebene) im Einzelbenutzermodus.

Typischerweise werden Sie Updates heruntergeladen sehen, wird das System zunächst einen Shutdown, angewandt Updates einen Neustart und ein „Abschluss“ des Updates von einem normalen Boot gefolgt. Sie können den Computer währenddessen nicht verwenden.

Was macht es eigentlich?

Es hängt davon ab, ob. Es kann alles sein, vom Patchen einer Konfigurationsdatei bis zum Flashen einer Firmware.

Wenn das System installiert ist /System, warum wird bei einem Betriebssystem-Upgrade nicht einfach ein erstellt? /NewSystem

Zunächst einmal /Systemist es durch SIP geschützt. Um es zu deaktivieren, müssen Sie tatsächlich von einem anderen Mount-Punkt aus booten. * Zweitens ist die Art und Weise, wie Sie dies betrachten, analog zu einer Renovierung Ihres Hauses, indem Sie ein neues Haus neben das alte werfen und den Leuten sagen, dass sie einfach einziehen sollen. Es funktioniert nicht so.

Viele Dinge müssen passieren, am wenigsten werden Wiederherstellungspunkte erstellt (falls die Sicherung fehlschlägt). Dies bedeutet, dass eine Kopie des funktionierenden Systems erstellt, das Update angewendet, das Update überprüft und (falls alles in Ordnung ist) der Wiederherstellungspunkt gelöscht wird.

Bei Firmware-Updates müssen Images überprüft werden (dh Sie möchten keine Mac mini-Firmware auf Ihrem Mac Pro), Prüfsummen validiert, Images gesichert, angewendet, überprüft, alte entfernt und das System neu initialisiert werden. Auch hier kann nichts getan werden, wenn Sie angemeldet sind, und nichts davon, indem Sie einfach Dateien in einem Verzeichnis "sichern".

Ein Upgrade ist ein Prozess und all dies braucht Zeit.


* SIP soll das System schützen, indem Änderungen am Betriebssystem verhindert werden. Wenn das Betriebssystem das System "on-the-fly" ändern kann, wird die Sicherheit, die es erreichen möchte, negiert.

Allan
quelle
Danke für deine Antwort Allan. Ok, damit ich als root, ohne SIP zu verletzen, ein Archiv des Systemverzeichnisses erstellen kann (habe es gerade ausprobiert). Ja, Sie müssten SIP deaktivieren, um zu einem neuen Systemverzeichnis zu wechseln, aber das würde keine nennenswerte Zeit in Anspruch nehmen, wenn /NewSystemes bereits erstellt wurde.
So funktioniert das nicht. Außerdem ... kann eine Installation eine halbe Stunde oder länger dauern und technisch gesehen werden nur Dateien kopiert. Ein Update kann viel, viel mehr als nur Dateien kopieren.
Allan
"Auch hier ist nichts möglich, wenn Sie angemeldet sind." Warum nicht genau?
Können Sie eine App aktualisieren, während eine App ausgeführt wird? Gleiches Konzept, aber viel komplexer. Ihr Betriebssystem wird ausgeführt (Dateien sind geöffnet und geschützt). Sie müssen die Prozesse beenden, den Schutz entfernen (mehr als nur ausführen sudo) und das System patchen. Wenn es sich um ein Kernel-Update handelt, müssen Sie alles herunterfahren, da nichts geschrieben wird.
Allan
Nein, aber Sie können den größten Teil der Arbeit beim Aktualisieren einer App erledigen, während die App ausgeführt wird. Das heißt: Auspacken, Anwenden differenzieller Aktualisierungen zum Erstellen einer neuen Verzeichnisstruktur und Prüfsummen. Ich sehe ein Betriebssystem-Update nicht als wesentlich anders an. Wir könnten hier ins Unkraut geraten.
3

Ein Neustart eines Computers für einige Betriebssystem-Updates / -Upgrades ist für alle Betriebssysteme erforderlich, nicht nur für macOS.

Im Falle eines Updates ist manchmal ein Neustart nicht erforderlich, wenn er noch als Teil eines Aktualisierungsprozesses verwendet wird. Dies ist jedoch nur in Fällen der Fall, in denen es für die meisten Benutzer einfacher ist, einen Neustart durchzuführen. Bei einigen Systemaktualisierungen werden beispielsweise Änderungen an Dingen wie einem Netzwerkdienst vorgenommen. Während Sie möglicherweise nur einen Neustart anstelle des gesamten Computers durchführen, ist es für die meisten Benutzer einfacher, einen Neustart durchzuführen, als die Schritte zum Neustart des Netzwerks auszuführen Bedienung.

In den meisten Fällen ist jedoch ein Neustart erforderlich, da dies tatsächlich erforderlich ist. Es gibt viele Betriebssystemressourcen, die von Anwendungen verwendet werden, einschließlich Anwendungen von Drittanbietern. Das Aktualisieren dieser Ressourcen, während der Benutzer angemeldet ist, ist keine leichte Aufgabe und kann möglicherweise zu Dateibeschädigungen usw. führen.

Bei Firmware-Updates ist auf jeden Fall ein Neustart erforderlich. Darüber hinaus hat Apple vor einigen Jahren automatisch damit begonnen, Firmware-Updates (falls erforderlich) in macOS-Updates / -Upgrades aufzunehmen. Daher ist es nicht einfach zu überprüfen, auf welchen Geräten Firmware-Updates in einem Update / Upgrade enthalten waren. Unabhängig davon, ob Firmware-Updates einen Neustart erfordern, führt kein Weg daran vorbei.

Ein weiteres Beispiel ist die Aktualisierung der für die Verwendung von Hardware erforderlichen Ressourcen. In einigen Fällen ist ein Neustart erforderlich, in anderen nicht.

Was schließlich Ihre letzte Frage betrifft, warum Sie nicht einfach ein neues System erstellen und dieses nach dem nächsten Neustart aktivieren, obwohl dies technisch möglich wäre , ist es wirklich nicht praktikabel. Das Systemverzeichnis hat eine Größe von GB. Dies würde viel länger dauern und viel mehr freien Speicherplatz auf dem Startvolume erfordern.

Monomeeth
quelle
Meine Frage war nicht "Warum kann ein Betriebssystem nicht ohne Neustart aktualisiert werden?". Deshalb dauert der Vorgang so lange und sperrt den Benutzer aus? Außerdem können Hardlinks ( en.wikipedia.org/wiki/Hard_link ) verwendet werden, um Zeit und Platz für ein Upgrade drastisch zu reduzieren. (Hinweis: Ich bin ein Softwareentwickler)
2
@ Taylor speziell für: OTA iOS-Updates. Sie werden in Form von differenziellen Patches geliefert, die auf vorhandene Dateien angewendet werden müssen. Sowohl OTA- als auch Nicht-OTA-Updates für iOS werden weiterhin auf einem verschlüsselten Gerät gespeichert und müssen im Rahmen des Installationsprozesses verschlüsselt werden. Das Verschlüsseln von Dingen braucht Zeit. Die einzigen mir bekannten Personen, die mit absoluter Sicherheit wissen, warum diese Entscheidungen getroffen wurden, sind das Entwicklungsteam von Cupertino.
Scottmeup