October 2017
Intermediate to advanced
354 pages
9h 28m
English
The kernel maintains all information on process memory segments and the corresponding translation table in a memory descriptor structure, which is of type struct mm_struct. The process descriptor structure task_struct contains a pointer *mm to the memory descriptor for the process. We shall discuss a few important elements of the memory descriptor structure:
struct mm_struct { struct vm_area_struct *mmap; /* list of VMAs */ struct rb_root mm_rb; u32 vmacache_seqnum; /* per-thread vmacache */#ifdef CONFIG_MMU unsigned long (*get_unmapped_area) (struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); #endif unsigned long mmap_base; /* base of mmap area */ unsigned long mmap_legacy_base; ...