首页
学习
活动
专区
圈层
工具
发布

【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb)

文章目录 一、vm_area_struct 结构体成员分析 二、vm_area_struct 结构体完整源码 一、vm_area_struct 结构体成员分析 ---- vm_area_struct 结构体中相关成员解析...our end address within vm_mm. */ struct vm_area_struct *vm_next 成员 : 是 vm_area_struct 链表中 ,...of VM areas per task, sorted by address */ struct vm_area_struct *vm_next, *vm_prev; struct rb_node...红黑树 数据结构 , 该结构中的元素就是 vm_area_struct 结构体 ; struct rb_node vm_rb; 二、vm_area_struct 结构体完整源码 ---- vm_area_struct.../* linked list of VM areas per task, sorted by address */ struct vm_area_struct *vm_next, *vm_prev;

2.1K21

手把手教你分析 Linux 启动流程

/ Android系统是基于Linux 内核的,最底层为Linux内核,源码量翻很多倍。...在这个函数中会调用将近100个函数去完成 Linux 系统的初始化,调用函数如下(不同内核版本,顺序和细节有变化): linux4.14/init/main.c,start_kernel 函数。...linux4.14/arch/arm/kernel/irq.c 5、console_init 在这个函数初始化之前,你所有写的内核打印函数 printk 都打印不出东西。...linux4.14/kernel/printk/printk.c 6、vfs_caches_init 虚拟文件系统初始化,比如 sysfs,根文件系统等,就是在这一步进行挂载,proc 是内核虚拟的,...linux4.14/init.main.c 上图,400 行创建了 kernel_init 进程,412 行创建了 kthreadd 进程,这两个都是内核进程。

