tmpfs(5)

NAZWA
tmpfs - system plików w pamięci wirtualnej

OPIS
Funkcja tmpfs umożliwia utworzenie systemu plików, którego zawartość jest przechowywana w pamięci wirtualnej. Jako że jest to zwykle pamięć RAM, dostęp do plików w systemach plików tego typu jest ekstremalnie szybki.

System plików jest tworzony automatycznie przy montowaniu systemu plików typu tmpfs za pomocą polecenia takiego jak:

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

System plików tmpfs ma następujące właściwości:

•   System plików może wykorzystać przestrzeń wymiany, gdy wymaga tego zapotrzebowanie na pamięć fizyczną.

•   System plików zajmuje wyłącznie tyle pamięci fizycznej i przestrzeni wymiany ile jest potrzebne do przechowania jego aktualnej zawartości.

•   Podczas operacji ponownego montowania (mount -o remount), można zmienić rozmiar systemu plików (bez utraty jego aktualnej zawartości).

Przy odmontowywaniu systemu plików tmpfs jest zawartość jest odrzucana (tracona).

  Opcje montowania
System plików tmpfs obsługuje następujące opcje montowania:

size=bajty
    Określa górny limit rozmiaru systemu plików. Rozmiar jest podany w bajtach i zaokrąglany w górę do całych stron. Limit jest usuwany, gdy podano rozmiar 0.

    Rozmiar może posiadać przyrostek k, m lub g aby wskazać Ki, Mi, Gi (binarne kilo (kibi), binarne mega (mebi) i binarne giga (gibi)).

    Rozmiar może posiadać również przyrostek % aby ograniczyć tę instancję do określonego procenta fizycznej pamięci RAM.

    Domyślnie, jeśli nie poda się ani size, ani nr_blocks przyjmuje się size=50%.

nr_blocks=bloki
    Jak size, lecz w blokach PAGE_CACHE_SIZE.

    Bloki można podać z przyrostkiem k, m lub g, jak size, lecz niedopuszczalny jest przyrostek %.

nr_inodes=i-węzły
    Maksymalna liczba i-węzłów w tej instancji. Domyślnie jest to połowa liczby stron pamięci fizycznej RAM lub (w komputerach z highmem) liczba pamięci RAM lowmem, w zależności od tego, która jest mniejsza. Limit jest usuwany, gdy podano rozmiar 0.

    I-węzły można podać z przyrostkiem k, m lub g, jak size, lecz niedopuszczalny jest przyrostek %.

noswap (od Linuksa 6.4)
    Wyłącza przestrzeń wymiany. Przemontowanie musi respektować oryginalne ustawienia. Domyślnie przestrzeń wymiany jest włączona.

mode=tryb
    Ustawia początkowe uprawnienia głównego katalogu.

gid=id-grupy (od Linuksa 2.5.7)
    Ustawia początkowy identyfikator grupy głównego katalogu.

uid=id-użytkownika (od Linuksa 2.5.7)
    Ustawia początkowy identyfikator użytkownika głównego katalogu

huge=opcja-dużych-stron (od Linuksa 4.7.0)
    Ustawia zasady przydzielania tabeli dużej pamięci do wszystkich plików w tej instancji (jeśli włączono CONFIG_TRANSPARENT_HUGEPAGE).

    Wartością opcji-dużych-stron jest jedna z poniższych:

    never
        Nie przydziela dużych stron. Zachowanie domyślne.

    always
        Spróbuje przydzielić duże strony w każdym przypadku, gdy potrzebna jest nowa strona.

    within_size
        Przydziela dużą stronę, jeśli mieści się w pełni w i_size. Honoruje wskazówki fadvise(2) i madvise(2).

    advise
        Przydziela duże strony, jeśli są żądane przez fadvise(2) lub madvise(2).

    deny
        Do sytuacji awaryjnych, służy do wymuszenia wyłączenia opcji dużych stron ze wszystkich montowań.

    force
        Wymusza włączenie opcji dużych stron we wszystkich montowaniach; przydatne w testach.

mpol=opcja-mpol (od Linuksa 2.6.15)
    Ustawia zasady przydzielania pamięci NUMA do wszystkich plików w tej instancji (jeśli włączono CONFIG_NUMA).

    Wartością opcji-mpol jest jedna z poniższych:

    default
        Używa zasad alokacji procesu (zob. set_mempolicy(2)).

    prefer:węzeł
        Preferuje przydzielenie pamięci od danego węzła.

    bind:lista-węzłów
        Przydziela pamięć wyłącznie z węzłów w liście-węzłów.

    interleave
        Przydziela kolejno z każdego węzła.

    interleave:lista-węzłów
        Przydziela kolejno z każdego węzła z listy-węzłów.

    local
        Preferuje przydzielanie pamięci z lokalnego węzła.

    W powyższych opisach lista-węzłów jest listą liczby dziesiętych i zakresów określających węzły NUMA, a separatorem jest przecinek (,). Zakres jest parą liczb dziesiętnych rozdzielonych dywizem (-) będących najmniejszym i największym numerem węzła w zakresie. Przykład: mpol=bind:0-3,5,7,9-15.

WERSJE
Funkcję tmpfs dodano w Linuksie 2.4, jako następcę starszej funkcji ramfs, która nie udostępniała sprawdzania limitów, ani nie pozwalała korzystać z przestrzeni wymiany.

UWAGI
Aby umożliwić tworzenie systemów plików tmpfs narzędziom i programom w przestrzeni użytkownika, jądro musi być skonfigurowane z opcją CONFIG_TMPFS.

System plików tmpfs obsługuje atrybuty rozszerzone (zob. xattr(7)), lecz niedozwolone są atrybuty rozszerzone użytkownika.

Do pamięci współdzielonej Systemu V (shmget(2)) i anonimowych przypisań współdzielonych (mmap(2) z flagami MAP_SHARED i MAP_ANONYMOUS) używany jest wewnętrzny system plików pamięci współdzielonej. Jest on dostępny niezależnie od tego, czy jądro skonfigurowano z opcją CONFIG_TMPFS.

System plików tmpfs zamontowany jako /dev/shm jest używany w implementacji pamięci współdzielonej POSIX (shm_overview(7)) i semaforach POSIX (sem_overview(7)).

Rozmiar pamięci zajętej przez wszystkie systemy plików tmpfs jest pokazany w polu Shmem w pliku /proc/meminfo oraz w polu shared wyświetlanym przez free(1).

Funkcja tmpfs nazywała się wcześniej shmfs.

ZOBACZ TAKŻE
df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8)

Pliki źródeł jądra Documentation/filesystems/tmpfs.rst i Documentation/admin-guide/mm/transhuge.rst.

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.