tmpfs - un sistem de fișiere în memoria
virtuală
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).
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:
- Î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.
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.
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.
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 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.