Ha habido varias respuestas bastante buenas a esta pregunta, pero pensé que podría darle una opinión ligeramente diferente, porque hay (al menos) tres aspectos interesantes a esta pregunta.
Precaución: detalles técnicos por delante! Normalmente trato de mantener las cosas lo más livianas posible. Pero en este caso, realmente respondiendo ‘¿Qué pasaría?’ requiere solo un vistazo detrás de la cortina técnica.
Primero, ‘ ¿Qué sucede con la desfragmentación si algo (un bloqueo, una falla de energía, etc.) lo termina inesperadamente? ‘Como otros han mencionado, hay dos niveles de protección aquí, aunque obviamente ninguno de ellos es perfecto. Primero, el proceso de desfragmentación en sí mismo intenta hacer las cosas de una manera que minimice el daño si ocurre una falla. En segundo lugar, los sistemas de archivos modernos como NTFS son transaccionales, lo que significa que pueden revertir el disco a un buen estado si ocurre una falla del sistema en medio de una escritura de disco.
Segundo, ‘ ¿Por qué Windows Update termina las cosas de esta manera? ‘Bueno, la respuesta es’ No lo hace, en realidad, aunque ciertamente puedo entender por qué pensarías que sí ‘.
- ¿Se legalizaría el nudismo en todo el mundo?
- ¿Qué pasaría si Google repentinamente se quedara sin almacenamiento de datos?
- ¿Cómo invadirías los Estados Unidos sin armas nucleares?
- ¿Qué candidato habría sido seleccionado durante las primarias republicanas de 2016 si se hubiera utilizado un mecanismo de votación de segunda opción?
- Si pudieras diseñar tu propia casa en ASOIAF, ¿cómo sería?
Esto es lo que sucede realmente cuando es hora de que Windows Update reinicie la computadora:
- Windows Update le dice al administrador de sesión de Windows: “Oye, ¿podrías reiniciar Windows por nosotros?” Esto es básicamente lo mismo que sucedería si elige Reiniciar en el menú Inicio.
- El administrador de sesión de Windows envía un mensaje a todos los programas que se ejecutan en el sistema: “Bien, Windows se está cerrando ahora”.
- Los programas tienen 30 segundos para cerrarse, o más si le piden al administrador de la sesión más tiempo de la manera correcta. Eso significa, por ejemplo, que la herramienta de desfragmentación no se terminará realmente en medio de una escritura; en cambio dice ‘¿Windows se está cerrando? Bien, terminaré este pequeño movimiento de datos que estoy haciendo actualmente, y luego detendré la desfragmentación y me cerraré ”. Las cosas se dejan en un estado consistente (aunque no en un estado completamente desfragmentado).
- Después de 30 segundos, Windows comienza a terminar los programas. Aquí es donde algunos programas pueden funcionar mal y perder datos (por ejemplo, si un programa responde al mensaje ‘Está bien, Windows se está cerrando’ colocando un mensaje ‘Hola, usuario, tiene cambios sin guardar; ¿desea guardarlos? ‘y esperando una respuesta, y luego se termina 30 segundos después). Esto todavía me hace sentir muy mal, y estamos trabajando continuamente en formas de hacerlo menos intrusivo (por ejemplo, Windows 10 es más selectivo sobre el tipo de actualizaciones que desencadenan un reinicio que Windows 8).
- Después de que todos los programas se hayan apagado o finalizado, el administrador de sesión de Windows continúa y reinicia el sistema, y las actualizaciones se aplican durante el reinicio.
Tercero, ‘ ¿Por qué Windows Update aplica las actualizaciones de esta manera? ¿No podría simplemente, digamos, aplicar las actualizaciones a una copia oculta de Windows y luego cambiar a esa copia en el próximo reinicio? ‘La respuesta a eso es’ Esa es una pregunta realmente difícil de responder, pero aquí hay algunas cosas en las que pensar ”.
- Windows es grande Tener que tener dos copias de Windows usaría mucho espacio en disco. Cuando tienes una PC de escritorio con un disco duro de 4TB, eso no es tan importante. Pero la gente usa cada vez más tabletas y computadoras portátiles convertibles con SSD pequeños. En esos sistemas, es realmente difícil justificar una copia adicional de Windows solo para que las actualizaciones funcionen sin problemas.
- Tener una copia oculta de Windows para las actualizaciones resolvería algunos problemas pero presentaría otros (como ‘¿Va a perjudicar el rendimiento si ahora tenemos que estar pendientes de las escrituras en el directorio’ real ‘de Windows y copiar esos cambios en el oculto para que todo permanece sincronizado?
- Como sucede, las actualizaciones de Windows ya hacen algo así, pero sin la sobrecarga de una copia extra completa de Windows. Supongamos que necesitamos instalar una nueva versión de un componente de Windows. Así es como lo hacemos:
- Primero, ‘organizamos’ la actualización. Eso significa que copiamos los archivos de la actualización en el directorio “WinSXS” inescrutable en su directorio de Windows. (Significa “Windows Side-by-Side”, por cierto). Y hacemos una nota: “Bien, en el próximo reinicio, esta cosa debe aplicarse realmente”.
- Por cierto, el directorio WinSXS también contiene todos los componentes que están instalados actualmente . “¡Oye, espera, señor desarrollador! ¿No significa eso que realmente tienes una segunda copia de Windows allí? ¿No dijiste que eso era malo ? Algo así, pero no. Los archivos que ve en WinSXS no son realmente copias separadas de los archivos de Windows; son ‘enlaces duros’. Si busca, por ejemplo, ReachFramework.dll, lo encontrará en los directorios normales de Windows y en WinSXS; pero en realidad solo hay una copia del archivo. Piense en ello como una casa individual con dos direcciones; si vas a cualquier dirección, terminarás en el mismo lugar.
- Luego esperamos el reinicio.
- Luego, durante el reinicio (cuando se ejecutan muy pocas cosas para no tener que preocuparnos de que los archivos estén ocupados, etc.), “proyectamos” la actualización. Eso significa que tomamos esos archivos nuevos que se encuentran en el directorio WinSXS y creamos nuevos ‘enlaces duros’ para ellos en los lugares correctos en los directorios regulares de Windows. (Y borramos los ‘enlaces duros’ del directorio regular de Windows para los archivos antiguos). Eso significa que ahora los archivos nuevos están ubicados en los lugares correctos, y todavía tenemos copias de los archivos antiguos. Entonces, si algo sale mal, podemos revertir el proceso y restablecer el directorio normal de Windows a la forma en que estaba.
Realmente deseamos poder hacer reinicios completamente innecesarios. Pero el hecho desafortunado es que hacer eso requeriría cambios en Windows que probablemente romperían la compatibilidad con una gran cantidad de programas. Y eso probablemente dolería más que los reinicios.