如果Linux内核自行删除会发生什么?有没有时间它不能再删除文件因为rm或用于删除的程序也被删除了?
问候。
答案 0 :(得分:2)
问题是(除了偏离主题)本身有些错误,因为rm
不是内核的一部分,而是内置shell或单独的用户级程序。不可否认,rm
使用内核提供的系统调用,但这是无关紧要的。
内核本身从压缩映像加载并锁定在RAM中。在重新启动之前是否删除压缩的图像并不重要(这将导致启动加载程序失败,如#34; vmlinuz未找到")。你无法从RAM中删除内核(好吧,除了重启......)。
此外,在大多数情况下,无论你是否删除文件,包括正在运行的程序的可执行文件,都无关紧要(如果我们可能如此令人生畏,以致于调用内核"程序&# 34;暂时)在Linux下,因为删除文件只是删除了链接,而不是文件。这是Windows典型的假设,删除文件会做出邪恶的破坏性事情 在类Unix系统下,完全可以在程序运行时删除(或替换)程序,并且它根本不会引起任何问题。您将删除文件系统中的名称,即全部。任何打开的描述符都将保持有效,直到最后一个描述符关闭,原始文件将保持原样,对于任何先前获得句柄的观察者来说,并且它将会“消失”。对于每个试图在以后获得它的人。