Skip to content

Instantly share code, notes, and snippets.

@skull-squadron
Created April 18, 2023 21:40
Show Gist options
  • Save skull-squadron/5a1b94e8fde45e37c55c5a13d97c9b3f to your computer and use it in GitHub Desktop.
Save skull-squadron/5a1b94e8fde45e37c55c5a13d97c9b3f to your computer and use it in GitHub Desktop.
Way more than awesome OS development references

I would learn C and x86/arm assembly first enough to bootstrap.

It's usually good to learn how to write ld linker scripts and how to make something bootable from grub.

Then, I would look Rust because it's easier to create correct no_std kernels.

https://os.phil-opp.com/

arm architecture and instruction (ISA) reference

https://github.com/isometimes/rpi4-osdev

https://developer.arm.com/documentation/ddi0487/ia/?lang=en

x86 architecture and instruction (ISA) reference

https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html

https://sandpile.org/

http://ref.x86asm.net/

PC programming

Ralf Brown's Interrupt List

https://www.ctyme.com/rbrown.htm

PC VGA programming

http://www.osdever.net/FreeVGA/vga/vga.htm

https://archive.org/details/programmersguidetotheegavgaandsupervgacardsbyrichardf.ferraro19943rdedition

gas - gnu assembler (multiplatform, assembly --assembler-> binary instructions )

https://sourceware.org/binutils/docs/as/

yasm - x86 assembler

https://yasm.tortall.net/

nasm - x86 assembler

https://nasm.us/

gdb - gnu debugger

https://sourceware.org/gdb/

gdb server protocol

https://sourceware.org/gdb/onlinedocs/gdb/Remote-Protocol.html

lldb - llvm debugger

https://lldb.llvm.org/

C99 reference

https://en.cppreference.com/w/c/99

Secure C programming practices

https://www.misra.org.uk/misra-c/

https://github.com/danmar/cppcheck

https://splint.org/

C with inline assembly

https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html

https://en.cppreference.com/w/c/language/asm

https://firexfly.com/clang-inline-assembly/

Emulator

https://www.qemu.org

How to make old versions of grub boot 64-bit code

https://forum.osdev.org/viewtopic.php?f=1&t=21944

The FreeBSD also lists reference PC hardware programming books for OS development and OS bootstrapping

https://docs.freebsd.org/en/books/arch-handbook/boot/

https://docs.freebsd.org/en/books/handbook/bibliography/#bibliography-hardware

https://refined-github-html-preview.kidonng.workers.dev/xpcom-bsd/FreeBSD-handbook/raw/master/bibliography-hardware.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment