abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 19:11 | Nová verze

    Knihovna htmx (Wikipedie, GitHub), tj. knihovna umožňující vývoj dynamických webových aplikací a rozšiřující HTML o nové atributy, byla vydána ve verzi 2.0 (𝕏).

    Ladislav Hagara | Komentářů: 0
    dnes 17:11 | IT novinky

    Společnosti DeepComputing a Framework Computer společně představily RISC-V základní desku pro modulární Framework Laptop 13.

    Ladislav Hagara | Komentářů: 0
    dnes 14:44 | Nová verze

    Byla vydána nová verze 6.4 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.16.

    Ladislav Hagara | Komentářů: 0
    dnes 14:11 | Nová verze

    Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.1 (Mastodon, 𝕏). Přehled novinek i s videi a se snímky obrazovky v oficiálním oznámení. Podrobný přehled v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    dnes 11:11 | Nová verze

    Qsynth dospěl do verze 1.0.0. Jedná se o Qt GUI nad softwarovým syntezátorem FluidSynth (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Bezpečnostní upozornění

    V bezdrátových routerech od společnosti routerech D-Link, v řadách EAGLE PRO AI a AQUILA PRO AI, je zabudovaný backdoor. Jedná se o zranitelnosti CVE-2024-6044 a CVE-2024-6045. Kdokoli z lokální sítě může přístupem na konkrétní URL spustit službu Telnet a přihlásit se pomocí přihlašovacích údajů správce získaných analýzou firmwaru.

    Ladislav Hagara | Komentářů: 16
    včera 11:22 | IT novinky

    Organizace IuRe (Iuridicum Remedium) varuje před návrhem, který představilo belgické předsednictví Rady EU. Populární služby jako Messenger, WhatsApp nebo Signal by dle něj bylo možné plně používat až po odsouhlasení kontroly komunikace. Ta by měla zamezit šíření dětské pornografie. Podle IuRe by však taková kontrola přinesla hlavně závažný dopad na soukromí uživatelů.

    Ladislav Hagara | Komentářů: 29
    včera 11:11 | Nová verze

    NumPy (Wikipedie), tj. knihovna pro Python pro vědecké výpočty, byla po 18 letech vydána v nové major verzi 2.0.0. Přehled novinek v poznámkách k vydání. Důležité informace v průvodci migrací.

    Ladislav Hagara | Komentářů: 0
    16.6. 23:11 | Nová verze

    Vývojáři postmarketOS vydali verzi 24.06 tohoto před sedmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell, Phosh, KDE Plasma a Sxmo. Aktuálně podporovaných zařízení je 50.

    Ladislav Hagara | Komentářů: 0
    16.6. 21:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 0
    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

    Nejčtenější za poslední měsíc Nejkomentovanější za poslední měsíc

    Co se to spouští?

    7.11.2006 20:46 | Přečteno: 1513× | 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.