tmpfs(5) File Formats Manual tmpfs(5) NAZWA tmpfs - system plikow w pamieci wirtualnej OPIS Funkcja tmpfs umozliwia utworzenie systemu plikow, ktorego zawartosc jest przechowywana w pamieci wirtualnej. Jako ze jest to zwykle pamiec RAM, dostep do plikow w systemach plikow tego typu jest ekstremalnie szybki. System plikow jest tworzony automatycznie przy montowaniu systemu plikow typu tmpfs za pomoca polecenia takiego jak: $ sudo mount -t tmpfs -o size=10M tmpfs /mnt/moj-tmpfs System plikow tmpfs ma nastepujace wlasciwosci: o System plikow moze wykorzystac przestrzen wymiany, gdy wymaga tego zapotrzebowanie na pamiec fizyczna. o System plikow zajmuje wylacznie tyle pamieci fizycznej i przestrzeni wymiany ile jest potrzebne do przechowania jego aktualnej zawartosci. o Podczas operacji ponownego montowania (mount -o remount), mozna zmienic rozmiar systemu plikow (bez utraty jego aktualnej zawartosci). Przy odmontowywaniu systemu plikow tmpfs jest zawartosc jest odrzucana (tracona). Opcje montowania System plikow tmpfs obsluguje nastepujace opcje montowania: size=bajty Okresla gorny limit rozmiaru systemu plikow. Rozmiar jest podany w bajtach i zaokraglany w gore do calych stron. Limit jest usuwany, gdy podano rozmiar 0. Rozmiar moze posiadac przyrostek k, m lub g aby wskazac Ki, Mi, Gi (binarne kilo (kibi), binarne mega (mebi) i binarne giga (gibi)). Rozmiar moze posiadac rowniez przyrostek % aby ograniczyc te instancje do okreslonego procenta fizycznej pamieci RAM. Domyslnie, jesli nie poda sie ani size, ani nr_blocks przyjmuje sie size=50%. nr_blocks=bloki Jak size, lecz w blokach PAGE_CACHE_SIZE. Bloki mozna podac z przyrostkiem k, m lub g, jak size, lecz niedopuszczalny jest przyrostek %. nr_inodes=i-wezly Maksymalna liczba i-wezlow w tej instancji. Domyslnie jest to polowa liczby stron pamieci fizycznej RAM lub (w komputerach z highmem) liczba pamieci RAM lowmem, w zaleznosci od tego, ktora jest mniejsza. Limit jest usuwany, gdy podano rozmiar 0. I-wezly mozna podac z przyrostkiem k, m lub g, jak size, lecz niedopuszczalny jest przyrostek %. noswap (od Linuksa 6.4) Wylacza przestrzen wymiany. Przemontowanie musi respektowac oryginalne ustawienia. Domyslnie przestrzen wymiany jest wlaczona. mode=tryb Ustawia poczatkowe uprawnienia glownego katalogu. gid=id-grupy (od Linuksa 2.5.7) Ustawia poczatkowy identyfikator grupy glownego katalogu. uid=id-uzytkownika (od Linuksa 2.5.7) Ustawia poczatkowy identyfikator uzytkownika glownego katalogu huge=opcja-duzych-stron (od Linuksa 4.7.0) Ustawia zasady przydzielania tabeli duzej pamieci do wszystkich plikow w tej instancji (jesli wlaczono CONFIG_TRANSPARENT_HUGEPAGE). Wartoscia opcji-duzych-stron jest jedna z ponizszych: never Nie przydziela duzych stron. Zachowanie domyslne. always Sprobuje przydzielic duze strony w kazdym przypadku, gdy potrzebna jest nowa strona. within_size Przydziela duza strone, jesli miesci sie w pelni w i_size. Honoruje wskazowki fadvise(2) i madvise(2). advise Przydziela duze strony, jesli sa zadane przez fadvise(2) lub madvise(2). deny Do sytuacji awaryjnych, sluzy do wymuszenia wylaczenia opcji duzych stron ze wszystkich montowan. force Wymusza wlaczenie opcji duzych stron we wszystkich montowaniach; przydatne w testach. mpol=opcja-mpol (od Linuksa 2.6.15) Ustawia zasady przydzielania pamieci NUMA do wszystkich plikow w tej instancji (jesli wlaczono CONFIG_NUMA). Wartoscia opcji-mpol jest jedna z ponizszych: default Uzywa zasad alokacji procesu (zob. set_mempolicy(2)). prefer:wezel Preferuje przydzielenie pamieci od danego wezla. bind:lista-wezlow Przydziela pamiec wylacznie z wezlow w liscie-wezlow. interleave Przydziela kolejno z kazdego wezla. interleave:lista-wezlow Przydziela kolejno z kazdego wezla z listy-wezlow. local Preferuje przydzielanie pamieci z lokalnego wezla. W powyzszych opisach lista-wezlow jest lista liczby dziesietych i zakresow okreslajacych wezly NUMA, a separatorem jest przecinek (,). Zakres jest para liczb dziesietnych rozdzielonych dywizem (-) bedacych najmniejszym i najwiekszym numerem wezla w zakresie. Przyklad: mpol=bind:0-3,5,7,9-15. WERSJE Funkcje tmpfs dodano w Linuksie 2.4, jako nastepce starszej funkcji ramfs, ktora nie udostepniala sprawdzania limitow, ani nie pozwalala korzystac z przestrzeni wymiany. UWAGI Aby umozliwic tworzenie systemow plikow tmpfs narzedziom i programom w przestrzeni uzytkownika, jadro musi byc skonfigurowane z opcja CONFIG_TMPFS. System plikow tmpfs obsluguje atrybuty rozszerzone (zob. xattr(7)), lecz niedozwolone sa atrybuty rozszerzone uzytkownika. Do pamieci wspoldzielonej Systemu V (shmget(2)) i anonimowych przypisan wspoldzielonych (mmap(2) z flagami MAP_SHARED i MAP_ANONYMOUS) uzywany jest wewnetrzny system plikow pamieci wspoldzielonej. Jest on dostepny niezaleznie od tego, czy jadro skonfigurowano z opcja CONFIG_TMPFS. System plikow tmpfs zamontowany jako /dev/shm jest uzywany w implementacji pamieci wspoldzielonej POSIX (shm_overview(7)) i semaforach POSIX (sem_overview(7)). Rozmiar pamieci zajetej przez wszystkie systemy plikow tmpfs jest pokazany w polu Shmem w pliku /proc/meminfo oraz w polu shared wyswietlanym przez free(1). Funkcja tmpfs nazywala sie wczesniej shmfs. ZOBACZ TAKZE df(1), du(1), memfd_create(2), mmap(2), set_mempolicy(2), shm_open(3), mount(8) Pliki zrodel jadra Documentation/filesystems/tmpfs.txt i Documentation/admin-guide/mm/transhuge.rst. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.9.1 2 maja 2024 r. tmpfs(5)