Ubuntu no necesita reiniciarse después de completar una actualización de software. ¿Por qué?

Hoy publico esto de Ubuntu que he visto en Quora y me ha resultado curioso solo por dejar el día con algo publicado ya que esta mañana hemos estado de motos toda la mañana y por cierto, ha sido un gozada.

Ubuntu

Ubuntu no necesita reiniciarse después de completar una actualización de software. ¿Por qué?

En realidad la pregunta debería ser al revés: ¿por qué es necesario que Windows se reinicie después de actualizar programas que no forman parte del sistema operativo? La respuesta va al grano de la diferencia entre Windows y sistemas del estilo UNIX, incluyendo a Linux (todas las versiones, no solo Ubuntu), concretamente la semántica de las operaciones sobre archivos.

En UNIX la acción de borrar un archivo no tiene ningún efecto sobre los procesos que ya tienen abierto dicho archivo. Ellos simplemente siguen usándolo como si no pasara nada. Esto quiere decir que una actualización de software puede borrar archivos y crear nuevas versiones de los mismos sin afectar los procesos en ejecución, incluso si el nuevo archivo tiene el mismo nombre que el viejo. La versión vieja y la nueva existen en paralelo hasta que la vieja ya no se necesite. La nueva versión será el archivo visto por todo proceso que lo abre después de su creación, mientras los procesos existentes siguen usando la vieja hasta que terminen (pero nótese que si lo cierran y lo vuelven a abrir, verán la nueva versión).

¿Por qué importa esto? Porque los ejecutables y las librerías son archivos, de modo que actualizar un programa o librería no va a afectar una instancia en ejecución del programa viejo que utiliza las librerías viejas. El programa viejo persiste hasta que su última instancia (proceso) termine, en cuyo momento el sistema se encargará de removerlo automáticamente. Mientras tanto, nuevas instancias del programa utilizarán la nueva versión, con nuevas librerías si es el caso.

Puede preguntarse si esto es estable. En teoría uno podría imaginar un cambio radical (digamos en el formato de los datos) que implica una incompatibilidad entre las dos versiones, que a su vez conduce a problemas. En la práctica, nunca he visto tal caso en mis más de 40 años de experiencia con UNIX y Linux, y si acaso pensara que pudiera pasar (porque los formatos de datos sí cambian), tengo la opción de reiniciar los procesos en cuestión. El asunto es que es mi decisión, no algo obligado por el sistema. En la distro que utilizo (Fedora) el manejador de actualizaciones (dnf) me alerta sobre los procesos que podrían verse afectados, pero puedo posponer una reinicialización hasta cuando me convenga.

Windows no hace nada de esto. Es por eso que cuando instalas algo te sale una advertencia sobre la necesidad de “cerrar las aplicaciones activas”: el instalador no sabe si puede interferir con una aplicación que casualmente está usando alguna librería o archivo que quiere cambiar. Y muchas veces su único remedio es reiniciar todo el sistema para estar seguro que todo este tranquilo antes de proceder.

Último comentario: algunas versiones recientes del ambiente Gnome tienen un instalador gráfico de software que sí reinicializa el sistema. Sin embargo, esto es Linux y no tienes que usarlo si no quieres. Yo por mi parte prefiero usar dnf desde la línea de comandos y vigilar lo que esta haciendo. La única vez cuando forzosamente tienes que reiniciar es cuando se actualiza el núcleo (kernel), y aún en este caso lo haces a tu discreción. El nuevo núcleo será instalado en el sistema de archivos pero no tendrá efecto hasta después de reiniciar.

Y esto sobre Ubuntu es todo por hoy, domingo 27 de noviembre de 2022, el último domingo del mes.

A empezar mañana una semana como toca. ¡Besos y abrasos, babys!

¡Deja un comentario! Es gratis y puedes ayudar ?

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.