Apa yang membuat Windows memerlukan reboot konstan sementara Linux tidak? [duplikat]

21

Seperti banyak orang, saya menjalankan sistem ganda di komputer saya. Pembaruan penting memerlukan reboot terus-menerus pada Windows, sementara saya tidak berpikir ini pernah terjadi pada saya di Linux. Properti apa dari setiap OS yang memutuskan apakah ini mungkin atau tidak?

Benjamin Lindqvist
sumber
5
Saya masih harus me-reboot sistem Linux saya untuk menginstal pembaruan kernel. Saya tahu ada beberapa cara untuk mengatasi hal itu, tetapi saya tidak memerlukan uptime yang ekstrem seperti itu. Walaupun jarang ada pembaruan kernel untuk server saya atau instalasi dukungan jangka panjang, saya kadang-kadang mendapatkan pembaruan kernel pada sistem saya yang lebih canggih - saya tidak melihat banyak perbedaan antara Linux dan Windows di sini. Namun, pembaruan Linux jauh lebih sulit daripada pembaruan Windows, karena tidak mengubah reboot menjadi permainan yang menunggu.
amon
1
Sebenarnya, ... 1. Ini bukan masalah dengan Windows saat ini daripada dulu. Ketika hal itu terjadi, biasanya karena seseorang lupa untuk menutup aplikasi yang mengunci beberapa file yang perlu diperbarui oleh Windows, dan bukannya gagal menginstal, Windows hanya mendaftarkan perubahan file tersebut untuk boot berikutnya. 2. Restart dingin pada mesin saya saat ini yang menjalankan Windows 10 membutuhkan waktu sekitar 15 detik, setengahnya adalah waktu POST.
Robert Harvey
@ Robert-Apa definisi Anda untuk menyelesaikan startup? Mendapatkan ke layar login / desktop tidak terlalu buruk, menunggu semua layanan untuk memulai sehingga Anda benar-benar dapat menggunakan komputer yang menyusahkan. Jika waktu Anda termasuk memulai layanan, lalu apa pengaturan Anda? Memang saya tidak memiliki yang terbaru dan terhebat tetapi saya memiliki komputer yang cukup layak dan komputer kerja saya membutuhkan sekitar 3 menit dan rumah saya sekitar 2 1/2 sebelum saya dapat mulai bekerja pada mereka.
Dunk
@Dunk: Beli SSD.
Ben Voigt
@ Ben-Saya tidak di baris berikutnya di rumah saya untuk komputer baru tapi anak saya. Jadi saya akan membangunkannya untuk Natal dan akan memeriksanya langsung. Namun, laporan uji benchmark yang saya baca menunjukkan peningkatan kecepatan 50%, bukan 1000% seperti yang dilihat Robert dari sistem saya. 1000% pasti sepadan dengan kerumitan upgrade. 50% tidak banyak.
Dunk

Jawaban:

49

Ini konsekuensi dari keputusan rekayasa.

Pada sistem Linux, dimungkinkan untuk menghapus file yang masih digunakan; sistem file menggunakan apa yang pada dasarnya merupakan bentuk penghitungan referensi, dan memiliki file yang terbuka hanyalah referensi lain untuk itu. Ketika Anda menutupnya, file tersebut akan dibersihkan. Sebagai konsekuensi dari ini, adalah mungkin untuk mengganti kode OS inti dan file data tanpa perlu mematikannya dan memulai kembali (alias reboot).

Pada Windows, membuka file akan menguncinya dalam sistem file, dan itu tidak dapat dihapus. Ini berarti bahwa kode yang sedang berjalan tidak dapat diperbarui tanpa reboot. Tetapi ini juga berarti bahwa Anda selalu dapat mengetahui dengan tepat versi apa yang berjalan pada sistem Anda; di bawah model Linux, dimungkinkan untuk menerima pembaruan perangkat lunak sistem yang penting, berhasil menerapkannya, dan masih belum beroperasi di sistem Anda, karena versi lama, yang tidak diperbarui masih berjalan.

Ini adalah tradeoff teknik, seperti kebanyakan hal dalam komputasi.

Mason Wheeler
sumber
6
@Ian Tidak, Anda dapat memulai kembali layanan Anda untuk menerapkan pembaruan. Atau, dalam kasus kernel, Anda dapat menggunakan ksplice, kpatch, dll., Atau fitur-fitur baru di Linux 4.0.
pengasuh
2
@Dupuplikator, tentu; Saya hanya pesimis tentang tingkat adopsi. Satu tim pengembang tempat saya bekerja telah mengumumkan bahwa mereka tidak akan lagi menerima tambalan yang menambahkan dukungan untuk fitur-fitur systemd opsional setelah bug dalam dukungan systemd rilis 'not-socket-based-watchdog' yang cukup kuno menghasilkan salinan baru daemon mereka dipintal (selain yang lama!) satu detik sekali.
Charles Duffy
1
@ krlmlr: Itu tidak memungkinkan Anda untuk menghapus file yang terbuka. Dari dokumentasi : "Fungsi DeleteFile menandai sebuah file untuk dihapus saat ditutup. Oleh karena itu, penghapusan file tidak terjadi sampai gagang terakhir ke file ditutup" Anda masih bisa menggantinya, menggunakan MoveFileuntuk mendapatkan yang lama dari jalan .
Ben Voigt
1
@Ian, dengan "sepele" Maksud saya, siapa pun yang bertanggung jawab untuk membangun sistem pembaruan distribusi Linux akan tahu bagaimana mewujudkannya dari atas kepala mereka, jadi pertanyaannya adalah apakah itu ide yang baik untuk dijalankan secara otomatis (atau bagaimana mengeksposnya) kepada pengguna), bukan apakah itu mungkin.
Charles Duffy
2
@CharlesDuffy Saya tidak tahu cara kerjanya di bawah tenda, tetapi paket Debian needrestart melakukan pekerjaan yang Anda gambarkan, yaitu secara otomatis memulai kembali layanan yang executable / libraries-nya baru saja diperbarui.
zwol
3

Ini adalah konsekuensi dari pandangan harapan pengguna yang diprediksi.

Sistem Linux dimodelkan setelah unix dijalankan di server. Uptime adalah titik sesumbar di komunitas ini. Apa pun yang mengurangi waktu itu buruk. Dan ini adalah efek samping dari harapan bahwa komputer memiliki banyak pengguna dan bahwa penjadwalan waktu henti harus dikoordinasikan dengan banyak pengguna.

Windows dirancang untuk pasar pc. Pada saat itu diperkenalkan mengetahui bahwa Anda dapat keluar dari satu program dan memulai yang lain tanpa me-reboot adalah tanda dari pengguna komputer yang berpengalaman. Karena itu tidak ada alasan untuk tidak menggunakan nama file sebagai pengidentifikasi utama saat mendesain ntfs.

Hildred
sumber