Some links with information about programming languages that are useful when programming the kernel. When adding links, please group them by category or from most basic to most advanced. == C == * [http://en.wikipedia.org/wiki/C_programming_language Wikipedia's] entry on the C programming language * [http://www.cprogramming.com/ CProgramming.com] Tutorials on C and C++ * [http://cprog.tomsweb.net/cintro.html Introduction to C] A long web page on C * [http://c.learncodethehardway.org Zed's Learn C the Hard Way] Alpha release * [http://users.ece.utexas.edu/~adnan/c-refcard.pdf C quick reference card (pdf)] * [http://claymore.engineer.gvsu.edu/~steriana/226/C.CheatSheet.pdf C Cheat Sheet (pdf)] - actually a lot longer than one sheet, it's like a more detailed version of a quick reference card * [http://www.iso-9899.info/wiki/Books#Learning_C ISO-9899 Group's book recommendations] == Assembler == * [http://gnu.mirrors.pair.com/savannah/savannah//pgubook/ProgrammingGroundUp-1-0-booksize.pdf Programming from the Ground up] Downloadable PDF * [http://www.jegerlehner.ch/intel/ Intel Assembler 80x86 CodeTable] an overview of the x86 assembler instructions, on one sheet of paper * if the above page is down, try this [http://web.archive.org/web/20080126232753/http://www.jegerlehner.ch/intel/ cache] * [http://www.ctyme.com/rbrown.htm Ralf Brown's Interrupt List] exhaustive info about just about every interrupt for the x86/DOS environment, especially useful for the detailed info about BIOS calls [http://www.ctyme.com/intr/cat-003.htm here] * [http://drpaulcarter.com/pcasm/ PC Assembly Tutorial] * [http://www.sandpile.org/ Sandpile.org] hardware and software information about x86 and x86-64 CPUs == Perl == * [http://johnbokma.com/perl/perl-quick-reference-card.pdf another quick reference card] * [http://www.rexswain.com/perl5.html Rex Swain's HTMLified Perl 5 Reference Guide] - much more detailed than the cards == Other links == * [http://www.gnu.org/software/make/manual/html_node/index.html GNU Make manual] * [http://www.troubleshooters.com/linux/grub/grub.htm GRUB From the Ground Up] - a tutorial/introduction * [http://www.gnu.org/software/grub/manual/html_node/index.html GRUB manual] * [http://drpaulcarter.com/cs/debug.php How to Debug Programs] - an introduction * [http://www.mindprod.com/jgloss/unmain.html How To Write Unmaintainable Code] is a collection of excellent rules for writing code that nobody else can understand. It is an excellent article on how NOT to write programs