Como apt-get remove xterm
passa? E depois de desinstalado, xterm
não fecha e continua a funcionar normalmente.
O xterm
processo é armazenado em cache na RAM enquanto está em execução?
Como apt-get remove xterm
passa? E depois de desinstalado, xterm
não fecha e continua a funcionar normalmente.
O xterm
processo é armazenado em cache na RAM enquanto está em execução?
Respostas:
Nem tanto. O arquivo já está aberto pelo programa. Excluir o arquivo (e substituí-lo por outra versão) não afeta o programa em execução porque o arquivo original é mantido aberto (embora sem um nome no disco para abri-lo novamente) até que o programa seja concluído. Somente quando todos os identificadores do arquivo estão fechados, seus blocos de dados no disco são liberados. Até então, o arquivo aberto pode ser lido e gravado como normalmente - a única mudança é que ninguém mais pode abri-lo, pois seu nome foi removido.
Enquanto partes do programa já podem ter sido lidas no RAM quando são excluídas, elas ainda podem ser descartadas e relidas posteriormente, ou novas partes do programa que não foram executadas anteriormente ainda podem ser carregadas do arquivo excluído.
rm -rf /
obras .....
rm -rf /
não vai funcionar se você tentar executá-lo uma segunda vez logo depois;)
lsof
saída e sei que é como um arquivo 'zombie' se parece ... mas existe alguma maneira de salvar o conteúdo desse arquivo de desaparecer quando o último identificador de arquivo morre?
root
poderá criar um nome para ele (e, assim, impedir a exclusão) usando a linkat
chamada de sistema. Mas os executáveis e as bibliotecas são mapeados na memória, o que não requer um identificador de arquivo. Não conheço nenhuma maneira de manipular um arquivo que só existe porque é mapeado na memória. Embora os executáveis possam ser acessados /proc
enquanto estão em execução, apenas as bibliotecas e outros arquivos mapeados na memória podem estar além da recuperação. Se você quiser mais detalhes sobre isso, faça-o como uma pergunta separada.
O
xterm
processo é armazenado em cache na RAM enquanto está em execução?
Exatamente. É semelhante ao processo que permite que você instale atualizações nas coisas enquanto elas estão sendo executadas sem elas travarem. E também por que você precisa reiniciar os serviços depois de atualizá-los. Uma vez que algo está sendo executado, seu binário está na memória.
Se depender de outros arquivos (que não estejam em um estado "aberto" retido) que sejam removidos ou substituídos, isso poderá causar problemas, mas para algo tão discreto quanto xterm
isso não é um problema.
Na verdade, é uma característica de como os computadores funcionam: quando um programa é chamado, ele é realmente carregado na memória e funciona a partir daí.
Um arquivo realmente funciona da mesma maneira. Para evitar problemas, muitos arquivos nos sistemas UNIX-ish criam bloqueios.
O enigma real é por que você não pode fazer coisas semelhantes e semelhantes no Windows.
Esse recurso é realmente o que permite atualizar todo o sistema, incluindo os programas ativos em seu sistema. ;)
apt-get
está desinstalandoxterm
e não tem idéia de que de alguma forma depende de umxterm
processo - então é sobre "Por que o xterm pode ser desinstalado durante a execução?". Boa pergunta.