* The kernel does not have access to the C library.
* The kernel is coded in GNU C.
* The kernel lacks memory protection like user-space.
* The kernel cannot easily use floating point.
* The kernel has a small fixed-size stack.
* Because the kernel has asynchronous interrupts, is preemptive, and supports SMP, synchronization and concurrency are major concerns within the kernel.
* Portability is important.