计算机系统
大作业
题 目 程序人生-Hello’s P2P
专 业 计算学部
学 号 1190302808
班 级 1903004
学 生 高世杰
指 导 教 师 史先俊
计算机科学与技术学院
2021年5月
本论文讲述了hello.c程序运行在linux中的历程,在Ubuntu下借助相关工具在linux下实现的原理进行相关操作,分析预处理、编译、汇编、链接等各个过程,介绍了内存管理、进程管理、虚拟内存、信号处理、IO管理等相关内容。
关键词:hello.c,预处理,编译,汇编,链接,内存管理,进程管理,虚拟内存,I/O ;
(摘要0分,缺失-1分,根据内容精彩称都酌情加分0-1分)
目 录
第1章 概述
1.1 Hello简介
列出你为编写本论文,折腾Hello的整个过程中,使用的软硬件环境,以及开发与调试工具。
P2P:在editor中用c语言编写得到.c文件,经过cpp预处理得到.i文件,经过ccl编译得到得到.s文件。此后通过as将.s文件翻译成机器语言,再经过ld的链接成为可执行目标程序hello,执行此文件,操作系统会为hello调用fork函数产生子进程。
020:操作系统调用execve函数映射虚拟内存,为程序分配虚拟空间,将程序加载到映射的物理内存空间中,然后执行目标程序。进程终止后,父进程回收hello进程,操作系统将会释放进程的虚拟空间。
1.2 环境与工具
列出你为编写本论文,折腾Hello的整个过程中,使用的软硬件环境,以及开发与调试工具。
硬件环境:处理器:Intel® Core™ i7-8550U CPU @ 1.80GHz 1.99GHz
RAM:8.00GB 系统类型:64位操作系统,基于x64的处理器。
软件环境:Windows10 64位;Ubuntu 19.04
开发与调试工具:gcc,as,ld,vim,edb,readelf,VScode
1.3 中间结果
列出你为编写本论文,生成的中间结果文件的名字,文件的作用等。
预处理后的文件hello.i
编译之后的汇编文件hello.s
可