other projects 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 https://visopsys.org/osdev/ sortix, soso, managarm (mlibc) https://bitbucket.org/adamholisky/versionone https://collapseos.org/ https://github.com/mikaku/Fiwix 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 http://www.fysnet.net/ http://www.brokenthorn.com/Resources/ In C#: https://github.com/FlingOS/FlingOS In Rust: http://os.phil-opp.com/ OS with striclty types language: http://web.yl.is.s.u-tokyo.ac.jp/~tosh/talk/ 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 https://github.com/civboot/civboot 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/ abaos: daveho https://int10h.org/oldschool-pc-fonts/fontlist/ https://os.phil-opp.com/vga-text-mode/ 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 http://lowlevel.eu/wiki/RTL8139 https://gist.github.com/pdumais/f5a2aff025fc7a3fe6bc http://linuxgazette.net/156/jangir.html http://blog.elastocloud.org/2015/07/qemukvm-bridged-network-with-tap.html Ethernet: https://en.wikipedia.org/wiki/Ethernet_frame https://en.wikipedia.org/wiki/EtherType http://www.hackersdelight.org/hdcodetxt/crc.c.txt ARP: https://tools.ietf.org/html/rfc826 http://wiki.osdev.org/Address_Resolution_Protocol Syscalls: AX, BX software interrupt 0x80, classic Linux/DOS/Windows syscalls UTP/Netconsole: https://www.cyberciti.biz/tips/linux-netconsole-log-management-tutorial.html intro in gas and nasm https://developer.ibm.com/articles/l-gas-nasm/ https://github.com/wbenny/ia32-doc https://www.jwz.org/doc/worse-is-better.html http://www.independent-software.com/operating-system-development-jumping-to-protected-mode.html https://wiki.osdev.org/Bare_Bones https://wiki.osdev.org/OS_Specific_Toolchain https://wiki.osdev.org/GCC_Cross-Compiler BOOTBOOT https://forum.osdev.org/viewtopic.php?f=2&t=33362 https://github.com/jtsiomb/pcboot/ minimal 32-bit protected mode booting kernel https://github.com/Supercip971/WingOS boot loader https://github.com/limine-bootloader/limine q-word OS: https://github.com/qword-os/echfs https://github.com/qword-os/lvlibc https://github.com/Supercip971/WingOS_x64.git echfs, simple filesystem https://github.com/echfs/echfs, 32-bit port needed prex real time embedded os: https://github.com/AndrewD/prex https://github.com/spacerace/romfont etherboot, gPXE, iPXE, HTTP boot: https://sites.google.com/site/richardgroux/infrastructure-1/Network/pxe-boot/what-is-gpxe-1 linux floppy code has been removed in 2003, had a 1MB limit issue anyway