web-dev-qa-db-fra.com

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

Exécution d'Ubuntu 12.04 64 bits.

Je mets principalement à jour via un 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 en cours d'exécution en même temps que le processus de mise à jour s'exécutant simultanément dans le terminal, ce 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 la fermeture de 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?

9
atenz

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

Comment Ubuntu remplace-t-il l’application active par une version plus récente sans interférer avec son instance active? [Remarqué pour de nombreux forfaits]

Je vais essayer d'expliquer cela le plus simplement possible. La plupart des systèmes de fichiers Linux sont légèrement différents des systèmes de fichiers Windows (NTFS). À la base, ils contiennent essentiellement une table d’index de noms de fichiers (entrées) pointant vers les données réelles stockées sur le disque. En NTFS, cela s'appelle la MFT (table de fichiers maîtres). Vous avez peut-être vu ce nom défiler si vous exécutez un 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 inodes . Les inodes contiennent les métadonnées 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’est-à-dire que des descripteurs de fichier existent), leurs noms de fichiers continueront de pointer vers les anciens inodes ( contenant les anciennes données) jusqu'à la fermeture des descripteurs de fichiers. 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.

15
ish