tmpfs(5)

NUME
tmpfs - un sistem de fișiere în memoria virtuală

DESCRIERE
Facilitatea tmpfs permite crearea de sisteme de fișiere al căror conținut se află în memoria virtuală. Deoarece fișierele din astfel de sisteme de fișiere se află de obicei în memoria RAM, accesul la fișiere este extrem de rapid.

Sistemul de fișiere este creat automat atunci când se montează un sistem de fișiere cu tipul tmpfs prin intermediul unei comenzi precum cea de mai jos:

    $ sudo mount -t tmpfs -o size=10M tmpfs /mnt/mytmpfs

Un sistem de fișiere tmpfs are următoarele proprietăți:

•   Sistemul de fișiere poate utiliza spațiul de interschimb (swap) atunci când presiunea asupra memoriei fizice o cere.

•   Sistemul de fișiere consumă doar atâta memorie fizică și spațiu de interschimb cât este necesar pentru a stoca conținutul curent al sistemului de fișiere.

•   În timpul unei operații de remontare (mount -o remount), dimensiunea sistemului de fișiere poate fi modificată (fără a pierde conținutul existent al sistemului de fișiere).

Dacă un sistem de fișiere tmpfs este demontat, conținutul său este înlăturat (pierdut).

  Opțiuni de montare
Sistemul de fișiere tmpfs acceptă următoarele opțiuni de montare:

size=octeți
    Specifică o limită superioară a dimensiunii sistemului de fișiere. Dimensiunea este exprimată în octeți și este rotunjită la pagini întregi. Limita este eliminată dacă dimensiunea este 0.

    Dimensiunea poate avea un sufix k, m sau g pentru Ki, Mi, Gi (kilo binar (kibi), mega binar (mebi) și giga binar (gibi)).

    Dimensiunea poate avea, de asemenea, un sufix % pentru a limita această instanță la un procent din memoria RAM fizică.

    Valoarea implicită, atunci când nu se specifică nici size, nici nr_blocks, este size=50%.

nr_blocks=blocuri
    La fel ca size, dar în blocuri de PAGE_CACHE_SIZE.

    Blocurile pot fi specificate cu sufixe k, m sau g, precum size, dar nu cu un sufix %.

nr_inodes=noduri-i
    Numărul maxim de noduri-i pentru această instanță. Valoarea implicită este jumătate din numărul de pagini fizice de RAM sau (pe o mașină cu memorie mare) numărul de pagini de RAM cu memorie mică, oricare dintre acestea este mai mic. Limita este eliminată dacă numărul este 0.

    Nodurile-i pot fi specificate cu sufixe k, m sau g, precum size, dar nu cu un sufix %.

noswap(începând cu Linux 6.4)
    Dezactivează swap. Remontările trebuie să respecte valorile originale. În mod implicit, spațiul de interschimb este activat.

mode=mod
    Stabilește permisiunile inițiale ale directorului rădăcină.

gid=gid (începând cu Linux 2.5.7)
    Stabilește ID-ul de grup inițial al directorului rădăcină.

uid=uid (începând cu Linux 2.5.7)
    Stabilește ID-ul de utilizator inițial al directorului rădăcină.

huge=opțiune-imens (începând cu Linux 4.7.0)
    Stabilește politica de alocare în memorie a tabelului de pagini imense pentru toate fișierele din această instanță (dacă CONFIG_TRANSPARENT_HUGEPAGE este activat).

    Valoarea opțiunii opțiune-imens este una dintre următoarele:

    never
        Nu se alocă pagini imense. Aceasta este opțiunea implicită.

    always
        Se încearcă să se aloce pagini imense de fiecare dată când este nevoie de o pagină nouă.

    within_size
        Se alocă o pagină imensă numai dacă aceasta se va încadra în întregime în i_size. De asemenea, se respectă indicațiile fadvise(2) și madvise(2).

    advise
        Se alocă pagini imense numai dacă sunt solicitate cu fadvise(2) sau madvise(2).

    deny
        Pentru utilizare în situații de urgență, pentru a forța dezactivarea opțiunii de pagini imense de la toate montările.

    force
        Forțează activarea opțiunii de pagini imense pentru toate montările; util pentru testare.

mpol=opțiune-mpol (începând cu Linux 2.6.15)
    Stabilește politica de alocare a memoriei NUMA pentru toate fișierele din această instanță (dacă CONFIG_NUMA este activat).

    Valoarea opțiunii opțiune-mpol este una dintre următoarele:

    default
        Utilizează politica de alocare a proceselor (a se vedea set_mempolicy(2)).

    prefer:nod
        De preferință, se alocă memorie din nodul dat.

    bind:listă-noduri
        Alocă memorie numai din nodurile din listă-noduri.

    interleave
        Alocă de la fiecare nod în parte.

    interleave:listă-noduri
        Alocă de la fiecare nod din listă-noduri pe rând.

    local
        De preferință, alocă memoria din nodul local.

    În exemplul de mai sus, listă-noduri este o listă de numere și intervale zecimale, separate prin virgule, care specifică nodurile NUMA. Un interval este o pereche de numere zecimale separate prin cratimă, cel mai mic și cel mai mare număr de noduri din intervalul respectiv. De exemplu, mpol=bind:0-3,5,7,9-15.

VERSIUNI
Facilitatea tmpfs a fost adăugată în Linux 2.4, ca succesor al mai vechii facilități ramfs, care nu prevedea verificarea limitelor și nici nu permitea utilizarea spațiului de interschimb.

NOTE
Pentru ca instrumentele și aplicațiile din spațiul utilizatorului să creeze sisteme de fișiere tmpfs, nucleul trebuie să fie configurat cu opțiunea CONFIG_TMPFS.

Sistemul de fișiere tmpfs acceptă atribute extinse (a se vedea xattr(7)), dar nu sunt permise atributele extinse de utilizator.

Un sistem de fișiere intern de memorie partajată este utilizat pentru memoria partajată System V (shmget(2)) și pentru hărțile anonime partajate (mmap(2) cu fanioanele MAP_SHARED și MAP_ANONYMOUS). Acest sistem de fișiere este disponibil indiferent dacă nucleul a fost configurat sau nu cu opțiunea CONFIG_TMPFS.

Un sistem de fișiere tmpfs montat la /dev/shm este utilizat pentru implementarea memoriei partajate POSIX (shm_overview(7)) și a semafoarelor POSIX (sem_overview(7)).

Cantitatea de memorie consumată de toate sistemele de fișiere tmpfs este afișată în câmpul Shmem din /proc/meminfo și în câmpul partajată afișat de free(1).

Facilitatea tmpfs a fost denumită anterior shmfs.

CONSULTAȚI ȘI
df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8)

Fișierele sursă ale nucleului Documentation/filesystems/tmpfs.txt și Documentation/admin-guide/mm/transhuge.rst.

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.