linux.conf.au, January 2003 PRINCIPLES: Fundamental Constraints Kernel is written in GNU C & inline assembler (for arch specific code). static inline int foo(void) { return -ENOMEM; } Global address space. No memory protection: you can destroy everything. int *foo = NULL; *foo = 1; /* BOOM! */ No libc in the kernel: only a small subset. malloc(), strtoul(), strdup() No floating point or MMX usage. int x = foo * 2.5; /* BOOM! */