Warum dauern macOS/iOS-Upgrades so lange?

Selbst auf einem iMac Pro dauert es noch einige Zeit (vielleicht 15 Minuten), um das Betriebssystem zu aktualisieren (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 Vorgang 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.

Beachten Sie auch 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 das letzte Ding eingeführt wurde. Die meisten Betriebssystem-Upgrades beinhalten jedoch keine Änderungen am Dateisystem AFAIK.

Diese Frage ist ähnlich wie Warum dauert die Überprüfung der OS X-Softwareaktualisierung so lange? über einen anderen Upgrade-Prozess, der eine Weile dauert. Es gibt Besonderheiten von macOS und iOS, die es wert sind, bei der Beantwortung dieser Frage berücksichtigt zu werden. Zum Beispiel: Beide werden mit Treibern ausgeliefert, die für alle unterstützten Systeme erforderlich sind.

Ich stimme dafür, diese Frage gemäß den veröffentlichten Richtlinien für Fragen als "off-topic" zu schließen. Fragen, die danach fragen, warum Apple etwas getan hat, nicht getan hat, kann oder nicht tun kann, sind vertraulich, da sie von dieser Gruppe nicht beantwortet werden können.
@fsb Typische Übermoderation, die Leute von diesen Seiten abschreckt.
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. So wie ich es gelesen habe, war es off-topic. Es braucht mehr als 1 Stimme, 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. Unter How to Ask finden Sie Tipps zum Stellen von Fragen, die gute Antworten erhalten können.
@fsb Es war vor der Bearbeitung klar. "Warum sind Betriebssystem-Upgrades nicht einfach ein Neustart?" ist nicht "Warum erfordern Betriebssystem-Upgrades einen Neustart?" Dann erwähnte ich "Warum ist dieser Vorgang kein einfacher Neustart?" Dann erwähne ich "und dann neu starten". Sie haben die ursprüngliche Frage falsch verstanden, aber keine Sorge.
@fsb Warum ist meine Frage nicht zum Thema, wenn diese vermutlich nicht der Fall ist? apple.stackexchange.com/questions/31495/…
Dies ist eine vollkommen berechtigte Frage. Dies ist kein "Warum Apple X, Y oder Z macht", sondern "Warum dauert ein Prozess so lange?" was technischer Natur ist. Nominierung zur Wiedereröffnung.

Antworten (2)

Warum ist dieser Vorgang kein einfacher Neustart?

Die allgemeine Antwort hier ist , es kommt darauf an. Es hängt stark davon ab, was getan werden muss. Ein Update, das Sie an Ihrem System vornehmen, kann sich erheblich von meinem unterscheiden. Für das betreffende Update ist möglicherweise nur ein Neustart des Dienstes erforderlich, oder es sind möglicherweise Updates für den eigentlichen Kernel erforderlich.

Warum ist das [Ich kann den Computer nicht benutzen]?

Im Allgemeinen können Sie aus dem gleichen Grund 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 überspielt und die App neu gestartet werden.

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

In der Regel sehen Sie heruntergeladene Updates, das System beginnt mit dem Herunterfahren, angewendeten Updates, einem Neustart und einer "Fertigstellung" der Updates, gefolgt von einem normalen Start. Währenddessen können Sie den Computer nicht benutzen.

Was macht es eigentlich?

Es hängt davon ab, ob. Es könnte alles sein, vom Patchen einer Konfigurationsdatei bis zum Flashen von Firmware irgendeiner Art.

Wenn das System in ist /System, warum erstellt ein Betriebssystem-Upgrade dann nicht einfach eine/NewSystem

Zunächst einmal /Systemist es durch SIP geschützt. Um es zu deaktivieren, müssen Sie tatsächlich von einem anderen Einhängepunkt booten. * Zweitens ist die Art und Weise, wie Sie dies betrachten, vergleichbar mit einer Hausrenovierung, bei der Sie ein neues Haus neben das alte stellen und den Leuten sagen, dass sie einfach einziehen sollen. So funktioniert es nicht.

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

Im Falle von Firmware-Updates müssen Images verifiziert werden (dh Sie möchten keine Mac mini-Firmware auf Ihrem Mac Pro), Prüfsummen validieren, Images sichern, anwenden, verifizieren, alte entfernen und das System neu initialisieren. Auch hier kann nichts getan werden, wenn Sie angemeldet sind, und nichts davon kann einfach durch "Dump" von Dateien in einem Verzeichnis erledigt werden.

Ein Upgrade ist ein Prozess und all dies braucht Zeit.


* SIP wurde entwickelt, um das System zu schützen, indem Änderungen am Betriebssystem verhindert werden. Dem Betriebssystem zu erlauben, das System "on-the-fly" zu ändern, würde die Sicherheit zunichte machen, die es zu erreichen versucht.

Danke Allan für deine Antwort. Ok, also kann ich als root, ohne SIP zu verletzen, ein Archiv des Systemverzeichnisses erstellen (gerade probiert). Ja, Sie müssten SIP deaktivieren, um zu einem neuen Systemverzeichnis zu wechseln, aber das würde nicht viel Zeit in Anspruch nehmen, wenn /NewSystemes bereits eingebaut ist.
So funktioniert es nicht. Außerdem .... eine Installation kann eine halbe Stunde oder länger dauern und technisch gesehen ist das nur das Kopieren von Dateien. Ein Update macht viel, viel mehr als nur Dateien zu kopieren.
„Auch hier kann nichts gemacht werden, wenn Sie eingeloggt sind.“ Warum nicht genau?
Können Sie eine App aktualisieren, während eine App ausgeführt wird? Gleiches Konzept, aber viel komplexer. Ihr Betriebssystem läuft (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.
Nein, aber Sie können den Großteil der Arbeit beim Aktualisieren einer App erledigen, während die App ausgeführt wird. Das heißt: Entpacken, differenzielle Updates anwenden, um eine neue Verzeichnisstruktur aufzubauen, und Prüfsummen bilden. Ich sehe ein Betriebssystem-Update nicht als wesentlich anders an. Wir könnten hier ins Unkraut geraten.
Ich sehe ein Betriebssystem-Update nicht als wesentlich anders an. Wie gesagt...es kommt darauf an. Wenn es um Kernel-Updates geht (wie in der Antwort beschrieben), kann er nicht einfach schreiben, /Systemda SIP hier ein wichtiger Faktor ist. Um SIP zu deaktivieren, müssen Sie von einem anderen Einhängepunkt booten. Sie können das einfach nicht tun, während es läuft. Außerdem sprechen wir über ein Betriebssystem, nicht über eine einzelne Instanz einer App.

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

Tatsächlich ist im Fall eines Updates manchmal kein Neustart erforderlich, wenn es noch als Teil eines Aktualisierungsprozesses verwendet wird, aber dies ist nur in Fällen der Fall, in denen es für die meisten Benutzer einfacher ist, sich einem Neustart zu unterziehen. Beispielsweise nehmen einige Systemaktualisierungen Änderungen an Dingen wie einem Netzwerkdienst vor, und obwohl Sie damit durchkommen könnten, anstatt den gesamten Computer neu zu starten, ist es für die meisten Benutzer einfach einfacher, einen Neustart durchzuführen, als die Schritte zum Neustart des Netzwerks durchzuführen Service.

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

Auch bei Firmware-Updates ist auf jeden Fall ein Neustart erforderlich. Hinzu kommt, dass Apple vor einigen Jahren damit begonnen hat, Firmware-Updates (falls/falls erforderlich) automatisch in macOS-Updates/Upgrades aufzunehmen, sodass es nicht einfach ist, zu überprüfen, für welche Geräte Firmware-Updates in einem Update/Upgrade enthalten waren. Ungeachtet dessen erfordern Firmware-Updates einen Neustart, daran führt kein Weg vorbei.

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

Abschließend zu Ihrer letzten Frage, warum Sie nicht einfach ein neues System erstellen und dieses nach dem nächsten Neustart aktiv werden lassen, obwohl dies technisch möglich wäre, ist es wirklich nicht praktikabel . Das Systemverzeichnis ist GB groß und dies würde viel länger dauern und viel mehr freien Speicherplatz auf dem Startvolume erfordern.

Meine Frage war nicht "Warum kann ein Betriebssystem nicht ohne Neustart aktualisiert werden?". Warum dauert der Vorgang so lange und sperrt den Benutzer aus? Außerdem könnten feste Links ( en.wikipedia.org/wiki/Hard_link ) verwendet werden, um die für ein Upgrade erforderliche Zeit und den erforderlichen Speicherplatz drastisch zu reduzieren. (Hinweis: Ich bin Softwareentwickler)
@Taylor speziell zu: OTA-iOS-Updates, sie werden in Form von differentiellen Patches bereitgestellt, 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. Dinge zu verschlüsseln braucht Zeit. Die einzigen mir bekannten Personen, die mit absoluter Sicherheit wissen, warum diese Entscheidungen getroffen wurden, sind das Entwicklungsteam von Cupertino.