Pourquoi les mises à jour macOS / iOS prennent-elles autant de temps?

11

Même sur un iMac Pro, il faut encore du temps (peut-être 15 minutes) pour mettre à niveau le système d'exploitation (une fois que tout est téléchargé). Pendant ce temps, je ne peux pas utiliser l'ordinateur.

Pourquoi donc? Que fait-il réellement? Pourquoi ce processus n'est-il pas un simple redémarrage?

Veuillez noter que je ne demande pas pourquoi un redémarrage est nécessaire. En tant que développeur de logiciels, je sais parfaitement pourquoi un redémarrage est nécessaire.

Notez également Une raison claire pour laquelle une mise à niveau peut prendre un certain temps est une migration de système de fichiers (telle que la migration HFS + → APFS). Apple a même fait quelques tests de migration avant de déployer la dernière chose. Cependant, la plupart des mises à niveau du système d'exploitation n'impliquent pas de modifications du système de fichiers AFAIK.

Il s'agit d'une question similaire à Pourquoi la vérification de la mise à jour du logiciel OS X prend-elle autant de temps? sur un autre processus de mise à niveau prenant un certain temps. Il y a des spécificités de macOS et iOS qui méritent d'être considérées pour répondre à cette question. Par exemple: les deux sont livrés avec les pilotes nécessaires pour tous les systèmes pris en charge.

grg
la source
6
Je vote pour fermer cette question en tant que «hors sujet» selon les directives de question publiées. Les questions qui demandent pourquoi Apple a fait, n'a pas fait, peut ou ne peut pas faire quelque chose sont officieuses, car ce groupe ne peut y répondre.
fsb
5
@fsb Surmodération typique qui décourage les gens vers ces sites.
3
Je ne l'ai pas fait par «sur-modération». La façon dont votre question était formulée, à l'origine avant la modification, demandait pourquoi Apple nécessite un redémarrage. La façon dont je l'ai lu était hors sujet. Il faut plus d'une voix pour clôturer une question, il faut 4 voix. Ces sites aident de nombreuses personnes en garantissant que les questions peuvent avoir et obtenir des réponses précises. Veuillez consulter Comment demander des conseils sur la façon de poser des questions qui peuvent obtenir de bonnes réponses.
fsb
1
@fsb C'était clair avant l'édition. "Pourquoi les mises à niveau du système d'exploitation ne sont-elles pas simplement un redémarrage?" n'est pas "Pourquoi les mises à niveau du système d'exploitation nécessitent-elles un redémarrage?" J'ai ensuite mentionné "Pourquoi ce processus n'est-il pas un simple redémarrage?" Ensuite, je mentionne "puis redémarrage" Vous avez mal lu la question d'origine, mais pas de soucis.
5
C'est une question parfaitement valable. Ce n'est pas un "Pourquoi Apple fait X, Y ou Z" mais plutôt "pourquoi un processus prend-il autant de temps?" qui est de nature technique. Candidature pour réouverture.
Allan

Réponses:

4

Pourquoi ce processus n'est-il pas un simple redémarrage?

La réponse globale ici est que cela dépend. Cela dépend beaucoup de ce qui doit être fait. Une mise à jour que vous effectuez sur votre système peut être très différente de la mienne. La mise à jour en question peut nécessiter uniquement un redémarrage du service ou des mises à jour du noyau réel.

