Die Speicherbereiche (also das, was dir GRUB als Memory Map übergibt) bekommst du vom BIOS, int 15h, ax=e820h. Wie groß der Kernel ist, kriegst du wie gehabt durch Symbole am Anfang und am Ende des Kernels hin, die durch ein Linkerskript eingefügt werden.