Useful links Linux boot Linux/x86 boot protocol Linux kernel parameters Protected mode 64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf Memory management in the Linux kernel Notes on the linux kernel VM subsystem by @lorenzo-stoakes Serial programming 8250 UART Programming Serial ports on OSDEV VGA Video Graphics Array (VGA) IO IO port programming GCC and GAS GCC type attributes Assembler Directives Important data structures task_struct definition Useful links Linux x86 Program Start Up Memory Layout in Program Execution (32 bits)