Memory manager fixes:

kmalloc() now actually returns a valid address instead of the address used inside the memory manager. Effectively, kmalloc works

the memory manager now utilizes a linked list to keep track of used memory areas. Kmalloc() uses a next-fit paradigm to assign memory. This "should" work flawlessly as long as memory is only reserved and never deallocated. With deallocations, care must be taken not to destroy the list by defragmenting.

There's some GCC warnings "warning: assignment makes pointer from integer without a cast [enabled by default]". These are caused by the code giving pointers addresses as integers, which is fine in this case but not generally done in normal programming. Perhaps I should find a way to program the memory manager in a way that doesn't cause warnings, if it's possible.

For the memory manager, the next steps would be kfree and a defragmentor, the stubs are there already. However, I'll probably move on to loading binaries and worry about freeing memory the first time the OS runs out of memory, which probably won't happen for a while.

As a final note, going through the comments and checking their validity would be a good idea.