绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Linux sys_exec中可执行文件映射的建立及读取(1)
2020-06-01 14:49:09

  1. 创建一个vm_area_struct;
2. 圈定一个虚用户空间,将其起始结束地址(elf段中已设置好)保存到vm_start和vm_end中;
3. 将磁盘file句柄保存在vm_file中;
4. 将对应段在磁盘file中的偏移值(elf段中已设置好)保存在vm_pgoff中;
5. 将操作该磁盘file的磁盘操作函数保存在vm_ops中;
6. 注意这里没有为对应的页目录表项创建页表,更不存在设置页表项了;

§ §
§ +------§->+--------------+
§ | § | Disk file |
§ | § | |
§ +----------------+ | +---§->|--------------|
§ | vm_area_struct | | | § | Seg Content |
§ |----------------| | | § |--------------|
+----------------+<-§-------- vm_start | | | § | |
| 圈定了一个未映 | § +----- vm_end | | | § | |
| 射到物理内存的 | § | | vm_file--------+ | § +--------------+
| vm_area_struct | § | | vm_pgoff ---------+ §
+----------------+<-§--+ | vm_ops --------+ §
§ | | | §
§ +----------------+ | §
§ | §
§ +----------------------+ §
§ | §
§ +->+-----------------------+ §
§ | file_private_map | §
§ |-----------------------| §
§ | nopage:filemap_nopage | §
§ | ..... | §
§ +-----------------------+ §
user space § kernel § disk


文章来源CU社区:Linux sys_exec中可执行文件映射的建立及读取

分享好友

分享这个小栈给你的朋友们,一起进步吧。

内核源码
创建时间:2020-05-18 13:36:55
内核源码精华帖内容汇总
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 飘絮絮絮丶
    专家
戳我,来吐槽~