Dlaczego aktualizacje systemu macOS / iOS trwają tak długo?

11

Nawet na komputerze iMac Pro aktualizacja systemu operacyjnego zajmuje trochę czasu (może 15 minut) (po pobraniu wszystkiego). W tym czasie nie mogę korzystać z komputera.

Dlaczego? Co to właściwie robi? Dlaczego ten proces nie jest prostym ponownym uruchomieniem?

Uwaga : nie pytam, dlaczego wymagany jest restart. Jako programista jestem w pełni świadomy, dlaczego konieczne jest ponowne uruchomienie komputera.

Uwaga : Wyraźnym powodem, dla którego aktualizacja może trochę potrwać, jest migracja systemu plików (na przykład migracja HFS + → APFS). Apple przeprowadziło kilka migracji testowych nawet przed wprowadzeniem ostatniej rzeczy. Jednak większość aktualizacji systemu operacyjnego nie wymaga zmian w systemie plików AFAIK.

To pytanie jest podobne do pytania: Dlaczego sprawdzenie aktualizacji OS X trwa tak długo? o kolejnym procesie aktualizacji. Istnieją odpowiedzi na to pytanie dotyczące macOS i iOS. Na przykład: oba są dostarczane ze sterownikami niezbędnymi dla wszystkich obsługiwanych systemów.

grg
źródło
6
Głosuję za zamknięciem tego pytania jako „nie na temat” zgodnie z opublikowanymi wytycznymi dotyczącymi pytań. Pytania, które zadają pytanie, dlaczego firma Apple zrobiła, nie zrobiła, nie może lub nie może zrobić czegoś, są nieoficjalne, ponieważ ta grupa nie może na nie odpowiedzieć.
fsb
5
@fsb Typowa nadmierna moderacja, która zniechęca ludzi do tych witryn.
3
Nie zrobiłem tego z powodu „nadmiernej moderacji”. Sposób, w jaki sformułowano twoje pytanie, pierwotnie przed edycją, pytał, dlaczego Apple wymaga ponownego uruchomienia. Sposób, w jaki go czytałem, był nie na temat. Zamknięcie pytania wymaga więcej niż 1 osoby, 4 głosów. Strony te pomagają wielu osobom, zapewniając, że pytania mogą zawierać dokładne odpowiedzi. Proszę zobaczyć, jak zapytać o wskazówki, jak zadawać pytania, które można dostać dobre odpowiedzi.
fsb
1
@fsb Było jasne przed edycją. „Dlaczego aktualizacje systemu operacyjnego nie są po prostu restartem?” nie brzmi „Dlaczego aktualizacje systemu operacyjnego wymagają ponownego uruchomienia?” Następnie wspomniałem „Dlaczego ten proces nie jest zwykłym ponownym uruchomieniem?” Potem wspominam „a następnie restartuję” Źle odczytałeś oryginalne pytanie, ale nie martw się.
5
To jest całkowicie poprawne pytanie. To nie jest „Dlaczego Apple ma X, Y lub Z”, ale raczej „dlaczego proces trwa tak długo?” który ma charakter techniczny. Nominacja do ponownego otwarcia.
Allan

Odpowiedzi:

4

Dlaczego ten proces nie jest prostym ponownym uruchomieniem?

Ogólna odpowiedź tutaj jest zależna. Zależy to w dużej mierze od tego, co należy zrobić. Aktualizacja, którą robisz w swoim systemie, może się znacznie różnić od mojej w moim. Ta aktualizacja może wymagać jedynie ponownego uruchomienia usługi lub aktualizacji aktualnego jądra.

Dlaczego to [Nie mogę korzystać z komputera]?

Z tego samego powodu nie można używać aplikacji (Word, Excel, Numbers, iTerm, Adobe Photoshop itp.), Która jest w trakcie aktualizacji. Pliki muszą zostać zamknięte, odczytane, przeanalizowane, odpowiednie łatki / aktualizacje skopiowane, a aplikacja uruchomiona ponownie.

Kiedy system operacyjny jest aktualizowany, to samo musi się zdarzyć i zwykle odbywa się to (szczególnie w przypadku aktualizacji poziomu jądra) w trybie pojedynczego użytkownika.

Zazwyczaj zobaczysz pobrane aktualizacje, system rozpocznie zamykanie, zastosowane aktualizacje, ponowne uruchomienie i „finalizację” aktualizacji, a następnie normalny rozruch. Nie możesz używać komputera w żadnym z tych przypadków.

Co to właściwie robi?

To zależy. Może to być wszystko, od łatania pliku konfiguracyjnego do flashowania oprogramowania układowego określonego typu.

Jeśli system jest /Systemwłączony, dlaczego uaktualnienie systemu operacyjnego nie jest po prostu tworzeniem /NewSystem

Po pierwsze, /Systemjest chroniony przez SIP, więc aby go wyłączyć, faktycznie musisz uruchomić system z innego punktu montowania. * Po drugie, sposób, w jaki na to patrzysz, jest analogiczny do remontu domu, zrzucając nowy dom obok starego i każąc ludziom się po prostu wprowadzić. To nie tak działa.

Musi się wydarzyć wiele rzeczy, z których najmniejszą jest tworzenie punktów przywracania (na wypadek awarii tworzenia kopii zapasowej). Oznacza to, że utworzono kopię działającego systemu, zastosowano aktualizację, sprawdzono aktualizację i (jeśli wszystko jest w porządku) usunięto punkt przywracania.

