内核压缩与解压
从piggy.S开始
.section ".rodata..compressed","a",@progbits
.globl z_input_len
z_input_len = 9993406
.globl z_output_len
z_output_len = 37640768
.globl input_data, input_data_end
input_data:
.incbin "arch/x86/boot/compressed/vmlinux.bin.zst"
input_data_end:
.section ".rodata","a",@progbits
.globl input_len
input_len:
.long 9993406
.globl output_len
output_len:
.long 37640768解压缩内核
获得解压缩内核的起始地址
移动压缩内核
原地解压
链接与加载
vmlinux的program header
vmlinux.lds.S
加载到各自的位置
Last updated