tmpfs

Från Wikipedia, den fria encyklopedin
Hoppa till navigation Hoppa till sökning

tmpfs ( engelska för temporärt filsystem ) är ett filsystem som används i många Unix-liknande operativsystem som en förbättrad ersättning för ramfs för att skapa en RAM-disk . Som med ramfs kan delar av det verkliga arbetsminnet integreras och skrivas som en hårddisk med tmpfs. Till skillnad från ramfs kan tmpfs dock inte flyta över i huvudminnet som fortfarande används regelbundet och därmed leda till en systemkrasch. Dessutom kan du med tmpfs använda både det verkliga arbetsminnet och det virtuella arbetsminnet på hårddisken (swap).

fungera

Allt som lagras i tmpfs är bara tillfälligt eftersom det inte lagras på hårddisken och inte längre är tillgängligt efter en omstart . Fördelen med tmpfs ligger i dess hastighet: läsning och skrivning från huvudminnet är mycket snabbare än från hårddisken. Av denna anledning implementeras den tillfälliga katalogen / tmp ofta med den. Katalogerna / var / run och / var / lock skapas också ofta med hjälp av dessa system.

Minnet som används av tmpfs växer och krymper, beroende på vilka filer det innehåller, och kan bytas ut till ett byteområde .

Många Unix -distributioner använder tmpfs som standard för filsystemet / tmp -filialen eller för delat minne . Detta kan spåras av kommandot df :

 Filsystemstorlek som används Tillgänglig. Används% Monterad på
tmpfs 256M 688K 256M 1% / tmp

Implementeringar

SunOS / Solaris

SunOS och senare Solaris inkluderar en av de tidigaste implementeringarna av tmpfs, [1] där den användes från version 4.1, som släpptes i mars 1990. [2] Från och med Solaris 2.1 är / tmp som standard ett tmpfs -filsystem. Den df kommandot korrekt visar ”swap” som bakgrund minne, oavsett vad som anges som bakgrundsminnet i fästet kommandot, eftersom denna parameter ignoreras av mount_tmpfs.

 # df -k
Filsystem 1K Block används Tillgänglig Används% Monterad på
byt 601592 0 601592 0% / tmp / test

Linux

Linux -kärnan tillhandahåller tmpfs version 2.4 eller högre. [3] Tmpfs (tidigare även känt som shmfs ) skiljer sig från en Linux RAM-disk genom att minnet tilldelas dynamiskt och mindre använda sidor kan bytas ut till ett byteområde . Ramfs , å andra sidan, använder inte något virtuellt minne (vilket kan vara både en fördel och en nackdel). Tmpfs kan växa dynamiskt upp till en specificerad maximal storlek (förinställd till hälften av tillgängligt RAM) och tar bara upp så mycket minne som krävs. Gränsen kan ändras genom att använda alternativ eller t.ex. B. med kommandot mount -t tmpfs -o size = 1G, nr_inodes = 10k, mode = 0700 tmpfs / space , vilket tillåter en maximal storlek på 1 GiB med högst 10240 inoder och exklusiv åtkomst för filsystemets ägare / utrymme . Gränsen kan ändras under drift med kommandot mount -o remount, size = 2G / space . Problem uppstår om gränsen sätts för högt och det inte finns tillräckligt med bytesutrymme.

BSD

Tmpfs inkluderades i de officiella NetBSD -källorna den 10 september 2005 [4] och kan användas från version 4.0. Implementeringen av NetBSD har överförts till FreeBSD och är tillgänglig från version 7.0. [5]

På system med lite minne kan användning av stora tillfälliga data i minnet orsaka instabilitet. [6]

Microsoft Windows

Windows har ett liknande koncept med "Temporary Files". Filer som skapades med flaggorna FILE_ATTRIBUTE_TEMPORARY och FILE_FLAG_DELETE_ON_CLOSE sparas i minnet och skrivs bara till hårddisken när systemet har lite minne tillgängligt. Det beter sig som tmpfs, med skillnaden att filerna skrivs till en speciell mapp istället för bytesområdet.

webb-länkar

Individuella bevis

  1. Peter Snyder: tmpfs: A Virtual Memory File System (PDF; 26 kB) Hämtad den 7 maj 2007.
  2. Hal L. Stern: SunOS 4.1 Performance Tuning ( gzipped PostScript; 39 kB) Åtkomst 15 februari 2013.
  3. ^ Daniel Robbins: Vanliga trådar: Avancerad filsystemsimplementörsguide, del 3 . 1 september 2001. Hämtad 15 februari 2013. Beskrivning av implementering i Linux
  4. Julio M. Merino Vidal: NetBSD-SoC: Effektivt minnesfilsystem . 24 februari 2006. Hämtad 15 februari 2013.
  5. Xin LI:FreeBSD tmpfs (5) manpage . 23 april 2012. Hämtad 15 februari 2013.
  6. mount_tmpfs (8) - NetBSD Manual Pages . 13 februari 2008. Hämtad 15 februari 2013. NetBSD mount_tmpfs man -sida