end                13 kalloc.c       extern char end[]; // first address after kernel loaded from ELF file
end                64 kalloc.c         if((uint)v % PGSIZE || v < end || V2P(v) >= PHYSTOP)
end                12 main.c         extern char end[]; // first address after kernel loaded from ELF file
end                20 main.c           kinit1(end, P2V(4*1024*1024)); // phys page allocator