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 19:55 | IT novinky

    Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.

    Ladislav Hagara | Komentářů: 6
    včera 17:33 | Komunita

    MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.

    Ladislav Hagara | Komentářů: 0
    včera 14:55 | Nová verze

    Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | Nová verze

    Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.

    Ladislav Hagara | Komentářů: 0
    24.7. 14:33 | IT novinky

    Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.

    Ladislav Hagara | Komentářů: 0
    24.7. 14:22 | Nová verze

    Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    24.7. 13:33 | IT novinky

    Před 40 lety, 23. července 1985, společnost Commodore představila první počítač Amiga. Jednalo se o počítač "Amiga od Commodore", jenž byl později pojmenován Amiga 1000. Mělo se jednat o přímou konkurenci počítače Apple Macintosh uvedeného na trh v lednu 1984.

    Ladislav Hagara | Komentářů: 2
    24.7. 06:00 | IT novinky

    T‑Mobile USA ve spolupráci se Starlinkem spustil službu T-Satellite. Uživatelé služby mohou v odlehlých oblastech bez mobilního signálu aktuálně využívat satelitní síť s více než 650 satelity pro posílání a příjem zpráv, sdílení polohy, posílání zpráv na 911 a příjem upozornění, posílání obrázků a krátkých hlasových zpráv pomocí aplikace Zprávy Google. V plánu jsou také satelitní data.

    Ladislav Hagara | Komentářů: 9
    23.7. 21:55 | Komunita

    Společnost Proxmox Server Solutions stojící za virtualizační platformou Proxmox Virtual Environment věnovala 10 000 eur nadaci The Perl and Raku Foundation (TPRF).

    Ladislav Hagara | Komentářů: 2
    23.7. 21:22 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.65 svobodného multiplatformního webového serveru Apache (httpd). Řešena je bezpečnostní chyba CVE-2025-54090.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (29%)
     (25%)
     (5%)
     (5%)
     (5%)
     (2%)
     (2%)
     (27%)
    Celkem 131 hlasů
     Komentářů: 16, poslední včera 15:31
    Rozcestník

    Občas není od věci vyslovit něco, za co se upaluje nebo ukamenovává. Nic není totiž tak jednoduché, aby byla pravda vždy jediná a na první pohled zřejmá.


    NAVRCHOLU.cz
    Kategorie zápisků
    Aktuální zápisy

    Co se to spouští?

    7.11.2006 20:46 | Přečteno: 1539× | Ze života | Výběrový blog

    V rámci průběžného testování systému incron mám na počítači trvale spuštěn démon incrond. Tabulka obsahuje pravidla, která monitorují přístup k souborům v adresářích /bin, /sbin, /usr/bin a /usr/sbin. Je zajímavé pozorovat, jaké programy se bezděčně spouští.

    Unixovská filosofie, jak známo, říká, že by mělo být mnoho malých jednoúčelových programů. A realita v GNU/Linuxu skutečně vypadá tak, že si mnohé větší aplikace spouští pro své účely spoustu malých prográmků. Je to opravdu správná cesta?

    Většinou se v takových případech objevují stále tytéž nástroje. Podívejme se, které programy patří k těm notoricky spouštěným:

    Podobně často se spouští ještě řada dalších programů. Například u programu file to naprosto chápu - jeho význam je nezpochybnitelný (a nelze ho v podstatě nijak nahradit). Ale čemu nerozumím, je spouštění takových programů, které mají buď své obdoby ve formě knihovních funkcí (např. zmíněný gunzip, iconv apod.), nebo dokonce funkcí ve standardní knihovně GNU C (rm, mktemp a mnohé další). Zvláštní kapitolou jsou programy, které spouští (nebo otvírají ke čtení) samy sebe - některé jen několikrát (např. OpenOffice.org, KEdit), ale některé i mnohokrát (KWrite někdy i víc než 40x).

    Nemohu si neklást otázku, proč to tvůrci různých programů (např. man, Midnight Commander, Mozilla, Cinelerra a mnohých jiných) vlastně dělají. Jaké výhody přináší to, že se místo zavolání knihovní funkce spouští samostatný program? Rozumím tomu, když taková funkce neexistuje - pak není nic jednoduššího, než si spustit potřebný program. Chápu také případy, že je třeba knihovna pod licencí nekompatibilní s příslušným programem. Ale ve výše uvedených případech se o nic takového nejedná.

    Je důležité o tomto začít hovořit, a to hlavně kvůli problematice výkonu/rychlosti. Spuštění malého prográmku je sice záležitost maximálně stovek milisekund. Jenže to jsou leckdy právě ta malá zpoždění, která dokáží uživatele pořádně otrávit a ten pak říká, jak je ten Linux pomalý. Proto si myslím, že je na čase přezkoumat často používané programy a odstranit z nich spouštění utilit ve všech případech, kdy je takové řešení zbytečné a lze nahradit prostým voláním funkcí. Odměnou za toto nepříliš velké úsilí by bylo celkové zrychlení systému a eliminace části stížností na nízký výkon (které jsou v tomto případě zcela oprávněné).

           

    Hodnocení: 92 %

            špatnédobré        

    Anketa

    Co si myslíte o spouštění malých jednoúčelových nástrojů z větších aplikací?
     (8 %)
     (8 %)
     (75 %)
     (5 %)
     (5 %)
    Celkem 80 hlasů

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

    Komentáře

    Vložit další komentář

    David Watzke avatar 7.11.2006 20:52 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Co se to spouští?
    file má obdobu ve formě funkce, nebo ne (libmagic)?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Luk avatar 7.11.2006 21:03 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Asi ano. Jen si nejsem jistý, jestli file nedělá o něco víc než jen analýzu podle souboru magic.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    David Watzke avatar 7.11.2006 21:14 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Co se to spouští?
    To asi ne, Googlem jsem našel: "file is now split (thanks to upstream changes) into libmagic and file (as a tiny wrapper executable around the library)"
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Luk avatar 7.11.2006 21:45 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Pak by bylo skutečně lepší používat knihovnu (libmagic) i v tomto případě.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    8.11.2006 11:59 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Co se to spouští?
    knižnice používať v prípade, že daná funkcionalita je nevyhnutná pre správnu funkčnosť programu.

    Príklad: web-browser. Môže fungovať aj bez prítomnosti napr gunzip či libz.

    Hranica či áno alebo nie, tá je iná ako 1/0.

    Luk avatar 8.11.2006 14:10 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Samozřejmě nelze spouštění programů zcela zatracovat, u málo využívaných funkcionalit (bez kterých se aplikace obejde) je to v pořádku.

    Ale zrovna ZLIB (libz) je příklad toho, kde je zbytečné něco spouštět externě. Je krajně nepravděpodobné, že by v systému byly konzolové utility, ale nebyla tam příslušná sdílená knihovna.

    Navíc (k té robustnosti) - při kompilaci lze zjistit, jaké knihovny jsou k dispozici, a když nejsou, tak se příslušná funkcionalita prostě nezakompiluje. A u binárních distribučních balíků se to dá zajistit pomocí závislostí.

    Ale znovu opakuji - jde mi hlavně o ty věci, které jsou ve standardních knihovnách (zejména když jsou POSIX-kompatibilní) a jsou tedy k dispozici všude.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    7.11.2006 21:19 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Co se to spouští?
    This program is the "inotify cron" system. It consist of a daemon and a table manipulator. You can use it a similar way as the regular cron. The difference is that the inotify cron handles filesystem events rather than time periods.
    LOL. Bezvadně zvolené jméno :-D
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    Luk avatar 7.11.2006 21:42 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Dobré jitro! :-D Pokud jsi trochu sledoval můj blog, tak víš, že na začátku bylo tohle. Takže to jméno jsem v podstatě nevymýšlel, vzniklo jaksi samo.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    7.11.2006 21:57 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Dobré jitro!
    Přesně to jsem měl namysli.

    Ostatně nejdůležitější je, že jste s ním spokojen vy :-)
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    Luk avatar 7.11.2006 22:33 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Vzhledem k tomu, že se nejedná o program pro BFU, je tento název velice logický. Asi stejně, jako je logický sám název inotify ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    7.11.2006 23:12 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Rozhodně by se měly vždycky používat knihovní funkce. Pokud neexistují, pak je to chyba návrhu. Přijde mi jako pěkná zhůvěřilost pouštět kvůli nějaké elementární činnosti jiný program a nedej bože pak ještě parsovat jeho výstup.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    wake avatar 7.11.2006 23:58 wake | skóre: 30 | blog: wake | Praha
    Rozbalit Rozbalit vše Re: Co se to spouští?
    no, zrovna u OOo jde o normalni multithreading, afaik.
    Tento příspěvek má hlavičku i patičku!
    Luk avatar 8.11.2006 01:03 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    To je možné, nezkoumal jsem to, beru to jenom podle toho, co se zaznamenalo do logu. Ale těch zhruba 41-45 spuštění/otevření (nelze rozlišit) kwrite je mi pořádnou záhadou. Tím spíš, že se to stane jen někdy.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    8.11.2006 17:43 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Co se to spouští?
    btw. jake pouzivate jadro a knihovnu pro praci s vlakny? pod linuxthreads by se kazde vlakno opravdu mohlo hlasit jako spusteni sebe sama...

    btw. kdyz aplikace spousti sebe sama tak to nebude zase tak hruza, protoze uz jednou v pameti je takze vetsina veci se nebude nacitat a bude bezet v rezimu copyonwrite.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    Luk avatar 8.11.2006 18:59 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    No, protože používám FC 4-6, je to samozřejmě NPTL (a už hezky dlouho). On někdo dnes ještě používá LinuxThreads? ;-)
    kdyz aplikace spousti sebe sama tak to nebude zase tak hruza, protoze uz jednou v pameti je takze vetsina veci se nebude nacitat a bude bezet v rezimu copyonwrite.
    To sice ano, ale mě to zajímá čistě z principu, proč se tak děje.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    9.11.2006 12:23 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Co se to spouští?
    ale jiste, stabilni debiani a ze jich je! ted delam jeden projekt, ktery hrube vyuziva vlakna a multiprocessing a kdyz jsem to hodil na test na server se sargem nastacil jsem se divit, jak hrube dokaze propadnout vykon diky linuxthreads. ale za mesic dva tu bude stabilni etch (nebo windows vista ;-]) , takze aj tito mohykani skonci....
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    8.11.2006 01:17 cynik
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Ja se jim vubec nedivim, delam to taky:

    *) Pri prekladu daneho programu nemusim mit 150 dalsich knihoven prilinkovanych kvuli jedne funkci, nehlede na to, ze funkce mohou byt v ruznych knihovnach, mit jine parametry atd.

    *) Vetsina programku typu rm neni jen obalem nejakeho unlinku, ale umi spoustu veci navic, kterych se da sikovne vyuzit a opet jsou vice nezavisle na prostredi kde se spousti.

    *) Navic se tak dosahuje velke robustnosti jednak pri chybach a jednak kdyz nevyhovuje standardni utilitka, napiseme si vlastni a dame ji do cesty aby se hledala driv.

    Zkoumal jsem efektivitu tohoto zpusobu volani a rozhodne se na rychlosti nebo pameti projevi jen opravdu malo.. pokud tedy jde o externi programy psane v prekladanem jazyku.
    8.11.2006 01:29 thingie
    Rozbalit Rozbalit vše Re: Co se to spouští?
    První problém lze obejít tím, že si tu knihovnu nahraju programově. Třetí důvod je celkem to samé jako LD_PRELOAD. No, nevím, nepřijde mi volání externích programů jako nějaké velké zlo. Pokud vůbec.
    xvasek avatar 8.11.2006 09:05 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Moje řeč. Přidal bych, že voláním externího programu je umožněno míchat 32 a 64 bit kód, možná to jde formulovat i obecněji.

    Navíc UNIX byl takto stavěný od začátku a IMHO kvůli této "skládačkovitosti" přežil dodnes. Pokud bych chtěl něco optimalizovat na rychlost, tak má smysl používat knihovní funkce, ale jinak ne. Teď jsem třeba dělal v Perlu nějaký import, který probíhá někde v noci a potřeboval jsem pro string data (datumu) v ISO formátu funkci "o den později". Sáhnul jsem po date a je mi úplně šumák, že se volá v průběhu importu asi 1500krát.
    8.11.2006 12:04 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Hint:
    use Class::Date qw(date);
    
    my $o_den_pozdeji = date ('2006-11-08 12:03:00') + '1D';
    
    print $o_den_pozdeji, "\n";
    
    xvasek avatar 8.11.2006 23:19 xvasek | skóre: 21 | blog: | Zlín
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Dík, za tip. Každopádně my $o_den_pozdeji=`date -I -d $date +1 day` je o jeden řádek a půl hodiny hledání knihovny kratší. :-)
    Jakub Hájek avatar 8.11.2006 23:19 Jakub Hájek | skóre: 14 | blog: zamek | Praha
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Když už se to zde řeší, mohu se zeptat jakým způsobem lze ten externí program zavolat například v C? Dík.
    Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
    Luk avatar 9.11.2006 00:24 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Jsou v zásadě dvě možnosti:
    1. system()
    2. fork + exec* (execve(), execvp(), execle()...)
    První způsob je jednodušší - program se spouští přes shell, stačí předat celou příkazovou řádku jako při interaktivním spouštění. Nevýhodou je jednak právě (zbytečné) spouštění shellu, dále zablokování procesu/vlákna do skončení podřízeného procesu, nemožnost rozumné komunikace s procesem atd.

    Druhý způsob je složitější. Prostě se "forkne" (duplikuje) proces a pak se (v potomkovi) zavolá některá z funkcí pro spuštění programu. Původní proces běží dál, může buď čekat na skončení potomka (wait(), waitpid() apod.) nebo zatím něco dělat a občas se podívat, jestli potomek neskončil (příp. reagovat na signál SIGCLD). S podřízeným procesem lze komunikovat přes roury nebo jiným způsobem.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    .. avatar 9.11.2006 01:07 .. | skóre: 4 | blog:
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Lehce poopravim pro ty co by si to chteli hledat: SIGCHLD
    Luk avatar 9.11.2006 09:17 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Ano, moje chyba, častější (a podle POSIXu) je SIGCHLD, ale SIGCLD lze použít též.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Jakub Hájek avatar 9.11.2006 10:57 Jakub Hájek | skóre: 14 | blog: zamek | Praha
    Rozbalit Rozbalit vše Re: Co se to spouští?
    Díky, už čtu many těch funkcí. Myslím, že už se konečně pustím do patche pro SIM, aby mi nastavoval away messages pomocí fortunky :-)
    Teprve tehdy, až nebudeme mít co ztratit, budeme opravdu svobodní.
    Josef Kufner avatar 9.11.2006 20:35 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Co se to spouští?
    3. popen()

    Je to ještě hezčí hračka, když je potřeba přečíst výstup nějakého programu (nebo mu něco předhodit).
    Hello world ! Segmentation fault (core dumped)
    Luk avatar 9.11.2006 22:16 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Co se to spouští?
    No jo, na ten jsem úplně zapomněl. Je někde uprostřed mezi prvním a druhým přístupem (snadná komunikace přes rouru a současně jednodušší práce než přes fork a exec).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly

    Založit nové vláknoNahoru

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