Linux API的体系结构
#include#include int main(){ double x; x= sqrt(8.0); printf("Square root of 8.0 is%f\n", x); write(1,"hello world", 11);
Linux应用开发基础
进程地址空间分析
}
Linux用户进程地址空间
内核高地址命令行参数环境变量栈 0xC0000000
int hippo; int giraffe=100; main(){ int a,b;: for(a=0;a<100;a++):} int food(int koala){ int zoo;: zoo=animal(“panda”);: application} program int animal(*char str){ happy_zoo.c:}
实例分析
bss segment
data segment
4 G
堆未初始化数据区初始化数据区低地址代码区
code segment compil er
process virtual address space a.out
USER-LEVEL MEMORY MANAGEMENT
Linux用户进程地址空间
代码
Linux用户进程地址空间
Ø通常指文本段,保存可执行指令的区域Ø多个运行实例可共享代码区,运行时只保留一个拷贝Ø在执行文件中的位置是文本段 text section
进程的虚拟地址空间,由六个不同性质的区域组成Ø命令行和环境变量区Ø栈StackØ堆 HeapØ未初始化全局数据 Zero-initialized dataØ初始化全局数据Initialized dataØ代码 Code