These are some sources I used along the way if I ever need to revist them.
Building an OS is relaly just about copy and pasting existing code lol (until it isn't)
- http://www.osdever.net/bkerndev/Docs/gdt.htm
- https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html
- https://github.com/dreamportdev/Osdev-Notes/blob/master/02_Architecture/04_GDT.md
- https://github.com/torvalds/linux/blob/master/arch/x86/include/asm/desc.h
- https://samypesse.gitbook.io/how-to-create-an-operating-system
- https://wiki.osdev.org/Interrupts_Tutorial#Interrupt_Descriptor_Table
- https://www.reddit.com/r/osdev/comments/1ee5qj5/printing_names_of_functions_in_the_stack_trace/
- https://maskray.me/blog/2020-11-08-stack-unwinding
- https://github.com/szhou42/osdev/tree/refs/heads/master/src/kernel/interrupt
- https://github.com/yzz127/osdev/blob/master/isrs.c