2014-01-18 85 views
-4

如果Linux内核自行删除会发生什么情况?会不会有一段时间无法删除文件,因为rm或用于删除的程序也被删除了?如果Linux内核自行删除会发生什么情况?

问候。

+1

正在从一个基本上这样做并设法恢复的肠道读博客。非常有趣的阅读 - http://fendrich.se/blog/2010/08/27/rescuing-hosed-system-using-only-bash/ – Graeme

回答

2

问题是(除了脱离主题外)本身有点不对,因为rm不是内核的一部分,而是一个内置的shell或一个单独的用户级程序。无可否认,rm使用内核提供的系统调用,但这是无关紧要的。

内核本身从压缩映像加载并锁定在RAM中。直到重新启动(这会在引导加载程序给出诸如“vmlinuz未找到”之类的消息时会失败),是否删除压缩的映像并不重要。你无法从RAM中删除内核(好吧,除了重新启动...)。

此外,在大多数情况下,无论您是否删除一个文件,包括正在运行的程序的可执行文件(如果我们可能在一段时间内将内核调用为一个“程序”这一令人生畏的事情) ,因为删除文件只是删除链接,而不是文件。这是一种Windows典型的假设,即删除文件会造成破坏性的恶意行为。
在类Unix系统下,完全可以在程序运行时删除(或替换)程序,并且根本不会引起任何问题。您将删除文件系统中的名称,就这些。任何开放的描述符将保持有效,直到最后一个关闭为止,原始文件将保持原样,对于任何先前获得处理的观察者来说都是如此,并且对于每个尝试稍后获取它的人都会“消失”。

相关问题