What is the difference between the kernel and the user?
Kernel mode is considered a 'privileged' mode, meaning that code
executing in that mode can have access to any part of the system,
memory, devices, etc. There are no limitations on what it can
do.
User mode only allows certain operations. Anything requiring any
amount of privileged must request the kernel to do things on their
behalf. User mode is not a privileged mode and is therefore
restrictive in terms of accessing memory, devices, etc.