I'm asking about functions like printf that a lot of processes might use and also need the help of kernel for stuff like system calls.
What is the step-by-step description in detail for what happens? Because I'm a little confused in this area, I have these questions:
Are the instructions for the printf function inside of the kernel part of our user process? And when it tries to execute printf, we do a JMP to that kernel location within the same user process, but we go into kernel mode? Or is there a context switch and a kernel process executes this?
Do all of the processes that execute functions like printf map to the same physical memory location when they call printf in their virtual memory?
Overall, what are the situations that non-kernel processes use the kernel part of the virtual memory?