GNU/Linux >> Znalost Linux >  >> Linux

Co je zImage, rootfs

Abyste pochopili, za co je každý soubor zodpovědný, měli byste pochopit, jak se MPU spouští.
Jak jsem pochopil z vašeho dotazu, používáte rodinu mikroprocesorů NXP (Freescale) i.MX. Obsahuje malý zavaděč ROM, který provede základní nastavení systému (rozhraní s pamětí, strom hodin atd.), vyhledá média pro zavedení (na základě vypálených bitů OTP nebo GPIO), najde bootloader (ve vašem případě u-boot) přesnou adresu, která je uvedena v datasheetu, načtěte a spusťte. U-boot inicializuje více rozhraní (např. Ethernet), najde argumenty, které by měly být předány jádru (nastavení obrazovky, konzole, nastavení sítě, pokud používáte NFS), zkopíruje jádro do DDR a předá všechny argumenty. Jádro načte všechny ovladače a vyhledá rootfs se všemi knihovnami, aplikacemi atd. Poté jádro spustí init skripty, které iniciují celý systém a spustí vaši aplikaci.

  1. u-boot je první věc, která se spustí po zavaděči ROM. Můžete jej nahradit vlastním kódem, pokud chcete, aby MPU runbare-metal kód bez OS (jako mikrokontrolér).
  2. zImage je komprimovaná verze obrazu jádra Linuxu, která se samorozbaluje.
  3. rootfs je kořenový souborový systém, který obsahuje všechny aplikace, knihovny a ve většině případů vše, včetně domovské složky.
  4. obraz sdcard je pouze vše výše uvedené, které lze zkopírovat (pomocí dd) na kartu, po zkopírování uvidíte oddíl FAT s jádrem a stromem zařízení a oddíl EXT s rootfs, u-boot je v oblasti bez oddílů před FAT (v v případě, že používáte i.MX6, je to 0x80000). Je tu jen proto, aby vám usnadnil život.

  • zImage je skutečný binární obraz zkompilovaného jádra. Je to to, co zavaděč načte a pokusí se provést (domnívám se, že na vestavěném linuxu je to nějakým způsobem zapsáno přímo do spouštěcího sektoru; pokyny najdete v příručce k vestavěnému linuxovému distribuci)
  • rootfs je tzv. obraz INITial RamDisk (také známý jako initrd), který obsahuje vše, co bude jádro potřebovat ke spuštění do stavu, kdy lze připojit skutečný kořenový souborový systém.
  • uboot je zavaděč používaný vestavěným linuxem; V podstatě říká BIOSu (Basic Input Output System), aby spustil zImage s možnostmi, které říkají zImage kde najít kořenový souborový systém, aby věděl, jak začít.

Pokud bych měl hádat, riskoval bych, že všechny tyto soubory jsou vytvořeny v procesu generování skutečného obrazu SD karty, i když již nemusíte ručně přidávat předchozí tři do výsledného obrazu.


Linux
  1. Co dělá jádro Linux Server základním?

  2. Co znamená EXPORT_SYMBOL v kódu jádra Linuxu?

  3. Co dělá povolení kernel.unprivileged_userns_clone?

  1. Co je velká a nízká paměť v Linuxu?

  2. K čemu je i915.modeset=1?

  3. Co je to poskvrněné jádro v Linuxu?

  1. Co to znamená, když se řekne linuxové jádro je preemptivní?

  2. Jaký je aktuální zdrojový kód jádra Linuxu?

  3. jaké je rozlišení jiffie v jádře Linuxu