Vmlinux - Vmlinux
tento článek potřebuje další citace pro ověření.Duben 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Na Linux systémy, vmlinux
je staticky propojeno spustitelný soubor, který obsahuje soubor Linuxové jádro v jednom z soubor objektu formáty podporované Linuxem, který zahrnuje Spustitelný a propojitelný formát (ELF), Společný formát souboru objektu (COFF) a a.out. The vmlinux
soubor může být vyžadován pro jádro ladění, tabulka symbolů generování nebo jiné operace, ale před použitím jako jádro operačního systému přidáním a multiboot záhlaví, botník a nastavení rutin.
Etymologie
Tradičně, UNIX platformy nazývané obraz jádra / unix
. S rozvojem virtuální paměť, jádra podporující tuto funkci dostali vm-
předponu k jejich odlišení. Název vmlinux
je mutace vmunix, zatímco v vmlinuz
dopis z
na konci označuje, že je komprimován (například gzipovaný ).[1]
Umístění
Tradičně bylo jádro umístěno v kořenový adresář hierarchie souborového systému; protože bootloader musí používat BIOS ovladače pro přístup k pevný disk, u některých omezení i386 systémy znamenaly pouze prvních 1024 válců z pevný disk byly adresovatelné.
Aby to překonali, distributoři Linuxu vyzvali uživatele, aby vytvořili rozdělit na začátku svých disků speciálně pro ukládání zavaděč a soubory související s jádrem. GRUB, LILO a SYSLINUX jsou běžné zavaděče.
Podle konvence je tento oddíl jízdní na hierarchii souborového systému jako / boot
. Toto bylo později standardizováno Standard hierarchie souborového systému (FHS), který nyní vyžaduje, aby byl obraz jádra Linuxu umístěn v obou /
nebo / boot
, ačkoli toto neexistuje žádné technické omezení.[2]
Komprese
Při vytváření zaváděcího obrazu jádra je tradičně také jádro stlačený použitím gzip nebo od Linuxu 2.6.30,[3] použitím LZMA nebo bzip2, což vyžaduje velmi malou dekomprese útržek, který má být zahrnut do výsledného obrázku. Útržek dekomprimuje kód jádra, na některých systémech vytiskne na konzolu tečky, aby označil postup, a poté pokračuje v procesu zavádění. Podpora pro LZO,[4] xz[5] a LZ4[6] komprese byla přidána později.
Dekompresní rutina je zanedbatelným faktorem v době spuštění a před vývojem bzImage, omezení velikosti některých architektur, zejména i386, byla extrémně omezující, což způsobilo nutnost komprese.
Na SPARC architektura, je soubor vmlinux komprimován pomocí jednoduchého gzip, protože SILO zavaděč transparentně dekomprimuje obrázky ve formátu gzip.
Název zaváděcího obrazu není důležitý, ale používá se mnoho populárních distribucí vmlinuz.
bzImage
Jak linuxové jádro dozrávalo, velikost jader generovaných uživateli rostla nad limity stanovené některými architekturami, kde je omezený prostor k uložení komprimovaného kódu jádra. BzImage (velký obrázek) byl vyvinut formát, aby překonal toto omezení rozdělením jádra na nesouvislé Paměť regionech.[Citace je zapotřebí ]
BzImage byl komprimován pomocí gzip do Linuxu 2.6.30.[3] který představil více algoritmů Ačkoliv B z
předpona to může naznačovat bzip2 používá se komprese (balíček bzip2 je často distribuován pomocí nástrojů s předponou B z
, jako bzless
, bzcat
atd.), není tomu tak.[Citace je zapotřebí ]
Soubor bzImage je v určitém formátu. Obsahuje zřetězené bootect.o
+ setup.o
+ misc.o
+ prasátko
.[7] prasátko
obsahuje gzipovaný soubor vmlinux ve své datové sekci. Scénář extract-vmlinux
nalezeno pod skripty /
ve zdrojích jádra dekomprimuje obraz jádra. Některé distribuce (např. červená čepice a klony) mohou přijít s a kernel-debuginfo
RPM který obsahuje vmlinux
soubor pro odpovídající RPM jádra a obvykle se instaluje pod / usr / lib / debug / lib / modules / `uname -r` / vmlinux
nebo / usr / lib / debug / lib64 / modules / `uname -r` / vmlinux
.
Viz také
Poznámky a odkazy
- ^ „definice vmlinuz“. www.linfo.org. Bellevue Linux. 29. března 2005. Citováno 2015-06-21.
- ^ "Oddíl 3.5.2 - / boot: Statické soubory zavaděče". FHS 2.3. 2004-01-29. Citováno 2014-03-11.
Jádro operačního systému musí být umístěno v / / / boot.
- ^ A b Linux 2.6.30, vydaný 9. června 2009, přidal podporu pro kompresi obrazu jádra pomocí algoritmů LZMA a bzip2 [1]
- ^ Linux 2.6.33, vydaný 24. února 2010, přidal podporu pro kompresi obrazu jádra pomocí LZO [2]
- ^ Linux 2.6.38, vydaný 14. března 2011, přidal podporu pro kompresi obrazu jádra pomocí xz [3]
- ^ Linux 3.11, vydaný 2. září 2013, přidal podporu pro kompresi obrazu jádra pomocí LZ4 [4]
- ^ Yann Droneaud (1999-09-28). „Re: bzImage decompression“. LKML (Poštovní seznam).
ZImage obsahuje bootsect.o + setup.o + misc.o + piggy.o
Další čtení
- Alavoor Vasudevan (2003-08-15). "10. Informace o souborech jádra". Linuxové jádro HOWTO.
- Daniel Pierre Bovet (01.01.2013). "Speciální sekce v binárních souborech Linuxu". LWN.net.
všechny speciální sekce, které se objevují v linuxovém jádře, jsou nakonec zabaleny v jednom ze segmentů definovaných v hlavičce vmlinux ELF. Každá speciální sekce plní určitý účel.