A question about decompressing kernel on boot

落痕 losemyheaven at foxmail.com
Sun Feb 25 10:44:16 EST 2018


Hi list,



In the source code arch/x86/boot/compressed/head_64.S, it described
how compressed kernel is copied from the origin place to another pointed by rbx register.


But I'm confused about the copying code, why it needs to minus 8 from _bss when calculating
_bss original and new addresses.


This is the source code.
/*
 * Copy the compressed kernel to the end of our buffer
 * where decompression in place becomes safe.
 */
	pushq	%rsi
	leaq	(_bss-8)(%rip), %rsi
	leaq	(_bss-8)(%rbx), %rdi
	movq	$_bss /* - $startup_32 */, %rcx
	shrq	$3, %rcx
	std
	rep	movsq
	cld
	popq	%rsi


Thanks,
Larry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20180225/260e5617/attachment.html>


More information about the Kernelnewbies mailing list