Mengapa upgrade macOS / iOS begitu lama?

11

Bahkan pada iMac Pro, masih perlu waktu (mungkin 15 menit) untuk memutakhirkan OS (setelah semuanya diunduh). Selama ini, saya tidak bisa menggunakan komputer.

Mengapa demikian? Apa yang sebenarnya ia lakukan? Mengapa proses ini bukan reboot sederhana?

Harap dicatat saya tidak bertanya mengapa reboot diperlukan. Sebagai pengembang perangkat lunak, saya sepenuhnya menyadari mengapa diperlukan reboot.

Perhatikan juga Alasan yang jelas mengapa pemutakhiran bisa berlangsung cukup lama adalah migrasi sistem file (seperti migrasi HFS + → APFS). Apple melakukan beberapa tes migrasi, bahkan, sebelum meluncurkan hal terakhir. Namun, sebagian besar peningkatan OS tidak melibatkan perubahan pada sistem file AFAIK.

Ini adalah pertanyaan yang mirip dengan Mengapa pembaruan Perangkat Lunak OS X memakan waktu lama? tentang proses peningkatan lain yang membutuhkan waktu. Ada spesifik macOS dan iOS yang layak dipertimbangkan dalam menjawab pertanyaan ini. Misalnya: keduanya dikirimkan dengan driver yang diperlukan untuk semua sistem yang didukung.

GRG
sumber
6
Saya memberikan suara untuk menutup pertanyaan ini sebagai 'di luar topik' menurut pedoman pertanyaan yang diterbitkan. Pertanyaan yang menanyakan mengapa Apple melakukan, tidak, dapat, atau tidak dapat melakukan sesuatu adalah tidak direkam karena tidak dapat dijawab oleh grup ini.
fsb
5
@ fsb Moderasi berlebihan yang mematikan orang ke situs-situs ini.
3
Saya tidak melakukannya untuk 'over-moderasi'. Cara pertanyaan Anda diucapkan, awalnya sebelum diedit, menanyakan mengapa Apple memerlukan reboot. Cara saya membacanya di luar topik. Dibutuhkan lebih dari 1 orang untuk menutup pertanyaan, dibutuhkan 4 suara. Situs-situs ini membantu banyak orang dengan memastikan pertanyaan dapat memiliki, dan mendapatkan, jawaban yang akurat. Silakan lihat Cara Meminta tip tentang cara mengajukan pertanyaan yang bisa mendapatkan jawaban yang baik.
fsb
1
@ fsb Sudah jelas sebelum edit. "Mengapa upgrade OS bukan sekadar reboot?" bukan "Mengapa upgrade OS memerlukan reboot?" Lalu saya menyebutkan "Mengapa proses ini bukan reboot sederhana?" Lalu saya menyebutkan "dan kemudian me-reboot" Anda salah membaca pertanyaan asli, tetapi jangan khawatir.
5
Ini adalah pertanyaan yang sangat valid. Ini bukan "Mengapa Apple melakukan X, Y, atau Z" melainkan "mengapa proses begitu lama?" yang bersifat teknis. Nominasi untuk dibuka kembali.
Allan

Jawaban:

4

Mengapa proses ini bukan reboot sederhana?

Jawaban keseluruhan di sini tergantung. Itu sangat tergantung pada apa yang perlu dilakukan. Pembaruan yang Anda lakukan untuk sistem Anda mungkin sangat berbeda dari yang saya lakukan pada saya. Pembaruan yang dipermasalahkan mungkin hanya membutuhkan layanan yang dimulai kembali atau mungkin perlu pembaruan untuk kernel yang sebenarnya.

Mengapa itu [saya tidak bisa menggunakan komputer]?

Secara umum, untuk alasan yang sama Anda tidak dapat menggunakan aplikasi (Word, Excel, Numbers, iTerm, Adobe Photoshop, dll.) Yang sedang dalam proses ditingkatkan. File-file harus ditutup, dibaca, dianalisis, tambalan / pembaruan yang sesuai disalin dan aplikasi dimulai ulang.

Ketika sebuah OS di-upgrade, hal yang sama harus terjadi dan ini biasanya dilakukan (ketika datang ke peningkatan level kernel khususnya) dalam mode pengguna tunggal.

Biasanya, Anda akan melihat pembaruan diunduh, sistem akan memulai shutdown, pembaruan diterapkan, reboot, dan "finalisasi" dari pembaruan diikuti oleh boot normal. Anda tidak dapat menggunakan komputer selama ini.

Apa yang sebenarnya ia lakukan?

Tergantung. Bisa apa saja dari menambal file konfigurasi untuk mem-flash firmware dari beberapa jenis.

Jika sistem dalam /System, mengapa bukan upgrade OS hanya membuat /NewSystem

Pertama, /Systemdilindungi oleh SIP sehingga untuk menonaktifkannya, Anda sebenarnya perlu melakukan booting dari titik pemasangan yang berbeda. * Kedua, cara Anda melihat ini analog dengan melakukan renovasi rumah dengan membuang rumah baru di sebelah yang lama dan memberitahu orang-orang untuk hanya pindah. Ini bukan cara kerjanya.

Banyak hal harus terjadi, yang paling tidak adalah restore point yang dibuat (jika cadangan gagal). Jadi ini berarti salinan sistem kerja dibuat, pembaruan diterapkan, pembaruan diperiksa, dan (jika semuanya baik) titik pemulihan dihapus.

