System calls
In the previous chapter, we briefly explained what a system call is. In this section, we want to take a deeper look and explain the mechanism that is used behind system calls to transfer the execution from a user process to the kernel process.
However, before we do that, we need to explain a bit more about both the kernel space and the user space, because this will be beneficial in our understanding of how the system calls work behind the scenes. We will also write a simple system call to gain some ideas about kernel development.
What we're about to do is crucial if you want to be able to write a new system call when you're going to add a new functionality into the kernel that wasn't there before. It also gives you a better understanding of the kernel space and how it differs from the user space because, in reality, they are very different.
System calls under the microscope
As we discussed in the previous chapter, a separation happens when moving...