P2P:即from program to process:在Linux中,通过gcc编译器驱动步伐读取步伐文件hello.c,然后经过预处置惩罚器(cpp)的预处置惩罚,修改该步伐得到hello.i文件;通过编译器(cll)的编译,将文本文件hello.i翻译成文本文件情势的汇编步伐hello.s;再通过汇编器(cs)将hello.s翻译成机器语言指令,将指令打包成可重定位的目标文件hello.o;然后通过链接器(ld)的链接归并得到可执行目标文件hello。Linux系统中,在shell中输入./hello启动命令后,shell为其fork,产生子进程,于是hello从 Program 酿成 Process。至此,hello.c完成了P2P的过程
020:即from zero to zero:Shell通过execve在fork产生的子进程中加载hello,先删除当前虚拟地址的用户部分已存在的数据结构,为hello的代码、数据、bss和栈区域创建新的区域结构,然后映射共享区域,设置步伐计数器,使之指向代码区域的入口点,进入main函数,CPU为hello分配时间片执行逻辑控制流。hello通过Unix I/O管理来控制输出。hello执行完成后shell会回收hello进程,而且内核会从系统中删除hello全部痕迹,至此,hello完成O2O的 过程。
1.2 情况与工具