Perché gli aggiornamenti di macOS / iOS richiedono così tanto tempo?


11

Anche su un iMac Pro, ci vuole ancora del tempo (forse 15 minuti) per aggiornare il sistema operativo (dopo aver scaricato tutto). Durante questo periodo, non riesco a usare il computer.

Perché? Che cosa sta realmente facendo? Perché questo processo non è un semplice riavvio?

Nota: non sto chiedendo perché è necessario un riavvio. Come sviluppatore di software, sono pienamente consapevole del motivo per cui è necessario un riavvio.

Nota anche un chiaro motivo per cui un aggiornamento potrebbe richiedere del tempo è una migrazione del filesystem (come la migrazione HFS + → APFS). Apple ha fatto alcune prove di migrazione, anche prima di lanciare l'ultima cosa. Tuttavia, la maggior parte degli aggiornamenti del sistema operativo non comporta modifiche al filesystem AFAIK.

Questa è una domanda simile a Perché il controllo dell'aggiornamento del software OS X impiega così tanto tempo? su un altro processo di aggiornamento che richiede un po 'di tempo. Ci sono specifiche di macOS e iOS che vale la pena considerare per rispondere a questa domanda. Ad esempio: entrambi vengono forniti con driver necessari per tutti i sistemi supportati.


6
Sto votando per chiudere questa domanda come "off-topic" secondo le linee guida per le domande pubblicate. Le domande che chiedono perché Apple abbia fatto, non abbia potuto, non possa o non possano fare qualcosa non sono registrate perché non possono rispondere a questo gruppo.
fsb,

5
@fsb Tipica moderazione eccessiva che disattiva le persone su questi siti.

3
Non l'ho fatto per "eccessiva moderazione". Il modo in cui era stata formulata la tua domanda, originariamente prima della modifica, stava chiedendo perché Apple richiede un riavvio. Il modo in cui l'ho letto era fuori tema. Ci vuole più di 1 voto per chiudere una domanda, ci vogliono 4 voti. Questi siti aiutano molte persone garantendo che le domande possano avere e ottenere risposte accurate. Vedere Come chiedere suggerimenti su come porre domande in grado di ottenere risposte valide.
fsb,

1
@fsb Era chiaro prima della modifica. "Perché gli aggiornamenti del sistema operativo non sono semplicemente un riavvio?" non è "Perché gli aggiornamenti del sistema operativo richiedono un riavvio?" Poi ho detto "Perché questo processo non è un semplice riavvio?" Poi menziono "e quindi riavvio" Hai letto male la domanda originale, ma non preoccuparti.

5
Questa è una domanda perfettamente valida. Questo non è un "Perché Apple fa X, Y o Z" ma piuttosto "perché un processo impiega così tanto tempo?" che è di natura tecnica. Nomina per la riapertura.
Allan,

Risposte:


4

Perché questo processo non è un semplice riavvio?

La risposta complessiva qui è che dipende. Dipende molto da ciò che deve essere fatto. Un aggiornamento che fai al tuo sistema potrebbe essere molto diverso da quello che faccio sul mio. L'aggiornamento in questione potrebbe richiedere solo un servizio riavviato o potrebbe essere necessario aggiornare il kernel effettivo.

Perché [non riesco a usare il computer]?

In genere, per lo stesso motivo non è possibile utilizzare un'app (Word, Excel, Numbers, iTerm, Adobe Photoshop, ecc.) Che è in fase di aggiornamento. I file devono essere chiusi, letti, analizzati, le patch / gli aggiornamenti appropriati copiati e l'app riavviata.

Quando si aggiorna un sistema operativo, deve accadere la stessa cosa e ciò avviene in genere (soprattutto per quanto riguarda gli aggiornamenti a livello di kernel) in modalità utente singolo.

In genere, vedrai gli aggiornamenti scaricati, il sistema inizierà uno spegnimento, gli aggiornamenti applicati, un riavvio e una "finalizzazione" degli aggiornamenti seguiti da un avvio normale. Non è possibile utilizzare il computer durante tutto questo.

Che cosa sta realmente facendo?

Dipende. Potrebbe essere qualsiasi cosa, dal patching di un file di configurazione al firmware flashing di qualche tipo.

Se il sistema è in uso /System, perché un aggiornamento del sistema operativo non sta semplicemente creando un /NewSystem

Prima di tutto, /Systemè protetto da SIP, quindi per disabilitarlo, è necessario avviare da un punto di montaggio diverso. * In secondo luogo, il modo in cui stai guardando questo è analogo a fare un rinnovamento domestico scaricando una nuova casa vicino a quella vecchia e dicendo alle persone di trasferirsi. Non è il modo in cui funziona.

Devono succedere molte cose, la meno delle quali sono i punti di ripristino creati (nel caso in cui il backup fallisca). Ciò significa che viene creata una copia del sistema di lavoro, applicato l'aggiornamento, verificato e, se tutto va bene, il punto di ripristino eliminato.

