Useful links ======================== Linux boot ------------------------ * [Linux/x86 boot protocol](https://www.kernel.org/doc/Documentation/x86/boot.txt) * [Linux kernel parameters](https://github.com/torvalds/linux/blob/master/Documentation/kernel-parameters.txt) Protected mode ------------------------ * [64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html) Memory management in the Linux kernel -------------------------------------- * [Notes on the linux kernel VM subsystem by @lorenzo-stoakes](https://github.com/lorenzo-stoakes/linux-vm-notes) Serial programming ------------------------ * [8250 UART Programming](http://en.wikibooks.org/wiki/Serial_Programming/8250_UART_Programming#UART_Registers) * [Serial ports on OSDEV](http://wiki.osdev.org/Serial_Ports) VGA ------------------------ * [Video Graphics Array (VGA)](http://en.wikipedia.org/wiki/Video_Graphics_Array) IO ------------------------ * [IO port programming](http://www.tldp.org/HOWTO/text/IO-Port-Programming) GCC and GAS ------------------------ * [GCC type attributes](https://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html) * [Assembler Directives](http://www.chemie.fu-berlin.de/chemnet/use/info/gas/gas_toc.html#TOC65) Important data structures -------------------------- * [task_struct definition](http://lxr.free-electrons.com/source/include/linux/sched.h#L1274) Useful links ------------------------ * [Linux x86 Program Start Up](http://dbp-consulting.com/tutorials/debugging/linuxProgramStartup.html) * [Memory Layout in Program Execution (32 bits)](http://fgiasson.com/articles/memorylayout.txt)