GNU/Linux >> Znalost Linux >  >> Cent OS

Porozumění systému souborů /proc

Souborový systém proc obsahuje hierarchii speciálních souborů, které představují aktuální stav jádra. Je pojmenován podle svého původního účelu, kterým je rozhraní ke strukturám v rámci běžících procesů pro podporu ladicích nástrojů. Linux to převzal ze Solarisu, ale také přidal rozhraní do jádra. Souborový systém proc se v průběhu let stal docela chaotický, takže Linux vytvořil souborový systém sysfs, aby jej vyčistil.

Soubory v adresáři /proc obsahují informace o vašem hardwaru a aktuálních procesech běžících na vašem systému. Soubory, které mají oprávnění k zápisu, lze upravit a změnit tak konfiguraci jádra.

Virtuální souborový systém

Soubory v adresáři /proc jsou virtuální soubory; proto je proc označován jako virtuální souborový systém. Většina virtuálních souborů má velikost nula bajtů, ale při prohlížení obsahuje velké množství informací. Většina časových a datových razítek na virtuálních souborech odráží aktuální čas a datum; tyto soubory jsou však neustále aktualizovány.

Virtuální soubory jako /proc/interrupts, /proc/meminfo, /proc/cpuinfo a /proc/devices poskytují pohled na hardware systému. Jiné, jako soubor /proc/filesystems a adresář /proc/sys poskytují informace o konfiguraci systému a rozhraní. Soubory obsahující informace o podobných tématech jsou seskupeny do virtuálních adresářů. Například adresáře procesů obsahují informace o každém běžícím procesu v systému.

Prohlížení virtuálních souborů

Většinu virtuálních souborů v /proc lze zobrazit pomocí příkazů jako cat, more a less. Chcete-li například zobrazit informace o CPU systému, zadejte:

# cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 79
model name	: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
stepping	: 1
microcode	: 0x1
cpu MHz		: 2199.998
cache size	: 30720 KB
physical id	: 0
siblings	: 1
core id		: 0
cpu cores	: 1
apicid		: 0
initial apicid	: 0
fpu		: yes
fpu_exception	: yes
cpuid level	: 13
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt
bogomips	: 4399.99
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management:

K určitým souborům lze přistupovat pouze s právy root. Některé soubory v /proc obsahují informace, které nejsou pro člověka čitelné. K zobrazení těchto souborů použijte nástroje jako lspci, free a top. Například použijte příkaz lspci k zobrazení seznamu všech zařízení PCI:

# lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]
00:01.2 USB controller: Intel Corporation 82371SB PIIX3 USB [Natoma/Triton II] (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
00:02.0 VGA compatible controller: Red Hat, Inc. QXL paravirtual graphic card (rev 04)
00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
00:04.0 SCSI storage controller: Red Hat, Inc Virtio SCSI
00:05.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:06.0 SCSI storage controller: Red Hat, Inc Virtio block device
00:07.0 Unclassified device [00ff]: Red Hat, Inc Virtio memory balloon

Změna virtuálních souborů

Většina virtuálních souborů v adresáři /proc je pouze pro čtení. Některé jsou však zapisovatelné a lze je použít k úpravě nastavení v jádře. To platí zejména pro soubory v adresáři /proc/sys. Chcete-li změnit hodnotu virtuálního souboru, použijte následující syntaxi:

# echo value > /proc/file

Chcete-li například změnit název hostitele, zadejte:

# echo www.example.com > /proc/sys/kernel/hostname

Ostatní soubory fungují jako binární nebo booleovské přepínače. Zobrazení souboru vrátí buď 0 (vypnuto nebo nepravda) nebo 1 (zapnuto nebo pravda). Příklad:

# cat /proc/sys/net/ipv4/ip_forward 
0

0 znamená, že jádro nepředává síťové pakety. Zapnutí předávání paketů:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
1

Soubory nejvyšší úrovně v rámci /proc

Některé z užitečnějších virtuálních souborů na nejvyšší úrovni adresáře /proc jsou popsány zde. Toto nemá být úplný seznam, ale uvést příklady některých souborů a jejich účel. Mnoho z těchto souborů je popsáno dále v příslušných lekcích.

  • /proc/buddyinfo :Tento soubor se používá především pro diagnostiku problémů s fragmentací paměti.
  • /proc/cmdline :Tento soubor ukazuje parametry předané jádru v době jeho spuštění.
  • /proc/cpuinfo :Tento virtuální soubor identifikuje typ procesoru používaného vaším systémem.
  • /proc/crypto :Tento soubor obsahuje seznam všech nainstalovaných kryptografických šifer používaných jádrem Linuxu, včetně dalších podrobností pro každou z nich.
  • /proc/devices :Tento soubor zobrazuje různá znaková a bloková zařízení aktuálně nakonfigurovaná (nezahrnuje zařízení, jejichž moduly nejsou načteny).
  • /proc/dma :Tento soubor obsahuje seznam registrovaných používaných kanálů ISA DMA.
  • /proc/execdomains :Tento soubor uvádí spouštěcí domény aktuálně podporované linuxovým jádrem spolu s řadou osobností, které podporují.
  • /proc/filesystems :Tento soubor zobrazuje seznam typů souborových systémů aktuálně podporovaných jádrem. První sloupec označuje, zda je souborový systém připojen k blokovému zařízení. Ty začínající nodev nejsou připojeny k zařízení. Ve druhém sloupci jsou uvedeny názvy podporovaných systémů souborů. Příkaz mount cyklicky prochází systémy souborů, které jsou zde uvedeny, pokud jeden není zadán jako argument.
  • /proc/interrupts :Tento soubor zaznamenává počet přerušení na IRQ na architektuře x86.
  • /proc/iomem :Tento soubor zobrazuje aktuální mapu paměti systému pro každé fyzické zařízení.
  • /proc/ioports :Tento soubor poskytuje seznam aktuálně registrovaných oblastí portů používaných pro vstupní nebo výstupní komunikaci se zařízením.
  • /proc/kcore :Tento soubor představuje fyzickou paměť systému a je uložen ve formátu základního souboru. Obsah tohoto souboru je navržen tak, aby byl prozkoumán debuggerem, jako je gdb, a není čitelný pro člověka.
  • /proc/kmsg :Tento soubor se používá k uložení zpráv generovaných jádrem. Tyto zprávy pak přebírají další programy, jako je /bin/dmesg.
  • /proc/loadavg :Tento soubor poskytuje pohled na průměrnou zátěž, pokud jde o CPU a I/O v průběhu času, a také další data používaná uptime a další příkazy.
  • /proc/locks :Tento soubor zobrazuje soubory aktuálně uzamčené jádrem. Obsah tohoto souboru obsahuje interní data pro ladění jádra a může se velmi lišit v závislosti na použití systému.
  • /proc/mdstat :Tento soubor obsahuje aktuální informace pro vícediskové konfigurace RAID.
  • /proc/meminfo :Tento soubor uvádí velké množství cenných informací o využití paměti RAM systémem.
  • /proc/modules :Tento soubor zobrazuje seznam všech modulů načtených do jádra. Většinu těchto informací lze také zobrazit pomocí příkazu /sbin/lsmod.

Zpracovat adresáře v /proc

Adresář /proc obsahuje adresáře s číselnými názvy. Tyto adresáře jsou pojmenovány podle ID procesu programu a obsahují informace o tomto procesu. Vlastník a skupina každého adresáře procesu jsou nastaveny na uživatele spouštějícího proces. Každý adresář procesu obsahuje několik souborů včetně:

  • cmdline :Příkaz vydaný při spuštění procesu
  • cwd :Symbolický odkaz na aktuální pracovní adresář procesu
  • prostředí :Seznam proměnných prostředí pro proces
  • exe :Symbolický odkaz na spustitelný soubor tohoto procesu
  • fd :Adresář obsahující všechny deskriptory souborů pro konkrétní proces
  • mapy :Seznam mapování paměti na spustitelné soubory a soubory knihoven souvisejících s procesem
  • paměť :Paměť, kterou proces drží (soubor nemůže uživatel přečíst)
  • root :Odkaz na kořenový adresář procesu
  • stat :Stav procesu včetně stavu běhu a využití paměti
  • statm :Stav paměti používané procesem
  • stav :Stav procesu ve srozumitelnější podobě než stat nebo statm

Další adresáře v /proc

Další adresáře v adresáři/proc seskupují podobné informace podle tématu. Následuje částečný seznam těchto adresářů:

  • /proc/bus :Tento adresář obsahuje informace o různých sběrnicích dostupných v systému. Podadresáře a soubory dostupné v /proc/bus se liší v závislosti na zařízeních připojených k systému.
  • /proc/bus/pci, /proc/bus/usb :Seznam všech zařízení PCI a USB přítomných v systému můžete získat pomocí příkazu cat na souboru zařízení v těchto adresářích, ale výstup je obtížné číst a interpretovat. Pro lidsky čitelný seznam zařízení spusťte příkazy lspci a lsusb.
  • /proc/driver :Tento adresář obsahuje informace o konkrétních ovladačích používaných jádrem.
  • /proc/fs :Tento adresář ukazuje, které systémy souborů jsou exportovány. Pokud běží server NFS, zadáním cat /proc/fs/nfsd/exports zobrazíte sdílené systémy souborů a oprávnění.
  • /proc/irq :Tento adresář se používá k nastavení IRQ na afinitu CPU, což umožňuje systému připojit konkrétní IRQ pouze k jednomu CPU. Případně může vyloučit CPU ze zpracování jakýchkoli IRQ.
  • /proc/self/net :Tento adresář poskytuje komplexní pohled na různé síťové parametry a statistiky. Každý adresář a virtuální soubor v tomto adresáři popisuje aspekty konfigurace sítě systému. Soubor /proc/net je symbolickým odkazem na tento adresář.
  • /proc/scsi :Primární soubor v tomto adresáři je /proc/scsi/scsi, který obsahuje seznam všech rozpoznaných zařízení SCSI. Z tohoto seznamu je k dispozici typ zařízení a také název modelu, výrobce, kanál SCSI a údaje ID.
  • /proc/sys :Tento adresář se liší od ostatních v /proc, protože nejenže poskytuje informace o systému, ale také vám umožňuje okamžitě povolit a zakázat funkce jádra. Pokud má soubor oprávnění k zápisu, lze jej použít ke konfiguraci jádra. Změna hodnoty v souboru /proc/sys/ se provádí ozvěnou nové hodnoty do souboru. Chcete-li například změnit název hostitele na www.example.com :
    # echo www.example.com > /proc/sys/kernel/hostname

    Ostatní soubory fungují jako binární nebo booleovské přepínače. Hodnota 0 představuje vypnuto nebo nepravda. Hodnota 1 znamená on nebo true. Chcete-li například zapnout předávání paketů:

    # echo 1 > /proc/sys/net/ipv4/ip_forward

    Změny provedené pomocí příkazu echo nejsou trvalé a zmizí po restartování systému. Chcete-li, aby se změny konfigurace projevily po restartu systému, přidejte je do souboru /etc/sysctl.conf.

  • /proc/sys/dev :Tento adresář poskytuje parametry pro konkrétní zařízení v systému.
  • /proc/sys/fs :Tento adresář obsahuje možnosti a informace týkající se různých aspektů systému souborů, včetně kvóty, popisovače souboru a informací o inode.
  • /proc/sys/kernel :Tento adresář obsahuje řadu různých konfiguračních souborů, které přímo ovlivňují činnost jádra.
  • /proc/sys/net :Tento adresář obsahuje podadresáře týkající se různých síťových témat. Soubory v těchto adresářích můžete změnit a upravit tak konfiguraci sítě na běžícím systému.
  • /proc/sysvipc :Tento adresář obsahuje informace o prostředcích System V Interprocess Communication (IPC). Soubory v tomto adresáři se týkají System V IPC volání zpráv (msg), semaforů (sem) a sdílené paměti (shm).
  • /proc/tty :Tento adresář obsahuje informace o dostupných a aktuálně používaných zařízeních tty v systému. Soubor ovladačů je seznam aktuálně používaných zařízení tty.
Porozumění systému souborů sysfs (/sys) v Linuxu


Cent OS
  1. Prozkoumání souborového systému Linux /proc

  2. Linux – jak často je systém souborů Proc aktualizován v systému Linux?

  3. Centos – Jaký je rozdíl mezi /usr/lib/systemd/system a /etc/systemd/system?

  1. Jak upravit systémové soubory pomocí editoru Kate?

  2. Porozumění systému souborů sysfs (/sys) v Linuxu

  3. Pochopení souboru /etc/inittab v Linuxu

  1. Vysvětlení souboru /etc/rsyslog.conf pro konfiguraci systémového protokolování

  2. Vysvětlení souboru /proc/cpuinfo

  3. Vysvětlení adresáře /etc/sysconfig