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

== Assembler ==
 * [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