I think that the kernel, or at least part of it, should reside from 0xF000 to 0xFFFF in virtual memory. This way it can always have the interrupt handler mapped
we can leave the janky double vector thing for early boot I guess but once paging is initiated we can remap that page into RAM and then have the hardware vector just go to our code..