vma的结构:
struct vm_area_struct {
struct mm_struct * vm_mm; /*虚拟区域的参数*/
unsigned long vm_start; /*虚拟区域的开始地址*/
unsigned long vm_end; /*虚拟区域的结束地址*/
pgprot_t vm_page_prot; /*虚拟区域的保护掩码*/
unsigned short vm_flags /*描述虚拟区域如何使用*/
short vm_avl_height; /*avl 平衡树 树高*/
struct vm_area_struct * vm_avl_left;
struct vm_area_struct * vm_avl_right;
struct vm_area_struct * next;
struct vm_operations_struct * vm_ops; /*在这个虚拟区域上的操作*/
unsigned long vm_offset; /*虚拟区域的偏移量*/
struct inode * vm_inode /*指向文件的节点*/
struct vm_area_struct * vm_next_share; /*共享内存*/
struct vm_area_struct * vm_prev_share;
unsigned long vm_pte;
}