- 查看目标文件及二进制文件的工具
1.readELF – 目标文件 用”gcc -a a.c” -> a.o
2.objdump – 查看目标文件&&二进制文件 “objdump -h a.0” - 进程地址空间
1.Task_struck 结构体,里面存储了进程的相关信息
2.运行时地址空间结构
虚拟内存 – 所有进程共用一份操作系统代码
虚拟地址指向真实地址,他只是代表了地之间的相对偏移量
3.进程的建立
创建虚拟地址空间 - 映射(内存拷贝) - 代码拷贝
4.装载方式:
覆盖装载(废弃)
页映射: a.out -> 虚拟地址空间 -> 物理空间(页) - 系统调用
运行时特权级别
DPL:
0 | 1 | 2 | 3 |
---|---|---|---|
OS | 驱动 | 驱动 | 用户 |
任意 | 某一段 | 某一段 | 无 |
内存访问(物理地址)
系统调用的弊端:
可移植性差
解决方法:
运行时库