Pourquoi est-ce que [je ne peux pas utiliser l'ordinateur]?

Généralement, pour la même raison, vous ne pouvez pas utiliser une application (Word, Excel, Numbers, iTerm, Adobe Photoshop, etc.) en cours de mise à niveau. Les fichiers doivent être fermés, lus, analysés, les correctifs / mises à jour appropriés copiés et l'application redémarrée.

Lorsqu'un système d'exploitation est mis à niveau, la même chose doit se produire et cela se fait généralement (en ce qui concerne les mises à niveau au niveau du noyau en particulier) en mode mono-utilisateur.

En règle générale, vous verrez les mises à jour téléchargées, le système commencera un arrêt, les mises à jour appliquées, un redémarrage et une "finalisation" des mises à jour suivies d'un démarrage normal. Vous ne pouvez pas utiliser l'ordinateur pendant tout cela.

Que fait-il réellement?

Ça dépend. Il peut s'agir de patcher un fichier de configuration ou de flasher un firmware d'un certain type.

Si le système est /Systeminstallé, pourquoi une mise à niveau du système d'exploitation ne crée-t-elle pas simplement un /NewSystem

Tout d'abord, /Systemest protégé par SIP, donc pour le désactiver, vous devez réellement démarrer à partir d'un point de montage différent. * Deuxièmement, la façon dont vous voyez les choses est analogue à la rénovation d'une maison en jetant une nouvelle maison à côté de l'ancienne et en disant aux gens de simplement emménager. Ce n'est pas ainsi que cela fonctionne.

Beaucoup de choses doivent se produire, dont le moins est les points de restauration créés (au cas où la sauvegarde échouerait). Cela signifie donc qu'une copie du système de travail est créée, la mise à jour appliquée, la mise à jour vérifiée et (si tout va bien) le point de restauration supprimé.

Dans le cas des mises à jour du firmware, les images doivent être vérifiées (c'est-à-dire que vous ne voulez pas de firmware Mac mini sur votre Mac Pro), les sommes de contrôle validées, les images sauvegardées, appliquées, vérifiées, les anciennes supprimées et le système réinitialisé. Encore une fois, rien ne peut être fait avec vous connecté et rien de tout cela en «vidant» simplement les fichiers dans un répertoire.

Une mise à niveau est un processus et tout cela prend du temps.


* SIP est conçu pour protéger le système en empêchant les modifications du système d'exploitation. Permettre au système d'exploitation de changer le système "à la volée" annulerait la sécurité qu'il tente d'atteindre.

Allan
la source
Merci pour votre réponse Allan. Ok donc je peux, en tant que root, sans violer SIP, créer une archive du répertoire système (je viens de l'essayer). Oui, vous devrez désactiver SIP pour basculer vers un nouveau répertoire système, mais cela ne prendrait pas beaucoup de temps s'il /NewSystemest déjà construit.
Ce n'est pas ainsi que cela fonctionne. En plus .... une installation peut prendre une demi-heure ou plus et techniquement c'est juste de copier des fichiers. Une mise à jour fait bien plus que simplement copier des fichiers.
Allan
"Encore une fois, rien ne peut être fait avec vous connecté" Pourquoi pas, exactement?
Pouvez-vous mettre à jour une application pendant qu'elle est en cours d'exécution? Même concept mais beaucoup plus complexe. Votre système d'exploitation est en cours d'exécution (les fichiers sont ouverts et protégés). Vous devez tuer les processus, supprimer la protection (plus que la simple exécution sudo) et patcher le système. S'il s'agit d'une mise à jour du noyau, vous devez tout arrêter car rien ne sera écrit.
Allan
Non, mais vous pouvez effectuer la grande majorité du travail de mise à jour d'une application pendant son exécution. C'est-à-dire: décompactage, application de mises à jour différentielles pour créer une nouvelle structure de répertoires et somme de contrôle. Je ne vois pas une mise à jour du système d'exploitation comme très différente. Nous pourrions entrer dans les mauvaises herbes ici.
3

Le redémarrage d'un ordinateur pour certaines mises à jour / mises à niveau du système d'exploitation est requis pour tous les systèmes d'exploitation, pas seulement pour macOS.

En fait, dans le cas d'une mise à jour , un redémarrage n'est parfois pas nécessaire lorsqu'il est toujours utilisé dans le cadre d'un processus de mise à jour, mais ce n'est que dans les cas où il est plus facile pour la plupart de la population d'utilisateurs de subir un redémarrage. Par exemple, certaines mises à jour du système apportent des modifications à des choses comme un service réseau et, bien que vous puissiez vous contenter de redémarrer cela plutôt que de l'ordinateur entier, il est juste plus facile pour la plupart des utilisateurs de redémarrer que de suivre les étapes pour redémarrer le réseau un service.

Cependant, dans la plupart des cas, un redémarrage est nécessaire, c'est parce qu'il est réellement nécessaire. De nombreuses ressources du système d'exploitation sont utilisées par les applications, y compris les applications tierces, et leur mise à jour pendant que l'utilisateur est connecté ne sera tout simplement pas une tâche facile et, en fait, potentiellement capable de provoquer une corruption de fichiers, etc.

De plus, dans les cas de mises à jour du firmware, un redémarrage est très certainement nécessaire. De plus, il y a quelques années, Apple a commencé automatiquement à inclure les mises à jour du micrologiciel (si / quand cela était nécessaire) dans les mises à jour / mises à niveau macOS, il n'est donc pas facile de vérifier quels appareils avaient des mises à jour du micrologiciel incluses dans une mise à jour / mise à niveau. Quoi qu'il en soit, les mises à jour du micrologiciel nécessitent un redémarrage, il n'y a tout simplement aucun moyen de le contourner.

Un autre exemple est la mise à jour des ressources nécessaires à l'utilisation du matériel. Dans certains cas, un redémarrage est nécessaire, dans d'autres non.

Enfin, en ce qui concerne votre dernière question sur pourquoi ne pas simplement créer un nouveau système et ensuite le rendre actif après le prochain redémarrage, alors que ce serait techniquement possible, ce n'est vraiment pas pratique. Le répertoire système a une taille de Go et cela prendrait beaucoup plus de temps et nécessiterait une quantité beaucoup plus grande d'espace libre sur le volume de démarrage.

Monomeeth
la source
Ma question n'était pas "pourquoi un système d'exploitation ne peut-il pas être mis à niveau sans redémarrer?". C'est pourquoi le processus prend-il si longtemps et bloque-t-il l'utilisateur? De plus, des liens physiques ( en.wikipedia.org/wiki/Hard_link ) pourraient être utilisés pour réduire considérablement le temps et l'espace requis pour une mise à niveau. (Remarque: je suis développeur de logiciels)
2
@Taylor spécifiquement concernant les mises à jour OTA iOS, elles sont fournies sous la forme de correctifs différentiels qui doivent être appliqués aux fichiers existants. Les mises à jour OTA et non OTA d'iOS sont toujours stockées sur un appareil chiffré et doivent être chiffrées dans le cadre du processus d'installation. Crypter les choses prend du temps. Les seules personnes que je connaisse qui savent avec certitude pourquoi ces décisions ont été prises sont l'équipe de développement de Cupertino.
Scottmeup