¿Por qué las actualizaciones de macOS / iOS tardan tanto?


11

Incluso en un iMac Pro, todavía lleva algún tiempo (tal vez 15 minutos) actualizar el sistema operativo (después de que todo se haya descargado). Durante este tiempo, no puedo usar la computadora.

¿Porqué es eso? ¿Qué está haciendo realmente? ¿Por qué este proceso no es un simple reinicio?

Tenga en cuenta que no estoy preguntando por qué es necesario reiniciar. Como desarrollador de software, soy plenamente consciente de por qué es necesario reiniciar.

También tenga en cuenta Una razón clara por la que una actualización puede tardar un tiempo es una migración del sistema de archivos (como la migración HFS + → APFS). Apple hizo algunas migraciones de prueba, incluso, antes de lanzar lo último. Sin embargo, la mayoría de las actualizaciones del sistema operativo no implican cambios en el sistema de archivos AFAIK.

Esta es una pregunta similar a ¿Por qué la verificación de actualización de software de OS X tarda tanto? sobre otro proceso de actualización que lleva un tiempo. Hay detalles específicos de macOS e iOS que vale la pena considerar al responder esta pregunta. Por ejemplo: ambos se envían con controladores necesarios para todos los sistemas compatibles.


66
Estoy votando para cerrar esta pregunta como "fuera de tema" de acuerdo con las pautas de preguntas publicadas. Las preguntas que preguntan por qué Apple hizo, no hizo, puede o no puede hacer algo no están registradas porque este grupo no puede responderlas.
fsb

55
@fsb Sobremoderación típica que apaga a las personas en estos sitios.

3
No lo hice por "moderación excesiva". La forma en que se redactó su pregunta, originalmente antes de la edición, era preguntar por qué Apple requiere un reinicio. La forma en que lo leí estaba fuera de tema. Se necesita más de 1 voto para cerrar una pregunta, se necesitan 4 votos. Estos sitios ayudan a muchas personas al garantizar que las preguntas puedan tener y obtener respuestas precisas. Consulte Cómo pedir consejos sobre cómo hacer preguntas que puedan obtener buenas respuestas.
fsb

1
@fsb Estaba claro antes de la edición. "¿Por qué las actualizaciones del sistema operativo no son simplemente un reinicio?" no es "¿Por qué las actualizaciones del sistema operativo requieren un reinicio?" Luego mencioné "¿Por qué este proceso no es un simple reinicio?" Luego menciono "y luego reinicio" Usted leyó mal la pregunta original, pero no se preocupe.

55
Esta es una pregunta perfectamente válida. Esto no es un "¿Por qué Apple hace X, Y o Z" sino más bien "por qué un proceso tarda tanto?" que es de naturaleza técnica. Nominación para reapertura.
Allan

Respuestas:


4

¿Por qué este proceso no es un simple reinicio?

La respuesta general aquí es que depende. Depende en gran medida de lo que deba hacerse. Una actualización que realice en su sistema puede ser muy diferente a la que yo hago en el mío. Es posible que la actualización en cuestión solo necesite reiniciar un servicio o que necesite actualizaciones del núcleo real.

¿Por qué es que [no puedo usar la computadora]?

Generalmente, por la misma razón, no puede usar una aplicación (Word, Excel, Numbers, iTerm, Adobe Photoshop, etc.) que está en proceso de actualización. Los archivos deben cerrarse, leerse, analizarse, copiarse los parches / actualizaciones apropiados y reiniciarse la aplicación.

Cuando se actualiza un sistema operativo, debe suceder lo mismo y esto normalmente se hace (especialmente cuando se trata de actualizaciones de nivel de kernel) en modo de usuario único.

Por lo general, verá las actualizaciones descargadas, el sistema comenzará a cerrarse, se aplicarán las actualizaciones, se reiniciará y se "finalizará" las actualizaciones, seguido de un arranque normal. No puedes usar la computadora durante nada de esto.

¿Qué está haciendo realmente?

Depende. Podría ser cualquier cosa, desde parchear un archivo de configuración hasta firmware de algún tipo.

Si el sistema está instalado /System, ¿por qué no es una actualización del sistema operativo simplemente crear un /NewSystem

En primer lugar, /Systemestá protegido por SIP, por lo que para deshabilitarlo, realmente necesita arrancar desde un punto de montaje diferente. * En segundo lugar, la forma en que estás viendo esto es análoga a la renovación de una casa al tirar una casa nueva al lado de la antigua y decirle a la gente que simplemente se mude. No es la forma en que funciona.

Deben suceder muchas cosas, la menor de las cuales son los puntos de restauración creados (en caso de que falle la copia de seguridad). Esto significa que se crea una copia del sistema de trabajo, se aplica la actualización, se verifica la actualización y (si todo está bien) se elimina el punto de restauración.

