GNU/Linux >> Znalost Linux >  >> Linux

Jak v praxi demonstruji typ komprese jádra?

Váš citát z Wikipedie,

Ačkoli existuje populární mylná představa, že bz prefix znamená, že je použita komprese bzip2 [...], není tomu tak.

říká opak vaší teorie:bz v bzImage nemá žádný vztah k bzip2 a bzImage nemusí být komprimován pomocí bzip2 . Ve skutečnosti je výchozí režim komprese jádra stále gzip a není důvod používat bzip2 v dnešní době — je pomalejší než LZMA a xz ale také se nekomprimuje.

Chcete-li přesvědčivě určit, jaká komprese byla použita pro daný obraz jádra, aniž byste jej museli spouštět nebo zjišťovat jeho konfiguraci, můžete použít přístup používaný jádrem extract-vmlinux skript:

  • hledejte podpis kompresoru na obrázku:

    • gunzip :\037\213\010
    • xz :\3757zXZ\000
    • bzip2 :BZh
    • lzma :\135\0\0\0
    • lzo :\211\114\132
    • lz4 :\002!L\030
    • zstd :(\265/\375
  • pokuste se extrahovat data z obrázku, počínaje odsazením jakéhokoli nalezeného podpisu;

  • zkontrolujte, zda je výsledkem (pokud existuje) obrázek ELF.

Zde jsem upravil skript tak, aby hlásil pouze typ komprese. Neuvádím jej zde, protože je licencován pouze pod licencí GPL 2.


Můžete se podívat, jaké kompresní metody vaše jádro podporuje. Může být vybrán pouze jeden, takže to prokáže, který to je.

Zde používám gzip:

$ zgrep CONFIG_KERNEL_ /proc/config.gz
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set

Linux
  1. Linux – Jak najít implementace systémových volání jádra Linuxu?

  2. Jak zjistit typ souboru Img a připojit jej?

  3. Kolik RAM používá jádro?

  1. Linux – Jak zjistit, který modul poškozuje jádro?

  2. Linux – Jak zobrazit typ souborového systému přes terminál?

  3. Jak vypsat strom zařízení jádra

  1. Jak najít aplikaci pro typ mime v systému Linux?

  2. Jak získat typ interní čtečky karet?

  3. Jak vyčistit mezipaměti používané linuxovým jádrem