/proc: Difference between revisions
(44 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Autor== | |||
Richard Rõngelep A21, 07.12.2016 | |||
==Kirjeldus== | ==Kirjeldus== | ||
'''/proc''' (process information pseudo-file system) on virtuaalne failisüsteem, milles asuvad virtuaalsed failid hoiavad endas informatsiooni Linuxi süsteemi kohta - kaasaarvatud tuuma, protsesside ja seadistusparameetrite kohta. | '''/proc''' (process information pseudo-file system) on virtuaalne failisüsteem, milles asuvad virtuaalsed failid hoiavad endas informatsiooni Linuxi süsteemi kohta - kaasaarvatud tuuma, protsesside ja seadistusparameetrite kohta. <ref>http://man7.org/linux/man-pages/man5/proc.5.html</ref> | ||
/proc/ kataloogis asuvad virtuaalsed failid ning kataloogid on suurusega 0 baiti, kuid faili avades võib seal olla suurel hulgal informatsiooni - operatsioonisüsteem kuvab kõik detailid faildesse jooksvalt. Lisaks vastab enamike failide aja- ning kuupäevasätteid hetke ajale ning kuupäevale, mis viitab asjaolule, et faile uuendatakse pidevalt. Enamus kataloogis asuvatest failidest on ainult loetavad, kuid teatud failide kaudu on võimalik muuta ka süsteemiga seotud parameetreid.<ref>http://www.thegeekstuff.com/2010/11/linux-proc-file-system/ </ref> | |||
/proc/ | Lisaks failidele asuvad /proc/-is ka nummerdatud kataloogid. Iga nummerdatud kataloog esindab mingit '''protsessi''' ning kataloogi number vastab protsessi ID-le (PID).<ref name="refname2">http://www.tecmint.com/exploring-proc-file-system-in-linux/</ref> | ||
Selleks, et /proc/ kataloog oleks täies mahus nähtav, peaks kasutaja sooritama kõik tegevused '''juurkasutaja''' õigustes, kuid ka tavakasutajale on väga palju informatsiooni saadaval. | |||
Vaadates /proc/ kataloogi käsklusega '''ll /proc/''', saame järgmise väljundi (välja toodud osa nummerdatud kataloogidest ning failidest): | Vaadates /proc/ kataloogi käsklusega '''ll /proc/''', saame järgmise väljundi (välja toodud osa nummerdatud kataloogidest ning failidest): | ||
Line 21: | Line 27: | ||
-r--r--r-- 1 root root 0 dets 3 22:58 crypto | -r--r--r-- 1 root root 0 dets 3 22:58 crypto | ||
-r--r--r-- 1 root root 0 dets 3 22:58 devices | -r--r--r-- 1 root root 0 dets 3 22:58 devices | ||
... | |||
dr-xr-xr-x 1 root root 0 dets 7 22:58 sys/ | |||
... | ... | ||
==Failid== | ==Failid== | ||
Virtuaalsed failid, nagu näiteks /proc/'''interrupts''', /proc/'''meminfo''', /proc/'''mount''', /proc/'''partitions''' annavad informatsiooni süsteemi riistvara kohta | Virtuaalsed failid, nagu näiteks /proc/'''interrupts''', /proc/'''meminfo''', /proc/'''mount''', /proc/'''partitions''' annavad informatsiooni süsteemi riistvara kohta, /proc/'''filesystems''' annab informatsiooni süsteemis toetatud failisüsteemide kohta ning kataloogis /proc/'''sys''' olevate failide kaudu saab muuta süsteemiga seotud parameetreid. <ref name="refname1">https://www.linux.com/news/discover-possibilities-proc-directory</ref> | ||
/proc/ kataloogis olevaid faile saab vaadata näiteks käskluste '''cat''', '''more''' või '''less''' abil. | /proc/ kataloogis olevaid faile saab vaadata näiteks käskluste '''cat''', '''more''' või '''less''' abil. | ||
Kui kasutaja soovib näiteks saada informatsiooni süsteemi mälu kohta, tuleks tal sisestada terminalis käsklus | Kui kasutaja soovib näiteks saada informatsiooni süsteemi mälu kohta, tuleks tal sisestada terminalis käsklus '''cat /proc/meminfo''' | ||
Väljund käsklusele võib olla midagi sarnast: | Väljund käsklusele võib olla midagi sarnast: | ||
Line 52: | Line 58: | ||
... | ... | ||
Antud väljundist saab üsna põhjaliku ülevaate süsteemi mälu kohta. Lisaks kasutavad antud informatsiooni näiteks käsklused '''top''' ja '''free'''. Näiteid võib tuua veelgi - käsklus '''uname''' koos oma erinevate parameetritega võtab informatsiooni ''' | Antud väljundist saab üsna põhjaliku ülevaate süsteemi mälu kohta. Lisaks kasutavad antud informatsiooni näiteks käsklused '''top''' ja '''free'''. Näiteid võib tuua veelgi - käsklus '''uname''' koos oma erinevate parameetritega võtab informatsiooni /proc/'''version'''-ist, käsklus '''lsmod''' on sisuliselt sama, mis käskluse '''cat /proc/modules''' väljund ning käsklus '''uptime''' võtab ajaparameetrid /proc/'''uptime'''-st. <ref name="refname1">https://www.linux.com/news/discover-possibilities-proc-directory</ref> <ref>https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/ch-proc.html</ref> | ||
==Protsessid== | ==Protsessid== | ||
Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale jooksvale '''protsessile''', kui protsess lõpetab töö, kaob antud protsessi ID-ga kataloog ka /proc/-ist. | Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale jooksvale '''protsessile''', kui protsess lõpetab töö, kaob antud protsessi ID-ga kataloog ka /proc/-ist. <ref name="refname2">http://www.tecmint.com/exploring-proc-file-system-in-linux/ </ref> | ||
Näiteks võtame protsessi numbriga 18083 ja vaatame antud kataloogi sise käsklusega '''ls'''. | Näiteks võtame protsessi numbriga 18083 ja vaatame antud kataloogi sise käsklusega '''ls'''. | ||
Line 77: | Line 83: | ||
'''stat''' ja '''status''' - Sisaldavad informatsiooni protsessi oleku kohta. | '''stat''' ja '''status''' - Sisaldavad informatsiooni protsessi oleku kohta. | ||
'''maps''', '''statm''' ja '''mem''' - Sisaldavad informatsiooni mälu kohta, mida protsess kasutab <ref name="refname1">https://www.linux.com/news/discover-possibilities-proc-directory</ref> | |||
Kui soovime saada eelmainitud protsessi kohta lisainformatsiooni sisestame terminali käskluse '''cat /proc/18083/status''' . | |||
Osa käskluse väljundist: | Osa käskluse väljundist: | ||
Line 100: | Line 105: | ||
Väljundist võib välja lugeda, et protsessi nimi on '''top''', hetkeolek on '''sleeping''', protsessi ID on '''18083''' (nagu eelnevalt mainitud) ning kuna UID (kasutaja ID) ja GID (grupi ID) on mõlemad '''1000''', siis kuulub antud protsess tavakasutajale. | Väljundist võib välja lugeda, et protsessi nimi on '''top''', hetkeolek on '''sleeping''', protsessi ID on '''18083''' (nagu eelnevalt mainitud) ning kuna UID (kasutaja ID) ja GID (grupi ID) on mõlemad '''1000''', siis kuulub antud protsess tavakasutajale. | ||
== | ==/proc/sys== | ||
'''/proc/sys/''' erineb teistest kataloogidest, kuna seal asuvates alamkataloogide failide kaudu on võimalik muuta jooksvalt tuuma parameetreid ning omadusi.<ref name="refname3">https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-proc-directories.html#S2-PROC-DIR-SYS</ref> | |||
Kui vaadata /proc/sys/ kausta, on näha, et seal asuvad mõned alamkataloogid. Kasutades käsklust '''ls /proc/sys''' saan järgmise väljundi: | |||
abi debug dev fs kernel net vm | |||
Alamkataloogid lahti seletatult: | |||
'''debug''' - Annab informatsiooni süsteemi silumise kohta. Kasulik tuuma arendajatele. | |||
'''dev''' - Sisaldab parameetreid süsteemi seadmete kohta (näiteks CD-ROM, RAID). | |||
'''fs''' - Failisüsteemiga seotud parameetreid. | |||
'''kernel''' - Võimaldab muuta tuuma konfiguratsiooni. | |||
'''net''' - Võimaldab muuta võrguparameetreid. | |||
'''vm''' - Hõlbustab virtuaalmälu konfigureerimist. <ref name="refname3">https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-proc-directories.html#S2-PROC-DIR-SYS</ref> | |||
Selleks, et näha milliste failide kaudu on võimalik muuta näiteks virtuaalmälu parameetreid, tuleks vaadata millistel failidel on kirjutamisõigus. Vaatleme käskluse '''ll /proc/sys/vm/''' abil kataloogi /vm/: | |||
... | |||
-r'''-'''-r--r-- 1 root root 0 dets 7 19:14 nr_pdflush_threads | |||
-r'''w'''-r--r-- 1 root root 0 dets 7 19:14 numa_zonelist_order | |||
... | |||
-r'''w'''-r--r-- 1 root root 0 dets 7 19:14 panic_on_oom | |||
-r'''w'''-r--r-- 1 root root 0 dets 7 19:14 percpu_pagelist_fraction | |||
-r'''w'''-r--r-- 1 root root 0 dets 7 19:14 stat_interval | |||
-r'''w'''-r--r-- 1 root root 0 dets 7 19:07 swappiness | |||
... | |||
Nagu näha enamikke kataloogis olevaid faile on võimalik muuta. Näiteks on võimalik muuta '''swappiness''' parameetrit, mis mõjutab saaleala kasutamist. Kuigi parameetreid on võimalik muuta, ei ole nad jäävad ning selleks, et muutus oleks püsiv tuleks kasutada '''sysctl'''-i ning muuta /etc/'''sysctl.conf''' faili. <ref name="refname3">https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-proc-directories.html#S2-PROC-DIR-SYS</ref> | |||
==Kokkuvõtteks== | |||
/proc kataloog annab kasutajale väga palju informatsiooni Linuxi süsteemi kohta ning võimaldab seadistada teatud tuuma parameetreid. Kuna paljud käsklused kasutavad informatsiooni, mis pärineb /proc kataloogist saab lisaks ülevaate ka mõningate käskluste hingeelust. | |||
==Allikad== | |||
{{Reflist}} | |||
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category: Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 22:20, 23 December 2016
Autor
Richard Rõngelep A21, 07.12.2016
Kirjeldus
/proc (process information pseudo-file system) on virtuaalne failisüsteem, milles asuvad virtuaalsed failid hoiavad endas informatsiooni Linuxi süsteemi kohta - kaasaarvatud tuuma, protsesside ja seadistusparameetrite kohta. [1]
/proc/ kataloogis asuvad virtuaalsed failid ning kataloogid on suurusega 0 baiti, kuid faili avades võib seal olla suurel hulgal informatsiooni - operatsioonisüsteem kuvab kõik detailid faildesse jooksvalt. Lisaks vastab enamike failide aja- ning kuupäevasätteid hetke ajale ning kuupäevale, mis viitab asjaolule, et faile uuendatakse pidevalt. Enamus kataloogis asuvatest failidest on ainult loetavad, kuid teatud failide kaudu on võimalik muuta ka süsteemiga seotud parameetreid.[2]
Lisaks failidele asuvad /proc/-is ka nummerdatud kataloogid. Iga nummerdatud kataloog esindab mingit protsessi ning kataloogi number vastab protsessi ID-le (PID).[3]
Selleks, et /proc/ kataloog oleks täies mahus nähtav, peaks kasutaja sooritama kõik tegevused juurkasutaja õigustes, kuid ka tavakasutajale on väga palju informatsiooni saadaval.
Vaadates /proc/ kataloogi käsklusega ll /proc/, saame järgmise väljundi (välja toodud osa nummerdatud kataloogidest ning failidest):
... dr-xr-xr-x 9 root root 0 dets 3 22:55 11350/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11588/ dr-xr-xr-x 9 root root 0 dets 4 2016 1177/ dr-xr-xr-x 9 root root 0 dets 4 2016 1183/ dr-xr-xr-x 9 root root 0 dets 4 2016 1187/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11870/ dr-xr-xr-x 9 root root 0 dets 3 22:55 11894/ dr-xr-xr-x 9 root root 0 dets 4 2016 12/ dr-xr-xr-x 9 kasutaja kasutaja 0 dets 4 2016 1223/ ... -r--r--r-- 1 root root 0 dets 3 22:58 cpuinfo -r--r--r-- 1 root root 0 dets 3 22:58 crypto -r--r--r-- 1 root root 0 dets 3 22:58 devices ... dr-xr-xr-x 1 root root 0 dets 7 22:58 sys/ ...
Failid
Virtuaalsed failid, nagu näiteks /proc/interrupts, /proc/meminfo, /proc/mount, /proc/partitions annavad informatsiooni süsteemi riistvara kohta, /proc/filesystems annab informatsiooni süsteemis toetatud failisüsteemide kohta ning kataloogis /proc/sys olevate failide kaudu saab muuta süsteemiga seotud parameetreid. [4]
/proc/ kataloogis olevaid faile saab vaadata näiteks käskluste cat, more või less abil.
Kui kasutaja soovib näiteks saada informatsiooni süsteemi mälu kohta, tuleks tal sisestada terminalis käsklus cat /proc/meminfo
Väljund käsklusele võib olla midagi sarnast:
MemTotal: 8052476 kB MemFree: 3556264 kB MemAvailable: 5647832 kB Buffers: 176760 kB Cached: 2419456 kB SwapCached: 0 kB Active: 2562260 kB Inactive: 1565064 kB Active(anon): 1535400 kB Inactive(anon): 401128 kB Active(file): 1026860 kB Inactive(file): 1163936 kB Unevictable: 32 kB Mlocked: 32 kB SwapTotal: 8266748 kB SwapFree: 8266748 kB ...
Antud väljundist saab üsna põhjaliku ülevaate süsteemi mälu kohta. Lisaks kasutavad antud informatsiooni näiteks käsklused top ja free. Näiteid võib tuua veelgi - käsklus uname koos oma erinevate parameetritega võtab informatsiooni /proc/version-ist, käsklus lsmod on sisuliselt sama, mis käskluse cat /proc/modules väljund ning käsklus uptime võtab ajaparameetrid /proc/uptime-st. [4] [5]
Protsessid
Nagu eelpool mainitud, vastab iga /proc/ kataloogis olev nummerdatud alamkataloog erinevale jooksvale protsessile, kui protsess lõpetab töö, kaob antud protsessi ID-ga kataloog ka /proc/-ist. [3]
Näiteks võtame protsessi numbriga 18083 ja vaatame antud kataloogi sise käsklusega ls.
Saame väljundi:
attr comm fd map_files net pagemap sessionid status autogroup coredump_filter fdinfo maps ns personality setgroups syscall auxv cpuset gid_map mem numa_maps projid_map smaps task cgroup cwd io mountinfo oom_adj root stack timers clear_refs environ limits mounts oom_score sched stat uid_map cmdline exe loginuid mountstats oom_score_adj schedstat statm wchan
Igal nummerdatud alamkataloogil on sarnane failistruktuur. Nendest mõned:
cmdline - Sisaldab käsklust koos parameetritega, millega protsesss käivitati.
cwd - Symlink kataloogi, kus protsess töötab.
exe - Symlink protsessi täitmisprogrammini.
stat ja status - Sisaldavad informatsiooni protsessi oleku kohta.
maps, statm ja mem - Sisaldavad informatsiooni mälu kohta, mida protsess kasutab [4]
Kui soovime saada eelmainitud protsessi kohta lisainformatsiooni sisestame terminali käskluse cat /proc/18083/status .
Osa käskluse väljundist:
Name: top State: S (sleeping) Tgid: 18083 Ngid: 0 Pid: 18083 PPid: 32179 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 256 Groups: 4 24 27 30 46 113 128 1000 ...
Väljundist võib välja lugeda, et protsessi nimi on top, hetkeolek on sleeping, protsessi ID on 18083 (nagu eelnevalt mainitud) ning kuna UID (kasutaja ID) ja GID (grupi ID) on mõlemad 1000, siis kuulub antud protsess tavakasutajale.
/proc/sys
/proc/sys/ erineb teistest kataloogidest, kuna seal asuvates alamkataloogide failide kaudu on võimalik muuta jooksvalt tuuma parameetreid ning omadusi.[6]
Kui vaadata /proc/sys/ kausta, on näha, et seal asuvad mõned alamkataloogid. Kasutades käsklust ls /proc/sys saan järgmise väljundi:
abi debug dev fs kernel net vm
Alamkataloogid lahti seletatult:
debug - Annab informatsiooni süsteemi silumise kohta. Kasulik tuuma arendajatele.
dev - Sisaldab parameetreid süsteemi seadmete kohta (näiteks CD-ROM, RAID).
fs - Failisüsteemiga seotud parameetreid.
kernel - Võimaldab muuta tuuma konfiguratsiooni.
net - Võimaldab muuta võrguparameetreid.
vm - Hõlbustab virtuaalmälu konfigureerimist. [6]
Selleks, et näha milliste failide kaudu on võimalik muuta näiteks virtuaalmälu parameetreid, tuleks vaadata millistel failidel on kirjutamisõigus. Vaatleme käskluse ll /proc/sys/vm/ abil kataloogi /vm/:
... -r--r--r-- 1 root root 0 dets 7 19:14 nr_pdflush_threads -rw-r--r-- 1 root root 0 dets 7 19:14 numa_zonelist_order ... -rw-r--r-- 1 root root 0 dets 7 19:14 panic_on_oom -rw-r--r-- 1 root root 0 dets 7 19:14 percpu_pagelist_fraction -rw-r--r-- 1 root root 0 dets 7 19:14 stat_interval -rw-r--r-- 1 root root 0 dets 7 19:07 swappiness ...
Nagu näha enamikke kataloogis olevaid faile on võimalik muuta. Näiteks on võimalik muuta swappiness parameetrit, mis mõjutab saaleala kasutamist. Kuigi parameetreid on võimalik muuta, ei ole nad jäävad ning selleks, et muutus oleks püsiv tuleks kasutada sysctl-i ning muuta /etc/sysctl.conf faili. [6]
Kokkuvõtteks
/proc kataloog annab kasutajale väga palju informatsiooni Linuxi süsteemi kohta ning võimaldab seadistada teatud tuuma parameetreid. Kuna paljud käsklused kasutavad informatsiooni, mis pärineb /proc kataloogist saab lisaks ülevaate ka mõningate käskluste hingeelust.
Allikad
- ↑ http://man7.org/linux/man-pages/man5/proc.5.html
- ↑ http://www.thegeekstuff.com/2010/11/linux-proc-file-system/
- ↑ 3.0 3.1 http://www.tecmint.com/exploring-proc-file-system-in-linux/ Cite error: Invalid
<ref>
tag; name "refname2" defined multiple times with different content - ↑ 4.0 4.1 4.2 https://www.linux.com/news/discover-possibilities-proc-directory
- ↑ https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/ch-proc.html
- ↑ 6.0 6.1 6.2 https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-proc-directories.html#S2-PROC-DIR-SYS