struct vm area struct {

struct mm struct     *vm_mm; /*   mm struct */
unsigned long        vm_start;     /*    */
unsigned long        vm end;       /*    */
struct vm area struct *vm next;     /*   VMA */
pgprot_t             vm_page_prot; /*   */
unsigned long        vm flags;     /*  */
struct rb node       vm rb;        /*    VMA */
union { /*   address_space->i_mmap,  i mmap nonlinear */
struct (

struct list_head      list;

void                  *parent;

struct vm area struct *head;

} vm_set;

struct prio tree node prio tree node;

( shared;

struct list_head     anon vma node;/*   */
struct anon_vma      *anon_vma;    /*   VMA */
struct vm operations struct   *vm ops; /*  */
unsigned long        vm pgoff;     /*    */
struct file          *vm file;     /*   ( ) */
void                 *vm_private_data; /*   */
};

   ,       -
 ()     .  vm start 
  () ,   vrn_end   ()
  . ,  (vm_end - vrn_start)  
 ()    .     -
      .

 vm_mm    mm_struct,    
VMA. ,    VMA     mm_struct,
    . ,      -
         ,    
   vm_area_struct,   
   . ,  ,  
  ,      
vm_area_struct    .

  VMA

  vm_flags   ,    
<linux/mm. h>.       
   ,      .  -
   ,       -
,   VMA   ,   
,    .  ,  vm_flags  -
,         ,    ,
     .  . 14.1    
 vm_flags.

                                                   317