中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010

Slides:



Advertisements
Similar presentations
Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010.
Advertisements

高校教师、高级项目经理 任铄 QQ : 第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能 1.5 OS 结构设计.
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
第一章 十六世紀中葉以前的臺灣與原住民 第一節 考古發掘與史前文化.
党的十八届四中全会 依法治国精神解读. 党的十八届四中全会 依法治国精神解读 一、十八届四中全会概况 中国共产党第十八届中央委员会第四次全体会议,于2014年10月20日至23日在北京举行。 全会审议通过了《中共中央关于全面推进依法治国若干重大问题的决定》。
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
证券市场法律制度与监督管理 作者:张学亮.
量化vs質性研究分析 量化vs質性研究分析 報告人:王秀民.
第1单元 操作系统概论 第一节 绪论 操作系统定义.
我怀念的乡村记忆 陈秀华 社会工作0841.
唐宋傳奇、筆記小品和史書、論著中的寓言 中碩二 吳佳樺.
兒童期 7 青春期 兩性圓舞曲 乘客:七年級同學 司機:張立杰老師.
沟通技巧 主讲:涂育俊.
VS 兒童及少年身心發展 幼保三甲 幼兒期 青少年期 4A1I0014 陳佳瑩 4A1I0023 尤秀惠
星星知我心 談古話今….. ……..觀星望斗 主講人: 陽光青春美少男.
反垃圾掩埋場相關報告 組長:文煊 組員:鄭侃文 李浩暐 胡育睿 李瑞耘 朱祐賢 林承宇.
"性"不"性"由你 性別平等之探討 北屯國小 張文陵.
操作系统原理 Principles of Operating System
組員: 洪暐翔、 賴峻毅 侯家豪、 賴琦穎 指導老師: 王惠鈴 老師
第三章 数据类型和数据操作 对海量数据进行有效的处理、存储和管理 3.1 数据类型 数据源 数据量 数据结构
第7章 行政监督.
基于操作系统的编程复习 张玉宏
Oracle数据库 Oracle 子程序.
在PHP和MYSQL中实现完美的中文显示
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
台中市不動產經紀人職業工會 不動產經紀營業員 複訓班
Kvm异步缺页中断 浙江大学计算机体系结构实验室 徐浩.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
中国科学技术大学计算机系 陈香兰(0512- ) Spring 2011
第七章. 文件系统 (lab5).
中国科学技术大学计算机系 陈香兰(0512- ) Autumn 2010
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
SOA – Experiment 3: Web Services Composition Challenge
实践演练 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
Process management(程序管理)
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
第四章 附件 (应用程序软件包).
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
第 23 讲 操作系统接口与UNIX系统内核结构 李元金 计算机与信息工程学院 1.
第七章 操作符重载 胡昊 南京大学计算机系软件所.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
作業系統 第三章 作業系統結構.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
第1章 c++概述 1.1 C++语言的简史及特点 1.2 简单的C++程序 1.3 C++语言的基本组成
主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三421) Autumn 2007
第4章 Excel电子表格制作软件 4.4 函数(一).
iSIGHT 基本培训 使用 Excel的栅栏问题
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第9章 多媒体技术 掌握 Windows 画图工具的基本操作; 掌握 Windows 音频工具进行音频播放;
Python 环境搭建 基于Anaconda和VSCode.
本节内容 Windows线程切换_时钟中断切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
实验二:添加Linux系统调用及熟悉常见系统调用
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab4.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
本节内容 动态链接库 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
第6章 嵌入式软件开发基础.
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
Presentation transcript:

中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn Autumn 2010 Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512-87161312) xlanchen@ustc.edu.cn Autumn 2010

程序的执行

操作系统是如何通过可执行文件的内容建立进程的执行上下文的? 可执行文件的格式 程序以可执行文件的形式存放在磁盘上 库 可供很多程序使用的一些例程的集合 静态库 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的最后插入exit()) 其他库 libm,包含浮点操作的基本函数 libX11,所有X11窗口系统图形接口的基本底层函数

静态链接 vs 动态链接 静态库 动态链接:共享库 Gcc的-static选项指明使用静态库

程序段和进程的线性区 在逻辑上,Unix程序的线性地址空间被划分为各种段(segment) 在mm_struct中都有对应的字段 正文段,text 数据段,data Bss段 堆栈段 在mm_struct中都有对应的字段

此外,还有共享库和文件的映射,他们映射在其他线性区 参阅/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_binfmt对象 通过读存放在可执行文件中的信息为当前进程建立一个新的进程上下文 动态的把一个共享库绑定到一个已经在运行的进程 将当前进程的上下文保存到名为core的文件中 例如

Linux 2.6.26中看到的可执行文件格式

Linux通过可执行文件的扩展名或者存放在文件前128字节的magic数来识别文件格式 文件扩展名 Exe Bat …

Exec函数家族 用一个指定的可执行文件所描述的上下文代替进程的上 下文 系统调用:execve sys_execve 指定被执行文件的路径名 用一个指定的可执行文件所描述的上下文代替进程的上 下文 系统调用:execve sys_execve

do_execve open_exec search_binary_handler load_binary 对于elf格式的文件: load_elf_binary

作业 什么是线性区?列举4种最常见的线性区。 Linux如何描述进程的地址空间?

Thanks! The end.