操作系统和内核究竟是如何自我更新的?

How exactly do operating system and kernals update themselves?

我想知道当设备获得更新时到底发生了什么(例如 iPhone?当前的 OS 是否进入 ram 或其他东西?设备固件是否处理它?

已经指出进程是非常依赖于系统的。但是,大多数系统更新 OS 或固件时都会遵循一些通用步骤。

  1. 某些通信渠道必须与受信任的外部实体存在。
  2. 现有的 OS 或固件已经存储在某处,例如在磁盘或闪存中。
  3. 来自外部实体的更新命令以及新数据(例如新版本的固件)。
  4. 数据经过真实性和完整性验证(是否真的来自国内,是否在途中损坏)。
  5. 新数据存储在磁盘或闪存中的备用位置。
  6. 更改了一些非易失性位置的指针,以便系统将使用新位置的 OS 或固件。
  7. 系统会自行重置。
  8. 系统启动时,它会看到指向新版本的指针并使用它。