Comment ça apt-get remove xterm
passe? Et après avoir été désinstallé, xterm
ne se ferme pas et continue de fonctionner normalement.
Le xterm
processus est-il mis en cache dans la RAM pendant son exécution?
Comment ça apt-get remove xterm
passe? Et après avoir été désinstallé, xterm
ne se ferme pas et continue de fonctionner normalement.
Le xterm
processus est-il mis en cache dans la RAM pendant son exécution?
Réponses:
Pas assez. Le fichier est déjà ouvert par le programme. La suppression du fichier (puis son remplacement par une autre version) n'affecte pas le programme en cours d'exécution car le fichier d'origine est maintenu ouvert (mais sans nom sur le disque pour l'ouvrir à nouveau) jusqu'à ce que le programme en ait fini avec lui. Ce n'est que lorsque toutes les poignées du fichier sont fermées que ses blocs de données sur le disque sont libérés. Jusque-là, le fichier ouvert peut être lu et écrit comme d'habitude - le seul changement est que personne d'autre ne peut l'ouvrir puisque son nom a été supprimé.
Bien que certaines parties du programme aient déjà été lues dans RAM lors de sa suppression, elles peuvent toujours être supprimées et relues plus tard, ou de nouvelles parties du programme qui n'avaient pas été précédemment exécutées peuvent toujours être chargées à partir du fichier supprimé.
rm -rf /
rm -rf /
ne fonctionnera pas si vous essayez de l'exécuter une deuxième fois immédiatement après;)
lsof
sortie, et je sais que c'est à quoi ressemble un fichier 'zombie' ... mais est-il possible de sauver le contenu d'un tel fichier de disparaître quand le dernier descripteur de fichier meurt?
root
est possible que vous puissiez lui attribuer un nom (et ainsi empêcher sa suppression) à l'aide de l' linkat
appel système. Mais les exécutables et les bibliothèques sont mappés en mémoire, ce qui ne nécessite pas de descripteur de fichier. Je ne connais aucun moyen d'obtenir une poignée sur un fichier qui n'existe que parce qu'il est mappé en mémoire. Bien que les exécutables soient accessibles /proc
pendant leur exécution, ce ne sont que les bibliothèques et autres fichiers mappés en mémoire qui peuvent être au-delà de la récupération. Si vous souhaitez plus de détails à ce sujet, vous devez le poser comme une question distincte.
Le
xterm
processus est-il mis en cache dans la RAM pendant son exécution?
Exactement. Il est similaire au processus qui vous permet d'installer des mises à jour de choses pendant qu'elles s'exécutent sans qu'elles ne se bloquent. Et aussi pourquoi vous devez redémarrer les services après les avoir mis à jour. Une fois que quelque chose tourne, son binaire est en mémoire.
Si cela dépend d'autres fichiers (qui ne sont pas dans un état «ouvert» maintenu) qui sont supprimés ou remplacés, cela pourrait causer des problèmes mais pour quelque chose d'aussi discret que xterm
, ce n'est pas un problème.
C'est en fait une caractéristique du fonctionnement des ordinateurs: lorsqu'un programme est appelé, il est en effet chargé dans la mémoire et il fonctionne à partir de là.
Un fichier fonctionne en fait de la même manière. Pour éviter les problèmes, de nombreux fichiers des systèmes UNIX créent des verrous.
L'énigme réelle est la raison pour laquelle vous ne pouvez pas faire des choses similaires et similaires dans Windows.
Cette fonctionnalité est en fait ce qui vous permet de mettre à jour l'ensemble du système, y compris les programmes actifs sur votre système. ;)
apt-get
désinstallexterm
et n'a aucune idée que cela dépend en quelque sorte d'unxterm
processus - il s'agit donc de "Pourquoi xterm peut-il être désinstallé en cours d'exécution?". Bonne question.