As you will know, the printf(3) API translates to the write(2) system call, which of course writes the "Hello, world" string to stdout (by default, the terminal window or the console device).
We also understand that as write(2) is a system call, this implies that the current process running this code – the process context – must now switch to kernel mode and run the kernel code of write(2) (monolithic kernel architecture)! Indeed it does. But hang on a second: the kernel code of write(2) is in kernel VAS (refer to Chapter 6, Kernel Internals Essentials – Processes and Threads, Figure 6.1). The point here is if the kernel VAS is outside the box, then how in the world are we going to call it?
Well, it could be done by placing the kernel in a separate 4 GB VAS, but this approach results in very slow context switching, so it...