1.9K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct 结构体成员分析 | vm_mm 成员 | vm_page_prot 成员 | vm_flags 成员 )

    文章目录 一、vm_area_struct 结构体成员分析 1、vm_mm 成员 2、vm_page_prot 成员 3、vm_flags 成员 二、vm_area_struct 结构体完整源码 在之前的博客...【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb)...中 , 分析了 vm_start vm_end vm_next vm_prev vm_rb 这 5 个结构体成员的含义 , 下面继续分析剩余结构体成员的含义 ; 一、vm_area_struct...VM_EXEC VM_SHARED 等 ; /* * vm_flags in vm_area_struct, see mm_types.h.../* linked list of VM areas per task, sorted by address */ struct vm_area_struct *vm_next, *vm_prev;

    4.7K10

    【Linux 内核 内存管理】内存映射相关数据结构 ⑤ ( vm_area_struct 结构体成员分析 | vm_pgoff 成员 | vm_file 成员 | vm_private_data )

    文章目录 一、vm_area_struct 结构体成员分析 1、vm_pgoff 成员 2、vm_file 成员 3、vm_private_data 成员 二、vm_area_struct 结构体完整源码...在博客 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb...) 中 , 分析了 vm_start vm_end vm_next vm_prev vm_rb 这 5 个结构体成员作用 ; 在博客 【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct...vm_flags 成员作用 ; 在博客 【Linux 内核 内存管理】内存映射相关数据结构 ③ ( vm_area_struct 结构体成员分析 | shared 成员 | anon_vma_chain...成员 | anon_vma 成员 ) 中 , 分析了 vm_area_struct 结构体中的 shared anon_vma_chain anon_vma 成员作用 ; 在博客 【Linux 内核

    3.5K20

    【Linux 内核 内存管理】mmap 系统调用源码分析 ③ ( vm_mmap_pgoff 函数执行流程 | vm_mmap_pgoff 函数源码 )

    文章目录 一、vm_mmap_pgoff 函数执行流程 二、vm_mmap_pgoff 函数源码 调用 mmap 系统调用 , 先检查 " 偏移 " 是否是 " 内存页大小 " 的 " 整数倍 " ,...如果偏移是内存页大小的整数倍 , 则调用 sys_mmap_pgoff 函数 , 继续向下执行 ; 在 sys_mmap_pgoff 系统调用函数 中 , 最后调用了 vm_mmap_pgoff 函数..., 继续向下执行 ; 一、vm_mmap_pgoff 函数执行流程 ---- 在 vm_mmap_pgoff 函数中 , 首先 , 以 " 写者 " 身份 , 向 Linux 内核申请 读写 " 信号量...函数源码 ---- vm_mmap_pgoff 函数定义在 Linux 内核源码中的 linux-4.12\mm\util.c#296 位置 ; vm_mmap_pgoff 函数源码如下 : unsigned...long vm_mmap_pgoff(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned

    2.7K10

    【Linux 内核 内存管理】内存映射相关数据结构 ④ ( vm_area_struct 结构体成员分析 | vm_ops 成员 | vm_operations_struct 结构体成员分析 )

    四、vm_operations_struct 结构体完整源码 在博客 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start |...【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct 结构体成员分析 | vm_mm 成员 | vm_page_prot 成员 | vm_flags 成员 ) 中..., 分析了 vm_area_struct 结构体中的 vm_mm vm_page_prot vm_flags 成员作用 ; 在博客 【Linux 内核 内存管理】内存映射相关数据结构 ③ ( vm_area_struct...*vm_ops; 二、vm_operations_struct 结构体成员分析 ---- vm_operations_struct 结构体 定义在 Linux 内核源码的 linux-4.12\include...函数 移动 " 虚拟内存区域 " 时调用 ; int (*mremap)(struct vm_area_struct * area); 4、fault 函数指针 在 【Linux 内核 内存管理】内存映射原理

    2.2K30

    VM网络配置

    VM安装和配置 VM安装和配置 VM设置 一、下载centso镜像 清华大学:下载 百度网盘:下载 二、安装VM 有什么要注意吗?...没有,除了存储路径外,其他都可以自己下一步直到完成,所以可以直接跳到在这儿,不必浪费宝贵时间,废话不多说了直接上图~ 打开vm主页,创建新的虚拟机 默认典型(推荐),然后下一步 选择稍后安装操作系统...进入控制面板->程序->程序和功能,双击VM...进行卸载,然后就到了安装导向~ 小技巧:可以直接点击开始,然后随便找一个软件进行卸载就跳转过来了 安装导向,直接点击下一步 注意!!!...是修复,不是卸载 可能有些小伙伴虚拟机还是后台启动的,因此需要将进程kill,才能修复成功~ 千万不要嫌麻烦,修复好后一定一定要重启电脑~ 电脑重启后VM如下操作 配置网络 1、...windows(本级) 192.168.2.1 192.168.2.1 linux(master) 192.168.2.2 192.168.2.101 (2)IP配置 使用halt关闭虚拟机 在vm

    1.4K30

    【Linux 内核 内存管理】内存映射相关数据结构 ⑥ ( 文件映射 虚拟内存区域 | vm_area_struct | vm_operations_struct | 匿名映射 虚拟内存区域 )

    文章目录 一、文件映射 虚拟内存区域 1、文件映射 虚拟内存区域 的 vm_ops 成员 2、文件映射 虚拟内存区域 的 vm_file 成员 3、文件映射 虚拟内存区域 图示 二、匿名映射 虚拟内存区域...vm_area_struct 结构体 中的 const struct vm_operations_struct *vm_ops; 成员 , 指向 虚拟内存操作集合 vm_operations_struct...deal with this struct. */ const struct vm_operations_struct *vm_ops; 参考 【Linux 内核 内存管理】内存映射相关数据结构 ④...( vm_area_struct 结构体成员分析 | vm_ops 成员 | vm_operations_struct 结构体成员分析 ) 博客 ; 2、文件映射 虚拟内存区域 的 vm_file 成员...内核 内存管理】内存映射相关数据结构 ⑤ ( vm_area_struct 结构体成员分析 | vm_pgoff 成员 | vm_file 成员 | vm_private_data ) 博客 ; 3、

    1.2K30

    使用Azure VM串行控制台拯救离线VM 原创

    不知道大家是否还记得前面介绍的串行控制台功能,借助Azure Portal中提供的串行控制台,我们可以连接到VM或虚拟机规模集实例的ttyS0或COM1串行端口,因为其提供独立于网络或操作系统状态的访问...禁用虚拟机网卡 为了模拟本地实验环境,我们将手动将Azure VM的网卡禁用掉。...然后运行如下命令禁用网卡: Netsh interface set interface “网卡名称” disable 图片 禁用完成后,可以看到目前虚拟机已经无法访问: 图片 使用串行控制台启用VM...最后使用ESC+TAB切换到CMD命令行: 图片 输入VM的用户名密码进行验证: 图片 验证通过,连接到虚拟机的CMD命令行: 图片 运行如下命令查看网卡信息,可以看到网卡处于被禁用状态

    1K20
    领券