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í
×
    včera 23:22 | IT novinky

    Evropský parlament dnes přijal směrnici týkající se tzv. práva spotřebitele na opravu. Poslanci ji podpořili 584 hlasy (3 bylo proti a 14 se zdrželo hlasování). Směrnice ujasňuje povinnosti výrobců opravovat zboží a motivovat spotřebitele k tomu, aby si výrobky nechávali opravit a prodloužili tak jejich životnost.

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

    Bylo oznámeno (cs) vydání Fedora Linuxu 40. Přehled novinek ve Fedora Workstation 40 a Fedora KDE 40 na stránkách Fedora Magazinu. Současně byl oznámen notebook Slimbook Fedora 2.

    Ladislav Hagara | Komentářů: 4
    včera 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 15
    včera 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

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

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

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

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    22.4. 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    22.4. 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 2
    22.4. 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    22.4. 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    KDE Plasma 6
     (72%)
     (10%)
     (2%)
     (17%)
    Celkem 697 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    Kompilovanie jadra - I

    31. 5. 2004 | Rastislav Stanik | Návody | 28222×

    Co je to vlastně jádro, kdy je potřeba jej kompilovat a jak na to jít. První díl článku vysvětlí teorii, druhý vás provede praxí.

    Načo jadro vlastne je

    Keď sedíte za počítačom a čítate tento článok, robíte tak pomocou prehliadača a možno vám do toho počítač hrá nejakú muziku a tlačí na tlačiarni dokument. Za tým všetkým je ale schované niečo iné. Nenápadné. Jadro.

    Jadro (angl. kernel) má tieto hlavné úlohy:

    1. Štartovanie systému
    2. Ovládačmi sprostredkováva prístup k hardwaru
    3. Poskytuje programom prostriedky (angl. resources) ako sú pamäť alebo čas, kedy sa inštrukcie programu môžu vykonávať v procesore

    Pri štarte počítača sa používa dohoda o tom, akým spôsobom BIOS odovzdá riadenie operačnému systému. Táto dohoda prakticky znamená, že po vykonaní štartovacích testov pamate a niektorých periférií sa riadenie odovzdá tzv. boot manageru. V Linuxe sa najčastejšie používa lilo, grub alebo loadlin, či boot manažér iného operačného systému - napr. Windows. Úlohou boot manažéra je nájsť na disku súbor jadra, nahrať ho do pamäti a odovzdať mu riadenie.

    V podstate každý kus hardwaru v počítači potrebuje svoj ovládač. Klávesnica, video-karta, sieťová karta, sériové, paralelné či USB porty, disk, disketová mechanika a tak ďalej. Okrem toho existujú aj ovládače pre algoritmické záležitosti ako sú súborové systémy, sieťové protokoly či rôzne systémy ako napr. APM (advanced power managerment). Jadro poskytuje množinu funkcií, ktoré umožňujú programom robiť rôzne operácie ako napríklad otvorenie súboru.

    Moderné operačné systémy sú mnohoúlohové (umožňujú beh viacerých programov naraz) a mnohoužívateľské (umožňujú prácu viacerých užívateľov naraz). Jadro sa stará o to, aby rozdelenie výkonu, pamati a sieťovej priepustnosti bolo spravodlivo rozdelené medzi bežiace programy (potenciálne rôznych užívateľov).

    Prečo?

    Najčastejšie dôvody pre kompilovanie jadra:

    1. Snaha niečo sa dozvedieť.
    2. Pridanie podpory pre hardware, ktorý pôvodným jadrom podporovaný nie je.
    3. Snaha o zmenu konfigurácie ovládačov z hľadiska toho, či sú priamo v jadre, alebo existujú ako moduly.
    4. Opravy chýb v jadre.
    5. Snaha niečo si dokazovať a dvíhať si sebavedomie :-)

    Keď dostanete do ruky inštaláciu linuxového systému, tak spravidla vlastne máte nejakú distribúciu. Niekto zobral jadro a množinu programov a dal ich dohromady tak, aby spolu fungovali. Medzi známe distribúcie patrí Red Hat, Debian, Mandrake či Slackware alebo Gentoo. Ten, kto distribúciu zostavuje, sa spravidla postará o to, abyste dostali aj jadro (niekedy máte na výber z viacerých). Toto jadro bolo tvorcom distribúcie nejako nakonfigurované. Spravidla tak, aby podporovalo čo najrozmanitejšie konfigurácie hardwaru a požiadavky užívateľov.

    V súčasnosti je veľmi zriedkavo nutné, abyste jadro kompilovali sami. Linuxové jadro je postavené ako skladačka. Skladá sa z mnohých častí nazývaných moduly, ktoré nie sú priamo v súbore jadra, ale je možné jadro požiadať o to, aby ich funkcionalitu nahralo zo súboru dodatočne - už v čase, kedy je systém rozbehnutý. Preto je často možné, že ak vaše jadro neobsahuje podporu pre nejaký hardware, možno do neho túto podporu doplniť neskôr - nahraním modulu. Niekedy medzi modulmi existujú závislosti. Napríklad ak máte všeobecnú podporu pre SCSI aj podporu pre SCSI disky ako moduly, tak najprv musíte nahrať všeobecnú podporu pre SCSI a až potom môžete nahrať podporu SCSI diskov. Nahrávanie modulov (príp. ich odstraňovanie) sa spravidla robí pomocou programov z balíka modutils. Veľmi stručne:

    • lsmod - vypíše moduly zavedené v pamäti v danom okamihu
      # lsmod
      Module             Size  Used by
      ipt_state          1984  0
      ipt_limit          2432  0
      iptable_nat       22732  0
      iptable_filter     2752  0
      ip_tables         17920  4 ipt_state,ipt_limit,iptable_nat,
                                 iptable_filter
      ip_conntrack      34560  2 ipt_state,iptable_nat
      uhci_hcd          30924  0
      usb_storage      101328  1
    • insmod mojmodul - sa pokúsi zaviesť do pamäti modul mojmodul
      # insmod ipt_LOG.ko
      # lsmod
      Module             Size  Used by
      ipt_LOG            6336  0
      ipt_state          1984  0
      ipt_limit          2432  0
      iptable_nat       22732  0
      iptable_filter     2752  0
      ip_tables         17920  5 ipt_LOG,ipt_state,ipt_limit,
                                 iptable_nat,iptable_filter
      ip_conntrack      34560  2 ipt_state,iptable_nat
      uhci_hcd          30924  0
      usb_storage      101328  1
    • rmmod mojmodul - sa pokúsi zrušiť modul mojmodul
      # rmmod ipt_LOG
      # lsmod
      Module             Size  Used by
      ipt_state          1984  0
      ipt_limit          2432  0
      iptable_nat       22732  0
      iptable_filter     2752  0
      ip_tables         17920  4 ipt_state,ipt_limit,iptable_nat,
                                 iptable_filter
      ip_conntrack      34560  2 ipt_state,iptable_nat
      uhci_hcd          30924  0
      usb_storage      101328  1
    • depmod - zistí závislosti medzi modulmi
    • modprobe mojmodul - nahrá modul mojmodul spolu so všetkými modulmi potrebnými pre jeho beh
      # lsmod
      Module             Size  Used by
      uhci_hcd          30924  0
      usb_storage      101328  1
      
      # modprobe ipt_LOG
      # lsmod
      Module             Size  Used by
      ipt_LOG            6336  0
      ip_tables         17920  1 ipt_LOG
      uhci_hcd          30924  0
      usb_storage      101328  1

    Pridať alebo ubrať modul môže len užívateľ root. Druhá varianta pridávania a odoberania modulov je použitie automatického nahrávania modulov, ktoré ešte spomeniem nižšie.

    Kompilovanie jadra

    Kde zobrať zdrojový kód jadra?

    Ak dospejete k rozhodnutiu, že je nutné skompilovať vlastné jadro, musíme najprv získať jeho zdrojový kód. Existuje viacero variant jadier, ktoré môžete chcieť, a preto si najprv treba ujasniť zdrojový kód, ktorého jadra vlastne chceme:

    Vanilla jadro
    Vývojári jadra uverejňujú oficiálny zdrojový kód jadra na kernel.org. Postupom času vznikajú novšie a novšie verzie jadra. V súčasnosti je hlavné číslo verzie 2. Verzie stabilné - dostatočne odskúšané - majú vedľajšie číslo párne. V súčasnosti sa najskôr stretnete s verziou 2.6, 2.4 alebo 2.2. Ten, kto má chuť riskovať, experimentovať alebo potrebuje niečo čo v aktuálnej verzii nie je, môže skúsiť čísla nepárne. V súčasnosti je poslednou verziou 2.6.6. Experimentálne verzie 2.3 a 2.5 sa už nevyvíjajú. Okrem oficiálneho zdrojového kódu tu nájdete aj odnože udržiavané poprednými vývojármi jadra. Napríklad Alan Cox tu má odnož s príponou -ac. Tieto odnože sa spravidla líšia použitím niektorých experimentálnych algoritmov.
    Jadro distribúcie
    Tvorcovia distribúcií tiež vychádzajú z vanilla jadra, ale často k nemu pridávajú vlastné úpravy alebo niektoré z vlastností nepárnej verzie. To neznamená, že také jadro je menej stabilné, ale len to, že podľa názoru distributora je daná úprava dostatočne stabilná pre širšie použitie, resp. je to risk hodný zvýšeného výkonu a podobne. Pretože distributéri potrebujú nejaký čas na testovanie, tak svoju upravené verziu jadra publikujú s istým oneskorením oproti vanilla jadru.

    Zdrojový kód jadra má vo forme archívu cez 30MB. Preto v prípade, že máte k dispozícií zdrojový kód staršej verzie, môže vám stačiť zobrať len zmeny oproti tejto staršej verzii - tzv. patch (záplatu).

    Ak máte úplný zdrojový kód jadra, rozbaľte ho (tradične sa rozbaľuje do /usr/src):

    # cd /usr/src
    # tar xvfz kernel-2.6.3.tgz

    alebo

    # cd /usr/src
    # tar xvfj kernel-2.6.3.tar.bz2

    Podľa toho, či máte zdrojový kód jadra komprimovaný programom gzip, alebo bzip2. Rozbalením vznikne adresár, ktorý nesie meno verzie /usr/src/linux-2.6.3/. Je vhodné ho buď premenovať

    # mv linux-2.6.3 linux

    alebo vytvoriť symbolickú linku

    # ln -s linux-2.6.3 linux

    tak, aby zdrojový kód bol dostupný pod adresárom /usr/src/linux.

    Ak máte patch, musíte ho aplikovať na svoj zdrojový kód jadra

    # cd /usr/src/linux
    # gunzip -c patch-2.6.4.gz | patch -p1 -

    alebo

    # cd /usr/src/linux
    # bunzip2 -c patch-2.6.4.bz2 | patch -p1 -

    Číslo záplaty 2.6.4 znamená, že ho možno aplikovať na zdrojový kód jadra 2.6.3 a jeho aplikovaním získame kód jadra 2.6.4.

    Na budúce si povieme o možnosťach konfigurácie jadra pred kompilaciou, o samotnej kompilacii a konečně o instalácii skompilovaného kernelu, aby bylo možno jej využíť při boote systému.

           

    Hodnocení: 39 %

            š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ář

    31.5.2004 08:24 jack
    Rozbalit Rozbalit vše patchnutie
    potom napiste podrobne aj ako sa patchuje
    DjAARA avatar 31.5.2004 10:36 DjAARA | skóre: 32 | Praha|Náklo|Olomouc
    Rozbalit Rozbalit vše Re: patchnutie
    Souhlas, chtelo by to patchovani rozebrat trochu vic.
    31.5.2004 11:30 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: patchnutie
    Osobne pouzivam vanilla jadro (alebo Slackware-ov balik, co je na 99% to iste) a aplikujem patch-e z kernel.org. A aplikovanie patch-u znamena skutocne len tolko ako som napisal v clanku (ok vynechal som 300 riadkov zacinajucich 'patched file ... Hunk # succeeded at ...) .

    Takze ak mate s patchmi nejaky problem, povedzte aky konkretne. Chcete viac o vytvarani backup-u, reject-ovani, ci reverznom patch-i, ...? Alebo mate problemy s patch-mi z inych zdrojov?

    31.5.2004 10:35 rADOn
    Rozbalit Rozbalit vše symlink /usr/src/linux je obsolete
    jedinej detail je ze umisteni zdrojaku kernelu do /usr/src/linux je spatnost.
    viz http://www.linuxmafia.com/faq/Kernel/usr-src-linux-symlink.html
    ve strucnosti - mely by tam byt zdrojaky/hlavicky kernelu proti kteremy byla zkompilovana glibc. vetsinou to, jak vidno, neni problem ale proto to jeste nemusime propagovat.
    31.5.2004 11:44 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: symlink /usr/src/linux je obsolete
    Ta linka tusim hovori o linke /usr/include/linux - ci je to linka ukazujuca do /usr/src/linux/include je tusim zalezitost distribucie, pretoze na stroji (Slack), za ktorym momentalne sedim to linka nie je. Pokial mi je zname, tak prekladac nepouziva /usr/src/linux/include ak mu to explicitne neprikazete.

    Na druhej strane, ta linka nie je nutna, takze ak maju citatelia pochybnosti, mozu ten krok kludne vynechat.

    1.6.2004 11:05 Michal M.
    Rozbalit Rozbalit vše Re: symlink /usr/src/linux je obsolete
    Ve strucnosti: Hlavicky kernelu proti kteremu byla zkompilovana glibc by mely byt v /usr/include/... a nemely by to byt jenom odkazy do /usr/src/linux/include/...

    Pokud mam hlavicky pro programy oddelene (coz v dnesnich distribucich mam), muzu si s /usr/src/linux delat co chci.
    31.5.2004 11:12 debko
    Rozbalit Rozbalit vše diky
    Diky za tento serial, snad sa uz konecne naucim kompilovat kernel, v linuxe je to dost zlozita procedura.
    31.5.2004 13:25 Tomáš
    Rozbalit Rozbalit vše Šestý důvod
    proč kompilovat jádro chybí a je podle mne ten nejčastější. Mít poslední jádro, protože je prostě nejnovější.
    31.5.2004 13:47 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: Šestý důvod
    Spravne. Aj ja chcem mat najnovsie chyby ;-)
    Josef Kufner avatar 31.5.2004 14:36 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Šestý důvod
    a nemit ty stary chyby ;)
    Hello world ! Segmentation fault (core dumped)
    31.5.2004 14:32 Borg
    Rozbalit Rozbalit vše Re: Šestý důvod
    Proč kompilovat je jasný tomu kdo tam nepotřebuje takové věci jako je podpora PCMCIA, atd. a to ani jako moduly. A naopak si tam chce stabilně spustit všechny možnosti které např. umožňuje raid Promise. I když pravdou je že kernel 2.4.* se mně kompiloval lépe než kernel 2.6.* . I když je to pouze řekl bych subjektivní pohled. (Noflame) ??????? Nejnovější chyby ????? To by jsme v tom případě museli dělat pořád ještě na kernelu 2.2.* ;-)
    Josef Kufner avatar 31.5.2004 14:38 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Šestý důvod
    jo, s tim kompilovanim mi to taky prislo.. zrovna jsem zkompiloval 2.6.6 a bylo to radove v jednotkach minut a co si vzpominam 2.4.2x bylo bezmala pul hodinky.
    Hello world ! Segmentation fault (core dumped)
    Pavel Beníšek avatar 25.10.2004 13:39 Pavel Beníšek | skóre: 27
    Rozbalit Rozbalit vše Re: Šestý důvod
    Tak to jste zrejme jen upravil konfiguraci a prekompiloval jadro (takze se kompilovaly jen ty nove veci a zbytek se jen linkoval, protoze uz zkompilovany jenou byl), protoze jinak musite mit hodne nadupany cluster ;)

    U me (2GHz Celeron) trva kompilace okolo 40 minut. Coz samozrejme nemuzete brat jako bernou minci protoze zalezi co vsechno si tam clovek nahazi, ale rozhodne nedosahnete o rad rychlejsi kompilace na obdobnem hw.
    checking for chicken... must have egg first
    31.5.2004 15:09 martin
    Rozbalit Rozbalit vše modutils
    jen drobna poznamka - pro jadra 2.6.x uz to nejsou modutils ale tusim init-module-tools ale to je jen detail.

    Jinak podle me kompilace jadra je v celku snadne, vetsi legrace je podle me s na stavenim modulu do initrd pripadne nastavenim hotplug zarizeni. Pokud se stane ze 'neco nejak nefunguje jak ma' hledani chyb pro zacatecnika muze byt docela peklo ;0) Sam jsem si to prosel u notebooku PCMCIA sitovkou.
    31.5.2004 16:08 Borg
    Rozbalit Rozbalit vše Re: modutils
    Ono také záleží v jaké distribuci to jádro upravujete. Když mám čas tak si kompiluju jadra z Cookeru (MDK), teď naposledy to bylo kernel-2.6.6.3mdk. A dělal jsem to třikrát a druhá kompilace byla slušná a zbyvající brrr. :-(

    Dotaz jak je to ve Fedoře, taky je tam patchované jádro? Pokud možno vyjádřit osobní zkušenost, to "snad, a asi" je sice hezké, ale nepraktické.
    2.6.2004 07:49 Ondřej
    Rozbalit Rozbalit vše Re: modutils
    Ve Fedoře stále ještě pár patchů je, i když méně než dříve. Red Hat se nyní snaží co nejvíce přiblížit vanilla jádru.
    31.5.2004 16:22 ondra
    Rozbalit Rozbalit vše Re: modutils
    Bat bat, kdy se zde podrobneji rozebralo nastavovani initrd bylo by to skvele. Kompiloval jsem si vlastni RH9, FC1, FC2 a vetsinou sem zkolaboval na nastavovani initrd, ve vetsine pripadu sem ho musel nakonec dat pryc:-(
    Josef Kufner avatar 31.5.2004 17:21 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: modutils
    he he.. initrd jsem poklidne vypustil.. co je treba pred mountnutim rootu se nacpe rovnou do kerelu a basta ;-)
    Hello world ! Segmentation fault (core dumped)
    31.5.2004 20:10 jiri.b | skóre: 30 | blog: jirib
    Rozbalit Rozbalit vše Re: modutils
    No... ale s initrd muzete mit bootsplach, nebo jak se to oficialne jmenuje, a taky se to vyuziva pri kompletne sifrovanem / - ? me to teda moc nejelo, tak bych nejakej postup uvital, pac nemam cas a chut to louskat z anglictiny :)

    jirib
    1.6.2004 08:39 tomasgn | skóre: 23 | JN89GE
    Rozbalit Rozbalit vše Re: modutils
    taky radeji zakompiluji potrebne ovladace filesystemu a radice do kernelu a initrd vynecham.

    bootsplash - proboha na co? to je prvni vec kterou vypinam u distribuci, ktere me ho vnucuji, a vubec u vsech programu, ktere se o neco podobneho snazi ;-)
    2.6.2004 10:40 martin
    Rozbalit Rozbalit vše Re: modutils
    Ze jsem tak smela lama. Co to je initrd?
    2.6.2004 14:01 Kamil | skóre: 18 | blog: bejkarny
    Rozbalit Rozbalit vše Re: modutils

    man initrd ;o)

    -- JP
    4.6.2004 19:09 jkt
    Rozbalit Rozbalit vše Re: modutils
    initrd = initial ramdisk. kdyz kernel bootuje, tak si pripoji root filesystem / z initrd, nacte si moduly co bude potrebovat pro pripojeni opravdovyho / a je happy.
    31.5.2004 16:32 Geo
    Rozbalit Rozbalit vše proc
    No a treba taky kompilujem protoze nas nebavi cekat a divat se pri startu systemu na pokusy kernelu inicializovat zarizeni ktery v pocitaci nemam a pak jeste cekat na depmod -a
    7.6.2004 14:57 TNX
    Rozbalit Rozbalit vše Re: proc
    To je ale divny konicek, restartovat linux. :-)
    1.6.2004 12:28 Maude Lebowski
    Rozbalit Rozbalit vše patch argumenty
    prikaz na patchovani je napriklad
    bzip2 -cd ../patch-2.4.27-pre4.bz2 | patch -p1
    
    (patch bez te carky oznacujici std. vstup). Vubec nechapu, jak na to author prisel v zadnym manu na vsemoznych systemech jsem to nenasla.
    1.6.2004 16:14 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: patch argumenty
    Nechapem. "bunzip2" je to iste ako "bzip2 -d" - popisane v man stranke bzip2. Manualova stranka pre patch hovori "If patchfile is -, read from standard input, the default."

    Co teda nie je jasne? Hovoris, ze tak ako je to v tom clanku to nefunguje? Alebo si nevedela, ze sa to da aj tak?

    Založit nové vláknoNahoru

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