our super awesome kernel and user space system
- The kernel is loaded at
0x00100000
. kmalloc
initially uses 'placement' allocation at the end of the kernel (this allocations are notkfree
'ed).paging_init
creates the kernel directory, identity-mapping everything currently in use (i.e. from0x00000000
to wherever the placement allocator is currently).- At this point,
kmalloc
works as intended, heap allocation, mapped at0x00800000
.
- After initializing paging, the physical memory bookkeper keeps track of the free memory after the 'placement' allocator.
- paging init
- physmem alloc's
- pre physmem init
- early allocs
- non free-able
- kernel map page
- more physmem alloc's
- switch dir
- physmem alloc's
- physmem init
- reserves more phys memory (identity mapped)
- sets physmem ready
- at this point, physmem allocs are free-able
- heap init
- todo
- syscall init
- broken