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 22:00 | Komunita

Portál Stack Overflow po roce opět vyzpovídal své uživatele, jedná se především o vývojáře softwaru, a zveřejnil (podcast) detailní výsledky průzkumu. Průzkumu se letos zúčastnilo více než 64 tisíc vývojářů. Jejich nejmilovanější platformou je linuxový desktop. Ten je také druhou nejpoužívanější platformou vývojářů.

Ladislav Hagara | Komentářů: 0
24.3. 11:55 | Komunita

Vývojový tým OpenSSL ve spolupráci s iniciativou Core Infrastructure konsorcia Linux Foundation spustil proces přelicencování této kryptografické knihovny ze současné licence na licenci Apache Licence v 2.0 (ASLv2). Nová licence usnadní začleňování OpenSSL do dalších svobodných a open source projektů. Všichni dosavadní vývojáři OpenSSL (Authors) obdrží v následujících dnech email s prosbou o souhlas se změnou licence.

Ladislav Hagara | Komentářů: 7
24.3. 01:11 | Komunita

Před třemi týdny Mozilla.cz představila projekt Photon, jehož cílem je návrh a implementace nového vzhledu Firefoxu. Včera zveřejnila první náhled vzhledu Photon. Práce na projektu Photon jsou rozděleny do pěti týmů, které celkem čítají 19 lidí. Zaměřují se na zlepšení prvního spuštění Firefoxu a zaujetí nových uživatelů, celkovou úpravu vzhledu, zlepšení animací, zrychlení odezvy uživatelského rozhraní a také upravení nabídek. Vývoj lze sledovat v Bugzille.

Ladislav Hagara | Komentářů: 38
23.3. 20:00 | Komunita

OneDrive pro firmy je již ve webových prohlížečích na Linuxu stejně rychlý jako na Windows. Microsoft opravil chybu z listopadu loňského roku. OneDrive pro firmy běžel na Linuxu mnohem pomaleji než na Windows. V popisu chyby bylo uvedeno, že stačilo v prohlížeči na Linuxu nastavit v user-agentu Windows a vše se zrychlilo. Odpovědí Microsoftu bylo (Internet Archive: Wayback Machine), že Linux není podporován. Po bouřlivých diskusích na redditu i Hacker News byla chyba nalezena a opravena.

Ladislav Hagara | Komentářů: 6
23.3. 19:00 | Zajímavý projekt

Byla vyhlášena soutěž Hackaday Prize 2017. Soutěž je určena vývojářům open source hardwaru. Pro výherce je připraveno celkově 250 tisíc dolarů. Každý ze 120 finalistů získá tisíc dolarů. Nejlepší pak navíc 50, 30, 20, 15, 10 a 5 tisíc dolarů. Jedná se již o čtvrtý ročník soutěže. V roce 2014 zvítězil projekt globální sítě open source pozemních satelitních stanic SatNOGS. V roce 2015 zvítězil open source systém pro řízení elektrických invalidních vozíků pohybem očí Eyedriveomatic. V roce 2016 zvítězil modulární robot Dtto.

Ladislav Hagara | Komentářů: 0
23.3. 15:00 | Bezpečnostní upozornění

Byla vydána Samba ve verzích 4.6.1, 4.5.7 a 4.4.12. Řešen je bezpečnostní problém CVE-2017-2619. Pomocí symbolických odkazů a souběhu (symlink race) lze "teoreticky" získat přístup k souborům, které nejsou sdíleny. Linuxové distribuce jsou postupně aktualizovány (Debian).

Ladislav Hagara | Komentářů: 0
23.3. 07:43 | Nová verze

Na Steamu se objevil port hry Arma: Cold War Assault (Operation Flashpoint) pro Mac a Linux. … více »

creon | Komentářů: 30
23.3. 05:55 | Nová verze

Po 18 měsících od vydání verze 8.0 byla vydána verze 9.0 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab. Představení nových vlastností v příspěvku na blogu a na YouTube.

Ladislav Hagara | Komentářů: 0
23.3. 03:33 | Komunita

