Que les fichiers de courte durée soient écrits sur le disque ou non dépend non seulement du comportement par défaut du cache de fichiers du noyau, mais également des détails de l'implémentation du pilote du système de fichiers et des options de montage dudit système de fichiers. Il est possible de configurer le système de telle manière que tout soit toujours immédiatement écrit sur le disque (essentiellement, un comportement de type DOS).
Un système de fichiers, mettant en évidence le comportement qui vous intéresse (appelé "allocation retardée") est XFS. Avec cela, vous pouvez être plus ou moins sûr (étant donné aucune option de configuration amusante ailleurs) que les blocs appartenant aux fichiers juste supprimés seront réutilisés en mémoire, sans accès intermédiaire au disque. XFS peut toujours vouloir mettre à jour son journal de métadonnées (qui sera écrit sur le disque assez fréquemment; pourtant, étant donné que le journal de XFS est uniquement des métadonnées, il est assez petit pour être défini sur un autre appareil rapide, comme la RAM sauvegardée par batterie trouvée sur de nombreux contrôleurs RAID).
En raison de ce comportement, il n'est pas rare de trouver des fichiers complètement remis à zéro, mais sinon légitimes (taille et autres métadonnées intactes) sur un système de fichiers XFS après une coupure de courant soudaine. C'est un coût de prise en charge des opérations de fichiers "semi-temporaires" rapides.
Un peu de théorie
En général, un appel système accédant à un système de fichiers se termine, assez rapidement, par la méthode définie par le pilote du système de fichiers (attachée à "struct inode_operations" et "struct file_operations" lorsque le pilote VFS est enregistré). Ce qui se passe ensuite est laissé à la seule discrétion de l'implémentation du système de fichiers. En règle générale, quelque chose ressemblant à l'approche suivante est utilisé (cet exemple simple provient du pilote Linux FAT):
if (IS_DIRSYNC(dir))
(void)fat_sync_inode(dir);
else
mark_inode_dirty(dir);
Si le système de fichiers est monté en mode "sync", toutes les modifications vont immédiatement sur le disque (via fat_sync_inode () dans ce cas). Sinon, le bloc est marqué comme "sale" et reste dans le cache mémoire jusqu'à ce qu'il soit vidé à une occasion raisonnable.
Ainsi, il est impossible de prédire le comportement du système en ce qui concerne les fichiers transitoires sans prendre en compte les options de montage du système de fichiers et inspecter le code source de son implémentation (cela, bien sûr, s'applique principalement à toutes sortes de systèmes de fichiers exotiques principalement trouvés dans l'espace embarqué) .