【问题标题】:What would happen if the Linux kernel deleted itself? [closed]如果 Linux 内核自行删除会发生什么? [关闭]
【发布时间】:2014-02-07 23:25:23
【问题描述】:

如果 Linux 内核自行删除会发生什么?会不会有一段时间因为 rm 或者用来删除的程序也被删除了而不能再删除文件了?

问候。

【问题讨论】:

标签: linux linux-kernel


【解决方案1】:

这个问题(除了跑题之外)本身有些错误,因为rm 不是内核的一部分,而是一个内置的 shell 或一个单独的用户级程序。诚然,rm 使用内核提供的系统调用,但这无关紧要。

内核本身是从压缩映像加载并锁定在 RAM 中的。在重新启动之前是否删除压缩映像并不重要(这将失败,引导加载程序会向您显示“vmlinuz not found”之类的消息)。您无法从 RAM 中删除内核(嗯,除了重新启动...)。

此外,在大多数情况下,在 Linux 下是否删除文件甚至包括正在运行的程序的可执行文件(如果我们可能暂时将内核称为“程序”)都无关紧要,因为删除文件只会删除链接,而不是文件。这是 Windows 的典型假设,即删除文件会造成邪恶的破坏性事情。
在类 Unix 系统下,完全可以在程序运行时删除(或替换)程序,而且根本不会引起任何问题。您将删除文件系统中的名称,仅此而已。任何打开的描述符在最后一个被关闭之前都将保持有效,原始文件对于任何较早获得句柄的观察者将保持原样,对于以后试图获取它的每个人来说,它将“消失”。

【讨论】:

    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 2020-11-12
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多