为什么macOS / iOS升级需要这么长时间?


10

即使在iMac Pro上,也需要花费一些时间(可能是15分钟)来升级操作系统(下载所有内容之后)。在这段时间内,我无法使用计算机。

这是为什么?它实际上在做什么?为什么此过程不是简单的重启?

请注意,我并不是在问为什么需要重启。作为软件开发人员,我完全知道为什么需要重新启动。

另请注意,升级可能需要一段时间的一个明显原因是文件系统迁移(例如HFS +→APFS迁移)。苹果甚至在推出最终产品之前就进行了一些测试迁移。但是,大多数操作系统升级不涉及对文件系统AFAIK的更改。

这是一个与为什么OS X软件更新检查需要这么长时间的问题类似的问题关于另一个升级过程需要一段时间。在回答这个问题时,值得考虑一下macOS和iOS的一些细节。例如:两者都附带所有受支持系统所需的驱动程序。


6
根据已发布的问题准则,我将投票结束该问题为“脱题”。询问Apple为什么做,不做,不能做某事的问题不在记录之列,因为该小组无法回答。
fsb

4
@fsb典型的过度节制会使人们无法访问这些站点。

3
我没有这样做是为了“过度节制”。最初在编辑之前,您的问题的措词方式就是询问Apple为什么要求重新启动。我读它的方式是题外话。要结束一个问题,需要超过1人的投票,而需要4票。这些站点通过确保问题可以得到并获得准确的答案来帮助许多人。请参阅“ 如何提问”获取有关如何提出能够获得良好答案的问题的提示。
fsb

1
@fsb在编辑之前很清楚。“为什么操作系统升级不只是重启?” 不是“为什么操作系统升级需要重新启动?” 然后我提到“为什么这个过程不是简单的重启?” 然后我提到“然后重新启动”。您误解了原始问题,但没有后顾之忧。

4
这是一个完全正确的问题。 这不是“为什么苹果要X,Y或Z”,而是“为什么一个过程需要这么长时间?” 本质上是技术性的。提名重新开放。
艾伦(Allan)

Answers:


4

为什么此过程不是简单的重启?

这里的总体答案取决于情况。 这在很大程度上取决于需要做什么。您对系统所做的更新可能与我在系统上所做的更新有很大不同。有问题的更新可能只需要重新启动服务,或者可能需要更新实际的内核。

为什么是[我无法使用计算机]?

通常,出于相同的原因,您不能使用正在升级的应用程序(Word,Excel,Numbers,iTerm,Adobe Photoshop等)。必须关闭,读取,分析文件,复制适当的补丁程序/更新,然后重新启动应用程序。

升级操作系统时,必须发生相同的事情,并且通常在单用户模式下完成此操作(特别是在涉及内核级别的升级时)。

通常,您会看到下载的更新,系统将开始关闭,应用更新,重新引导,并在正常启动后对更新进行“最终确定”。在任何一种情况下,您都无法使用计算机。

它实际上在做什么?

这取决于。从修补配置文件到刷新某种类型的固件,它可以是任何东西。

如果系统在运行中/System,为什么不升级OS就简单地创建一个 /NewSystem

首先,/System它受SIP保护,因此要禁用它,您实际上需要从其他安装点启动。* 其次,您的看待方式类似于将旧房子旁边的新房子倒掉并告诉人们搬进来进行房屋翻新。这不是它的工作方式。

必须发生许多事情,其中​​至少一部分是创建还原点(以防备份失败)。因此,这意味着创建了一个操作系统副本,应用了更新,检查了更新,并删除了恢复点(如果一切正常)。

如果是固件更新,则必须验证映像(即,Mac Pro上不希望使用Mac mini固件),校验和已验证,映像已备份,已应用,已验证,已删除旧映像并重新初始化了系统。同样,登录后将无法执行任何操作,仅通过“转储”目录中的文件也无法完成操作。

升级是一个过程,所有这些都需要时间。


* SIP旨在通过防止对OS进行更改来保护系统。允许操作系统“即时”更改系统会否定其试图实现的安全性。


感谢您的回答艾伦。好的,因此我可以作为root用户,而不会违反SIP,创建系统目录的存档(只需尝试一下)。是的,您需要禁用SIP才能切换到新的系统目录,但是如果/NewSystem已经构建,则不会花费大量时间。

那不是它的工作方式。此外...。安装可能需要半小时或更长时间,从技术上讲,这只是复制文件。更新不仅仅可以复制文件,还可以做很多事情。
艾伦(Allan)

“再次,登录后将无法执行任何操作”,为什么呢?

您可以应用运行更新应用吗?概念相同,但复杂得多。您的操作系统正在运行(文件已打开并受保护)。您必须终止进程,删除保护(不仅仅是运行sudo),然后修补系统。如果是内核更新,则必须停止所有操作,因为不会编写任何内容。
艾伦(Allan)

不可以,但是您可以在应用程序运行时完成大部分工作。即:解压缩,应用差异更新以构建新的目录结构以及校验和。我认为操作系统更新没有明显不同。我们可以在这里进入杂草。

3

对于所有操作系统(不仅仅是macOS),都需要重新引导计算机以进行某些操作系统更新/升级。

实际上,在进行更新的情况下,有时仍不需要重新启动,而仍将其用作更新过程的一部分,但这仅在大多数用户更容易重新启动的情况下才需要。例如,某些系统更新会更改诸如网络服务之类的内容,尽管您可以重新启动而不是重新启动整个计算机,但大多数用户进行重新启动比执行重新启动网络的步骤要容易得多服务。

但是,在大多数情况下,需要重新启动,因为这实际上是必要的。应用程序(包括第三方应用程序)使用了许多操作系统资源,并且在用户登录时更新这些资源并不是一件容易的事,并且实际上有可能导致文件损坏等。

同样,在固件更新的情况下,绝对需要重新启动。除此之外,几年前,Apple便开始自动在macOS更新/升级中包括固件更新(如果需要),因此要检查哪些设备在更新/升级中包含了固件更新并不容易。无论如何,固件更新都需要重新启动,但无法解决。

另一个示例是使用硬件所需的资源更新。在某些情况下,需要重新启动,而在其他情况下则不需要。

最后,在你为什么不只是创造一个最后的问题方面新的系统,然后为下一次重新启动后,这变得活跃,而这在技术上是可能真的是不实际的。系统目录的大小为GB,这将花费更长的时间,并且在引导卷上需要更多的可用空间。


我的问题不是“为什么不重新启动就无法升级操作系统?”。这就是为什么该过程要花这么长时间并将用户拒之门外吗?另外,可以使用硬链接(en.wikipedia.org/wiki/Hard_link)来大大减少升级所需的时间和空间。(注意:我是一名软件开发人员)

2
@Taylor专门说明:OTA iOS更新,它们以需要应用于现有文件的差异补丁的形式提供。iOS的OTA更新和非OTA更新都仍存储在加密设备上,并且在安装过程中需要进行加密。加密事物需要时间。我知道的唯一能完全确定为什么做出这些决定的人就是库比蒂诺的开发团队。
Scottmeup18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.