Tmpfs je dočasné úložiště souborů v mnoha operačních systémech podobných Unixu. Navrženo pro připojení souborového systému , ale je umístěno v paměti RAM namísto fyzického disku. Taková konstrukce je podobná RAM disku .
Všechna data v Tmpfs jsou dočasná, v tom smyslu, že na pevném disku nebude vytvořen žádný soubor . Po restartu budou všechna data obsažená v Tmpfs ztracena.
Velikost paměti používaná pro Tmpfs se liší v závislosti na počtu jí přidělených souborů a lze ji rozšířit pomocí swapu . Mnoho unixových distribucí používá standardně Tmpfs pro umístění /tmp nebo sdílení paměti. To lze vidět ve výstupu příkazu df , například:
Použitá velikost souborového systému Dostupnost Využití % Připojeno tmpfs 256M 688K 256M 1% /tmpSunOS 4 zahrnoval raný vývoj Tmpfs; poprvé se objevil v SunOS 4.0 na konci roku 1987 spolu s novou ortogonální správou adresního prostoru, která umožňuje umístit jakýkoli objekt do paměti. [1] [2]
Na Solarisu byl /tmp hostován v Tmpfs, který se stal standardem v Solaris 2.1, vydaném v listopadu 1994. Výstup příkazu df na Solarisu ukazoval swap jako souborový systém libovolného oddílu Tmpfs:
# df -k Využité kbajty souborového systému dostupná kapacita Připojeno na swap 601592 0 601592 0% /tmp/testTmpfs je podporován Linuxem od verze 2.4. [3] Tmpfs (také známý jako shmfs ) se liší od linuxového RAM disku dynamickou alokací paměti a přesouváním nepoužívaných stránek do swap . RAMfs na druhou stranu nepoužívá swap (to může být výhoda i nevýhoda). Navíc MFS a některé starší verze RAMfs neměnily svou velikost dynamicky, ale zůstaly stejné velikosti, jak byly připojeny.
Pomocí Tmpfs například:
mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /spacekterý se rozroste na 1 GiB s 10240 inody v RAM/swap a je dostupný pouze pro vlastníka adresáře /space . Maximální velikost souborového systému lze měnit za chodu, například:
mount -o remount,velikost=2G /prostorSoubory Tmpf mohou obsahovat libovolné adresáře, ve kterých jsou uložena dočasná data, která se při restartu systému smažou: /var/lock, /var/run, /tmp atd. Kromě toho, aby se snížil počet operací s diskem (za účelem maximalizace výkonu systému nebo uložit zdrojové SSD) Tmpfs někdy obsahuje adresáře, které obvykle ukládají data mezi restarty, jako je /var/tmp (tento adresář je často vymazán, i když se to nedoporučuje dělat [4] ) nebo adresáře mezipaměti některých programů (internetové prohlížeče ).
Tmpfs byl implementován v NetBSD verze 4.0 10. září 2005 [5] . FreeBSD 7.0 představilo Tmpfs portované z NetBSD . [6] DragonFly BSD má od verze 2.5.1 také portovanou implementaci Tmpfs z NetBSD .
Windows má přibližnou obdobu Tmpfs ve formě „dočasných souborů“. Soubory vytvořené pomocí atributu FILE_ATTRIBUTE_TEMPORARY a příznaku FILE_FLAG_DELETE_ON_CLOSE jsou umístěny do paměti RAM a zapsány na pevný disk pouze v případě, že systému dojde paměť RAM. "Dočasné soubory" jsou tedy podobné Tmpfs, až na to, že když je nedostatek paměti, zapisují se do cesty zadané při jejich vytvoření, nikoli do odkládacího souboru. Tato metoda se často používá na serverech s TransmitFile k přípravě obsahu a jeho uložení před odesláním klientovi.
Souborové systémy ( seznam , srovnání ) | |||||||
---|---|---|---|---|---|---|---|
Disk |
| ||||||
Distribuované (síť) | |||||||
Speciální |
|