Provided by: manpages-pl_4.27.0-1_all 

NAZWA
/proc/pid/smaps - nikt nie wie, skąd w „smaps” wzięło się „s”
OPIS
/proc/pid/smaps (od Linuksa 2.6.14)
Plik ten pokazuje zużycie pamięci dla każdego mapowania procesu (polecenie pmap(1) wyświetla
podobne informacje, w postaci która może być łatwiejsza do przetwarzania). Dla każdego takiego
mapowania pokazana jest lista następujących linii:
00400000-0048a000 r-xp 00000000 fd:03 960637 /bin/bash
Size: 552 kB
Rss: 460 kB
Pss: 100 kB
Shared_Clean: 452 kB
Shared_Dirty: 0 kB
Private_Clean: 8 kB
Private_Dirty: 0 kB
Referenced: 460 kB
Anonymous: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Locked: 0 kB
ProtectionKey: 0
VmFlags: rd ex mr mw me dw
Pierwsza z tych linii pokazuje te same informacje o mapowaniach, co w /proc/pid/maps. Kolejne
linie zawierają rozmiar mapowania, ilość mapowań obecnych w RAM („Rss”), proporcjonalny udział
procesu w tym mapowaniu („Pss”), liczbę czystych i brudnych stron współdzielonych w mapowaniu oraz
liczbę czystych i brudnych prywatnych stron w mapowaniu. „Referenced” oznacza pamięć która jest
oznaczona jako pamięć do której ktoś odnosi się lub uzyskuje dostęp. „Anonymous” pokazuje pamięć
nienależącą do żadnego pliku. „Swap” pokazuje jak dużo pamięci która byłaby anonimowa jest również
używana, lecz w pamięci wymiany.
Wiersz „KernelPageSize” (dostępny od Linuksa 2.6.29) jest rozmiarem strony używanym przez jądro do
wirtualnej przestrzeni pamięci. Jest on w większości przypadków takim sam, jak rozmiar używany
przez MMU. Wyjątek występuje na jądrach PPC64, gdy jądro korzystając z podstawowego rozmiaru
strony w wielkości 64 kB może wciąż używać 4 kB stron dla MMU na starszych procesorach. Aby
rozróżnić oba atrybuty, wiersz „MMUPageSize” (również dostępny od Linuksa 2.6.29) raportuje
rozmiar strony używany przez MMU.
„Locked” wskazuje, czy mapowanie jest zablokowane w pamięci czy nie.
Wiersz „ProtectionKey” (dostępny od Linuksa 4.9, tylko na architekturze x86) zawiera klucz ochrony
pamięci (zob. pkeys(7)) związany z obszarem pamięci wirtualnej. Wpis ten jest obecny tylko, gdy
jądro zbudowano z opcją konfiguracyjną CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS (od Linuksa 4.6).
Wiersz „VmFlags” (dostępny od Linuksa 3.8) reprezentuje flagi jądra związane z danych obszarem
pamięci wirtualnej (VMA) zakodowanym za pomocą poniższych dwuliterowych kodów:
rd - do odczytu (readable)
wr - do zapisu (writable)
ex - wykonywalny (executable)
sh - dzielony (shared)
mr - mogący odczytywać (may read)
mw - mogący zapisywać (may write)
me - mogący wykonywać (may execute)
ms - mogący dzielić (may share)
gd - segment stosu rośnie w dół (grows down)
pf - surowy zakres PFN
dw - wyłączony zapis do zmapowanego pliku (disabled write)
lo - strony są zablokowane w pamięci (locked)
io - obszar wejścia/wyjścia zmapowany do pamięci (I/O)
sr - dostarczono wskazówkę odczytu sekwencyjnego (sequential read)
rr - dostarczono wskazówkę odczytu losowego (random read)
dc - bez kopiowania obszaru przy rozgałęzieniu — forkowaniu (don't copy)
de - bez rozszerzania obszaru przy ponownym mapowaniu (don't expand)
ac - obszar jest księgowalny (area accountable)
nr - przestrzeń wymiany nie jest zarezerowana dla tego obszaru (not reserved)
ht - obszaru używa dużych stron tlb (huge tlb)
sf - wykonuje synchroniczne chybienia stron (synchronous faults; od Linuksa 4,15)
nl - mapowanie nieliniowe (non-linear; usunięte w Linuksie 4.0)
ar - znacznik zależny od architektury
wf - wyczyść przy rozgałęzieniu (wipe on fork; od Linuksa 4.14)
dd - nie włączaj obszaru do zrzutu pamięci (don't dump)
sd - znacznik soft-dirty (od Linuksa 3.13)
mm - obszar mapowania mieszanego (mixed map)
hg - znacznik wskazówki dużej strony (huge)
nh - znacznik wskazówki braku dużej strony (no-huge)
mg - znacznik wskazówki łączenia (mergeable)
um - śledzenie brakujących stron userfaultfd (od Linuksa 4.3)
uw - śledzenie stron wprotect userfaultfd (od Linuksa 4.3)
Plik /proc/pid/smaps istnieje tylko jeśli podczas kompilacji jądra włączono opcję
CONFIG_PROC_PAGE_MONITOR.
ZOBACZ TAKŻE
proc(5)
TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda
<robert@debian.org> i 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 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.
Linux man-pages 6.9.1 2 maja 2024 r. proc_pid_smaps(5)