https://github.com/cs107e/cs107e.github.io http://wiki.osdev.org/Calling_Conventions http://wiki.osdev.org/Linker_Scripts http://wiki.osdev.org/Printing_To_Screen http://wiki.osdev.org/Exceptions#General_Protection_Fault https://en.wikipedia.org/wiki/X86_calling_conventions http://repo.or.cz/w/lightOS.git https://littleosbook.github.io/ http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html http://x86.renejeschke.de/html/file_module_x86_id_139.html http://retired.beyondlogic.org/serial/serial1.htm https://pdos.csail.mit.edu/6.828/2014/reference.html tutorials: https://littleosbook.github.io http://www.henkessoft.de/OS_Dev/OS_Dev1.htm http://www.brokenthorn.com/Resources/OSDevIndex.html - fitting code following the brokenthorm tutorial: https://github.com/tuhdo/os-study In C#: https://github.com/FlingOS/FlingOS In Rust: http://os.phil-opp.com/ Interrupts: http://wiki.osdev.org/Exceptions http://wiki.osdev.org/Interrupt_Descriptor_Table http://beefchunk.com/documentation/hardware/microprocessors/intel/i80386/Chap9.html http://www.cs.cmu.edu/~ralf/files.html https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/ A20: http://wiki.osdev.org/A20_Line#Recommended_Method http://aodfaq.wikidot.com/mc-a20-controls http://www.independent-software.com/writing-your-own-toy-operating-system-enabling-the-a20-line/ https://www.win.tue.nl/~aeb/linux/kbd/A20.html longjmp: http://blog.reverberate.org/2013/05/deep-wizardry-stack-unwinding.html http://prettyos.de PIC: http://www.brokenthorn.com/Resources/OSDevPic.html http://wiki.osdev.org/8259_PIC keyboard: http://wiki.osdev.org/"8042"_PS/2_Controller https://www.lowlevel.eu/wiki/Keyboard_Controller PIT: http://wiki.osdev.org/Programmable_Interval_Timer PCI: http://wiki.osdev.org/PCI https://www.lowlevel.eu/wiki/Peripheral_Component_Interconnect http://www.ics.uci.edu/~harris/ics216/pci/PCI_22.pdf /usr/share/hwdata/pci.ids assembly: NASM FASM serial: http://wiki.osdev.org/Serial_Ports http://www.sci.muni.cz/docs/pc/serport.txt Boot: https://www.cs.cmu.edu/~410-s07/p4/p4-boot.pdf http://www.osdever.net/tutorials/view/loading-sectors http://www.osdever.net/tutorials/view/lba-to-chs LILO boot loader http://www.uruk.org/orig-grub/PC_partitioning.txt http://wiki.osdev.org/ATA_in_x86_RealMode_%28BIOS%29 other Boot (not used, but nice other projects): https://github.com/vladimirfedorov/bootsector.git: stage1 with FAT, using FASM C: http://www.drdobbs.com/extending-c-for-object-oriented-programm/184402731 https://www.state-machine.com/doc/AN_OOP_in_C.pdf https://www.cs.rit.edu/~ats/books/ooc.pdf https://lwn.net/Articles/444910/ https://dmitryfrank.com/articles/oop_in_c VGA: http://www.inp.nsk.su./~bolkhov/files/fonts/univga/ https://sourceforge.net/projects/bdf2c/ http://files.osdev.org/mirrors/geezer/osd/graphics/modes.c http://www.osdever.net/FreeVGA/home.htm http://wiki.osdev.org/VGA_Fonts http://bos.asmhackers.net/docs/vga_without_bios/ GUI: https://github.com/vurtun/nuklear http://webserver2.tecgraf.puc-rio.br/iup/ linker: https://stackoverflow.com/questions/26143123/how-do-i-ensure-the-entry-function-at-a-fixed-address-of-bare-metal-arm Linux: https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/ Security: http://wiki.osdev.org/Stack_Smashing_Protector Memory management: http://www.codinglabs.net/tutorial_memory_pool.aspx http://wiki.osdev.org/Detecting_Memory_(x86) Networking: http://wiki.osdev.org/RTL8139