- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序的执行-Linux操作系统分析.ppt
xlanchen@2007.6.25 Linux OS Analysis Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512 xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008 程序的执行 中国科学技术大学计算机系 陈香兰(0512 xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008 操作系统是如何通过可执行文件的内容建立进程的执行上下文的? 可执行文件的格式 程序以可执行文件的形式存放在磁盘上 库 可供很多程序使用的一些例程的集合 静态库 vs 共享库 命令行参数、环境变量等 Shell提示符下输入 从shell继承而来,用户可修改 提纲 可执行文件 可执行格式 Exec函数 可执行文件 可执行文件是一个普通的文件,它描述了如何初始化一个新的进程上下文 Fork + execve 命令行参数和shell环境 用户使用shell来执行某个程序时,可以指定命令行参数 例如:$ ls -l /usr/bin 列出/usr/bin下的目录信息 Shell本身不限制命令行参数的个数,但它受限于命令自身 例如,int main(int argc, char *argv[]) 又如, int main(int argc, char *argv[], char *envp[]) 命令行参数和环境串都放在用户态堆栈中 库 源文件?目标文件?可执行文件 最小的程序也会利用到C库 例如:void main(void) {} 要为main的执行建立执行上下文 在进程结束时,杀死进程(在main的最后插入exit()) 其他库 libm,包含浮点操作的基本函数 libX11,所有X11窗口系统图形接口的基本底层函数 静态链接 vs 动态链接 静态库 动态链接:共享库 Gcc的-static选项指明使用静态库 程序段和进程的线性区 在逻辑上,Unix程序的线性地址空间被划分为各种段(segment) 正文段,text 数据段,data Bss段 堆栈段 在mm_struct中都有对应的字段 start_code/end_code、start_data/end_data、start_brk/brk、start_stack、arg_start/arg_end、env_start/env_end 此外,还有共享库和文件的映射,他们映射在其他线性区 参阅/proc/1/maps了解init进程的线性区 可执行格式 Linux标准的可执行格式 ELF:Executable and Linking Format 旧版的可执行文件格式 a.out:Assembler OUT put format 其他 MS-DOS的exe文件 UNIX BSD的COFF文件 Linux对可执行文件格式的处理 在系统启动时,所有编译进内核的可执行格式都被注册 在系统运行过程中,也可以注册一个新的可执行文件格式 使用linux_binfmt对象管理 linux_binfmt Linux通过可执行文件的扩展名或者存放在文件前128字节的magic数来识别文件格式 文件扩展名 Exe Bat … Exec函数家族 用一个指定的可执行文件所描述的上下文代替进程的上下文 ?系统调用:execve sys_execve 作业 什么是线性区?列举4种最常见的线性区。 Linux如何描述进程的地址空间? * 将当前进程的上下文保存到名为core的文件中 动态的把一个共享库绑定到一个已经在运行的进程 通过读存放在可执行文件中的信息为当前进程建立一个新的进程上下文 链表,连接所有linux_binfmt对象 指定被执行文件的路径名
您可能关注的文档
最近下载
- 福建省突发化学中毒卫生应急预案.doc VIP
- (最新)执业兽医师聘用协议合同书5篇.docx
- 盘扣式落地式卸料平台专项施工方案新版.docx VIP
- 2025年中国私募股权基金行业市场运行现状及投资战略研究报告.docx
- 护理礼仪与人际沟通.pptx VIP
- 二次函数复习课公开课二次函数复习课公开课.ppt VIP
- 电力工程项目建设用地指标(风电场)(建标〔2011〕209号).pdf VIP
- DB3301_T0329.1—2020_社会救助家庭家境调查规范第1部分:工作程序_杭州市 .docx VIP
- 建筑工程师工作总结范文.pptx
- 2025年中考语文二轮总复习:说明文阅读(附答案解析).doc
文档评论(0)