En el caso de las actualizaciones de firmware, las imágenes deben verificarse (es decir, no desea un firmware Mac mini en su Mac Pro), validar las sumas de verificación, hacer copias de seguridad de las imágenes, aplicarlas, verificarlas, eliminar las antiguas y reiniciar el sistema. Una vez más, no se puede hacer nada con usted conectado y nada de eso simplemente "volcando" archivos en un directorio.

Una actualización es un proceso y todo esto lleva tiempo.


* SIP está diseñado para proteger el sistema al evitar cambios en el sistema operativo. Permitir que el sistema operativo cambie el sistema "sobre la marcha" negaría la seguridad que está tratando de lograr.


Gracias por tu respuesta Allan. Ok, puedo, como root, sin violar SIP, crear un archivo del directorio del sistema (solo lo probé). Sí, necesitaría deshabilitar SIP para cambiar a un nuevo directorio del sistema, pero eso no tomaría mucho tiempo si /NewSystemya está construido.

Así no es como funciona. Además ... una instalación puede tomar media hora o más y técnicamente eso es solo copiar archivos. Una actualización hace mucho, mucho más que simplemente copiar archivos.
Allan

"De nuevo, no se puede hacer nada con usted conectado" ¿Por qué no exactamente?

¿Se puede actualizar una aplicación mientras se está ejecutando? Mismo concepto pero mucho más complejo. Su sistema operativo se está ejecutando (los archivos están abiertos y protegidos). Debe eliminar los procesos, eliminar la protección (más que solo ejecutar sudo) y parchear el sistema. Si se trata de una actualización del kernel, debe bajar todo porque no se escribirá nada .
Allan

No, pero puedes hacer la gran mayoría del trabajo actualizando una aplicación mientras la aplicación se está ejecutando. Es decir: desempaquetar, aplicar actualizaciones diferenciales para construir una nueva estructura de directorios y suma de verificación. No veo una actualización del sistema operativo como significativamente diferente. Podríamos meternos en la maleza aquí.

3

Se requiere reiniciar una computadora para algunas actualizaciones / actualizaciones del sistema operativo para todos los sistemas operativos, no solo para macOS.

En realidad, en el caso de una actualización , a veces no es necesario reiniciar cuando todavía se usa como parte de un proceso de actualización, pero esto es solo en casos donde es más fácil para la mayoría de la población de usuarios tener que reiniciar. Por ejemplo, algunas actualizaciones del sistema hacen cambios a cosas como un servicio de red y, si bien podría evitar reiniciar eso en lugar de la computadora completa, es más fácil para la mayoría de los usuarios reiniciar que seguir los pasos para reiniciar la red Servicio.

Sin embargo, en la mayoría de los casos que se requiere reiniciar, es porque es realmente necesario. Hay muchos recursos del sistema operativo que utilizan las aplicaciones, incluidas las aplicaciones de terceros, y actualizarlas mientras el usuario está conectado no será una tarea fácil y, de hecho, es potencialmente capaz de causar corrupción de archivos, etc.

Además, en casos de actualizaciones de firmware, definitivamente se requiere un reinicio. Además de esto, algunos años atrás, Apple comenzó a incluir automáticamente actualizaciones de firmware (si es necesario) dentro de las actualizaciones / actualizaciones de macOS, por lo que no es fácil verificar qué dispositivos tenían actualizaciones de firmware incluidas en una actualización / actualización. No obstante, las actualizaciones de firmware requieren un reinicio, simplemente no hay forma de evitarlo.

Otro ejemplo es la actualización de los recursos necesarios para usar el hardware. En algunos casos se requiere reiniciar, en otros no.

Finalmente, en términos de su última pregunta sobre por qué no solo crear un nuevo sistema y luego hacer que se active después del próximo reinicio, mientras que técnicamente esto sería posible, realmente no es práctico. El directorio del sistema tiene un tamaño de GB y esto tomaría mucho más tiempo y requeriría una cantidad mucho mayor de espacio libre en el volumen de arranque.


Mi pregunta no era "¿por qué no se puede actualizar un sistema operativo sin reiniciar?". ¿Es por eso que el proceso toma tanto tiempo y bloquea al usuario? Además, los enlaces duros ( en.wikipedia.org/wiki/Hard_link ) podrían usarse para reducir drásticamente el tiempo y el espacio necesarios para una actualización. (Nota: soy desarrollador de software)

2
@Taylor específicamente re: actualizaciones de OTA iOS, se entregan en forma de parches diferenciales que deben aplicarse a los archivos existentes. Tanto las actualizaciones OTA como las no OTA para iOS todavía se almacenan en un dispositivo cifrado y deben cifrarse como parte del proceso de instalación. Cifrar cosas lleva tiempo. Las únicas personas que conozco que saben con total certeza por qué se tomaron esas decisiones son el equipo de desarrollo de Cupertino.
Scottmeup
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.