Bagaimana Ubuntu dapat memperbarui aplikasi yang sedang berjalan tanpa harus menutupnya sementara Windows tidak bisa?

11

Menjalankan Ubuntu 12.04 64-bit.

Saya kebanyakan memperbarui melalui terminal menggunakan sudo apt-get update && sudo apt-get upgrade.

Saya tidak mengerti ini: membuat Firefox atau aplikasi terintegrasi lainnya berjalan aktif bersamaan dengan proses pembaruan yang berjalan bersamaan di terminal, yang memperbarui Firefox ke versi yang lebih baru. Saya sadar bahwa memulai ulang Firefox akan menyebabkan Firefox dibuka sebagai versi yang lebih baru.

Misalnya, ketika memperbarui di MS Windows 7, ia meminta untuk menutup instance aktif dari aplikasi yang sama (jika itu aktif) sebelum memperbarui.

Bagaimana Ubuntu mengganti aplikasi kerja aktif ke versi yang lebih baru tanpa mengganggu instance aktifnya?

Apa yang sebenarnya terjadi pada proses pembaruan dalam kasus ini?

atenz
sumber

Jawaban:

19

Untuk Pembaruan Contoh di MS Windows 7, ia meminta untuk menutup Instance Aktif dari aplikasi yang sama (jika aktif) untuk memperbarui.

Bagaimana Ubuntu menggantikan aplikasi yang aktif bekerja ke versi yang lebih baru tanpa mengganggu Instance aktifnya. [Memperhatikan banyak Paket]

Saya akan mencoba menjelaskan ini sesederhana mungkin. Kebanyakan sistem file Linux sedikit berbeda dari sistem file Windows (NTFS). Pada intinya, keduanya pada dasarnya berisi tabel indeks nama file (entri) yang menunjuk ke data aktual yang disimpan pada disk. Dalam NTFS ini disebut MFT (tabel file master) - Anda mungkin telah melihat nama itu gulir oleh jika Anda menjalankan a chkdsk.

Namun, "sedikit perbedaan" yang saya sebutkan adalah bahwa tabel indeks Linux, jika Anda mau, terdiri dari dua level: indeks, dan inode . Inode berisi metadata file aktual, termasuk lokasi fisiknya pada disk; "nama file" dalam indeks hanyalah tautan (keras) ke inode.

Ketika Anda memperbarui / meningkatkan aplikasi yang berjalan, file yang diperbarui ditulis ke disk, inode yang menunjuk ke data baru yang dibuat / diperbarui, dan nama file juga diperbarui untuk menautkan ke inode baru ini. Tetapi , untuk file apa pun yang sudah digunakan oleh aplikasi yang sedang berjalan (yaitu file handle ada), nama file mereka akan terus mengarah ke inode lama (yang berisi data lama) sampai file handle ditutup. Ini biasanya terjadi ketika Anda keluar dari aplikasi, atau untuk beberapa file sistem, ketika Anda reboot. Pada titik ini, data lama sebenarnya dihapus dari disk Anda.

ish
sumber