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í
×
    dnes 18:11 | Komunita

    Od 13. do 15. října proběhne v Praze OpenSSL Conference 2026. Na YouTube lze zhlédnout videozáznamy přednášek z loňského roku.

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

    Eben Upton oznámil další zdražení jednodeskových počítačů Raspberry Pi. Tentokrát 2 GB varianty o 12,50 dolarů. Nově 2 GB Raspberry Pi 4 stojí 67,50 dolarů a 2 GB Raspberry Pi 5 stojí 77,50 dolarů.

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

    OpenMandriva ROME, tj. průběžně aktualizovaná (rolling) edice linuxové distribuce OpenMandriva, byla vydána ve verzi 26.09. Vedle Flatpaku také s podporou Snapu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Zajímavý software

    Edison Design Group po více než 30 letech zveřejnil zdrojový kód svého EDG C/C++ front-endu. Ten proslul širokou podporou standardů C++ a kompatibilitou s dialekty kompilátorů od Microsoftu, GNU, Clangu, Sunu a dokonce i s prehistorickým cfrontem. EDG byl použit například v kompilátoru Intel C++ Classic, kompilátoru NVCC od firmy NVIDIA pro platformu CUDA nebo v našeptávači kódu IntelliSense v produktech společnosti Microsoft. Projekt nyní spravuje organizace The C++ Alliance a kód je dostupný pod licencí Apache 2.0, doplněnou o výjimky projektu LLVM.

    AfD 💙 | Komentářů: 0
    dnes 04:11 | Zajímavý projekt

    Pocket Tank je malé kapesní virtuální akvárium postavené na vývojové desce ESP32-S3-Touch-AMOLED-1.8. Na dvoujádrovém mikrokontroléru ESP32-S3 s 8 MB PSRAM a 16 MB flash paměti běží jak simulace akvária, tak i malý jazykový model určující chování rybiček. Lokální model o velikosti 7,56 MB se 14 miliony parametrů vznikl destilací modelu Gemma 4 26B, tedy učitele s 26 miliardami parametrů. Kromě firmwaru pro skutečný modul s AMOLED

    … více »
    AfD 💙 | Komentářů: 3
    dnes 03:55 | Zajímavý software

    Open-source nástroj Jevstiller vytváří (destiluje) malý lokální model, který se průběžně učí z odpovědí komerční služby Jev. Běžné dotazy vyřizuje přímo na vlastním hardware, čímž může řádově zkrátit čas odezvy a snížit provozní náklady díky menšímu využívání zpoplatněného API. Nejisté požadavky Jevstiller posílá do Jevu, rovněž průběžně kontroluje náhodná dvě procenta dotazů Jevem. Pokud se lokální model začne s Jevem rozcházet,

    … více »
    AfD 💙 | Komentářů: 2
    včera 12:00 | Pozvánky

    Konference LinuxDays 2026 proběhne již tento víkend 3. a 4. října v Praze v areálu ČVUT v Dejvicích na FIT. Konference LinuxDays 2026 znamená desítky přednášek a workshopů, zástup zajímavých osobností, místo pro setkání, spoustu nových nápadů a informací a stánky řady různých projektů: Fedora, openSUSE, vpsFree.cz, Mozilla, MacGyver - bastlíři SH, OpenAlt a mnoho dalších. Vstup je volný.

    Ladislav Hagara | Komentářů: 4
    včera 04:33 | IT novinky

    Microsoft oznámil, že WSL kontejnery (WSLC) aneb linuxové kontejnery ve Windows Subsystem for Linux (WSL) jsou již obecně dostupné. Současně popsal jejich architekturu.

    Ladislav Hagara | Komentářů: 0
    29.9. 23:22 | Komunita

    openSUSE Leap 16.1 vstoupil do RC fáze. Nově lze instalovat jako standardní systém (Standard) nebo jako neměnný systém s atomickými aktualizacemi (Immutable). Samostatná neměnná distribuce openSUSE Leap Micro končí.

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

    Byl vydán Mozilla Firefox 157.0. S nejvýraznější vizuální proměnou za poslední roky. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 157 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 12
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2770 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé

    18. 3. 2014 | Luboš Doležel | Jaderné noviny | 3554×

    Aktuální verze jádra: 3.14-rc4. Citáty týdne: Thomas Gleixner, Paul McKenney. Řádné ošetřování neznámých příznaků v systémových voláních.

    Obsah

    Aktuální verze jádra: 3.14-rc4

    link

    Aktuální vývojová verze jádra je 3.14-rc4 vydaná 23. února. Linus ji okomentoval slovy: Nic velkého nebo obzvláště strašidelného.

    Stabilní aktualizace: verze 3.13.4, 3.12.12, 3.10.31 a 3.4.81 vyšly 20. února, verze followed by 3.13.5, 3.12.13, 3.10.32 a 3.4.82 pak 22. února.

    Citáty týdne: Thomas Gleixner, Paul McKenney

    link

    A teď vážně, všichni, kdo stále používají tasklety, aniž by si byli vědomi jejich nenápadných problémů a měli zatraceně dobrý důvod je používat, by si měli vzít štípačky nebo nějaký jiný vhodný nástroj, aby zneškodnili svou klávesnici a začali pracovat v pekárně, kde mohou jíst vše, co si sami nadrobili.

    -- Thomas Gleixner

    Rád dávám patchům několik týdnů pořádný záhul, než je předám dál. Mám tu zkušenost, že když to neudělám, tak dostanu zanedlouho záhul já.

    -- Paul McKenney

    Řádné ošetřování neznámých příznaků v systémových voláních

    link

    Jedním z důležitých kroků při přidávání argumentu flags pro příznaky do systémového volání je ověřování, zda tento argument obsahuje jen podporované hodnoty. Pokud se tak nestane, tak si zavaříme na řadu problémů s kompatibilitou do budoucna. Pohled na historii vývoje systémových volání na Linuxu (a Unixu) ale ukazuje, že dělá lidem problém si na to zvyknout.

    Každý argument s příznaky (nebo jakoukoliv jinou vstupní strukturou, která obsahuje pole s příznaky) by měl mít příslušnou kontrolu, která může vypadat následovně:

    if (flags & ~(FL_XXX | FL_YYY))
    	return -EINVAL;
    

    Zde FL_XXX a FL_YYY představují hypotetickou sadu příznaků, kterým systémové volání rozumí, důsledkem této kontroly je pak vrácení chyby, pokud volající nastaví jakýkoliv bit, které není v seznamu podporovaných. Podobné kontroly připravují toto API na budoucnost, tedy aby bylo možné systémové volání rozšířit o dodatečné příznaky. Představme si, že systémové volání má nový příznak nazvaný FL_ZZZ a mění tedy kontrolu následovně:

    if (flags & ~(FL_XXX | FL_YYY | FL_ZZZ))
    	return -EINVAL;
    

    Aplikace v uživatelském prostoru je nyní schopna ověřit, jestli běží pod jádrem, kde dané systémové volání podporuje FL_ZZZ, a to tak, že si pohlídá chybu EINVAL při uskutečňování volání. Díky tomu mají aplikace možnost řešit rozdíly v systémových voláních napříč verzemi jádra.

    I když implementace podobných kontrol v jádře může vypadat jednoduše, ukazuje se, že spousta systémových volání tuto kontrolu nedělá, a to včetně clock_nanosleep(), clone(), epoll_ctl(), fcntl(F_SETFL), mmap(), msgrcv(), msgsnd(), open(), recv(), send(), sigaction(), splice(), unshare() a spousty dalších.

    Většina těchto volání tu s námi je už celé roky. Mladší volání, která argument flags mají, nezbytnou kontrolu zpravidla obsahují. I mezi nimi se ale najde pár takových, které ji nemají, jako jsou open_by_handle_at() (2.6.39), recvmmsg() (2.6.33) a sendmmsg() (3.0). V těchto případech autor možná emuloval nepřítomnost takové kontroly u příslušných dřívějších volání (open(), recv(), send()). Jde ale o promeškanou příležitost, jak původní API vylepšit.

    U každého volání, které u argumentu flags postrádá kontrolu, pak nemají aplikace v uživatelském prostoru možnost jak zjistit, které příznaky daná verze jádra podporuje. Opomenutí implementovat tyto kontroly v jádře pak představuje komplikaci i pro životy jaderných vývojářů, což několik vzniklých situací dokazuje.

    Pokud jádro nekontroluje, že ve flags dostává jen platné bity, pak mohou aplikace beztrestně do „nevyužitých“ bitů ve flags dávat náhodný bordel. Jestliže se pak jaderný vývojář rozhodne využít některý z nevyužitých bitů, tak může docházet k překvapivým poruchám v aplikacích, což zase může vést k tomu, že jaderný vývojář bude muset psát neoptimální implementace nových funkčností v API. Příkladem z nedávné doby budiž implementace příznaku EPOLLWAKEUP, kde snaha vyhnout se rozbití uživatelského prostoru vede k tomu, že jádro tiše ignoruje tento příznak, pokud volající proces nemá právo CAP_BLOCK_SUSPEND. V ideálním případě by samozřejmě jádro volajícího o chybě informovalo navrácením chyby. Následkem toho aplikace, které si chtějí být naprosto jisté, že volání uspěje, si musí explicitně ověřit, že mají právo CAP_BLOCK_SUSPEND.

    Ještě čerstvějším případem je implementace příznaku O_TMPFILE u open(), kdy definice příznaku zahrnuje příznak O_DIRECTORY s tím účelem, aby starší jádra, která O_TMPFILE neznají, vrátila chybu v případě, že je tento příznak použit. Bylo potřeba to tak udělat proto, že aplikace vytvářející dočasné soubory si jsou často vědomy bezpečnostních důsledků a potřebují vědět, zda bylo požadavku na vytvoření skrytého dočasného souboru vyhověno. Bez této úpravy by příznak O_TMPFILE byl na starších jádrech prostě ignorován a aplikace by nevědomky vytvářela viditelný soubor. Nepříjemným vedlejším účinkem je pak to, že aplikace musejí kontrolovat vrácení dvou různých chybových hodnot, aby zjistily, zda běží na jádře, které O_TMPFILE nepodporuje.

    Dále stojí za zmínku, že několik systémových volání přidalo kontrolu argumentu flags až po počáteční implementaci. Mezi ně patří dvě stará volání umount2() (kontrola přidána v Linuxu 2.6.34) a swapon() (kontrola přidána v Linuxu 3.4). Dále je tu pak mremap(), které se poprvé objevilo v Linuxu 2.0 a bylo rozšířeno o kontrolu v Linuxu 2.4, a volání timerfd_settime(), které se poprvé objevilo ve verzi 2.6.25 a bylo o kontrolu rozšířeno v Linuxu 2.6.29.

    Přidání kontrol do těchto volání ale představuje vyjímku z pravidla, že podobné kontroly nelze přidávat, jelikož by mohlo dojít k rozbití stávajících aplikací, které předávají nahodilý bordel v „nevyužitých“ bitech argumentu flags. U umount2() a swapon() bylo možné změnu udělat snad proto, že mimo příkazy mount a swapon je málokdo používá a tyto programy by bylo možné v případě rozbití jednoduše opravit. V případě timerfd_settime() došlo ke změně krátce po počáteční implementaci, kdy toto rozhraní moc programů asi ještě nepoužívalo. A v případě mremap() došlo ke změně při velkém skoku verze jádra (mezi 2.2 a 2.4), kdy byly takové změny ABI výjimečně povoleny; při současném 10týdenním vývojovém cyklu takové změny možné nejsou.

    Proto, když kontrola nepoužívaných bitů příznaků není zařazena do počáteční implementace, nebývá možné ji doplnit později. Jednoznačným závěrem tedy je, že náležité kontroly by měly být přidány hned zkraje.

           

    Hodnocení: 100 %

            š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.3.2014 22:47 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Pouzivani EINVAL pro kontrolu, zda je featura dostupna, me prijde jako dost prasacke rozhrani. Pokud se zavadi kontrola s ohledem na budouci rozsiritelnost, tak by mel byt pouzit nejaky specificky chybovy kod ('ENOFLAG'), podobne jako se pouziva ENOPROTOOPT u setsockopt() pro nezname options. A EINVAL by se mel nechat pro skutecne invalidni hodnoty, nikoliv pro nezname, ale potencialne (v budoucnu) validni.
    Karry avatar 18.3.2014 23:58 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Přijde mi že jaderní vývojáři se zdráhají vytvářet jednoznačné chybové kódy... Podobně jako u Btrfs může ENOSP znamenat od "došlo místo", "vyčerpal jsi kvótu", "kernel špatně odhadl místo pro metadata" až po "nepodařilo se mi alokovat buffer v paměti"...
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
    20.3.2014 08:31 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kdyby tak byly jednoznačné podněty pro vyvolání těchto chybových kódů. Jak známo, rozbít si ústa lze nekonečně mnoha způsoby...
    Archlinux for your comps, faster running guaranted!
    little.owl avatar 19.3.2014 12:24 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    I like to hammer new patches for a few weeks before passing them on. My experience is that if I fail to do so, they hammer me somewhat later. ;-)
    a
    Rád dávám patchům několik týdnů pořádný záhul, než je předám dál. Mám tu zkušenost, že když to neudělám, tak dostanu zanedlouho záhul já.

    Tohle me hned chytlo za usi, preklad posledni vety je cely dosti mimo.
    A former Red Hat freeloader.
    19.3.2014 13:39 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Nevidím problém?
    little.owl avatar 19.3.2014 14:07 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kounete se na znovu na posledni vetu.

    Anglicka verze jasne rika od koho se dostane zahul, v ceskem prekladu se to musite domyslet; navic prelozit "later" jako "zanedlouho" take neni to prave orechove, pozdeji neznamena zanedlouho.

    Tedy, trochu lepe:
    ... , tak [oni] daji pozdeji zahul mne.
    Tohle vam v komunikaci prinese problemy.
    A former Red Hat freeloader.
    19.3.2014 14:36 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    No nic. Tyhle doslovný překlady fakt "miluju"...

    P.S. Kdo oni? Snad ony?
    19.3.2014 14:41 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    P.P.S. "Somewhat later" je něco somewhat jiného než "later". :-D
    little.owl avatar 19.3.2014 15:11 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Jiste, lze to jeste upresnit. Jinak si rad poslechnu jaky rozdil v tom vy vidite.
    A former Red Hat freeloader.
    19.3.2014 15:57 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    jaky rozdil v tom vy vidite.
    No, asi takový, jako autor překladu, který to přeložil jako zanedlouho a ne později. :-)
    little.owl avatar 19.3.2014 17:15 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Tak to v zadnem pripade, je to stale "pozdeji", tomu neutecete. "somewhat" je tu neco mezi urcitou formou eufemismu a slovni vatou.

    Schvalne jsem se na to ted zeptal svych rodilych britskych kolegu: vypusteni "somewhat" zde vyznam v zasade nemeni, ani nema vliv na to jestli se to stane drive ci pozdeji na casove ose (vseobecna shoda), spise to indikuje, ze se tak skutecne stane (o neco mensi shoda). Anglicane, co ti vedi o anglictine, ze?
    A former Red Hat freeloader.
    19.3.2014 17:20 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Kolego, končím debatu o lejnu.
    little.owl avatar 19.3.2014 15:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Nejde o doslovnost, ani pravopis, ale posunuti vyznamu a vypusteni informace, coz je u citace problem; dalsi casti take rozhodne nejsou doslovne a nic proti tomu nemam.
    P.S. Kdo oni? Snad ony?
    Muzsky nezivotny, nominativ by asi mel byt skutecne "ony". Vyrustal jsem v prostredi, kde se pouzivalo jen "oni". V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?
    A former Red Hat freeloader.
    19.3.2014 15:55 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Já tam skutečně žádnou vypuštěnou informaci nikde nevidím, sorry.
    V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?
    No, to je tak, když někdo nesmyslně rejpe do překladu, a pak to sám zkomolí tak, že to nedává smysl...
    19.3.2014 20:42 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    V jake oblasti CR se prirozene mluvi podle doporucenych pravidel Ustavu pro jazyk cesky?

    Jak se mluvi je vzhledem k psane forme komentare irelevantni, ale pise se tak snad ve vsech oblastech.
    19.3.2014 22:05 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Asi tak nějak. Ale jinak na závěr tip pro sovy: co se jít vyřádit třeba na ýDěs? :-D

    Originál: "It sounds very much like a fireball or an extra-bright meteor, meaning a chunk of rock from space that got in the way of Earth and burns up in the atmosphere."

    Překlad: "Podle výpovědí to vypadá na obyčejnou ohnivou kouli, nebo velice jasný meteorit."

    :-D :-D :-D
    little.owl avatar 20.3.2014 01:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    OK, OK, beru vse zpet a prekladateli zde se timto omlouvam.
    A former Red Hat freeloader.
    little.owl avatar 20.3.2014 01:05 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Vetsinou se pise tak jak se mluvi a predtim, nez to budete rozporovat, projdete si diskuze na tomto serveru.

    Pokud si jeste vzpominam na stredni skolu, kde jsem kvuli tomu dostaval na budku - rozlisujeme: (a) spisovnou cestinu, (b) hovorovou spisovnou cestinu a (c) nespisovnou cestinu. (a) je odvozovano z (b), a (b) pouziva prvky z (c). Slang, kterym se to tu casto jen hemzi, je povazovan za nespisovnou cestinu.

    Predpoklad, ze psana forma je automaticky (a), skoncil v dobe kdy pisemny projev prestal byt domenou formalni komunikace.
    A former Red Hat freeloader.
    Pavel Stárek avatar 20.3.2014 13:21 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    No a tedy jak by měl znít správný překlad oné věty?
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    20.3.2014 14:18 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Rád kladivo nové záplaty pro několik týdnů předtím, než je předá dál. Moje zkušenost je, že když tak neučiní, že kladivo mě o něco později. ;)
    21.3.2014 15:50 u2
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    tak to asi neumis anglicky. Me osobne naopak z originalu konecne ta veta zacla davat smysl. Mel me varovat uz ten pubertacky vyraz "zahul", ze neco nebude s prekladatelem vporadku...
    21.3.2014 15:54 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Máš pravdu, jen jsem v Anglii vystudoval VŠ a překládáním se asi deset let živím, jinak do toho vůbec nevidím. Já mám totiž bohužel dojem, že lidi přestávají (roz)umět česky.
    20.3.2014 08:34 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    Stálo to za to takhle zaplavelit téma? Nic jiného na sdělení k tématu? Kam to spějeme...
    Archlinux for your comps, faster running guaranted!
    20.3.2014 09:27 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    +1, tesil jsem se, ze se zas dozvim neco o flazich, jako pod minulym dilem a ono tohle :-P
    Baník pyčo!
    21.3.2014 15:55 u2
    Rozbalit Rozbalit vše Re: Jaderné noviny – 27. 2. 2014: Problémové příznaky podruhé
    obavam se ze o FLAZICH by ses nedozvedel stejne nic

    Založit nové vlákno • Nahoru

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