Was genau ist ein bzImage Kernel?

FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
jg1
Posts: 52
Joined: 2005-10-20 14:47

Was genau ist ein bzImage Kernel?

Post by jg1 » 2007-08-08 11:42

Hallo,

wenn man unter Debian einen Kernel lädt, so sind das immer Dateien die vmlinuz heissen. Was aber verbirgt sich genau hinter einer bzImage-Kernel-Datei. Wo bekommt man die her?

Danke
JG

PS: Sorry, aber ich wollte von Sarge auf Etch updaten und traf auf diese Kernel-Datei. Zum Glück ist es bereits ein Etch-Kernel gewesen auf dem Sarge-Server, so dass ein DIST-Upgrade ohne Fehler lief :)
Last edited by jg1 on 2010-09-12 01:02, edited 1 time in total.

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Was genau ist ein bzImage Kernel?

Post by Roger Wilco » 2007-08-08 11:56

Die Datei vmlinuz wird beim kompilieren des Kernelquellcodes erstellt. Das ist das fertige Kernelimage, welches nochmals komprimiert wurde (nur bei x86, x86_64).

jg1
Posts: 52
Joined: 2005-10-20 14:47

Re: Was genau ist ein bzImage Kernel?

Post by jg1 » 2007-08-08 12:10

Hallo,

danke. Aber wo ist der Unterschied zwischen dem vmlinuz und bzimage?
Oder ist das bzimage unkomprimiert und das vmlinuz komprimiert?
Das bzimage ist erheblich größer!


JG
Last edited by jg1 on 2010-09-12 01:02, edited 1 time in total.

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Was genau ist ein bzImage Kernel?

Post by oxygen » 2007-08-08 12:26

ein bzImage wird durch make bzImage erstellt. Es ist einfach mit bzip2 komprimiert. Das sind aber heutzutage alle Kernel. Auch wenn Debian die dumme Angewohnheit hat, sie vmlinuz nennen. So hießen früher Kernel Images die mit compress kompriert wurden (vmlinux unkomprimiert). Bei 2.4.x Kernel konnte man das noch mit file nachschauen:

# file vmlinuz-2.4.28-grsec
vmlinuz-2.4.28-grsec: Linux x86 kernel root=0x303-ro vga=normal, bzImage, version 2.4.28-grsec (root@h10529)

# file vmlinuz-2.6.18-4-686
vmlinuz-2.6.18-4-686: Linux kernel x86 boot executable RO-rootFS, root_dev 0x900, swap_dev 0x1, Normal VGA

# file kernel-genkernel-x86-2.6.20-hardened-r6
kernel-genkernel-x86-2.6.20-hardened-r6: Linux kernel x86 boot executable RO-rootFS, root_dev 0x305, swap_dev 0x1, Normal VGA

User avatar
daemotron
Administrator
Administrator
Posts: 2800
Joined: 2004-01-21 17:44

Re: Was genau ist ein bzImage Kernel?

Post by daemotron » 2007-08-08 12:42

Die Angewohnheit beschränkt sich aber nicht nur auf Debian... ein 'make install' bei einem Vanilla-Kernel kopiert auch nur das bzImage nach /boot/vmlinuz...

User avatar
Joe User
Project Manager
Project Manager
Posts: 11583
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Was genau ist ein bzImage Kernel?

Post by Joe User » 2007-08-08 12:58

Jeweils das gleiche Kernelimage, ausser man fragt file ;)

Code: Select all

/usr/src/linux/vmlinux
/usr/src/linux/arch/i386/boot/bzImage
/usr/src/linux/arch/i386/boot/vmlinux.bin
/usr/src/linux/arch/i386/boot/compressed/vmlinux
/usr/src/linux/arch/i386/boot/compressed/vmlinux.bin
/usr/src/linux/arch/i386/boot/compressed/vmlinux.bin.gz

spasswolf
Posts: 27
Joined: 2006-06-09 11:00

Re: Was genau ist ein bzImage Kernel?

Post by spasswolf » 2007-08-08 22:25

oxygen wrote:ein bzImage wird durch make bzImage erstellt. Es ist einfach mit bzip2 komprimiert. Das sind aber heutzutage alle Kernel. Auch wenn Debian die dumme Angewohnheit hat, sie vmlinuz nennen. So hießen früher Kernel Images die mit compress kompriert wurden (vmlinux unkomprimiert). Bei 2.4.x Kernel konnte man das noch mit file nachschauen:

Das mit dem bzip2 stimmt so nicht:
Die Meldung besagt, dass das erzeugte Kernel-Image zu groß ist. Bei der traditionellen Methode der Kernelerzeugung darf der resultierende Kernel maximal 512KB groß sein, ist er größer, kann er von der Initialisierungsroutine nicht mehr korrekt entpackt werden. Um dieses Problem zu lösen, gibt es zwei Alternativen: entweder man erzeugt mehr Treiber als Module und verkleinert damit das erzeugte Kernel-Image oder man verwendet statt make zImage (bzw. make zlilo oder make zdisk) make bzImage (respektive bzlilo oder bzdisk). Dabei wird ein anderes Speicherlayout verwendet, welches auch größere Kernel-Images zulässt. Die Bezeichnung bzImage steht dabei für big zImage, hat also nichts mit bzip2 zu tun. Heutzutage ist es weitgehend unproblematisch, generell make bzImage statt make zImage zu verwenden, lediglich ältere LILO- und Loadlin-Versionen können damit nicht umgehen.

Siehe 4.8: http://www.dcoul.de/faq/html/4.html

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Was genau ist ein bzImage Kernel?

Post by oxygen » 2007-08-09 12:02

Ok, das wusste ich nicht. Scheint ein weit verbreites Missverständnis zu sein.