Kernel has access to all resources. Kernel programs not subject to any constraints for memory access or hardware access.
faulty kernel programs can cause system crash
Kernel provides its functionality only via special functions called system calls, standard C-library provides them. Have strict separation of kernel data and data for programs.
need explicit copying between user program and kernel
(copy_to_user(), copy_from_user()
In addition, have interrupts:
kernel asks HW to perform certain action, HW sends interrupt to kernel which performs desired action interrupt must be processed quickly.
any code called from interrupts must not sleep.