当前位置:   article > 正文

course2610_lab16 ELF 文件与进程虚拟地址空间_elf文件与进程虚拟内存的关系

elf文件与进程虚拟内存的关系

知识点

  • Linux 可执行文件
  • 进程虚拟地址空间

1 可执行文件

可执行文件属于 ELF (excutable linkable format ) 文件标准中的一种,

常见的有如下四种文件:

ELF 文件类型属性实例
可重定位文件relocatable file该类文件包含了代码和数据,可以被用来链接成可执行文件或共享目标文件, 静态链接库属于这一类linux 中的 .o (windows :.obj)
可执行文件 executable file可以直接执行的程序, 一般没有扩展名linux: bin/bash 中的文件 , win: .exe 文件
共享目标文件share object file包含代码和数据,使用场景1: 链接器使用该文件和 可重定位文件 链接,产生新的目标文件。场景2: 动态链接器 将几种共享目标文件与可执行文件结合, 作为进程映像的一部分来运行linux: .so ; windows: dll
核心转储文件 Core dump file当进程意外终止时, 系统可以将该进程的地址空间的内容 以及终止时的一些其他信息转存储到核心存储文件,使用场景: 通常结合gdb 调试该进程的错误原因linux : core dump

1.1 可执行文件中的内容

在这里插入图片描述

1.2 进程的状态

当一个可执行的二进制文件, 运行起来, 此时 便形成一个进程。而进程的状态有以下 5 中状态:

在这里插入图片描述

需要主要的是:

  1. 当进程的 从阻塞状态完成后(比如从磁盘拷贝数据到内存), 需要从阻塞态 返回到就绪态,从就绪然后转到执行态, 而不能直接跳到 执行态。

2 进程虚拟地址空间

在这里插入图片描述

2. 自己动手编写 Linux 内核模块

编写 Linux 内核模块,按照 /proc maps 的文件格式,打印某个进程的地址空间。

3. 实验总结

1.Linux 可执行文件与进程虚拟地址空间有什么关系?

2.通过实验(不是看参考资料)说明 Linux 内核中 task_struct 结构,mm_struct 结构和 vm_area_struct 结构的关系?这样的数据结构设计对你有什么启发?

3.说说你对进程虚拟地址空间的真切感受。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/849299
推荐阅读
相关标签
  

闽ICP备14008679号