tmpfs

tmpfs

tmpfs (engl. für Temporary File System) ist ein Dateisystem, das in vielen Unix-artigen Betriebssystemen als verbesserter Ersatz für eine Ramdisk eingesetzt wird. Im Gegensatz zur Ramdisk bei der realer Arbeitsspeicher verwendet wird, wird bei tmpfs virtueller Arbeitsspeicher statt der Festplatte als Speicher benutzt.

Inhaltsverzeichnis

Funktion

Alles, was in tmpfs gespeichert wird, ist nur temporär, da es nicht auf der Festplatte gespeichert wird, und ist nach einem Neustart nicht mehr verfügbar. Der Vorteil von tmpfs liegt in seiner Geschwindigkeit. Es kann viel schneller aus dem Arbeitsspeicher als von der Festplatte gelesen und geschrieben werden. Aus diesem Grund wird das temporäre Verzeichnis /tmp häufig so realisiert. Auch die Verzeichnisse /var/run und /var/lock werden häufig mittels dieser Systeme erzeugt um ein Bereinigen bei jedem Neustart zu vermeiden.

Der von tmpfs genutzte Speicher wächst und schrumpft abhängig von den darin enthaltenen Dateien und kann in einen Swap-Bereich ausgelagert werden.

Viele Unix-Distributionen verwenden tmpfs standardmäßig für den /tmp Zweig des Dateisystems oder für Shared Memory. Dies kann durch den Befehl df nachvollzogen werden:

Filesystem            Size  Used Avail Use% Mounted on
swap                  256M  688K  256M   1%  /tmp

Einige UNIX-Varianten listen hier statt swap tmpfs obwohl tmpfs kein Hintergrundspeicher ist und daher nicht den Regeln entspricht.

Implementierungen

SunOS / Solaris

SunOS und später Solaris beinhalten eine der frühesten Implementierungen von tmpfs [1], wo es ab Version 4.1 Verwendung fand, welche im März 1990 veröffentlicht wurde.[2]Seit Solaris 2.1 ist /tmp standardmäßig ein tmpfs Dateisystem. Der Befehl df zeigt als Hintergrundspeicher korrekt „swap“, unabhängig davon was beim mount Befehl als Hintergrundspeicher angegeben wurde, da dieser Parameter von mount_tmpfs(1M) ignoriert wird.

# df -k
Filesystem  kbytes  used   avail capacity  Mounted on
swap        601592     0  601592     0%    /tmp/test

Linux

Der Linux-Kernel stellt tmpfs seit Version 2.4 bereit.[3] tmpfs (ehemals auch als shmfs bekannt) unterscheidet sich von einer Linux Ramdisk insofern, als Speicher dynamisch alloziiert wird und weniger genutzte Seiten in einen Swap-Bereich ausgelagert werden können. RAMFS dagegen nutzt keinerlei virtuellen Speicher (was sowohl Vor- als auch Nachteil sein kann). tmpfs kann dynamisch wachsen bis zu einer vorgegebenen Maximalgröße (Voreingestellt auf Hälfte des vorhandenen RAM Speichers) und belegt immer nur so viel Speicher wie benötigt wird. Das Limit kann geändert werden durch Verwendung von Optionen oder z.B. durch den Befehl mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /space, welcher eine maximale Größe von 1 GiB mit maximal 10240 Inodes und einen exklusiven Zugriff für den Besitzer des Dateisystems /space erlaubt. Das Limit kann im Betrieb etwa durch den Befehl mount -o remount,size=2G /space geändert werden. Wenn das Limit zu groß gewählt wird und nicht genug Swapspeicher vorhanden ist kommt es zu Problemen.

BSD

tmpfs wurde am 10. September 2005 in die offiziellen NetBSD Quellen aufgenommen[4] und ist seit Version 4.0 verwendbar. Für FreeBSD wurde die Implementierung von NetBSD portiert und ist seit Version 7.0 verfügbar.[5].

Auf Systemen mit wenig Speicher kann die Verwendung großer temporärer Daten im Speicher zu Instabilitäten führen.[6].

