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]] * [[http://open-std.org/JTC1/SC22/WG14/www/docs/n1570.pdf|Open-Standard Standard]] Latest draft standard for C * [[http://clc-wiki.net/wiki/The_C_Standard|About the C standards]] * [[http://www.acm.uiuc.edu/webmonkeys/book/c_guide/|C Library reference guide]] * [[http://pubs.opengroup.org/onlinepubs/009695399/mindex.html|IEEE/Open Group POSIX specification; Linux systems]] == 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 == Python == * [[http://docs.python.org/2/tutorial/|Basic Python Tutorial]] == 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