赞
踩
可执行文件属于 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 |
当一个可执行的二进制文件, 运行起来, 此时 便形成一个进程。而进程的状态有以下 5 中状态:
需要主要的是:
编写 Linux 内核模块,按照 /proc
下 maps
的文件格式,打印某个进程的地址空间。
1.Linux 可执行文件与进程虚拟地址空间有什么关系?
2.通过实验(不是看参考资料)说明 Linux 内核中 task_struct
结构,mm_struct
结构和 vm_area_struct
结构的关系?这样的数据结构设计对你有什么启发?
3.说说你对进程虚拟地址空间的真切感受。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。