计算机系统
大作业
题 目 程序人生-Hello’s P2P
专 业 计算学部
学 号 1190200414
班 级 1903005
学 生 崔振扬
指 导 教 师 史先俊
计算机科学与技术学院
2021年5月
本文主要阐述了hello程序在Linux系统下的生命周期,hello程序在经过预处理、汇编、编译、链接生成可执行文件的全过程。并结合上课学习的知识详细阐述计算机系统对hello进行进程管理、储存管理以及I/O管理,探索hello生命周期的探索。
关键词:Hello程序;预处理;汇编;编译;链接;进程管理;储存管理;I/O管理;
目 录
第1章 概述
1.1 Hello简介
根据Hello的自白,利用计算机系统的术语,简述Hello的P2P,020的整个过程。
P2P:hello.c经过cpp的预处理、ccl的编译、as的汇编、ld的链接最终成为可执行目标程序hello,在shell中键入启动命令后,shell为其fork产生一个子进程,然后hello便从程序变为了进程。
020:shell为此子进程execve,映射虚拟内存,进入程序入口后程序开始载入物理内存,然后进入 main函数执行目标代码,CPU为运行的hello分配时间片执行逻辑控制流。当程序运行结束后,shell父进程负责回收hello进程,内核删除相关数据结构。
1.2 环境与工具
硬件环境:X64 CPU;2GHz;2G RAM;256GHD Disk 以上
软件环境:Windows7 64位以上;VirtualBox/Vmware 11以上;Ubuntu 16.04 LTS 64位/优麒麟 64位
开发与调试工具:gcc,vim,edb,readelf,HexEdit
1.3 中间结果
列出你为编写本论文,生成的中间结果文件的名字,文件的作用等。
文件名称 |
文件作用 |
hello.i |
hello.c预处理的文本文件 |
hello.s |
hello.i编译后的汇编文件 |
hello.o |
hello.s汇编后的可重定位文件 |
hello |
链接后的可执行文件 |
hello.c |
源程序 |
hello.outc |
Hello反汇编之后的文件 |
1.4 本章小结
简单介绍了 hello 的 p2p,020 过程,列出了本次实验信息:环境、中间结果,并且大致简介了hello程序从c程序hello.c到可执行目标文件hello的大致经过的历程。
(第1章0.5分)