When kernel services are invoked in the current process context, its layout throws open the right path for exploring kernels in more detail. Our effort in this chapter is centered around comprehending processes and the underlying ecosystem the kernel provides for them. We will explore the following concepts in this chapter:
- Program to process
- Process layout
- Virtual address spaces
- Kernel and user space
- Process APIs
- Process descriptors
- Kernel stack management
- Threads
- Linux thread API
- Data structures
- Namespace and cgroups