As a kernel or device driver developer one must know what Linux kernel can not 1) No access to C library Generally, C library is large. Accessing a C lib function from kernel space is very time consuming. It affects the kernel speed and size. So many libc functions are implemented in the kernel. Just like printf in libc is implemented as printk in kernel. 2) The kernel lacks memory protection. Application in user space lacks memory protection. so when an application access illegal memory location, it results in segment violation. But when in kernel space segment violation occures, it results in oops. It is a major kernel error. 3) Difficult to use floating point. When floating point arithmetic is done in user space, kernel manages the transition from integer to floating point mode. But enabling floating point in kernel, the kernel requires manually saving and restoring the floating point register. It is extra overhead for kernel. 4) Limited and small stack Linux kernel has very small ...
This is my dashboard for Linux notes, programs, Embedded Linux from porting to board bring up..and All about my learning on Linux.