![是什么原因导致 Windows 需要不断重启而 Linux 却不需要?](https://linux22.com/image/1469729/%E6%98%AF%E4%BB%80%E4%B9%88%E5%8E%9F%E5%9B%A0%E5%AF%BC%E8%87%B4%20Windows%20%E9%9C%80%E8%A6%81%E4%B8%8D%E6%96%AD%E9%87%8D%E5%90%AF%E8%80%8C%20Linux%20%E5%8D%B4%E4%B8%8D%E9%9C%80%E8%A6%81%EF%BC%9F.png)
和许多人一样,我的电脑也运行双系统。在 Windows 上,重要更新需要不断重启,而在 Linux 上,我认为这种情况从未发生过。每个操作系统的哪些属性决定了这是否可行?
答案1
这是工程决策的结果。
在 Linux 系统上,可以删除仍在使用的文件;文件系统本质上使用一种引用计数形式,打开文件只是对它的另一个引用。当您关闭它时,文件将被清理。因此,可以替换核心操作系统代码和数据文件,而无需关闭并重新启动它们(也称为重启)。
在 Windows 上,打开文件锁定它在文件系统中,并且无法删除。这意味着当前正在运行的代码无法在不重新启动的情况下进行更新。但这也意味着您可以始终确切地知道系统上运行的是什么版本;在 Linux 模型下,有可能收到重要的系统软件更新,成功应用它,但仍然无法在系统上运行,因为旧的、未更新的版本仍在运行。
就像计算中的大多数事物一样,这是一种工程权衡。
答案2
这是预测用户期望的结果。
Linux 系统模仿服务器上运行的 unix。正常运行时间是这些社区的一大亮点。任何减少正常运行时间的行为都是不好的。这是计算机有多个用户并且调度停机时间必须与多个用户协调的预期带来的副作用。
Windows 是为 PC 市场设计的。在推出时,知道可以退出一个程序并启动另一个程序而无需重新启动是经验丰富的计算机用户的标志。因此,在设计 ntfs 时没有理由不使用文件名作为主要标识符。