为什么某些操作系统需要重新启动才能执行某些任务?

为什么某些操作系统需要重新启动才能执行某些任务?

Windows 在更新或安装大型程序后总是需要重新启动。Linux 通常不需要重新启动,但偶尔需要。

在我看来,操作系统应该能够在运行时触摸/编辑它需要的任何内容,或者至少关闭一个进程,更新它,然后以对用户的最少干扰重新启动它。

  1. 从技术上讲,计算机正在做什么,需要重新启动?
  2. 为什么不重新启动就无法更新或安装程序?
  3. 反问:为什么微软或其他公司还没有找到无需重启就能更新/安装程序的方法?

答案1

基本上,重启将取决于软件所做的更改回答您的问题:

从技术上讲,计算机正在做什么,需要重新启动?

如果该软件安装在 Windows 上,通常重启将修复软件的注册表更改。

为什么不重新启动就无法更新或安装程序?

假设您的安装软件创建了一个新用户帐户,这不可能不影响/中断内核的操作。也就是说,软件中所做的更改会中断操作系统的基本属性。为了使过程顺利进行,软件供应商会强迫您重新启动。

为什么微软或其他公司还没有找到无需重启就能更新/安装程序的方法?

这是它们的核心架构。您可能注意到 Linux 机器不需要重新启动,因为:

booby 的回答

这种行为的主要原因是 Linux 不锁定执行的文件和库,这样可以直接替换这些文件,并且只需要重新启动应用程序。对于安装,这是包管理系统的原因,而在 Windows 中,每个程序都会安装所有需要的库(即使它们已经安装,但在使用时它们会被锁定,需要重新启动才能清除这种情况),在 Linux 中,应用程序仅引用安装一次(并且永远不会再次安装)的所需包,从而减少了开销。

答案2

这是一个很好的类比解释:

假设有一群人和他们共用的几辆车。当有人不使用汽车时,你会把钥匙放在一个地方。所以你去储藏区,拿一把钥匙,开车,然后把钥匙放回去。

现在假设你想改变钥匙存放地点。你不能让人们一次只换一个,因为你可能会把车钥匙留在没人能找到的地方。最简单、最安全的方法是摧毁所有的人和车,然后让每个人都使用新的位置重新开始。(好吧,这个比喻有点不恰当。)

简而言之,您无法更改以新方式创建任何类型的跟踪,除非所有可能访问该跟踪的程序都理解新方法。这意味着要么重新启动,要么制定非常复杂的迁移计划。

相关内容