Чому оновлення macOS / iOS займає так довго?


11

Навіть на iMac Pro, для оновлення ОС (після завантаження всього) потрібно ще деякий час (можливо, 15 хвилин). За цей час я не можу користуватися комп’ютером.

Чому так? Що це насправді робить? Чому цей процес не є простим перезавантаженням?

Зауважте, я не запитую, чому потрібна перезавантаження. Як розробник програмного забезпечення я повністю усвідомлюю, чому потрібна перезавантаження.

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

Це питання схоже на Чому перевірка оновлення програмного забезпечення OS X займає так довго? про інший процес оновлення, який потребує певного часу. Існують специфіки macOS та iOS, які варто розглянути, відповідаючи на це питання. Наприклад: обидва постачаються з драйверами, необхідними для всіх підтримуваних систем.


6
Я голосую, щоб закрити це питання як "поза темою" згідно з опублікованими вказівками щодо питань. Питання, які задають питання, чому Apple зробив, не зробив, не може чи не може щось зробити, не записуються, тому що на них не може відповісти ця група.
fsb

5
@fsb Типова непомірність, яка відключає людей на ці сайти.

3
Я цього не робив для 'надмірної поміркованості'. Спосіб, який ви формулювали, спочатку перед редагуванням, запитував, чому Apple вимагає перезавантаження. Те, як я прочитав це, було поза темою. Для закриття питання потрібно більше голосів однієї людини, 4 голоси. Ці веб-сайти допомагають багатьом людям, гарантуючи, що на запитання можуть бути точні відповіді. Будь ласка, перегляньте, як запитати поради щодо того, як задавати питання, на які можна отримати хороші відповіді.
fsb

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 для переходу на новий системний dir, але це не займе значного часу, якщо /NewSystemвоно вже побудовано.

Це не так, як це працює. Крім того .... установка може зайняти півгодини або більше, а технічно це лише копіювання файлів. Оновлення робить набагато більше, ніж просто копіює файли.
Аллан

"Знову ж, нічого не можна зробити, коли ви ввійшли в систему" Чому б точно так?

Чи можете ви оновити додаток під час роботи програми? Те саме поняття, але набагато складніше. Ваша ОС працює (файли відкриті та захищені). Вам доведеться вбити процеси, зняти захист (більше ніж просто запущений sudo) та виправити систему. Якщо це оновлення ядра, вам доведеться збити все, тому що нічого не буде записано.
Аллан

Ні, але ви можете виконати переважну більшість робіт над оновленням програми під час роботи програми. Тобто: розпакування, застосування диференціальних оновлень для побудови нової структури каталогу та контрольна сума. Я не бачу оновлення ОС настільки відмінним. Тут ми могли б потрапити в бур’яни.

3

Перезавантаження комп'ютера для деяких оновлень / оновлень операційної системи потрібно для всіх операційних систем, а не лише для macOS.

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

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

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

Інший приклад - оновлення ресурсів, необхідних для використання апаратних засобів. У деяких випадках потрібна перезавантаження, в інших - не.

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


Моє запитання не було "чому не можна оновити ОС без перезавантаження?". Ось чому процес займає так довго і блокує користувача? Також жорсткі посилання ( en.wikipedia.org/wiki/Hard_link ) можуть бути використані для різкого скорочення часу та місця, необхідних для оновлення. (Примітка: я розробник програмного забезпечення)

2
@Taylor спеціально re: оновлення OTA iOS, вони постачаються у вигляді диференційних патчів, які потрібно застосувати до існуючих файлів. Як OTA, так і не OTA оновлення для iOS все ще зберігаються на зашифрованому пристрої і їх потрібно зашифрувати в рамках процесу встановлення. Шифрування речей вимагає часу. Я знаю єдиних людей, які знають із цілковитою впевненістю, чому ці рішення приймалися, - це команда розробників у Купертіно.
Scottmeup
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.