Microsoft Windows

Windows besitzt mit „Temporären Dateien“ ein ähnliches Konzept. Dateien, welche mit den Flags FILE_ATTRIBUTE_TEMPORARY sowie FILE_FLAG_DELETE_ON_CLOSE angelegt wurden, werden im Speicher gehalten und nur auf die Festplatte geschrieben wenn das System wenig Speicher verfügbar hat. So verhält es sich wie tmpfs, mit dem Unterschied, dass die Dateien in einen speziellen Pfad geschrieben werden anstatt in den Swap-Bereich.

Einzelnachweise

  1. Peter Snyder: tmpfs: A Virtual Memory File System (PDF). Abgerufen am 7. Mai 2007.
  2. Hal L. Stern: SunOS 4.1 Performance Tuning (GZipped PostScript). Abgerufen am 7. Mai 2007.
  3. Daniel Robbins (September 1, 2001): Advanced filesystem implementor's guide. Abgerufen am 7. Mai 2007. Beschreibung der Implementierung in Linux
  4. Julio M. Merino Vidal (February 24, 2006): NetBSD-SoC: Efficient memory file-system. Abgerufen am 7. Mai 2007.
  5. Derek Morr (December 2, 2008): FreeBSD tmpfs manpage. Abgerufen am 2. Dezember 2008.
  6. NetBSD team (February 13, 2008): mount_tmpfs(8) - NetBSD Manual Pages. Abgerufen am 7. Mai 2009. NetBSD mount_tmpfs man page

Referenzen


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Tmpfs — временное файловое хранилище во многих Unix like ОС. Предназначена для монтирования файловой системы, но размещается в ОЗУ вместо физического диска. Подобная конструкция является RAM диском. Содержание 1 Семантика 2 Реализации 2.1 Sun …   Википедия

  • TMPFS — is a common name for a temporary file storage facility on many Unix like operating systems. It is intended to appear as a mounted file system, but one which uses virtual memory instead of a persistent storage device. Semantics Everything stored… …   Wikipedia

  • tmpfs — es el nombre que recibe un sistema de almacenamiento en muchos sistemas operativos de tipo Unix. Aparece como un sistema de archivos montado aunque usa memoria volátil. Es similar a los discos RAM, que aparecen como discos virtuales, y pueden… …   Wikipedia Español

  • TMPFS — Saltar a navegación, búsqueda tmpfs es el nombre que recibe un sistema de almacenamiento en muchos sistemas operativos de tipo Unix. Está preparado para aparecer como un sistema de archivos montado aunque usa memoria virtual. Contenido 1… …   Wikipedia Español

  • TmpFS — (Temporary File System) est le nom générique données à tout système de fichiers Unix temporaire. Tout fichier créé dans un tel système de fichier disparait lors de l arrêt du système. L implémentation par défaut du tmpfs des noyaux Linux 2.6.x[1] …   Wikipédia en Français

  • Tmpfs — (Temporary File System) est le nom générique données à tout système de fichiers Unix temporaire. Tout fichier créé dans un tel système de fichier disparait lors de l arrêt du système. L implémentation par défaut du tmpfs des noyaux Linux 2.6.x[1] …   Wikipédia en Français

  • tmpfs — (Temporary File System) est le nom générique données à tout système de fichiers Unix temporaire. Tout fichier créé dans un tel système de fichiers disparait lors de l arrêt du système. L implémentation par défaut du tmpfs des noyaux Linux… …   Wikipédia en Français

  • TMPFS — ist ein Dateisystem, das in vielen Unix artigen Betriebssystemen als Ramdisk eingesetzt wird. Hierbei wird der Arbeitsspeicher statt der Festplatte als Speicher benutzt. Funktion Alles, was in tmpfs gespeichert wird, ist nur temporär, da es nicht …   Deutsch Wikipedia

  • TMPFS — Temporary File System …   Acronyms

  • TMPFS — Temporary File System …   Acronyms von A bis Z

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”