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 19:00 | Zajímavý projekt

    Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.

    Ladislav Hagara | Komentářů: 1
    24.5. 22:22 | Upozornění Ladislav Hagara | Komentářů: 9
    24.5. 17:44 | Nová verze

    Firma Murena představila /e/OS verze 2.0. Jde o  alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).

    Fluttershy, yay! | Komentářů: 0
    24.5. 14:33 | Zajímavý software

    Do 30. května lze v rámci akce Warhammer Skulls 2024 získat na Steamu zdarma hru Warhammer 40,000: Gladius - Relics of War.

    Ladislav Hagara | Komentářů: 1
    24.5. 13:33 | Nová verze

    HelenOS (Wikipedie), tj. svobodný operační systém českého původu založený na architektuře mikrojádra, byl vydán ve verzi 0.14.1. Přehled novinek v poznámkách k vydání. Vypíchnou lze nabídku Start. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 2
    23.5. 23:22 | Zajímavý software

    BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.

    Ladislav Hagara | Komentářů: 0
    23.5. 16:55 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.

    Ladislav Hagara | Komentářů: 10
    23.5. 12:55 | Nová verze

    Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.5. 23:44 | Pozvánky

    V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    22.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (83%)
     (4%)
     (7%)
     (6%)
    Celkem 565 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Cesta do hlubin kompilace jádra - 3

    14. 10. 2005 | Antonín Kolísek | Návody | 11534×

    Kompilovat moduly nebo dávat přímo do jádra? Popis konfiguračních voleb určujících stabilitu kódu, obecná nastavení a podporu modulů.

    Na úvod

    Po předběžných informacích o sestavení jádra a hledání informací o hardware jsme nyní připraveni podstoupit nejtěžší a nejvýznamnější krok. Tímto krokem je samotný výběr součástí, které naše jádro bude obsahovat. Je to nejen důležitý, ale také poměrně rozsáhlý úkon, který nepůjde popsat v jednom díle. Proto se budu v následujících dílech seriálu, počínaje tímto, zabývat touto problematikou. Veškeré oparece budu provádět s aktuálně nejnovějším jádrem 2.6.13 (nebo 2.6.13.X), proto se mohou některé volby nepatrně lišit při použití jiné verze jádra řady 2.6.

    Modul nebo přímo do jádra?

    Při výběru komponent dostaneme většinou na výběr, zda chceme vybranou součást kompilovat přímo do jádra nebo jako modul. Při volbě první možnosti je pak vybraná funkce nebo ovladač přímo součásti jádra, tedy komprimovaného obrazu jádra (bzImage). Při volbě kompilace jako modul dojde k sestavení binárního souboru, tzv. modulu, který je v případě potřeby nahrán k běžícímu jádru (a při nečinnosti může být teoreticky z jádra opět odebrán).

    Jaký model jádra zvolit, zda spíše monolitický (co nejvíce věcí přímo do jádra) nebo modulární (nutné věci přímo v jádře, vše ostatní jako modul), nejde přesně říci. V dnešní době má Linux velmi propracovaný systém pro práci s moduly, a tak se jeví jako nejvhodnější kombinovat obě možnosti. V některém případě (bude-li potřeba, vždy upozorním) je doporučeno dát součást přímo do jádra (např. ovladač IDE řadiče, ovladač filesystému pro kořenový oddíl,...) a jinde se doporučuje kompilovat součást jako modul (ALSA, agpgart,...).

    Dalším důvodem, proč používat moduly, je fakt, že v některých případech, kdy dojde například ke špatné komunikaci mezi ovladačem a hardware, může dojít až k pádu systému, je-li ovladač přímo v jádře. V případě použití modulu nemusí být následky tak velké, což nemusí ale vždy platit. Určitě to ale při volbě modulů můžeme brát jako nepatrné plus.

    V mém případě se zde budu snažit dát pouze nutné věci přímo do jádra a většinu ostatního kompilovat jako moduly. Pokud si člověk nebude jistý, zda dát vybranou věc do jádra nebo jako modul, má možnost ponechat výchozí nastavení, čímž většinou nic nepokazí.

    Výběr součástí jádra

    Na začátku popíši, jak bude vypadat výběr jednotlivých komponent v rámci tohoto seriálu, aby se čtenář mohl lépe orientovat. Každá komponenta bude označena přesným jménem, popisem a vždy bude vyznačeno, zda je dobré ji kompilovat jako modul nebo do jádra. Více ukáže následující příklad:

    Jméno komponenty [M,Y,N]
    M = modul, Y = do jádra, N = nezačlenit

    Code maturity level options --->

    Prompt for development and/or incomplete code/drivers [Y]
    Select only drivers expected to compile cleanly [Y]
    Povolíte-li první volbu, budou v konfiguračním programu zobrazeny i volby komponent/ovladačů, které jsou ve fázi testování nebo nedokončené. Výběr je nutný, neboť některé komponenty, ač ve fázi testování, budeme potřebovat. Druhá volba ponechá ve výběru konfiguračních voleb jen ty ovladače, jež lze zkompilovat bez chyb.

    General setup --->

    Tato sekce se týká všeobecných nastavení komponent jádra. Především však funkcí pro meziprocesorovou komunikaci. Je možno vše ponechat jako povoleno.

    Local version - append to kernel release
    Zde je možné nastavit doplňující jméno kernelu, které bude připojeno k verzi jádra (např. 2.6.13-mujlinux1)
    Support for paging of anonymous memory (swap) [Y]
    Povolení užívání swapovacího oddílu nebo swapovacího souboru v případech, kdy je potřeba více paměti než je celková paměť RAM. Tuto volbu určitě vybrat.
    System V IPC [Y]
    Podpora pro meziprocesovou komunikaci, kterou využívají například emulátory jiných OS (DOSEMU,..). I když přímo emulátory nebudete používat, doporučuji dát tuhle věc do jádra.

    POSIX Message Queues [Y]
    Řazení hlášení dle normy POSIX; z našeho pohledu ne příliš důležité volba. Nicméně dle výchozí konfigurace necháme v jádře.
    BSD Process Accounting [Y]
    BSD Process Accounting version 3 file format [Y]
    Předávání informací o procesu. Doporučeno dát do jádra.
    Sysctl support [Y]
    Podpora pro dynamickou změnu parametrů jádra. Změna parametrů jádra probíhá prostřednictvím adresáře /proc/sys (k tomu je nutné povolit i souborový systém /proc). Velmi doporučená volba.
    Auditing support [Y]
    Enable system-call auditing support [Y]
    Povolení podpory auditu, kterou používají speciální subsystémy (např. SELinux, Grsecurity, ...). Ponechání této podpory v jádře nás nijak významně při jejím nevyužití neovlivní.
    Kernel Userspace Events [Y]
    Mechanizmus pro komunikaci přes netlink socket. Ve výchozím nastavení povoleno pro kompilaci do jádra.
    Kernel .config support [Y]
    Enable access to .config through /proc/config.gz [Y]
    Z této sekce pro nás velmi důležitá volba. Při povolení této položky dojde k uložení konfigurace jádra (.config) do samotného obrazu jádra (bzImage). Konfigurační soubor je pak k nalezení v /proc/config.gz.
    Configure standard kernel features (for small systems) ---> [N]
    Zde je možné při akceptování vybrat různé volby týkající se především optimalizace pro embedded zařízení. Pro normální použití tuto volbu zamítáme.

    Loadable module support --->

    Sekce týkající se podpory pro práci s moduly.

    Enable loadable module support [Y]
    Podpora pro nahrávání modulů do jádra (po kompilaci uloženy v adresáři /lib/modules/verze-jádra/kernel/) Velmi důležitá funkce - povolíme.
    Module unloading [Y]
    Další velmi praktická funkce. Umožňuje odebrání modulů z jádra, není-li daný modul používaný.
    Forced module unloading [Y]
    Funkce užívaná spíše u vývojářů kernelu. Nicméně se může někdy hodit, proto doporučuji akceptovat. Jedná se o odebrání modulu z jádra silou za použití programu rmmod (rmmod -f). Tím dojde k odebrání modulu + ostatních modulů které na odebíraném modulu závisí.
    Module versioning support (EXPERIMENTAL) [N]
    Tímto povolíme podávání informací o modulech. Tato volba má význam pro vývojáře kernelu, proto je pro nás nepotřebná. Volbu ignorujeme.

    Source checksum for all modules [N]
    Podobný případ jako v předchozím. Pro normální použití nepodstatná funkce, proto ji nebudeme akceptovat.
    Automatic kernel module loading [Y]
    Velmi praktická funkce. Umožňuje automaticky nahrávat moduly do jádra v případě potřeby. V případě absence této funkce by se musely moduly nahrávat manuálně programem modprobe. Určitě volbu akceptovat.

    Závěr

    Probrali jsem tímto dílem první tři subsystémy jádra. Příště se podíváme na subsystémy týkající se procesoru a správy napájení.

           

    Hodnocení: 90 %

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

    14.10.2005 06:55 camlost | skóre: 7
    Rozbalit Rozbalit vše překlep
    které na odebíraném modulu zívisí
    A slow biker.
    14.10.2005 07:59 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: překlep
    Opraveno. Díky.
    14.10.2005 08:04 Tomáš Šimek
    Rozbalit Rozbalit vše Doufám, že se článek teprve rozjíždí

    V tuto chvíly se mi zdá článek pouhým a navíc zjednodušeným překladem kontextové nápovědy k jádru.

    Je ale pravda, že článek by měl popisovat praktické aspekty jednotlivých voleb, a u těchto položek prostě není co popisovat (na zadané rozlišovací úrovni)

    V dalších dílech ale očekávám rozvedení voleb (volba architektury, proč mohu dát ovladače na IDE chipsety jako modul, když IDE potřebuju při startu, initrd či neinitrd, jaký je rozdíl mezi watchdog a hangceck timer, kolik HZ zvolit, jakou preempci, jestli je výhodnější high mem off ..............), zkrátka spoustu věcí které mne vždy zajímali, ale nikdy nestály za tu námahu (zjištění/odzkoušení).

    Pokud bude autor pokračovat 2řádkovým překladem, a 5ti slovným doporučením, pak bych ho musel šikanovat (komentářem samozřejmě)

    14.10.2005 13:21 Jan Hluštík
    Rozbalit Rozbalit vše Re: Doufám, že se článek teprve rozjíždí
    Připojuju se s žádostí o víc podrobností. Pokud by ale nebyly, i tak mi článek pomůže. Díky.
    16.10.2005 18:03 Antonín Kolísek | skóre: 33 | blog: PDA | Vyškov
    Rozbalit Rozbalit vše Re: Doufám, že se článek teprve rozjíždí
    V dalších dílech bude vše potřebné pro ty co začínají s kompilací jádra. Pokročilý ať hledá jinde. Všem se zavděčit nemohu. Takže pro koho je tento seriál přínosným, ať jej čte a nalezne v něm co potřebuje. Kdo v něm něco nenalezne, ať hledá jinde a neoptěžuje se s komentáři že to zde není. Opakuji všem se člověk nezavděčí. Jinak rozvedení voleb o které žádáte bude v dalších dílech samozřejmě popsáno.
    14.10.2005 08:45 %
    Rozbalit Rozbalit vše Konfigurace
    No a jak je to teda s tim ifconfigem ROFL
    Luk avatar 14.10.2005 08:46 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Module versioning support
    Module versioning support není podávání informací o modulech, nýbrž kontrola verzí modulů. Jádro pak odmítá zavést moduly s jinou verzí než má samo.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    14.10.2005 17:55 J
    Rozbalit Rozbalit vše Re: Module versioning support
    Jeste jinak, tato volba ovlivnuje, zda kernel umozni (Y) ci neumozni (N) nahrat modul kompilovany proti jine verzi jadra. To vse ovsem bez naroku na funkcnost takoveho modulu, jen se tomu zkratka nebude branit hlaskou o spatne verzi. Vyhody jsou zrejme, pokud mate modul jako binarku proti nejake verzi, tak jej muzete pouzit i ve verzi novejsi, pokud se ovsem nezmenil kod na kterem zavisi onen modul.
    14.10.2005 11:07 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše moduly?
    [flame] Používám monolytické jádro. Co vy? [/flame]
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    14.10.2005 11:45 watslaw | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: moduly?
    Používám většinou moduly, v jádře mám jen IDE, ext3, reiserfs, framebuffer, logo apod., co je potřeba při startu, aby nemusel bejt initrd.

    Moduly mají tu výhodu, že některé experimentálnější (fuse, reiser4) mám zavedeny jen když je používám a neohrožují mi stabilitu jádra, a pak kvůli možnosti odstranění.

    Např. moje zvuková karta se občas rozhodne místo fungování vrčet, a pomůže akorát rmmod snc_via82xx + modprobe snd_via82xx, kdyby to bylo v jádře, musel bych restartovat (Mmch příčinu neznám, kdyby náhodou někdo věděl co s tím).

    Další výhoda modulů je to, že se občas rozhodnu přidat podporu nové věci nebo toho, na co jsem při kompilaci zapomněl. Přikompilovat modul je značně jednodušší.
    14.10.2005 12:54 vendin
    Rozbalit Rozbalit vše Re: moduly?
    jak kdy a jak na co:
    1) router nebo jiny jednoucelovy system: spise monolyticke jadro
    2) stanice: tak pul na pul, zejmena moduly hotplug zarizeni atd... 3) notebook: spice vic modulu kvuli pcmcia,... 4) system na vymennem disku: maximalne modulu, radice na scsi atd. v initrd, pak neni problem prenositelnost os
    14.10.2005 14:54 Spike | skóre: 30 | blog: Communicator | Praha
    Rozbalit Rozbalit vše Re: moduly?
    Raději monolitické, lidi.
    14.10.2005 13:04 Lukas Lipavsky | skóre: 8
    Rozbalit Rozbalit vše Re: moduly?
    Osobne mi prijde nejlepsi, mit spolehlive a casto pouzivane veci napevno v jadre, ostatni v modulech. Mam subjektivni pocit, ze ty veci v modulech musi mit vetsi rezii (subjektivni dojem, pokud me nekdo nepresvedci o opaku :)))
    14.10.2005 13:07 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: moduly?
    ja mam zase uplne vsetko v jadre :) samozrejme je to jadro site na mieru pre moj comp. moduly nemam rad a nedar ich aj pouzivam - asi koli tomu, ze vela adminujem linuxove servere a tam sa uz aj podpora modulov povazuje za insecure.

    inak jediny modul, ktory pouzivam je driver od nvidie :) (na desktope)
    14.10.2005 16:22 Libor Klepac | skóre: 45 | Mýto
    Rozbalit Rozbalit vše Re: moduly?
    vzdyt on ma taky vsechno v jadre ;)
    Urine should only be green if you're Mr. Spock.
    14.10.2005 22:51 azurIt | skóre: 34 | blog: zatial_bez_mena
    Rozbalit Rozbalit vše Re: moduly?
    to som skor myslel ako reakciu na vsetky tie prispevky pred tym :)
    14.10.2005 16:21 Libor Klepac | skóre: 45 | Mýto
    Rozbalit Rozbalit vše Re: moduly?
    mam vetsinu veci v modulech, i ovladac fs, ze ktereho bootuju, cele ide, i sata ...vlastne kvuli sata to mam, nejak mi to nenachazelo disky, kdyz byl ovladac napevno v jadre
    Urine should only be green if you're Mr. Spock.
    14.10.2005 18:01 J
    Rozbalit Rozbalit vše Re: moduly?
    Pouzivam jadra vyhradne modularni (az na detaily jako fs / a ide). Duvodem predevsim moznost do kernelu dodat co zrovna treba, pripadne patchout jen prislusny modul a restartnout jen dane zarizeni.
    14.10.2005 12:47 Vasek | skóre: 6
    Rozbalit Rozbalit vše nevyhody monolytickeho
    dalsi nevyhodu monolytickeho jadra bych uvedl velkou velikost. kdyz je moc velke 1) nevejde se na rescue disketu 2) nekdy nejde pouzit lilo (grub uz je ok)

    pak mi take vadi, ze jsou zavedene i veci, ktere zrovna nepotrebuju. mapriklad filesystemy pro vymenna zarizeni (cd-rom, FAT pro usb, ...)
    18.10.2005 16:05 Peter Rychnavský
    Rozbalit Rozbalit vše Re: Cesta do hlubin kompilace jádra - 3
    Já by som chcel oceniť seriál. Toto mi vždy chýbalo. Ďík zaňho.
    22.12.2005 23:55 Tabak | skóre: 1
    Rozbalit Rozbalit vše Re: Cesta do hlubin kompilace jádra - 3
    Muzu se zeptat, nikde sem se zatim nedozvedel (omlouvam se jestli sem to tu nekde prehlidl). Pokud to dobre chapu, tak zkompilovanne jadro je v souboru bzImage, moduly v /lib/modules/x.y.z a co je vlastne v tech souborech system.map a vmlinux? A jak souviseji s bzImage? Dik
    3.1.2006 15:53 koudelka | skóre: 2
    Rozbalit Rozbalit vše Re: Cesta do hlubin kompilace jádra - 3
    Zdravim, clanek je velice zajimavy, ale jiz dlouho nebyl doplnen o dalsi sekci. Vim, ze vsichni, kdo prispivaji a pomahaji nam zacatecnikum, tak vse delaji zadarmo. Presto se ptam: Bude pokracovani tohoto clanku? Kdy?

    Diky.
    menphis avatar 29.6.2008 19:02 menphis | skóre: 22 | blog: menphis_blog
    Rozbalit Rozbalit vše Re: Cesta do hlubin kompilace jádra - 3
    moc prosim, nemohl by nekdo dopsat ten dalsi dil, pripadne aktualizovat ohledem na dnesni verzi jadra. :)

    Založit nové vláknoNahoru

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