Platnost posledního patentu souvisejícího s Dolby Digital (AC-3) vypršela. Po MP3 se tak do Fedory oficiálně dostane také kodek AC-3.

Ladislav Hagara | Komentářů: 5
23.3. 00:44 | Komunita

Feral Interactive, společnost zabývající se vydáváním počítačových her pro operační systémy macOS a Linux, nabízí své hry na Steamu vývojářům open source 3D grafické knihovny Mesa zdarma. Podmínkou je minimálně 25 commitů za posledních 5 let. Stejnou nabídku dostali vývojáři knihovny Mesa v roce 2015 od Valve. O rok dříve dostali od Valve tuto nabídku vývojáři Debianu a Ubuntu.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (14%)
 (2%)
 (72%)
 (3%)
 (10%)
Celkem 932 hlasů
 Komentářů: 72, poslední 1.3. 11:16
    Rozcestník

    Dotaz: staticka vs dynamicka alokace pameti

    26.6.2010 21:57 ext3fs
    staticka vs dynamicka alokace pameti
    Přečteno: 1399×
    Ahoj,

    chtel bych se zeptat zkusenejsich na rozdil mezi statickou a dynamickou alokaci pameti (v jazyce C, ale otazka je spis globalni) z hlediska bezpecnosti beziciho procesu.

    Pominme nyni problemy s hlidanim (a osetrenim) prace s dynamickou pameti. Nyni mi jde konkretne o pripad, kdy dochazi systemu kriticky pamet a v tom chce program alokovat dalsi. Program pamet nedostane tak muze:

    a/ spadnou, b/ je to nejak osetreno, ale bez pameti stejne nemuze pokracovat tak se ukonci, c/ stejne jako za b/ stim ze ukoncovani nemusi kvuli nedostatku pameti dopadnou dobre.

    Davate prednost dynamicke alokaci nebo staticke? Urcite to je pripad od pripadu. Minimalne je statiska pamet daleko rychlejsi (pokud se pouziva casto...odpada malloc/free).

    Je mozne brat statisky pridelenou pamet v urcitych stavech systemu (malo pameti) jako bezpesnejsi reseni? Chapu, ze pokud neni pamet, tak system muze reagovat jakkoli...

    Odpovědi

    26.6.2010 22:58 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Zásadní problém statických proměnných je v tom, že velikost zásobníku je omezená a v některých případech může být to omezení dost zásadní. Typicky programátor představu, že na zásobníku je místa dost, přehodnotí v okamžiku, kdy zkusí napsat první multithreadovou aplikaci.
    27.6.2010 09:42 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Váš dotaz zavání tím, že se pokoušíte řešit špatný problém (nebo správný problém špatným nástrojem).

    Statická alokace se k ošetření nedostatku paměti používá jen velmi vyjímečně, pak je ale kladen důraz na to, aby tato část programu byla co nejmenší a měla co nejmenší potřebu práce s pamětí.

    Obvyklejší řešení je prostě nechat program ukončit (s nějakou hláškou), nebo nechat program čekat, až paměť bude. Pokud je v OS programů více, tak se obvykle nastavují kvóty.

    Jinak má statická alokace blahodárný účinek na výkon, často se používá model prealokace velkého kusu paměti a jeho interní rozparcelování v programu namísto alokace spousta malých kousků. Teoreticky byste tento model mohl využít pro zajištění dost paměti např. pro ten ukončovací kód.
    In Ada the typical infinite loop would normally be terminated by detonation.
    27.6.2010 13:19 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Pisu ted malou aplikaci pro sledovani procesu. Jedna z funkci je sledovani co se stalo/deje prave v pripade kdy system z nejakeho duvou zacne "havarovat" (malo pameti, vysoky load, zasekly proces co bere veskere CPU,atd..). V nekterych pripadech (coz se mi nekolikrat stalo) system zacne strilet procesy a nez na to clovek prijde je system v nefunkcnim stavu a v logu ani zminka. Uz se mi stalo, ze jsem prisel k serveru RHEL (x86_64, 4G RAM, 16G swap) kde byly odstreleny vsechny procesy krom initu, udev, a par systemovych demonu. /var/log/* naprosto bez stop nejake priciny. Napadlo mne zkusit si napsat nejake "hlidatko" procesu / systemu, ale prave resim jak zajistit aby tetno proces bezel co nejdele v pripade nouze. Jedna moznost je pohrat si s /proc/PID/oom_adj a pak se postarat o maximalni pametovou hospodarnost. Proto jsem se ptal na tu statickou alokaci.
    27.6.2010 13:53 __dark__
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Tak si alokuj 16MB RAM pri startu tvoji aplikace a používej jenom tuto paměť (vlastní memory management). Podle mě to není problém napsat, otázka je, co od té tvoji aplikace očekáváš, a které další knihovny budeš používat.
    27.6.2010 22:00 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti

    Pokud jádro zabilo syslog, tak ve /var/log samozřejmě nic nebude. Musíte se podívat do protokolu jádra (dmesg). Ale i ten je kruhový, takže ho možná budete chtít nafouknout (parametr jádra při bootu nebo překladu).

    Pokud se opravdu bojíte OOM, tak prostě vypněte memory overcommitment (/proc/sys/vm/overcommit_memory), ale pak asi bude vašim aplikacím těsno.

    Pro vás ale asi opravdu bude nejlepší nastavit hlídači -17 do oom_adj, aby přežil. Pro účely ladění byste si mohl nastavit /proc/sys/vm/oom_dump_tasks, abyste získal přehled o všech procesech v době zabití.

    28.6.2010 07:45 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Pisu ted malou aplikaci pro sledovani procesu.

    Kanón na vrabce. Dejte si do cronu ps po minutě a pak na to kápnete hned. (Vím z vlastní zkušenosti.)

    Dalším logickým krokem bude opravit tu špatnou aplikaci, která bortí systém. To většinou zabere :-)

    Pokud chcete něco monitorovat, pořiďte si nagios (nebo jiný systém). Nepište si vlastní věci.
    V nekterych pripadech (coz se mi nekolikrat stalo) system zacne strilet procesy a nez na to clovek prijde je system v nefunkcnim stavu a v logu ani zminka.
    Jako prevence by Vás mohly zajímat cgroups (control groups). Umožňují nastavit paměťovou kvótu tak aby se jeden proces nemohl rozpínat na úkor druhých.
    In Ada the typical infinite loop would normally be terminated by detonation.
    28.6.2010 10:05 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sledovani je jen jedna vec, dalsi je znovu spusteni/restart procesu pokud z nejake priciny spadne/nebezi, nebo vykonani jine akce.

    Kanon na vrabce mi pripadne spis ten Nagios. Nemam s nim sice takove zkusenosti, za to se Zabbixem nekolikalete a prave takovy Zabbix to co potrebuji neumi a nebo umi, ale velmi slozite a jen castecne. Proc v urcitych situacich misto demona o velikosti par desitek KB pouivat moloch co potrebuje php, sql server, atp...?
    28.6.2010 17:57 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sledovani je jen jedna vec, dalsi je znovu spusteni/restart procesu pokud z nejake priciny spadne/nebezi, nebo vykonani jine akce.

    Kanon na vrabce mi pripadne spis ten Nagios. Nemam s nim sice takove zkusenosti, za to se Zabbixem nekolikalete a prave takovy Zabbix to co potrebuji neumi a nebo umi, ale velmi slozite a jen castecne.
    Samozřejmě záleží na tom co si přejete dělat. Pokud chcete jen odhalit škůdce tak IMHO nejpřímočařejší cesta je to 'ps' jak jsem navrhoval.

    Pokud chcete dlouhodobě sledovat dostupnost služeb, mít nad tím nějaké hlášení problémů, případně samočinné pokusy o restart... tak na to je (opět IMHO) vhodný nástroj ten Nagios. Klidně do něj můžete jako plugin zaintegrovat ten svůj úžasnej nezničitelnej program ale myslím si že to bude fungovat zrovna tak dobře s něčím obyčejným. Každopádně máte už ale hotovou veškerou hlídací a rozhodovací logiku a nemusíte vynalézat kolo.
    Proc v urcitych situacich misto demona o velikosti par desitek KB pouivat moloch co potrebuje php, sql server, atp...?
    Vždycky když jsem měl takovéto tendence si něco malého psát tak jsem se prve porozhlédl jestli to už někdo nevyřešil předemnou. Konfiguraci Nagiosu pokud ho neznáte budete věnovat X dní a zrovna tak ten čas byste strávil psaním toho démona. Problém je, že pak když budete chtít "ještě tohle a ještě támto" tak v Nagiosu to už uděláte raz dva, zatímco ten démon budete zase X dní přepisovat, testovat, atp. Takže v delší trati se Vám přestane vyplácet udržovat ten bastl.

    PHP ani SQL server pokud vím to nepotřebuje, pouze Apache pokud chcete web front end.

    In Ada the typical infinite loop would normally be terminated by detonation.
    27.6.2010 09:45 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Je to uplne jedno, protoze pri bezne konfiguraci se pouziva lina alokace pameti, takze neni rozdil, jestli si vezmete prazdnou stranku zvetsenim heapu pres brk a nebo tim, ze pouzijete promennou z B, C nebo D sekce, jejiz stranka jeste nebyla pouzita a nebo zvetsenim zasobniku o stranku.
    27.6.2010 15:57 klusik | Plzeň
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Zdravím,

    rozdíly mezi S a D si přečtěte v dalších komentářích, co chci napsat já je, že v C musíte vždy (pokud nejste čuník programátorský ;)) hlídat meze a všechno kolem jen SÁM :-)

    Stejně tak přetečené, stejně tak přidelení (nepřidělení) volné paměti a všechno. Ono to vypadá jako buzerace, ale je to o tom, že co si uděláte, to máte. Ne vždy potřebujete velké a superkomplexní věci a proto používáte C a ne třeba Javu nebo C#. Nevýhoda toho je, že si musíte všecko ohlídat. ;)

    Hodně zdaru.
    Prostě já ;) www.klusik.cz
    27.6.2010 19:16 ext3fs
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    To je pochopitelne, ze je potreba dyn.pamet hlidat. Mne slo spis o to, jestli je mozne tu statickou brat tak, ze je alokovana v dobe spusteni procesu a proces s ni muze pracovat v kazde situaci a nikdo mu ji nevezme. Protoze v pripade, ze vrati malloc() NULL, tak se konci...
    28.6.2010 01:30 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Mne slo spis o to, jestli je mozne tu statickou brat tak, ze je alokovana v dobe spusteni procesu a proces s ni muze pracovat v kazde situaci a nikdo mu ji nevezme.
    Ne, vizte http://www.abclinuxu.cz/poradna/programovani/show/307603#3
    28.6.2010 09:51 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Sprave pameti je vcelku jedno jestli pouzijete statickou, nebo dynamickou pamet - chova se k nim stejne.
    Pokud chcte mit jistotu, ze alokovana pamet (at uz staticky, nebo dynamicky) bude k dispozic, tak by slo na zacatku behu programu (kdy je jeste pameti urcite dost) alokovat si vetsi kus pameti (pro vlastni potrebu) a do cele alokovane pameti zapsat pokud mozno nahodna data (tim se zaruci, ze tu pamet dostanete) - tuhle pamet vam uz nikdo nevezme (pokud proces nezabije OOM killer) a budete ji mit do konce behu programu k dispozici.
    28.6.2010 09:59 chochi | skóre: 29 | Praha
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Neco o sprave neinicializvane pameti se da najit treba v jadernych novinkach
    1.7.2010 11:39 x22
    Rozbalit Rozbalit vše Re: staticka vs dynamicka alokace pameti
    Na zabezpecenie, ze pamat nikto nevezme (neodswapuje) su volania mlock() a mlockall(). OOM killera to nezastavi, mozno naopak zvysi sance, ze sa proces stane obetou.

    Založit nové vláknoNahoru

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

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