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?
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?
Jawaban:
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).
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.
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.)
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.dll
sedang digunakan. Tidak masalah. Anda cukup mengganti keduanya. Akibatnya, program yang masih menggunakanA.dll
tetap 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.dll
memutuskan untuk memanggil suatu fungsi. Secara alami ia mengharapkan versi yang lamaB.dll
, tetapi sebaliknya ia mendapatkan versi yang baru. Bergantung pada jenis perubahan apa yang Anda lakukanB.dll
, panggilan ini mungkin berhasil — atau mungkin macet. Kedua DLL berasumsi bahwa mitranya berasal dari pasangan yang sama.
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.
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 .
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.