Skip to content
WALDEMAR KOZACZUK edited this page Nov 26, 2019 · 1 revision

OSv comes with build artifact build/x64/vmlinuz.bin that essentially wraps the uncompressed version of OSv loader.elf by prepending it with 1K-long vmlinuz header and 1K-long bootstrap code that orchestrates jumping to 32-bit start32_from_vmlinuz entry point in boot.S.

Please note that OSv vmlinuz.bin requires bootloader to load it in the physical memory at the address OSV_KERNEL_BASE-0x400 which is expressed by setting the header field relocatable_kernel to 0 and the field pref_address to point to the aforementioned address. Unfortunately, some bootloaders (like QEMU) disregard the relocatable_kernel field and load the kernel at some presumed fixed address determined by the value of the version header field (see the document below). For details about vmlinuz format see this document - https://www.kernel.org/doc/Documentation/x86/boot.txt

The vmlinuz mode allows OSv to boot on Docker's hyperkit hypervisor on Mac OSX.

Clone this wiki locally