Comment Ubuntu peut-il mettre à jour des applications en cours d'exécution sans avoir à les fermer alors que Windows ne le peut pas?


11

Exécution d'Ubuntu 12.04 64 bits.

Je mets principalement à jour via le terminal en utilisant sudo apt-get update && sudo apt-get upgrade.

Je ne comprends pas cela: avoir Firefox ou toute autre application intégrée de ce type s'exécutant activement avec le processus de mise à jour s'exécutant simultanément dans le terminal, qui met à jour Firefox vers une version plus récente. Je suis conscient que le redémarrage de Firefox entraînera l'ouverture de Firefox en tant que nouvelle version.

Par exemple, lors de la mise à jour dans MS Windows 7, il demande de fermer l'instance active de la même application (si elle est active) avant la mise à jour.

Comment Ubuntu remplace-t-il l'application de travail active par une version plus récente sans interférer avec son instance active?

Que se passe-t-il exactement à la fin du processus de mise à jour dans ce cas?

Réponses:


19

Pour l'exemple de mise à jour dans MS Windows 7, il demande de fermer l'instance active de la même application (si elle est active) pour la mise à jour.

Comment Ubuntu remplace l'application de travail active par une version plus récente sans interférer avec son instance active. [Remarqué pour de nombreux packages]

Je vais essayer d'expliquer cela aussi simplement que possible. La plupart des systèmes de fichiers Linux sont légèrement différents des systèmes de fichiers Windows (NTFS). À la base, les deux contiennent essentiellement une table d'index des noms de fichiers (entrées) pointant vers les données réelles stockées sur le disque. Dans NTFS, cela s'appelle le MFT (table de fichiers maîtres) - vous avez peut-être vu ce nom défiler si vous exécutez a chkdsk.

Cependant, la "légère différence" que j'ai mentionnée est que les tables d'index de Linux, si vous voulez, se composent de deux niveaux: l'index et les inodes . Les inodes contiennent les métadonnées réelles du fichier, y compris son emplacement physique sur le disque; le "nom de fichier" dans l'index est simplement un lien (dur) vers l'inode.

Lorsque vous mettez à jour / mettez à niveau une application en cours d'exécution, les fichiers mis à jour sont écrits sur le disque, les inodes pointant vers les nouvelles données créées / mises à jour, et les noms de fichiers sont également mis à jour pour être liés à ces nouveaux inodes. Mais , pour tous les fichiers déjà utilisés par une application en cours d'exécution (c.-à-d. Des descripteurs de fichiers existent), leurs noms de fichiers continueront à pointer vers les anciens inodes (qui contiennent les anciennes données) jusqu'à ce que les descripteurs de fichiers soient fermés. Cela se produit généralement lorsque vous quittez l'application, ou pour certains fichiers système, lorsque vous redémarrez. À ce stade, les anciennes données sont réellement supprimées de votre disque.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.