'CPU mask' link in Initialization 7 is double-bracketed.
'Previous part' links in SyncPrim 3 & 4 have two opening brackets
and one closing.
'Previous part' link in SyncPrim 4 points to current page,
instead of previous.
Append to contributors.
- rep stosl reduces ecx by 1 per write operation, not 4. Source: http://www.fermimn.gov.it/linux/quarta/x86/rep.htm
- Clarification: The four Page Directory tables contain 2048 entries in total, not 2048 each. Source: http://wiki.osdev.org/Page_Tables#Long_mode_.2864-bit.29_page_map
- Registers can not contain %rip-relative addresses, since %rip changes every single instruction. Only the instructions themselves can contain RIP-relative addresses.
- The first argument to decompress_kernel is called rmode, not boot_param.
- The boot_params struct goes in %rdi, not %rsi. Source: https://en.wikipedia.org/wiki/X86_calling_conventions#System_V_AMD64_ABI
- find_random_addr does not ensure that the 'memory region is not less than value of kernel alignment'; it ensures the kernel is at or above the minimum load address.
Fix some offset and size errors.
Replace the ambiguous term "segment" by "segment selector".
Add an explanation for the reset vector address.
Fix a typo in the segment register align part (it's a cld and not a cli).
Add missing syntax highlighting.