Почему обновление MacOS / iOS занимает так много времени?

11

Даже на iMac Pro обновление операционной системы все еще занимает некоторое время (возможно, 15 минут) (после того, как все загружено). В течение этого времени я не могу пользоваться компьютером.

Это почему? Что он на самом деле делает? Почему этот процесс не простая перезагрузка?

Обратите внимание, я не спрашиваю, почему требуется перезагрузка. Как разработчик программного обеспечения, я полностью осознаю, почему требуется перезагрузка.

Также обратите внимание . Очевидной причиной, по которой обновление может занять некоторое время, является миграция файловой системы (например, миграция HFS + → APFS). Apple выполнила некоторые тестовые миграции, прежде чем развернуть последнюю вещь. Однако большинство обновлений ОС не связано с изменениями в файловой системе AFAIK.

Этот вопрос похож на вопрос: почему проверка обновления программного обеспечения OS X занимает так много времени? о другом процессе обновления, который займет некоторое время. Существуют особенности macOS и iOS, которые стоит учитывать при ответе на этот вопрос. Например: оба поставляются с драйверами, необходимыми для всех поддерживаемых систем.

Grg
источник
6
Я голосую, чтобы закрыть этот вопрос как «не по теме» в соответствии с опубликованными правилами вопроса. Вопросы, которые спрашивают, почему Apple сделала, не сделали, могут или не могут что-то сделать, не известны, потому что эта группа не может ответить на них.
ФСБ
5
@fsb Типичная чрезмерная модерация, которая отключает людей от этих сайтов.
3
Я не делал это для «чрезмерной модерации». Первоначально перед редактированием ваш вопрос был сформулирован так: почему Apple требует перезагрузки. То, как я это читал, было не по теме. Чтобы ответить на вопрос, требуется более одного голоса, требуется 4 голоса. Эти сайты помогают многим людям, гарантируя, что вопросы могут иметь и получать точные ответы. Пожалуйста, ознакомьтесь с разделом Как спрашивать советы о том, как задавать вопросы, на которые можно получить хорошие ответы.
ФСБ
1
@fsb Это было ясно до редактирования. «Почему обновления ОС не просто перезагрузка?» не "Почему обновления ОС требуют перезагрузки?" Затем я упомянул: «Почему этот процесс не простая перезагрузка?» Затем я упоминаю «и затем перезагрузка». Вы неправильно поняли исходный вопрос, но не беспокойтесь.
5
Это совершенно правильный вопрос. Это не «Почему Apple делает X, Y или Z», а «почему процесс занимает так много времени?» который носит технический характер. Номинация на повторное открытие.
Аллан

Ответы:

4

Почему этот процесс не простая перезагрузка?

Общий ответ здесь - это зависит. Это сильно зависит от того, что нужно сделать. Обновление, которое вы делаете для своей системы, может значительно отличаться от того, что я делаю для моей системы. Для данного обновления может потребоваться только перезапуск службы или для обновления самого ядра.

Почему это [я не могу использовать компьютер]?

Как правило, по той же причине вы не можете использовать приложение (Word, Excel, Numbers, iTerm, Adobe Photoshop и т. Д.), Которое находится в процессе обновления. Файлы должны быть закрыты, прочитаны, проанализированы, скопированы соответствующие патчи / обновления и перезапущено приложение.

При обновлении ОС должно происходить то же самое, и обычно это делается (особенно когда речь идет об обновлениях на уровне ядра) в однопользовательском режиме.

Как правило, вы увидите загруженные обновления, система начнет выключение, примененные обновления, перезагрузку и «завершение» обновлений с последующей обычной загрузкой. Вы не можете использовать компьютер во время всего этого.

Что он на самом деле делает?

Это зависит. Это может быть что угодно, от исправления файла конфигурации до прошивки прошивки какого-либо типа.

Если система включена /System, почему обновление ОС не просто создает /NewSystem

Во-первых, /Systemзащищен SIP, поэтому чтобы его отключить, вам нужно загрузиться с другой точки монтирования. * Во- вторых, то , как вы смотрите на это аналогично делать домашний ремонт сбросами новый дом рядом со старым и говорить людям , чтобы просто двигаться в. Это не так , как это работает.

Многое должно произойти, наименьшее из которых - создание точек восстановления (в случае сбоя резервного копирования). Таким образом, это означает, что копия рабочей системы создана, применено обновление, проверено обновление и (если все исправно) точка восстановления удалена.

