When it does exceed 512 B then I would have to find a different method of loading my kernel.
normally, the bootsector is used to load a second-stage bootloader, which then loads the kernel -- this second stage can be much longer than 1 sector (see below)
Also, do I need a filesystem (eventually yes)? Is it recomended to have one? Eventually I would like to write my own but if I need one should I use FAT?
i would recomend switching to use FAT12 immediately -- as it will save headaches later (FAT12 is a very simple, easy to implement FS)
when you do, you will need to rewrite your bootsector to include the BPB (located at the begining of the sector, and contains information about how to access the disk) -- because the FAT12 filesystem is so simple, it can easily be implemented in the bootsector, and then you can load the second stage from a file located in the root directory, this is the way both MS and JAAos do it -- though it is possible to load it from a specific sector (either reserved sector at the begining, or hardcode the sector numbers -- this is how linux does it -- imho, a much less elegant solution), then the second stage, loads the kernel (from a file on the disk) into memory (possiblely moving it above 1MB) and then initializes PMode, then jumps to the kernel code
also note:
that map i gave you is good for memory below 1MB, but...
before you use any memory above 1MB, you must discover how much memory you have, and where it is -- there are several BIOS functions that will do the first, but only 1 will answer the where question (which is very important) -- int15, service e820 -- look it up in the
RBIL or another reference -- all other options only give the amount of memory, not where it is located (it is allowed to have gaps, and there can be hardware mapped lower than memory, and there can be hardware mapped at the same place as memory (like it is below 1MB))