kfree() and krealloc(). kfree works like charm. krealloc can decrease the allocated memory and handles situations where no changes are needed. Next up, handling increasing memory and relocating memory areas

In hindsight, I probably should have planned the memory manager together with paging. When paging will finally be initialized, some changes might be needed again. On the other hand, this is a learning experience and I like to solve problems as they come. This way, I will find out what's actually needed in osdev to create a functional system.
strncpy(), more or less POSIX compliant
bunch of stuff revolving around loading files into memory
cluster2sector() turns relative clusters used by FAT to absolute sectors used by ATA
struct file_entry is something similar to POSIX dirent - know the name, type, size and starting cluster of a file. Initialized with fat_populate_entry().
fat_loadfile() loads a file from a FAT partition into memory. Only tested to the point where panic() currently sets in, since krealloc() doesn't yet know how to enlarge reserved memory areas.

Next up, krealloc() to size up reserved memory areas, fat_loadfile to work, a few keyboard commands to view a text file. After that proof-of-concept, ELF loader kicks in to create executable images for loading binaries.