W przypadku aktualizacji oprogramowania układowego obrazy muszą zostać zweryfikowane (tzn. Nie chcesz oprogramowania Mac mini na komputerze Mac Pro), sumy kontrolne zweryfikowane, kopie zapasowe obrazów, zastosowane, zweryfikowane, stare usunięte i ponownie zainicjowane. Ponownie, nic nie można zrobić, gdy jesteś zalogowany i nic nie można zrobić, po prostu „zrzucając” pliki do katalogu.

Uaktualnienie to proces, a wszystko to wymaga czasu.


* SIP ma na celu ochronę systemu poprzez zapobieganie zmianom w systemie operacyjnym. Umożliwienie systemowi zmiany systemu „w locie” zniweczy bezpieczeństwo, które próbuje osiągnąć.

Allan
źródło
Dzięki za odpowiedź Allan. Ok, więc mogę, jako root, bez naruszania SIP, stworzyć archiwum katalogu systemowego (po prostu wypróbowałem). Tak, musisz wyłączyć SIP, aby przejść do nowego katalogu systemowego, ale nie zajęłoby to dużo czasu, jeśli /NewSystemjest już zbudowany.
To nie tak działa. Poza tym ... instalacja może potrwać pół godziny lub dłużej, a technicznie jest to po prostu kopiowanie plików. Aktualizacja robi znacznie więcej niż tylko kopiowanie plików.
Allan
„Ponownie nic nie da się zrobić, gdy jesteś zalogowany” Dlaczego nie, dokładnie?
Czy możesz zaktualizować aplikację podczas jej działania? Ta sama koncepcja, ale o wiele bardziej złożona. Twój system operacyjny jest uruchomiony (pliki są otwarte i chronione). Musisz zabić procesy, usunąć ochronę (nie tylko działającą sudo) i załatać system. Jeśli jest to aktualizacja jądra, musisz wszystko sprowadzić, ponieważ nic nie zostanie zapisane.
Allan
Nie, ale możesz wykonać ogromną większość pracy przy aktualizacji aplikacji podczas jej działania. To znaczy: rozpakowywanie, stosowanie aktualizacji różnicowych w celu zbudowania nowej struktury katalogów i sumowanie kontrolne. Nie uważam aktualizacji systemu operacyjnego za znacząco różne. Moglibyśmy dostać się tutaj do chwastów.
3

Ponowne uruchomienie komputera w przypadku niektórych aktualizacji / uaktualnień systemu operacyjnego jest wymagane dla wszystkich systemów operacyjnych, nie tylko macOS.

W rzeczywistości, w przypadku aktualizacji , czasami ponowne uruchomienie nie jest wymagane, gdy jest nadal używane jako część procesu aktualizacji, ale dzieje się tak tylko w przypadkach, w których większość populacji użytkowników łatwiej jest zrestartować komputer. Na przykład niektóre aktualizacje systemu wprowadzają zmiany w takich rzeczach, jak usługa sieciowa i chociaż możesz zrezygnować z samego restartu, a nie z całego komputera, dla większości użytkowników po prostu łatwiej jest zrestartować komputer niż wykonać kroki, aby zrestartować sieć usługa.

Jednak w większości przypadków wymagane jest ponowne uruchomienie komputera, ponieważ jest to faktycznie konieczne. Istnieje wiele zasobów systemu operacyjnego, z których korzystają aplikacje, w tym aplikacje innych firm, a ich aktualizacja podczas logowania użytkownika po prostu nie będzie łatwym zadaniem, aw rzeczywistości potencjalnie może spowodować uszkodzenie plików itp.

Ponadto w przypadku aktualizacji oprogramowania układowego konieczny jest restart. Co więcej, kilka lat temu Apple zaczęło automatycznie włączać aktualizacje oprogramowania układowego (jeśli są wymagane) w ramach aktualizacji / aktualizacji systemu macOS, więc nie jest łatwo sprawdzić, które urządzenia zawierały aktualizacje oprogramowania układowego w aktualizacji / uaktualnieniu. Niezależnie od tego aktualizacje oprogramowania układowego wymagają ponownego uruchomienia, po prostu nie można tego obejść.

Innym przykładem jest aktualizacja zasobów wymaganych do korzystania ze sprzętu. W niektórych przypadkach wymagane jest ponowne uruchomienie komputera, w innych nie.

Wreszcie, jeśli chodzi o twoje ostatnie pytanie dotyczące tego, dlaczego nie po prostu stworzyć nowego systemu, a następnie aktywować go po następnym uruchomieniu, podczas gdy byłoby to technicznie możliwe, to naprawdę nie jest praktyczne. Katalog systemowy ma rozmiar GB i zajęłoby to znacznie więcej czasu i wymagałoby znacznie większej ilości wolnego miejsca na woluminie rozruchowym.

Monomeeth
źródło
Moje pytanie nie brzmiało: „Dlaczego nie można zaktualizować systemu operacyjnego bez ponownego uruchomienia?”. Dlaczego proces trwa tak długo i blokuje użytkownika? Można również użyć twardych linków ( en.wikipedia.org/wiki/Hard_link ) w celu drastycznego skrócenia czasu i miejsca wymaganego do aktualizacji. (Uwaga: Jestem programistą)
2
@Taylor konkretnie dotyczy aktualizacji OTA dla iOS, są one dostarczane w postaci łatek różnicowych, które należy zastosować do istniejących plików. Zarówno aktualizacje systemu iOS dla systemu OTA, jak i inne niż OTA są nadal przechowywane na zaszyfrowanym urządzeniu i muszą zostać zaszyfrowane w ramach procesu instalacji. Szyfrowanie rzeczy wymaga czasu. Jedynymi osobami, o których wiem, którzy wiedzą z całą pewnością, dlaczego te decyzje zostały podjęte, to zespół programistów w Cupertino.
Scottmeup,