abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 09:00 | Zajímavý software

    JuiceFS dospěl do verze 1.0. Jedná se o distribuovaný souborový systém kompatibilní s POSIX, HDFS a S3. Architektura JuiceFS sestává ze 3 částí: JuiceFS Client, Data Storage (S3, Azure Blob, OpenStack Swift, Ceph, MinIO, …) a Metadata Engine (Redis, TiKV, MySQL/MariaDB, PostgreSQL, SQLite, …). Zdrojové kódy JuiceFS jsou k dispozici na GitHubu pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 9
    13.8. 14:11 | Komunita

    O víkendu probíhá online The Raku Conference 2022, tj. konference věnovaná programovacímu jazyku Raku.

    Ladislav Hagara | Komentářů: 7
    12.8. 17:22 | IT novinky

    Včera skončila bezpečnostní konference Black Hat USA 2022 (Twitter) a začala bezpečnostní konference DEF CON 30 (Twitter). V rámci Black Hat byly vyhlášeny výsledky letošní Pwnie Awards (Twitter). Pwnie Awards oceňují to nejlepší, ale i to nejhorší z IT bezpečnosti (bezpečnostní Oscar a Malina v jednom).

    Ladislav Hagara | Komentářů: 0
    12.8. 15:00 | Nová verze

    Vývojáři PostgreSQL oznámili vydání verzí 14.5, 13.8, 12.12, 11.17, 10.22 a 15 Beta 3. Opraveno je více než 40 chyb a také zranitelnost CVE-2022-2625. Upstream podpora verze 10 končí 10. listopadu letošního roku.

    Ladislav Hagara | Komentářů: 0
    11.8. 18:11 | Nová verze

    Byla vydána verze 1.63.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 14
    11.8. 17:55 | Nová verze

    Bylo vydáno Ubuntu 22.04.1 LTS, tj. první opravné vydání Ubuntu 22.04 LTS s kódovým názvem Jammy Jellyfish.

    Ladislav Hagara | Komentářů: 0
    11.8. 08:00 | Komunita

    Microsoft Fluent Emoji jsou nově k dispozici na GitHubu pod licencí MIT. Více v článku na Medium.

    Ladislav Hagara | Komentářů: 15
    11.8. 00:22 | IT novinky

    O víkendu proběhla v Kolíně nad Rýnem demopárty Evoke 2022. Publikována byla prezentovaná dema. Upozornit lze na Area 5150 (YouTube) běžící na IBM PC s procesorem Intel 8088 běžícím na 4,77 MHz a CGA.

    Ladislav Hagara | Komentářů: 3
    10.8. 19:55 | Zajímavý software

    smenu, nástroj pro příkazový řádek pro generování možností a potvrzení výběru, dospěl do verze 1.0.0.

    Ladislav Hagara | Komentářů: 0
    10.8. 19:11 | Bezpečnostní upozornění

    Byla potvrzena zranitelnost CVE-2021-46778 aneb SQUIP (Scheduler Queue Usage via Interference Probing) v procesorech AMD s mikroarchitekturou Zen 1, Zen 2 a Zen 3. Detaily v publikovaném paperu.

    Ladislav Hagara | Komentářů: 0
    Audioknihy ve srovnání s knihami tištěnými (papírovými nebo elektronickými) poslouchám
     (38%)
     (3%)
     (6%)
     (53%)
    Celkem 215 hlasů
     Komentářů: 2, poslední 13.8. 11:46
    Rozcestník


    Adresár /proc - brána do jadra

    18. 7. 2005 | Matej Gagyi | Systém | 9092×

    Procfs je virtuálny súborový systém, pomocou ktorého môže používateľ nahliadnuť do vnútorných premenných jadra. Nájdete ho v adresári /proc. Primárne bol vyvinutý na správu procesov, ale Linux z neho urobil veľmi použiteľný nástroj na správu systému.

    Úvod

    Prvú implementáciu procfs napísal Tom J. Killian pre UNIX 8th Edition. Cieľom bolo vytvorenie prirodzeného kontrolného rozhrania pre procesy v systéme. Procfs mal slúžiť len programátorom.

    V mnohých unixových systémoch bol /proc vždy využívaný na kontrolu bežiacich programov a nebol pre užívateľa nijak použiteľným.

    Procfs je virtuálny súborový systém. To znamená, že žiaden súbor sa nenachádza na vašom disku, ale všetko je v pamäti. Takýto súborový systém zaberá len málo operačnej pamäte a je veľmi dynamický.

    Charakteristika procfs na Linuxe

    Na Linuxe nie je procfs používaný len na správu procesov. Vývojári Linuxu postupom času pridávali do štruktúry procfs mnoho rôznych informácií. Zásadným rozdielom od iných unixových systémov je, že každý súbor je textový a užívateľ dokáže prečítať jeho obsah.

    Štruktúra procfs sa časom dostala do nekonzistentného stavu, pretože na začiatku neexistovali žiadne pravidlá, podľa ktorých by bol procfs organizovaný.

    Teraz sa procfs delí na viacero rozumne usporiadaných stromov, ktoré sú však rozhádzané v základnom strome.

    Štruktúra adresára /proc

    V hlavnom adresáti procfs sa nachádzajú:

    • Adresáre procesov
    • Adresáre a súbory jadra
    /proc/
    |-- 1/
    |-- 2/
    |-- 3/
    |-- 4/
    |-- 18/
    |-- 20/
    |-- 110/
    |-- 6203/
    |-- 6204/
    |   |-- auxv
    |   |-- cmdline
    |   |-- cwd -> /
    |   |-- environ
    |   |-- exe -> /usr/sbin/metalog
    |   |-- fd/
    |   |   |-- 0 -> /dev/pts/4
    |   |   |-- 1 -> /dev/pts/4
    |   |   `-- 2 -> /dev/pts/4
    |   .
    |   .
    |   .
    |   |-- status
    |   |-- task/
    |   `-- wchan
    |-- 7009/
    .
    .
    .
    |-- acpi/
    |-- asound/
    |-- buddyinfo
    |-- bus/
    |-- cmdline
    |-- cpuinfo
    .
    .
    .
    |-- swaps
    |-- sys/
    |-- sysvipc/
    |-- tty/
    |-- uptime
    |-- version
    `-- vmstat
    

    Ukážka štruktúry adresára /proc.

    Adresáre sú vyznačené hrubým písmom. Podčiarknuté kurzíva označujú symbolické linky. Symbolická linka je súbor obsahujúci len meno iného súboru, ktorú keď otvoríte, správa sa ako súbor na ktorý sa odkazuje.

    Adresáre procesov

    Tieto adresáre spoznáte podľa toho, že ich meno je len číslo. Toto číslo je identifikátor procesu v systéme, nazývané PID (Process IDentifier).

    Štruktúra týchto adresárov je rovnaká. Obsahujú rovnako nazvané súbory:

    cwd
    Adresár, v ktorom sa práve proces nachádza.
    root
    Program môže byť uväznený v niektorom adresári, ktorý je pre neho /. Takýto program nemôže pristupovať k žiadnemu adresáru vyššie. root sa na tento adresár odkazuje. Pozri: program chroot.
    cmdline
    Tu sú všetky parametre programu, s ktorými bol spustený. Nultý parameter je vždy meno spusteného súboru.
    fd/
    V ňom nájdete symbolické linky, ktoré sú nazvané tiež ako čísla. Tieto linky ukazujú na všetky súbory a sieťové spojenia, ktoré má program momentálne otvorené.

    Najdôležitejšie položky adresára procesu.

    Súbory a adresáre kernelu

    Na iných unixových operačných systémoch sa s týmto typom položiek v procfs nestretnete. Je to vlastnosť Linuxu, ktorý robí procfs zaujímavým.

    Pomocou súborov procfs sa exportujú užívateľského prostredia informácie z jadra. Pomocou nich môžeme zisťovať rôzne podrobnosti o systéme a niektorých druhoch hardvéru.

    $ cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 15
    model           : 2
    model name      : Intel(R) Celeron(R) CPU 2.40GHz
    stepping        : 9
    cpu MHz         : 2424.546
    cache size      : 128 KB
    fdiv_bug        : no
    hlt_bug         : no
    f00f_bug        : no
    coma_bug        : no
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 2
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic
                      sep mtrr pge mca cmov pat pse36 clflush
                      dts acpi mmx fxsr sse sse2 ss ht tm pbe
                      cid xtpr
    bogomips        : 4784.12
    

    Výpis informácií o CPU.

    V procfs sa podobných súborov nachádza veľké množstvo. Ich obsah môže, ale nemusí užívateľa zaujímať. Informácie, ktoré sa v nich nachádzajú, sú vždy aktuálne, pretože sa vzťahujú priamo na premenné v pamäti.

    Adresár /proc/sys

    Toto je pre administrátorov najzaujímavejšie miesto v procfs. Nachádzajú sa v ňom sysctl (System Control) súbory. Pomocou nich môžete meniť nastavenie jadra za behu a ovplyvňovať jeho správanie.

    K tu ukrytým súborom má užívateľ root práva na zápis. Zmenu nastavenia uskutočnite jednoduchým zápisom novej hodnoty do súboru, ktorý reprezentuje premennú, ktorú chcete zmeniť.

    # echo 1 > /proc/sys/dev/cdrom/autoeject

    Nastavenie automatického otvárania CD mechaniky po odpojení.

    Najdôležitejšie pre mnoho serverov je nastavenie siete. V adresári /proc/sys/net/ sa nachádza mnoho parametrov pre rôzne sieťové protokoly.

    Program sysctl je nástroj, ktorým si môžeme nastavovanie uľahčiť. Sysctl vie vypísať a nastaviť všetky hodnoty súborov v adresári /proc/sys. Nastavenia majú rovnaký tvar ako cesta k ich súborom relatívne od /proc/sys, len lomítka '/' sú zamenené bodkami.

    Sysctl vie zaviesť nastavenia zo súboru /etc/sysctl.conf, v ktorom sa ich môže nachádzať viacero. Skoro všetky distribúcie využívajú /etc/sysctl.conf na konfiguráciu jadra pri zavádzaní systému.

    # Disables packet forwarding
    #net.ipv4.ip_forward = 0

    # Disables IP dynaddr
    #net.ipv4.ip_dynaddr = 0

    # Disable ECN
    #net.ipv4.tcp_ecn = 0

    # Enables source route verification
    net.ipv4.conf.default.rp_filter = 1

    # Enable reverse path
    net.ipv4.conf.all.rp_filter = 1

    Ukážka časti konfiguračného súboru /etc/sysctl.conf.

    Pozrite sa do /proc/sys, kde nájdete mnoho užitočných nastavení, a podľa uváženia ich nastavte v súbore /etc/sysctl.conf, aby vaša distribúcia nastavenia aplikovala vždy po reštarte.

    Jednoduché príklady

    Všetky nižšie uvedené súbory sa dajú vypísať jednoduchým príkazom:

    $ cat /proc/<súbor>
    /proc/cpuinfo
    Obsahuje všetky zaujímavé informácie o vašich procesoroch. Napríklad typ procesoru, taktovaciu frekvenciu, inštrukčné sady, ...
    /proc/version
    Absolútne všetko, čo potrebujete vedieť o verzii jadra, počítači na ktorom je spustené a prostredie v ktorom bolo skompilované.
    /proc/sys/dev/cdrom/info
    Informácie o CDROM mechanikách. Vie vaša CD mechanika čítať DVD alebo zapisovať na DVD-R, DVD-RW? To sa niekedy z jej krytu nedozviete, z procfs áno.
    /proc/sys/dev/cdrom/autoclose
    /proc/sys/dev/cdrom/autoeject
    Tieto dva súbory obsahujú binárnu hodnotu (buď 0, alebo 1). Ak v autoclose nastavíme "1", CD mechanika sa pri pripojení (mount) CDčka automaticky zavrie (ak bola otvorená). Hodnota 1 v súbore autoeject CD mechaniku automaticky otvorí pri odpojení média (umount).
    /proc/sys/net/*
    Tu sa nachádzajú nastavenia sieťovania. Medzi ne patria bezpečnostné nastavenia, ovládanie routovania a pod. Viac o týchto nastaveniach nájdete v dokumentácii zdrojových kódov jadra Documentation/networking/ip_sysctl.txt, alebo na http://ipsysctl-tutorial.frozentux.net/ipsysctl-tutorial.html.

    Tieto jednotlivé súbory sú len ukážkou. Ak sa budete chcieť dozvedieť niečo viac o inom súbore z procfs, jednoducho ho aj s celou cesto vložte do Googla.

    História procfs

    Ako som povedal na začiatku článku, prvú implementáciu procfs napísal Tom J. Killian pre UNIX 8th Edition v roku 1984. Pán Killian je autorom knihy "Processes as files", takže je vlastne autorom celej myšlienky.

    V UNIX 8th Edition mal každý proces jeden súbor a procfs neexportoval žiadne ďalšie informácie do užívateľského prostredia.

    Procfs bol portovaný pre SVR4 Rogerom Faulknerom a Ronom Gomesom v roku 1991.

    4.4BSD ako prvý implementoval procfs s podadresármi.

    Solaris 2.6 prevzal všetko dobré, čo bolo v procfs použité v iných systémoch, a urobil z neho hlavné rozhranie na prácu s procesmi v systéme.

    Linux ako prvý použil ASCII formáty v súboroch procfs. Linux teda využíva procfs aj na exportovanie dát, ktoré sa procesov netýkajú, a na systémovú kontrolu.

    Záverom

    Súborový systém procfs ponúka veľké množstvo informácií o systéme a o hardvére, ku ktorým sa užívatelia iných OS jednoducho nedostanú.

    Často sa môžeme stretnúť s tvrdením, že sysfs má vytlačíť procfs z jadra. To však nie je pravda. Mnoho ľudí chce procfs prepracovať, lenže to je zložitejšia úloha a jadrá rady 2.8 žiadne zmeny pravdepodobne neprinesú.

    Tony Lawrence sa na Developer tutorial vyjadril: "/proc by mal byť nazvaný /kernel a proc by sa nachádzal v ňom. Už je neskoro, samozrejme, ..." V tomto prípade by sa sysfs taktiež nachádzal v adresári /kernel.

    Procfs ešte nejakú tú chvíľu v Linuxe zostane a nie je na škodu pozoznamovať sa s jeho výhodami a nevýhodami.

           

    Hodnocení: 84 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    18.7.2005 11:38 ---- | skóre: 23 | blog: -
    Rozbalit Rozbalit vše BSD process accounting
    Adresáře procesů se zobrazují v /proc je tehdy, máme li v kernelu zakompilovanou volbu CONFIG_BSD_PROCESS_ACCT=y
    18.7.2005 11:50 lizard
    Rozbalit Rozbalit vše Re: BSD process accounting
    No podle tohoto se mi to nejak nezda:

    This is what CONFIG_BSD_PROCESS_ACCT does:

    If you say Y here, a user level program will be able to instruct the kernel (via a special system call) to write process accounting information to a file: whenever a process exits, information about that process will be appended to the file by the kernel. The information includes things such as creation time, owning user, command name, memory usage, controlling terminal etc. (the complete list is in the struct acct in file:include/linux/acct.h). It is up to the user level program to do useful things with this information. This is generally a good idea, so say Y.

    Nepise se tam nic o /proc. asi mi neco uteklo :/
    18.7.2005 13:12 ---- | skóre: 23 | blog: -
    Rozbalit Rozbalit vše Re: BSD process accounting
    Jo, máš pravdu. Já to blbě pochopil :-) http://www.linuxjournal.com/article/6144
    18.7.2005 11:40 ondrej
    Rozbalit Rozbalit vše proc
    proc jecelkom dobry napad, ale asi sa vymkol kontrole. povodna myslienka bola dobra ale malo ostat len pri procesoch. V proc-e je skratka bordel a kazdy si tam pridal co sa mu hodilo, /proc bol jediny rozumny adresar...
    Yin avatar 18.7.2005 21:01 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: proc
    V Linuxe bol taký zamýšlaný. Nieje to otrasný problém a myslím, že pripustenie "systémovo/programátorského bordelu" do proc je rozumné. (zrýchlil vývoj a rozšíril funkcionalitu)
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    18.7.2005 21:24 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: proc
    Naopak, ze začátku vznikl v /proc chaos, když se tam nahodile bez ladu a skladu přidávaly soubory, z nichž většina byla sice hezky srozumitelná pro člověka, ale prakticky neparsovatelná programem. Tento nepořádek se teď postupně uklízí a ty nejhorší atavismy se postupně opatrně odbourávají (např. /proc/pci). Kvůli utilitám, které mezitím stihly vzniknout a které parsují ty neparsovatelné interface, ale proces čištění neprobíhá příliš rychle…
    Strojove zpracovavat informace = vrazdil bych, ale pokud nechceme mit v systemu spoustu balastu jako treba cele pciutils, usbutils, raidutils atd., pac je k nicemu nepotrebujeme a potrebujeme jen zkompilovat kernel a zjistit co mame v PCI zaplombovaneho pocitace zastrkano (a vubec nevadi, ze jen vime, ze je to Vendor X a zarizeny typu Y), tak staci cat /proc/pci a vite na cem jste...

    Jsem dinosaurus a konkretne /proc/pci, /proc//interupts, /proc/irq apod. mi budou opravdu chybet, casto mi usetrily spoustu nervu...

    Ale ty snahy celkem chapu a zacnu se ucit sysfs...:-)

    PS: Proc mi to hodilo "Re: Přetaktování procosoru"?

    18.7.2005 23:02 Taif
    Rozbalit Rozbalit vše Re: proc
    To vis,ze /proc je skvely napad :).Vis jak blbe by se bez neho hackovalo ;)
    18.7.2005 14:10 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše socket:[xyz]
    A pokud budete zvedavi, co to znamena to 3 -> socket:[15133] pod /proc/$PID/fd/, podivejte se na sloupec inode v /proc/net/tcp.
    Yin avatar 18.7.2005 20:58 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: socket:[xyz]
    Mno... myslíš, že existuje nejaký rozumný dôvod, prečo by mali byť sieťové spojenia vnímané inak ako otvorené súbori, alebo vstupy z klávesnice, zariadení a iných podobných hračiek (dátových tokov)?

    Ja viem, že to chápeš, ale napadlo ma, že vysvetlovať tieto prípady by bolo off-topic. Možno sa tomu povenujem v nejakom budúcom článku (dík za pozn.).
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    19.7.2005 21:34 Martin Čížek | skóre: 20 | Praha
    Rozbalit Rozbalit vše Re: socket:[xyz]
    No ony jsou ty linky vůbec zajímavé. Když se nad nimi provede open(), poždavek se vyřídí "přímo", tj. nenásleduje výsledek volání readlink(). To je důvod, proč je možné např. číst smazané, ale nezavřené soubory.
    Kdyby dva z nás byli dvěma z nich, všichni z nás by mohli být všemi z nich.
    19.7.2005 23:18 thefox | skóre: 25 | Ťapešovo
    Rozbalit Rozbalit vše OT: korektor
    Je to mierne mimo témy, ale chválim prácu korektora, na článku sa to naozaj prejavilo.
    0118 999 881 999 119 725 3
    20.7.2005 08:41 SharpiK
    Rozbalit Rozbalit vše Uzivatel vs. pouzivatel
    Len poznamka na okraj: v slovencine sa na vyjadrenie toho, ze nieco vyuzivam pouziva vyraz pouzivatel (pouzivam OS Linux), nie uzivatel (uzivam [si] OS Linux) ako v cestine. Vidim, ze pod titulkom je to uvedene spravne, ale nasledovnej vete nie:

    ... V mnohých unixových systémoch bol /proc vždy využívaný na kontrolu bežiacich programov a nebol pre užívateľa nijak použiteľným ...

    Aj kej je to mozno myslene tak, ze si niekto uzival spravu procfs :). Inak pekny clanok, len tak dalej.
    Yin avatar 20.7.2005 09:49 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
    Rozbalit Rozbalit vše Re: Uzivatel vs. pouzivatel
    Pruser je v tom, že v článku DevFS vs. udev som dostal gramaticku opravu s/používateľ/užívateľ/... som zmätený...
    Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
    20.7.2005 14:41 Milan Plzik
    Rozbalit Rozbalit vše Re: Uzivatel vs. pouzivatel
    Hmm, vsade, kde mozem, pouzivam spojenie 'pouzivatel' (okrem momentov, ked sa pomylim:-). Podla http://www.slex.sk/onlines/slex:
    užívateľ -a mn. -ia m.
    
    kto má niečo v užívaní: užívateľ bytu;
    
    ...
    používateľ -a mn. -ia m.
    
    kto niečo používa: používatelia jazyka
    
    Takze pravda je zrejme na Tvojej strane.
    21.7.2005 12:19 Peter Figura | skóre: 12 | blog: pefi | Modra
    Rozbalit Rozbalit vše Re: Uzivatel vs. pouzivatel
    Slovo pouzivatel zaviedol nejaky dement. Bohuzial sa toho chytil aj v tom case jediny slovensky pocitacovy casopis PC Revue. Mam pocit, ze v tom case boli diskusie aj o slove "ukazovatel" vs. "smernik".

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.