Tmpfs

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 1 juli 2018; kontroller kräver 4 redigeringar .

Tmpfs  är temporär fillagring i många Unix-liknande operativsystem. Designad för att montera ett filsystem , men ligger i RAM istället för en fysisk disk. En sådan konstruktion liknar en RAM-disk .

Semantik

All data i Tmpfs är tillfällig, i den meningen att ingen fil kommer att skapas på hårddisken . Efter en omstart kommer all data som finns i Tmpfs att gå förlorad.

Minnet som används för Tmpfs varierar i storlek beroende på antalet filer som tilldelats det och kan utökas med swap . Många Unix - distributioner använder Tmpfs som standard för /tmp- placering eller minnesdelning. Detta kan ses i utgången av kommandot df , till exempel:

Filsystem Storlek använd Tillgänglig användning% monterad på tmpfs 256M 688K 256M 1% /tmp

Implementeringar

SunOS/Solaris

SunOS 4 inkluderade tidiga utvecklingar av Tmpfs; det dök upp för första gången i SunOS 4.0 i slutet av 1987, tillsammans med en ny ortogonal adressrymdshantering som gör att alla objekt kan placeras i minnet. [1] [2]

Solaris var /tmp värd i Tmpfs, som blev standard i Solaris 2.1, som släpptes i november 1994. Utdata från kommandot dfSolaris visade swap som filsystem för valfri Tmpfs-partition:

# df -k Filsystem kbyte använd tillgänglig kapacitet Monterad på swap 601592 0 601592 0% /tmp/test

Linux

Tmpfs har stöds av Linux sedan version 2.4. [3] Tmpfs (även känd som shmfs ) skiljer sig från Linux RAM-disken genom att dynamiskt allokera minne och flytta oanvända sidor för att byta . RAMfs, å andra sidan, använder inte swap (detta kan vara både en fördel och en nackdel). Dessutom ändrade inte MFS , och vissa äldre versioner av RAMfs, sin storlek dynamiskt, utan förblev samma storlek som de monterades.

Använda Tmpfs till exempel:

montera -t tmpfs -o storlek=1G,nr_inodes=10k,mode=0700 tmpfs /mellanslag

som kommer att växa till 1 GiB med 10240 inoder i RAM/swap och endast tillgängligt för ägaren av katalogen /space . Den maximala filsystemets storlek kan ändras direkt, till exempel:

mount -o remount,size=2G /space

Tmpfs kan innehålla alla kataloger som lagrar temporär data som raderas när systemet startas om: /var/lock, /var/run, /tmp, etc. Dessutom för att minska antalet diskoperationer (för att maximera systemets prestanda eller spara resurs-SSD:er) Tmpfs innehåller ibland kataloger som vanligtvis lagrar data mellan omstarter, såsom /var/tmp (denna katalog rensas ofta, även om det rekommenderas att inte göra detta [4] ) eller cachning av kataloger för vissa program (internetwebbläsare ).

BSD

Tmpfs implementerades i NetBSD version 4.0 den 10 september 2005 [5] . FreeBSD 7.0 introducerade Tmpfs portade från NetBSD . [6] DragonFly BSD , sedan version 2.5.1, har också en portad implementering av Tmpfs från NetBSD .

Microsoft Windows

Windows har en ungefärlig analog av Tmpfs i form av "temporära filer". Filer som skapats med attributet FILE_ATTRIBUTE_TEMPORARY och flaggan FILE_FLAG_DELETE_ON_CLOSE placeras i RAM och skrivs till hårddisken endast om systemet får slut på RAM. Således liknar "temporära filer" Tmpfs, förutom att när minnet är slut skrivs de till den sökväg som angavs när de skapades, och inte till växlingsfilen. Denna metod används ofta på servrar med TransmitFile för att förbereda innehåll och buffra det innan det skickas till klienten.

Anteckningar

  1. Peter Snyder. tmpfs: Ett virtuellt minnesfilsystem (PDF). Hämtad 2 juli 2010. Arkiverad från originalet 1 maj 2012.
  2. Hal L. Stern. SunOS 4.1 Performance Tuning ( GZipped PostScript). Hämtad 2 juli 2010. Arkiverad från originalet 1 maj 2012.
  3. Daniel Robbins. Avancerad guide för implementering av filsystem (1 september 2001). Hämtad 2 juli 2010. Arkiverad från originalet 1 maj 2012. Artikel som beskriver implementeringar i Linux
  4. Filsystemhierarkistandard . Hämtad 10 november 2012. Arkiverad från originalet 3 januari 2013.
  5. Julio M. Merino Vidal. NetBSD-SoC: Effektivt minnesfilsystem (24 februari 2006). Hämtad 2 juli 2010. Arkiverad från originalet 1 maj 2012.
  6. Derek Morr. FreeBSD tmpfs manpage (2 december 2008). Hämtad 2 juli 2010. Arkiverad från originalet 1 maj 2012.

Länkar