title: How does a system call travels from user space to kernel space and back to user space?
body: <p>I have studied some articles where I get the information that a system call like open() invokes a wrapper function in glibc and then a trap is raised which switches the context from user space to kernel space and then cpu registers are used to invoke system call parameters/arguments in kernel space.</p>
  
  <p>But still I guess I am missing a step by step procedure or detailed sequence for the system call invocation.It will be great if people can provide steps considering ARM arch as a reference.Thanks in advance.</p>