October 2017
Intermediate to advanced
586 pages
14h 8m
English
In this section, we will deal with the user space by means of processes. Each process is represented in the kernel as an instance of struct task_struct (see include/linux/sched.h), which characterizes and describes a process. Each process is given a table of memory mapping, stored in a variable of type struct mm_struct (see include/linux/mm_types.h). You can then guess that there is at least one mm_struct field embedded in each task_struct. The following line is the part of the struct task_struct definition that we are interested in:
struct task_struct{
[...]
struct mm_struct *mm, *active_mm;
[...]
}
The kernel global variable current points to the current process. The *mm field points to its memory mapping table. By ...
Read now
Unlock full access