Nel caso di aggiornamenti del firmware, le immagini devono essere verificate (ovvero non si desidera un mini Mac firmware sul proprio Mac Pro), checksum convalidati, immagini di cui è stato eseguito il backup, applicate, verificate, rimosse quelle vecchie e reinizializzato il sistema. Ancora una volta, nessuno può essere fatto con il tuo login e niente di tutto ciò semplicemente "scaricando" i file in una directory.

Un aggiornamento è un processo e tutto ciò richiede tempo.


* SIP è progettato per proteggere il sistema impedendo modifiche al sistema operativo. Consentire al sistema operativo di cambiare il sistema "al volo" negherebbe la sicurezza che sta cercando di raggiungere.


Grazie per la tua risposta Allan. Ok, così posso, come root, senza violare SIP, creare un archivio della directory di sistema (appena provato). Sì, è necessario disabilitare SIP per passare a una nuova directory di sistema, ma ciò non richiederebbe molto tempo se /NewSystemè già stato creato.

Non funziona così. Inoltre .... un'installazione può richiedere mezz'ora o più e tecnicamente si tratta solo di copiare i file. Un aggiornamento fa molto, molto di più della semplice copia di file.
Allan,

"Ancora una volta, nessuno può essere fatto con il login" Perché no, esattamente?

È possibile aggiornare un'app mentre è in esecuzione un'app? Stesso concetto ma molto più complesso. Il tuo sistema operativo è in esecuzione (i file sono aperti e protetti). Devi uccidere i processi, rimuovere la protezione (oltre alla semplice esecuzione sudo) e patchare il sistema. Se si tratta di un aggiornamento del kernel, devi annullare tutto perché non verrà scritto nulla .
Allan,

No, ma puoi eseguire la maggior parte del lavoro nell'aggiornamento di un'app mentre l'app è in esecuzione. Cioè: decompressione, applicazione di aggiornamenti differenziali per creare una nuova struttura di directory e checksum. Non vedo un aggiornamento del sistema operativo come significativamente diverso. Potremmo entrare nelle erbacce qui.

3

Il riavvio di un computer per alcuni aggiornamenti / upgrade del sistema operativo è necessario per tutti i sistemi operativi, non solo per macOS.

In realtà, nel caso di un aggiornamento , a volte non è necessario un riavvio quando viene ancora utilizzato come parte di un processo di aggiornamento, ma questo è solo nei casi in cui è più facile per la maggior parte della popolazione degli utenti sottoporsi a un riavvio. Ad esempio, alcuni aggiornamenti di sistema apportano modifiche a cose come un servizio di rete e, mentre è possibile cavarsela semplicemente riavviando questo piuttosto che l'intero computer, è più semplice per la maggior parte degli utenti fare un riavvio piuttosto che seguire i passaggi per riavviare la rete servizio.

Tuttavia, nella maggior parte dei casi è necessario un riavvio, perché è effettivamente necessario. Esistono molte risorse del sistema operativo utilizzate dalle applicazioni, incluse le applicazioni di terze parti, e aggiornarle mentre l'utente è connesso non sarà un compito facile e, di fatto, potenzialmente in grado di causare il danneggiamento dei file, ecc.

Inoltre, in caso di aggiornamenti del firmware è sicuramente necessario riavviare. Inoltre, alcuni anni fa Apple ha iniziato a includere automaticamente gli aggiornamenti del firmware (se / quando richiesto) all'interno degli aggiornamenti / aggiornamenti di macOS, quindi non è facile controllare quali dispositivi includessero gli aggiornamenti del firmware in un aggiornamento / aggiornamento. Indipendentemente da ciò, gli aggiornamenti del firmware richiedono un riavvio, non c'è modo di aggirarlo.

Un altro esempio è l'aggiornamento delle risorse necessarie per utilizzare l'hardware. In alcuni casi è necessario un riavvio, in altri no.

Infine, per quanto riguarda la tua ultima domanda sul perché non solo creare un nuovo sistema di e poi avere questo diventi attivo dopo il riavvio successivo, mentre questo sarebbe tecnicamente possibile non è molto pratica. La directory di sistema ha dimensioni di GB e ciò richiederebbe molto più tempo e richiederebbe una quantità molto maggiore di spazio libero sul volume di avvio.


La mia domanda non era "perché non è possibile aggiornare un sistema operativo senza riavviare?". È perché il processo impiega così tanto tempo e blocca l'utente? Inoltre, i collegamenti reali ( en.wikipedia.org/wiki/Hard_link ) potrebbero essere utilizzati per ridurre drasticamente il tempo e lo spazio necessari per un aggiornamento. (Nota: sono uno sviluppatore di software)

2
@Taylor in particolare: gli aggiornamenti OTA per iOS, vengono forniti sotto forma di patch differenziali che devono essere applicate ai file esistenti. Gli aggiornamenti OTA e non OTA a iOS sono ancora memorizzati su un dispositivo crittografato e devono essere crittografati durante il processo di installazione. Crittografare le cose richiede tempo. Le uniche persone di cui sono a conoscenza e che sanno con assoluta certezza perché quelle decisioni sono state prese sono il team di sviluppo di Cupertino.
Scottmeup,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.