¿Cómo apt-get remove xterm
pasa? Y después de que se haya desinstalado, xterm
no se cierra y continúa funcionando normalmente.
¿El xterm
proceso se almacena en caché en la RAM mientras se está ejecutando?
¿Cómo apt-get remove xterm
pasa? Y después de que se haya desinstalado, xterm
no se cierra y continúa funcionando normalmente.
¿El xterm
proceso se almacena en caché en la RAM mientras se está ejecutando?
apt-get
está desinstalandoxterm
y no tiene idea de que de alguna manera depende de unxterm
proceso, por lo que se trata de "¿Por qué se puede desinstalar xterm mientras se ejecuta?". Buena pregunta.Respuestas:
No exactamente. El archivo ya está abierto por el programa. Eliminar el archivo (y luego reemplazarlo con otra versión) no afecta el programa en ejecución porque el archivo original se mantiene abierto (aunque sin un nombre en el disco para abrirlo nuevamente) hasta que el programa haya terminado con él. Solo cuando todos los identificadores del archivo están cerrados, se liberan sus bloques de datos en el disco. Hasta entonces, el archivo abierto se puede leer y escribir de la manera habitual: el único cambio es que nadie más puede abrirlo ya que se ha eliminado su nombre.
Si bien es posible que algunas partes del programa ya hayan sido leídas en la memoria RAM cuando se eliminan, aún pueden descartarse y volverse a leer más tarde, o partes nuevas del programa que no se habían ejecutado previamente aún se pueden cargar desde el archivo eliminado.
fuente
rm -rf /
funciona .....rm -rf /
no funcionará si intentas ejecutarlo por segunda vez inmediatamente después;)lsof
salida, y sé que así es como se ve un archivo 'zombie' ... pero ¿hay alguna forma de salvar el contenido de dicho archivo? cuando muere el último identificador de archivo?root
posible que pueda crear un nombre para él (y así evitar la eliminación) mediante lalinkat
llamada al sistema. Pero los archivos ejecutables y las bibliotecas están mapeados en memoria, lo que no requiere un identificador de archivo. No conozco ninguna forma de obtener un identificador en un archivo que solo existe porque está mapeado en memoria. Aunque se puede acceder a los ejecutables/proc
mientras se están ejecutando, por lo que solo las bibliotecas y otros archivos de memoria asignados pueden estar más allá de la recuperación. Si desea obtener más detalles al respecto, debe hacer una pregunta por separado.Exactamente. Es similar al proceso que le permite instalar actualizaciones de cosas mientras se ejecutan sin que se bloqueen. Y también por qué tiene que reiniciar los servicios después de actualizarlos. Una vez que algo se está ejecutando, su binario está en la memoria.
Si depende de otros archivos (que no están en un estado "abierto" retenido) que se eliminan o reemplazan, eso puede causar problemas, pero por algo tan discreto como
xterm
, eso no es un problema.fuente
De hecho, es una característica de cómo funcionan las computadoras: cuando se invoca un programa, de hecho se carga en la memoria y funciona desde allí.
Un archivo realmente funciona de la misma manera. Para evitar problemas, muchos archivos en sistemas UNIX-ish crean bloqueos.
El acertijo real es por qué no puedes hacer tales y otras cosas similares en Windows.
Esta característica es en realidad lo que le permite actualizar todo el sistema, incluidos los programas que están activos en su sistema. ;)
fuente