I am new to the kernel development area.I just want to know:

1. What is the difference between user mode stack and kernel mode stack (except that one is accessed while user mode and other in kernel mode) ?

2. Does each procees/thread in Linux has a user mode stack and a kernel mode stack or Each process has its own user mode stack and there is only one kernel mode stack that is shared by all processes/threads?

I was reading that during creation of a process clone() system call creates a kernel stack. Then when the user stack is created. How it comes into the picture? I am puzzled