Ob kurzlebige Dateien auf die Festplatte geschrieben werden oder nicht, hängt nicht nur vom Standardverhalten des Kernel-Dateicaches ab, sondern auch von Details der Implementierung des Dateisystemtreibers und den Mount-Optionen des Dateisystems. Es ist möglich, das System so zu konfigurieren, dass immer alles sofort auf die Festplatte geschrieben wird (im Wesentlichen DOS-ähnliches Verhalten).
Ein Dateisystem, das das Verhalten, an dem Sie interessiert sind, hervorhebt (sogenannte "verzögerte Zuweisung"), ist XFS. Damit können Sie mehr oder weniger sicher sein (da an anderer Stelle keine lustigen Konfigurationsoptionen vorhanden sind), dass Blöcke, die nur zu gelöschten Dateien gehören, ohne Zwischenzugriff auf die Festplatte im Speicher wiederverwendet werden. XFS möchte möglicherweise weiterhin sein Metadatenjournal aktualisieren (das ziemlich häufig auf die Festplatte geschrieben wird. Da es sich bei dem XFS-Journal jedoch nur um Metadaten handelt, ist es klein genug, um auf einem anderen, schnellen Gerät wie dem gefundenen batteriegepufferten RAM festgelegt zu werden auf vielen RAID-Controllern).
Aufgrund dieses Verhaltens ist es nicht ungewöhnlich, dass nach einer plötzlichen Stromunterbrechung vollständig ausgelöste, aber ansonsten legitim aussehende Dateien (Größe und andere intakte Metadaten) auf einem XFS-Dateisystem gefunden werden. Dies ist ein Kostenfaktor für die Unterstützung schneller "semi-temporärer" Dateivorgänge.
Eine Theorie
Im Allgemeinen endet ein Systemaufruf, der auf ein Dateisystem zugreift, ziemlich schnell in der vom Dateisystemtreiber definierten Methode (angehängt an "struct inode_operations" und "struct file_operations", wenn der VFS-Treiber registriert ist). Was danach passiert, liegt allein im Ermessen der Implementierung des Dateisystems. In der Regel wird etwas verwendet, das dem folgenden Ansatz ähnelt (dieses einfache Beispiel stammt vom Linux-FAT-Treiber):
if (IS_DIRSYNC(dir))
(void)fat_sync_inode(dir);
else
mark_inode_dirty(dir);
Wenn das Dateisystem im "Synchronisierungs" -Modus bereitgestellt wird, werden alle Änderungen sofort auf die Festplatte übertragen (in diesem Fall über fat_sync_inode ()). Andernfalls wird der Block als "verschmutzt" markiert und verbleibt im Speichercache, bis er bei einer angemessenen Gelegenheit geleert wird.
Daher ist es unmöglich, das Systemverhalten in Bezug auf vorübergehende Dateien vorherzusagen, ohne die Optionen für die Dateisystembereitstellung zu berücksichtigen und den Quellcode seiner Implementierung zu überprüfen (dies gilt natürlich meistens für alle Arten von exotischen Dateisystemen, die sich hauptsächlich im eingebetteten Raum befinden). .