Mengapa saya perlu me-restart komputer setelah menginstal perangkat lunak baru?

38

Mengapa kadang-kadang saya harus me-restart komputer saya setelah menginstal perangkat lunak baru dan di lain waktu saya tidak?

Apakah ada alasan mengapa perlu reboot ini atau mengapa itu tidak selalu satu atau lain cara?

acak
sumber
2
Ini pada dasarnya untuk memperbarui registri
Dwayne Samuels
4
Dalam beberapa kasus, Anda hanya dapat me-restart layanan alih-alih me-reboot.
ccook
lihat juga superuser.com/questions/2467/...
Ian Ringrose
8
@ Dwayne Sebagian besar masalah dengan file terkunci (dll) bukan registri. Registri sedang digunakan untuk memberi tahu windows file untuk diganti pada restart tetapi bukan alasan restart diperlukan.
Ian Ringrose

Jawaban:

38

Tergantung.

Jika perangkat lunak yang diinstal mempengaruhi bagian integral dari sistem operasi, maka restart diperlukan. Misalnya kernel baru untuk sistem operasi.

Pada sistem Windows, sering digunakan karena pengguna dianggap terlalu bodoh untuk menggunakan komputer mereka dengan benar. Sebagai contoh, Microsoft menerbitkan rincian tentang cara mengubah "Jenis Node" yang digunakan untuk jaringan di situs webnya , termasuk instruksi untuk "memulai kembali komputer" ketika semua yang diperlukan adalah memulai kembali layanan jaringan seperti yang dijelaskan di sini . Karena kami, karena pengguna terlalu bodoh untuk memulai kembali layanan, kami diberitahu untuk memulai kembali semuanya.

Untuk beberapa perangkat lunak, saya sampai pada kesimpulan bahwa itu adalah kebiasaan dan sering kali tidak diperlukan bahkan ketika disuruh melakukannya. Jika saya tidak berpikir bahwa perangkat lunak seharusnya melakukan sesuatu yang utama pada sistem operasi, saya cenderung tidak repot, dan belum mengalami masalah (dan jika ada masalah mereka akan mudah untuk dipecahkan).

Neal
sumber
6
Saya setuju. Saat ini, kecuali jika mereka memperbarui file sistem kritis atau driver, tidak ada alasan untuk me-restart sistem. Seringkali pengembang yang ingin memastikan mereka "menutupi semua basis."
surfasb
1
Jika ini adalah penginstal yang lebih lama, ia mungkin hanya meminta untuk reboot. Jika itu adalah pengembang yang naif, itu mungkin diatur untuk meminta restart terlepas dari apakah itu diperlukan atau tidak. Installer baru yang memanfaatkan fitur MSI dengan benar sebenarnya dapat melaporkan aplikasi apa yang menyimpan file yang diperlukan (dll., Dll) terbuka dan meminta pengguna untuk menghentikannya - itu hanya jika mereka memilih untuk membiarkan aplikasi berjalan sehingga mereka akan diminta untuk memulai kembali. Ini cukup berantakan, tidak ada yang memaksa devs untuk menggunakan MSI, apalagi menggunakannya dengan benar.
Stephanie
15

Terkadang perangkat lunak akan membuat perubahan yang tidak dapat diberlakukan saat komputer digunakan. Beberapa alasan mungkin - file sedang digunakan, perubahan hanya dapat terjadi saat boot up komputer, mungkin ada masalah keamanan yang hanya dapat dilakukan sebelum komputer memiliki jaringan aktif, mungkin pemindai virus akan mengganggu memasang.

Terkadang, itu hanya pemrograman yang ceroboh oleh para pengembang.

Saya yakin masih banyak lagi.

Bryan
sumber
1
Secara khusus, perubahan apa yang tidak dapat diberlakukan saat komputer digunakan?
Anderson Green
13

Seringkali ketika Anda menginstal perangkat lunak baru dll (file) yang digunakan oleh banyak paket perangkat lunak lain perlu ditingkatkan ke versi baru. (Ini jauh lebih mungkin terjadi ketika meningkatkan aplikasi yang sudah Anda instal.)

Jika dll sedang digunakan oleh aplikasi yang sedang berjalan, sebagian akan dimuat ke dalam memori dan sisanya akan dibaca dari disk ketika dibutuhkan. Oleh karena itu, dll akan dikunci pada disk. (Pikirkan masalah jika tidak dikunci!)

DLL yang dikunci tidak dapat diperbarui, sehingga penginstal akan meminta windows untuk mengganti DLL dengan versi baru saat berikutnya mesin dihidupkan ulang. Oleh karena itu perlu restart.

Beberapa penginstal yang lebih baik akan memberi tahu Anda aplikasi yang harus ditutup sebelum menjalankan penginstal, sehingga membiarkan DLL diperbarui tanpa restart. Namun itu membuat UI pemasang lebih kompleks dan mengarah ke lebih banyak panggilan dukungan.

Penginstal untuk suatu aplikasi juga bisa mendapatkan aplikasi untuk menyimpan kondisinya, mematikannya sendiri, kemudian memulai kembali setelah DLL diperbarui. Ini hanya dapat dilakukan jika DLL digunakan oleh satu aplikasi. Sebagian besar aplikasi yang memperbarui sendiri melakukan ini - ini harus menjadi norma untuk aplikasi pasar massal ketika ada banyak pengguna.

