Práce v prostředí ramdisku

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Zavaděč

Start systému začíná zavedením binárního jádra do paměti počítače. O to se stará speciální aplikace - zavaděč. Zavaděč je aplikace, která není závislá na žádném konkrétním operačním systému, ale aby jej mohla spustit, musí být schopna načíst jeho jádro do paměti.

Pokud je toto jádro uloženo lokálně, na fyzickém disku, tak musí být schopen tento disk rozpoznat a data z něj přečíst. K tomu ovšem potřebuje příslušné ovladače.

Nejrozšířenějším linuxovým zavaděčem je v současné době GRUB2, který má oproti staršímu zavaděči LILO výhodu především v tom, že proces zavádění probíhá ve dvou krocích:

  1. Nejdřív se spouští modulární prostředí zavaděče, které má v sobě integrovaný shell
  2. a teprve pak se zavádí operační systém

Způsob jakým funguje GRUB je velmi podobný tomu, jak funguje zavádění linuxového systému. Ostatně inspirace linuxovým prostředím je u tohoto zavaděče víc než zřejmá.

Zavádění linuxového systému

Zavaděč načte z úložiště do paměti soubor s linuxovým jádrem (jeho jméno podle obvyklého úzu začíná řetězcem vmlinuz), spustí ho a předá mu příslušné konfigurační volby.

Spuštěné jádro se pokusí identifikovat a připojit zařízení, na kterém má být uložen systém a z něj spustit spouštěč dalších procesů - init. Aby to bylo možné, musí mít zakompilované všechny potřebné ovladače. U distribucí, které si kompilují jádro podle aktuální konfigurace stroje, s tím obvykle není problém. Ale u distribucí které mají fungovat univerzálně, by optimální konfigurace takového jádra mohla představovat neřešitelný problém. Proto vužívají modulární jádro, které při zavádění využívá tzv. RAM disk.

Poznámka Monolitické jádro, tj. to které je kompilované na míru, má výhodu v tom, že může být lépe optimalizované a tím pádem i o něco výkonnější.

RAM disk

Je čistě technicky vzato další kus operační paměti (odtud RAM disk), kam zavaděč vybalí z komprimovaného cpio archívu minimalistické linuxové prostředí. Jádro s ním pak pracuje jako by šlo o normální systémový disk. Tzn. že si jej připojí, a spustí z něj init. V tomto případě však nejde o binární spouštěč procesů, ale shellový skript co postupně spouští další skripty. Skript init obsahuje podmínky, které umožňují proces zavádění před zpracováním každého z nich cíleně přerušit.

Přerušení zaváděcího procesu lze docílit tím, že se přes zavaděč předá jádru před spuštěním volba break.