System.map documents the addresses of all kernel symbols and is used by module-init tools and some debugging tools to retrieve the actual addresses of symbols in the kernel. System.map is generated by calling scripts/mksysmap (called from scripts/link-vmlinux.sh, function mksysmap) when the kernel is made.