Semua hal di atas dapat menyebabkan logika kompleks yang sulit untuk diuji. Menguji penginstal membutuhkan waktu yang lama, karena Anda harus mencoba menebak setiap keadaan di mana mesin pengguna berada. Jadi seringkali yang terbaik untuk penginstal adalah sederhana dan selalu berfungsi, bahkan jika itu mengarah ke beberapa restart lagi bagi pengguna. .

Tidak jarang seorang pengguna memutuskan untuk membeli aplikasi yang berbeda karena penginstal ulang penginstalasi, sehingga vender menghabiskan waktu (uang) untuk mengerjakan apa yang diperlukan agar pengguna membeli aplikasi mereka.

Seberapa seringkah Anda mengalami masalah setelah menginstal aplikasi yang beres sendiri ketika Anda melakukan reboot? Pikirkan biaya dukungan banyak pengguna yang menelepon dengan masalah yang diselesaikan hanya dengan reboot. Ini dapat dengan cepat menjadi sangat menggoda sebagai pengembang untuk selalu membuat pengguna melakukan reboot setelah menginstal perangkat lunak Anda bahkan ketika Anda pikir itu tidak diperlukan.

----------

Sebagian besar sistem operasi dan perangkat lunak ditulis pada masa ketika ruang disk dan memori menghabiskan banyak uang. Sekarang ada langkah untuk aplikasi untuk memiliki salinan pribadi dari semua dll yang mereka gunakan, sehingga membuat peningkatan penghapus, tetapi menggunakan lebih banyak ruang penyimpanan.

Di server ini dilakukan dengan "wadah", namun "wadah" tidak berfungsi dengan baik untuk perangkat lunak desktop, karena Anda ingin dapat mengakses data yang disimpan oleh satu aplikasi dengan aplikasi anther. (Kalau tidak, hanya menggunakan iPhone.)

Ian Ringrose
sumber
7

Alasannya adalah karena jika Anda tidak: Anda akan crash. Dari Raymond Chen :

Bahkan jika Anda mengganti file yang sedang digunakan, mungkin masih ada kode dalam sistem yang ingin menggunakan versi lama. Misalnya, Anda memiliki dua file yang bekerja bersama:

  • A.dll
  • B.dll

Anda mengeluarkan tambalan yang memperbarui kedua file, tetapi A.dllsedang digunakan. Tidak masalah. Anda cukup mengganti keduanya. Akibatnya, program yang masih menggunakan A.dlltetap menggunakan versi lama, tetapi program baru akan menggunakan yang baru. Dan semua program mendapatkan versi baruB.dll .

Sekarang sebuah program yang menggunakan yang lama A.dllmemutuskan untuk memanggil suatu fungsi. Secara alami ia mengharapkan versi yang lama B.dll, tetapi sebaliknya ia mendapatkan versi yang baru. Bergantung pada jenis perubahan apa yang Anda lakukan B.dll, panggilan ini mungkin berhasil — atau mungkin macet. Kedua DLL berasumsi bahwa mitranya berasal dari pasangan yang sama.

Ian Boyd
sumber
Ada beberapa cara di sekitar apa yang Anda gambarkan, tetapi mereka membutuhkan pemikiran.
Daniel R Hicks
2

Sejujurnya, itu kurang bekerja (dan karena itu lebih sedikit $$) di pihak pengembang perangkat lunak untuk mengasumsikan bahwa pembaruan akan selalu menghasilkan restart. Ini mungkin adalah keputusan dari penghitung kacang seperti halnya dari pengembang.

Pada akhirnya, ada sangat sedikit pembaruan yang tidak dapat dilakukan, di dunia yang ideal, dilakukan tanpa restart, tetapi dibutuhkan banyak pra-perencanaan, dan ada beberapa risiko, mengingat berbagai kemungkinan konfigurasi yang mungkin dimiliki sistem.

Daniel R Hicks
sumber
0

Ini ada hubungannya dengan fakta bahwa sangat sulit untuk mengubah kode karena sedang berjalan tanpa menyebabkan beberapa masalah besar. Solusinya: hentikan semuanya sebelum mengubah kode, dengan begitu Anda dapat memastikan tidak ada yang berjalan. Ini adalah brute force hack yang sebagian besar tidak perlu sering kali seharusnya diperlukan, tetapi bisa sangat diperlukan, terutama jika Anda memperbarui kode yang sangat penting. Sebenarnya ada seluruh perusahaan yang berspesialisasi dalam membuat pembaruan yang TIDAK memerlukan reboot untuk kode yang sangat penting ini. Cara mereka melakukannya adalah dalam makalah ini http://www.ksplice.com/paper .

Aviendha
sumber
-1

Anda diharuskan me-restart ketika file sistem penting untuk Windows sedang dimodifikasi, karena Windows tidak mengizinkan file-file ini untuk dimodifikasi saat sedang digunakan. Jadi sebagian besar pembaruan dari Pembaruan Windows memerlukan reboot, seperti halnya program yang mengintegrasikan diri ke dalam Windows (seperti antivirus). Sampai Anda reboot, Windows tidak dapat melakukan beberapa langkah terakhir yang diperlukan untuk "menginstal" program.

Anda dapat membandingkan ini dengan Linux, yang jarang mengharuskan Anda untuk reboot. Bahkan ketika Anda diminta untuk reboot, Anda biasanya hanya perlu logout dan kembali. Ini karena lingkungan Linux yang khas terdiri dari banyak program berbeda yang bekerja sama untuk membuat OS yang lengkap. Jika file penting diubah selama instalasi, biasanya Anda hanya perlu me-restart satu program khusus yang menggunakan file tersebut.

Exp HP
sumber