$linuxjunkies
>

vmlinux

vmlinux is the uncompressed Linux kernel executable image that contains the compiled kernel code and is used as the source for creating bootable kernel images.

vmlinux is the raw, uncompressed ELF binary output directly from linking the kernel source code. It contains the complete kernel with all built-in drivers and features, but is typically too large to use as a bootable image on most systems.

During the kernel build process, vmlinux is created first, then compressed and wrapped with a bootloader stub to produce bzImage (or zImage on older systems), which is what actually boots on your machine. For example, after compiling a kernel with make, you'll find vmlinux in the kernel source root, while the bootable bzImage lives in arch/x86/boot/.

vmlinux is valuable for kernel debugging and symbol analysis—tools like gdb and kernel profilers use it to map memory addresses to function names, even though the running kernel is the compressed version.

Related terms