Pembaruan Perangkat Lunak update-manager
muncul dan menunjukkan pembaruan keamanan untuk Firefox, misalnya. Secara alami, saya akan mengklik "Instal Sekarang" untuk melanjutkan.
Namun, apa yang terjadi jika Firefox saya masih berjalan ketika saya melakukan ini? Apakah masih akan memperbarui Firefox? Apakah pembaruan akan dilewati dan muncul kembali di lain waktu? Apakah pembaruan akan memaksa Firefox ditutup dan mungkin macet? Apakah hanya sebagian memperbarui perangkat lunak dan mungkin merusak instalasi Firefox saya?
Jawaban:
Anda pasti memikirkan Windows. Unix melakukannya dengan benar, dan kemudian, Windows datang dan mengembangkan cara yang salah dalam melakukan sesuatu.
Dengan Windows, mengganti file yang sedang digunakan oleh proses yang berjalan dapat sangat mempengaruhi proses itu. Proses akan mereferensikan lokasi di dalam file itu dan mendapatkan informasi yang salah darinya, biasanya dengan hasil bencana. Itu sebabnya pembaruan Windows umumnya membutuhkan reboot untuk memastikan bahwa semua proses menggunakan versi perpustakaan yang benar, dll.
Dengan Unix, setelah file dibuka oleh suatu proses, file yang sama akan selalu tersedia untuk proses tersebut bahkan jika file asli dihapus dari sistem file .
Setelah pembaruan, sistem file akan berisi versi file yang berbeda, dan semua proses yang dimulai setelah pembaruan akan menggunakan file baru itu. Tapi, tidak seperti Windows, semua proses Unix lama akan terus menggunakan file asli yang mereka mulai. Meskipun tidak lagi dapat diakses melalui sistem file, file-file itu akan tetap ada selama proses apa pun menggunakannya. Akhirnya, ketika tidak ada proses yang menggunakan file, versi file lama akhirnya akan dihapus.
Anda tentu saja dapat memutuskan untuk memulai kembali Firefox (atau proses lain) jika Anda ingin mendapatkan manfaat pembaruan segera. Pilihan ada padamu.
sumber
Biasanya, memperbarui program saat sudah terbuka tidak ada masalah - seperti yang dijawab penjawab lain, proses yang berjalan dapat terus berjalan bahkan jika executable-nya dihapus.
Namun, karena model multi-proses Firefox, Anda mungkin mendapatkan prompt untuk memulai kembali setelah pembaruan. Ini karena Firefox memunculkan proses baru untuk mengisolasi situs web yang berbeda, jadi jika itu memunculkan proses baru setelah Anda memperbaruinya tetapi sebelum Anda me-restart Firefox, proses baru akan menjadi versi Firefox yang lebih baru daripada browser lainnya. Ini dapat menyebabkan berbagai masalah, jadi Firefox mungkin meminta Anda memulai kembali sebelum mengizinkan Anda untuk melanjutkan.
Kebetulan, Chrome menghindari ini dengan menggunakan proses "zygote" yang tidak melakukan apa-apa; ketika browser perlu memunculkan proses baru, alih-alih meminta OS untuk mengeksekusi browser yang dapat dieksekusi lagi (yang akan mengeksekusi biner yang mungkin diperbarui), ia meminta proses zygote untuk menggandakan dirinya, dan salah satu salinan kemudian menjadi renderer normal proses.
sumber