balert Hi, kann mir irgendwer erklären wie auf Filesystem-Ebene verfahren wird, wenn ein Programm während es läuft ein Update erfährt? Ich habe unter Ubuntu immer bspw. Firefox laufen, wenn ein Update kommt dann funktioniert das auch während dieser läuft. Wird er neugestartet hat er dann die neue Version. Wie funktioniert das? Werden die binarys im Laufenden Betrieb ausgetauscht? Warum passiert da nichts "schlimmeres"? balert
Creshal Die Binaries werden ausgetauscht, ja. Das Besondere (und der Unterschied zu Windows) ist, wie das geschieht: 1. Programm 1 öffnet Datei A. Programm bekommt Handle zurück, dass direkt auf die Daten im Dateisystem zeigt (Bspw. Block #5444) 2. Update-Manager tauscht Datei A aus: Das Dateisystem sieht, dass es noch offene Handles gibt, und schreibt die neue Daten an einen andere Stelle (Block #912), der Dateipfad zeigt jetzt dahin. 3. Programm 2 öffnet Datei A. Jetzt kriegt es einen Handle für die neue Version (#912). 4. Erst wenn der letzte Handle für die alte Version (#5444) geschlossen wurde, werden die Daten auch tatsächlich gelöscht. Schlimmes kann eigentlich nur passieren, wenn ein Programm eine Datei im laufenden Betrieb neu öffnet (nach Schritt 4) – beliebtes Beispiel (passiert mir jedes mal 😉 ) sind Kernel-Module – wenn du nach einem Kernelupdate ein neues Modul laden willst, hast du Probleme. 🙂
toad Hm, gute Erklärung, danke Creshal. Würde eigentlich hierhin passen: http://www.whylinuxisbetter.net/items/reboot_all_the_time/index_de.php?lang=de
balert Ah okey, also ist es eigentlich die Fähigkeit oder Leistung des Dateisystems. Sehr gute Erklärung übrigens, vielen Dank. Das erklärt vermutlich warum nach dem Update dieses Fenster das die Version anzeigt nicht funktioniert. Vermutlich wird da irgendwas geöffnet was nicht mehr dazu passt. Das meiste (im Firefox) funktioniert vermutlich dann immer trotzdem noch, weil entweder keine neuen Daten geladen werden müssen, oder die meisten Daten immernoch kompatibel zur alten Version geblieben sind, denke ich mir mal. Gibt es für diese "Fähigkeit" des Dateisystems eigentlich einen Namen? Ich denke das Journal wird damit nicht direkt gemeint sein?
zico @Creshal Danke für die verständliche Erklärung. Wie das gehandhabt wird, wusste ich bis heute auch noch nicht und war bei Updates immer vorsichtig. Das macht mir nun einiges klarer. Danke vielmals. 🙂
Creshal @balert: Das notwenige Feature wären harte Links, aber es braucht auch eine API, die das kann. NTFS hat bspw. harte Links, die Windows-API stellt sich aber trotzdem dumm.