Dalam hal pembaruan firmware, gambar harus diverifikasi (mis. Anda tidak ingin firmware mini Mac pada Mac Pro Anda), checksum divalidasi, gambar yang didukung, diterapkan, diverifikasi, yang lama dihapus dan sistem diinisiasi ulang. Sekali lagi, tidak ada yang dapat dilakukan dengan Anda login dan tidak ada yang dilakukan hanya dengan "membuang" file dalam direktori.

Upgrade adalah proses dan semua ini membutuhkan waktu.


* SIP dirancang untuk melindungi sistem dengan mencegah perubahan pada OS. Mengizinkan OS mengubah sistem "on-the-fly" akan meniadakan keamanan yang ingin dicapai.

Allan
sumber
Terima kasih atas jawaban Anda, Allan. Ok jadi saya bisa, sebagai root, tanpa melanggar SIP, membuat arsip direktori sistem (hanya mencobanya). Ya, Anda harus menonaktifkan SIP untuk beralih ke dir sistem baru, tetapi itu tidak akan memakan waktu yang signifikan jika /NewSystemsudah dibangun.
Itu bukan cara kerjanya. Selain itu .... instalasi dapat memakan waktu setengah jam atau lebih dan secara teknis itu hanya menyalin file. Pembaruan tidak banyak, lebih dari sekadar menyalin file.
Allan
"Sekali lagi, tidak ada yang bisa dilakukan dengan kamu masuk" Mengapa tidak, tepatnya?
Bisakah Anda memperbarui aplikasi saat aplikasi sedang berjalan? Konsep yang sama tetapi jauh lebih kompleks. OS Anda sedang berjalan (file terbuka dan dilindungi). Anda harus mematikan proses, menghapus perlindungan (lebih dari sekedar menjalankan sudo) dan menambal sistem. Jika ini adalah pembaruan kernel, Anda harus menghapus semuanya karena tidak ada yang akan ditulis.
Allan
Tidak, tetapi Anda dapat melakukan sebagian besar pekerjaan dalam memperbarui aplikasi saat aplikasi sedang berjalan. Yaitu: membongkar, menerapkan pembaruan diferensial untuk membangun struktur direktori baru, dan checksumming. Saya tidak melihat pembaruan OS sebagai sangat berbeda. Kita bisa masuk ke rumput liar di sini.
3

Membooting ulang komputer untuk beberapa pembaruan / peningkatan sistem operasi diperlukan untuk semua sistem operasi, bukan hanya macOS.

Sebenarnya, dalam hal pembaruan , kadang-kadang reboot tidak diperlukan ketika masih digunakan sebagai bagian dari proses pembaruan, tetapi ini hanya dalam kasus di mana sebagian besar populasi pengguna harus menjalani reboot. Sebagai contoh, beberapa pembaruan sistem membuat perubahan pada hal-hal seperti layanan jaringan dan, sementara Anda bisa pergi dengan hanya me-restart itu daripada seluruh komputer, itu hanya lebih mudah bagi sebagian besar pengguna untuk melakukan restart daripada melalui langkah-langkah untuk me-restart jaringan layanan.

Namun, dalam kebanyakan kasus diperlukan reboot, itu karena itu sebenarnya perlu. Ada banyak sumber daya sistem operasi yang digunakan oleh aplikasi, termasuk aplikasi pihak ke-3, dan memutakhirkannya sementara pengguna login tidak akan menjadi tugas yang mudah dan, pada kenyataannya, berpotensi mampu menyebabkan korupsi file dll.

Juga, dalam hal pembaruan firmware, reboot harus dilakukan. Menambah ini, beberapa tahun yang lalu Apple mulai secara otomatis termasuk pembaruan firmware (jika / ketika diperlukan) dalam pembaruan / peningkatan macOS, jadi tidak mudah untuk memeriksa perangkat mana yang memiliki pembaruan firmware yang termasuk dalam pembaruan / peningkatan. Namun demikian, pembaruan firmware memerlukan reboot, tidak ada jalan lain.

Contoh lain adalah pembaruan sumber daya yang diperlukan untuk menggunakan perangkat keras. Dalam beberapa kasus, reboot diperlukan, sedangkan yang lain tidak.

Akhirnya, dalam hal pertanyaan terakhir Anda tentang mengapa tidak hanya membuat sistem baru dan kemudian membuat ini menjadi aktif setelah reboot berikutnya, sementara ini secara teknis mungkin itu benar-benar tidak praktis. Direktori Sistem berukuran GB dan ini akan membutuhkan waktu lebih lama untuk dilakukan dan membutuhkan ruang kosong yang jauh lebih besar pada volume boot.

Monomeeth
sumber
Pertanyaan saya bukanlah "mengapa OS tidak dapat ditingkatkan tanpa me-reboot?". Itu sebabnya prosesnya begitu lama dan mengunci pengguna? Juga, tautan keras ( en.wikipedia.org/wiki/Hard_link ) dapat digunakan untuk secara drastis mengurangi waktu dan ruang yang diperlukan untuk peningkatan. (Catatan: Saya seorang pengembang perangkat lunak)
2
@Taylor secara khusus menjelaskan: pembaruan OTA iOS, mereka dikirim dalam bentuk tambalan diferensial yang perlu diterapkan ke file yang ada. Pembaruan OTA dan non-OTA untuk iOS masih disimpan pada perangkat yang dienkripsi dan perlu dienkripsi sebagai bagian dari proses instalasi. Mengenkripsi sesuatu membutuhkan waktu. Satu-satunya orang yang saya ketahui yang tahu dengan pasti mengapa keputusan itu dibuat adalah tim pengembangan di Cupertino.
Scottmeup