Hi there, I'm left wondering if you started this [1] from scratch or used a sample OS project? I don't understand why'd you initialize the GDT in the bootloader.
I initialize a basic GDT in the bootloader because it is essential. Without it, you cannot run the OS in long mode, which will unlock the capabilities of a 64 bit system.
Don't just take my word for it. Grub does it too. Example: https://github.com/coreos/grub/blob/40e2f6fd353061fdb3ec4dd6...