¿Por qué Windows requiere un reinicio del sistema para casi todas las instalaciones de software pero no para Linux?

La razón principal de por qué Windows necesita reiniciarse para casi todas las instalaciones de software es que las ventanas usan archivos dll.
Ahora, la DLL (biblioteca de enlaces dinámicos) significa que muchas aplicaciones pueden usar un solo archivo
o cualquier aplicación con casi la misma necesidad puede buscar estos archivos. Y si el nuevo software que desea instalar necesita copiar alguno de estos archivos, puede causar algunos errores si esos archivos ya están en uso y causan un bloqueo del sistema.
Es por eso que necesita reiniciar su sistema para asegurarse de que la nueva aplicación se instale correctamente.
A veces, el software que instaló realiza cambios integrales en el sistema que obviamente requieren un reinicio.

AHORA, llegando a Linux. Linux no requiere un reinicio porque el sistema operativo está formado por paquetes pequeños y, a diferencia de Windows, no comparte códigos similares.
Por lo tanto, una instalación de software realiza cambios solo en un paquete pequeño y no en el sistema en su conjunto, lo que facilita la instalación y elimina la necesidad de reiniciar el sistema cada vez.

A menudo, cuando instala un nuevo software, un dll (archivo) utilizado por muchos otros paquetes de software debe actualizarse a una nueva versión. (Esto es mucho más probable que ocurra al actualizar una aplicación que ya tiene instalada).

Si el dll está siendo utilizado por una aplicación en ejecución, una parte se cargará en la memoria y el resto se leerá desde el disco cuando sea necesario. Por lo tanto, el dll estará bloqueado en el disco. (¡Piense en los problemas si no estaba bloqueado!)

Una DLL que está bloqueada no se puede actualizar, por lo que el instalador le pedirá a Windows que reemplace la DLL con la nueva versión la próxima vez que se reinicie la máquina. De ahí la necesidad de reiniciar.

Algunos instaladores mejores le dirán las aplicaciones que deben cerrarse antes de ejecutar el instalador, por lo que dejará que la DLL se actualice sin reiniciar. Sin embargo, eso hace que la interfaz de usuario del instalador sea más compleja y genera más llamadas de soporte.

Un instalador para una aplicación también puede hacer que la aplicación guarde su estado, se apague automáticamente y luego se reinicie después de que se haya actualizado la DLL. Esto solo se puede hacer si la aplicación única usa la DLL. La mayoría de las aplicaciones de actualización automática hacen esto: esta debería ser la norma para las aplicaciones de mercado masivo cuando hay muchos usuarios.

Todo lo anterior puede conducir a una lógica compleja que es difícil de probar. Probar los instaladores lleva mucho tiempo, ya que debe intentar adivinar cada estado en el que se encuentra la máquina de un usuario. Por lo tanto, a menudo es mejor que un instalador sea simple y siempre funcione, incluso si esto conlleva algunos reinicios más para el usuario .

No es frecuente que un usuario decida comprar una aplicación diferente debido al reinicio del instalador, por lo que el vendedor pasa el tiempo (dinero) trabajando en lo que se necesita para que el usuario compre sus aplicaciones.

¿Con qué frecuencia ha tenido un problema después de instalar una aplicación que se solucionó cuando reinició? Piense en los costos de soporte de muchos usuarios llamando por teléfono con problemas que se resuelven solo con un reinicio. Como desarrollador, puede ser muy tentador conseguir que el usuario reinicie siempre después de instalar su software, incluso cuando cree que no es necesario.