В случае обновлений прошивки необходимо проверить изображения (т. Е. Вам не нужна прошивка Mac mini на Mac Pro), проверить контрольные суммы, создать резервную копию изображений, применить их, проверить, удалить старые и повторно инициализировать систему. Опять же, ничего нельзя сделать, когда вы вошли в систему, и ничего не сделать, просто «сбросив» файлы в каталоге.

Обновление - это процесс, и все это требует времени.


* SIP предназначен для защиты системы путем предотвращения изменений в ОС. Разрешение ОС изменять систему «на лету» сводит на нет безопасность, которую она пытается достичь.

Аллан
источник
Спасибо за ваш ответ Аллан. Итак, я могу, как root, не нарушая SIP, создать архив системного каталога (только что попробовал). Да, вам нужно было бы отключить SIP, чтобы переключиться на новый системный каталог, но это не займет значительного времени, если /NewSystemоно уже создано .
Это не так, как это работает. Кроме того .... установка может занять полчаса или больше, и технически это просто копирование файлов. Обновление делает намного больше, чем просто копирование файлов.
Аллан
«Опять же, ничего нельзя сделать, если вы вошли в систему». Почему бы и нет?
Можете ли вы обновить приложение во время его работы? Та же концепция, но гораздо более сложная. Ваша ОС работает (файлы открыты и защищены). Вы должны убить процессы, снять защиту (больше, чем просто запустить sudo) и исправить систему. Если это обновление ядра, вы должны выключить все, потому что ничего не будет написано.
Аллан
Нет, но вы можете выполнить большую часть работы по обновлению приложения во время его работы. То есть: распаковка, применение разностных обновлений для создания новой структуры каталогов и проверка контрольных сумм. Я не вижу обновление ОС, как значительно отличается. Мы могли бы попасть в сорняки здесь.
3

Перезагрузка компьютера для некоторых обновлений операционной системы требуется для всех операционных систем, а не только для MacOS.

На самом деле, в случае обновления , иногда перезагрузка не требуется, когда она все еще используется как часть процесса обновления, но это только в тех случаях, когда большинству пользователей проще выполнить перезагрузку. Например, некоторые обновления системы вносят изменения в такие вещи, как сетевая служба, и, хотя вы можете избежать перезапуска этого компьютера, а не всего компьютера, большинству пользователей просто проще выполнить перезагрузку, чем выполнить шаги по перезагрузке сети. служба.

Однако в большинстве случаев требуется перезагрузка, потому что это действительно необходимо. Существует множество ресурсов операционной системы, которые используются приложениями, включая сторонние приложения, и их обновление, когда пользователь вошел в систему, просто не будет легкой задачей и фактически может привести к повреждению файла и т. Д.

Кроме того, в случае обновления встроенного программного обеспечения, безусловно, требуется перезагрузка. Кроме того, несколько лет назад Apple начала автоматически включать обновления прошивки (если / когда это необходимо) в обновления / обновления macOS, поэтому непросто проверить, на каких устройствах обновления прошивки были включены в обновление / обновление. Несмотря на то, что обновления прошивки требуют перезагрузки, просто нет возможности обойти это.

Другим примером является обновление ресурсов, необходимых для использования оборудования. В некоторых случаях требуется перезагрузка, в других - нет.

Наконец, с точки зрения вашего последнего вопроса о том, почему не просто создать новую систему , а затем с этим становятся активными после следующей перезагрузки, в то время как это было бы технически возможно это действительно не практично. Системный каталог имеет размер в ГБ, и это займет гораздо больше времени и потребует гораздо большего объема свободного места на загрузочном томе.

Мономет
источник
У меня не было вопроса «почему ОС не может быть обновлена ​​без перезагрузки?». Вот почему этот процесс занимает так много времени и блокирует пользователя? Кроме того, жесткие ссылки ( en.wikipedia.org/wiki/Hard_link ) могут быть использованы для значительного сокращения времени и места, необходимых для обновления. (Примечание: я - разработчик программного обеспечения)
2
@Taylor специально: OTA iOS обновления, они поставляются в виде дифференциальных патчей, которые необходимо применить к существующим файлам. Как OTA, так и не OTA обновления для iOS по-прежнему хранятся на зашифрованном устройстве и должны быть зашифрованы как часть процесса установки. Шифрование вещей требует времени. Единственные, кого я знаю, кто знает с полной уверенностью, почему эти решения были приняты, - это команда разработчиков в Купертино.
Scottmeup