Tmpfs

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 1. července 2018; kontroly vyžadují 4 úpravy .

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 .

Sémantika

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% /tmp

Implementace

SunOS/Solaris

SunOS 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/test

Linux

Tmpfs 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 /space

který 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 /prostor

Soubory 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 ).

BSD

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 .

Microsoft Windows

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.

Poznámky

  1. Peter Snyder. tmpfs: Souborový systém virtuální paměti (PDF). Získáno 2. července 2010. Archivováno z originálu 1. května 2012.
  2. Hal L. Stern. Ladění výkonu SunOS 4.1 ( GZipped PostScript). Získáno 2. července 2010. Archivováno z originálu 1. května 2012.
  3. Daniel Robbins. Průvodce implementátorem pokročilého souborového systému (1. září 2001). Získáno 2. července 2010. Archivováno z originálu 1. května 2012. Článek popisující implementace v Linuxu
  4. Standard hierarchie souborového systému . Získáno 10. listopadu 2012. Archivováno z originálu 3. ledna 2013.
  5. Julio M. Merino Vidal. NetBSD-SoC: Efektivní paměťový souborový systém (24. února 2006). Získáno 2. července 2010. Archivováno z originálu 1. května 2012.
  6. Derek Morr. Manuálová stránka FreeBSD tmpfs (2. prosince 2008). Získáno 2. července 2010. Archivováno z originálu 1. května 2012.

Odkazy