正在上传…重新上传取消

计算机系统

大作业

题 目 程序人生-Hello’s P2P

专 业 计算学部

学   号 120L020311

班   级 2003003

学 生 杭乌日昵    

指 导 教 师 史先俊   

计算机科学与技术学院

2022年5月

摘 要

文章主要介绍了hello的一生。从hello的预处理开始,依次分析编译、汇编、链接等操作细节。之后介绍了linux上从hello的加载到运行等过程,查看了hello的进程管理、存储管理、IO管理等内容。

关键词:深入理解计算机系统;hello;预处理;编译;汇编;链接;进程;内存;IO

目 录

第1章 概述………………………………………………………………………………………………. – 4 –

1.1 Hello简介………………………………………………………………………………………… – 4 –

1.2 环境与工具……………………………………………………………………………………….. – 4 –

1.3 中间结果…………………………………………………………………………………………… – 4 –

1.4 本章小结…………………………………………………………………………………………… – 4 –

第2章 预处理…………………………………………………………………………………………… – 5 –

2.1 预处理的概念与作用…………………………………………………………………………. – 5 –

2.2在Ubuntu下预处理的命令……………………………………………………………….. – 5 –

2.3 Hello的预处理结果解析…………………………………………………………………… – 5 –

2.4 本章小结…………………………………………………………………………………………… – 5 –

第3章 编译………………………………………………………………………………………………. – 6 –

3.1 编译的概念与作用…………………………………………………………………………….. – 6 –

3.2 在Ubuntu下编译的命令………………………………………………………………….. – 6 –

3.3 Hello的编译结果解析………………………………………………………………………. – 6 –

3.4 本章小结…………………………………………………………………………………………… – 6 –

第4章 汇编………………………………………………………………………………………………. – 7 –

4.1 汇编的概念与作用…………………………………………………………………………….. – 7 –

4.2 在Ubuntu下汇编的命令………………………………………………………………….. – 7 –

4.3 可重定位目标elf格式……………………………………………………………………… – 7 –

4.4 Hello.o的结果解析………………………………………………………………………….. – 7 –

4.5 本章小结…………………………………………………………………………………………… – 7 –

第5章 链接………………………………………………………………………………………………. – 8 –

5.1 链接的概念与作用…………………………………………………………………………….. – 8 –

5.2 在Ubuntu下链接的命令………………………………………………………………….. – 8 –

5.3 可执行目标文件hello的格式………………………………………………………….. – 8 –

5.4 hello的虚拟地址空间………………………………………………………………………. – 8 –

5.5 链接的重定位过程分析……………………………………………………………………… – 8 –

5.6 hello的执行流程……………………………………………………………………………… – 8 –

5.7 Hello的动态链接分析………………………………………………………………………. – 8 –

5.8 本章小结…………………………………………………………………………………………… – 9 –

第6章 hello进程管理……………………………………………………………………….. – 10 –

6.1 进程的概念与作用…………………………………………………………………………… – 10 –

6.2 简述壳Shell-bash的作用与处理流程…………………………………………….. – 10 –

6.3 Hello的fork进程创建过程…………………………………………………………… – 10 –

6.4 Hello的execve过程……………………………………………………………………… – 10 –

6.5 Hello的进程执行……………………………………………………………………………. – 10 –

6.6 hello的异常与信号处理…………………………………………………………………. – 10 –

6.7本章小结…………………………………………………………………………………………. – 10 –

第7章 hello的存储管理…………………………………………………………………….. – 11 –

7.1 hello的存储器地址空间…………………………………………………………………. – 11 –

7.2 Intel逻辑地址到线性地址的变换-段式管理…………………………………….. – 11 –

7.3 Hello的线性地址到物理地址的变换-页式管理………………………………… – 11 –

7.4 TLB与四级页表支持下的VA到PA的变换……………………………………… – 11 –

7.5 三级Cache支持下的物理内存访问…………………………………………………. – 11 –

7.6 hello进程fork时的内存映射………………………………………………………… – 11 –

7.7 hello进程execve时的内存映射…………………………………………………….. – 11 –

7.8 缺页故障与缺页中断处理………………………………………………………………… – 11 –

7.9动态存储分配管理…………………………………………………………………………… – 11 –

7.10本章小结……………………………………………………………………………………….. – 12 –

第8章 hello的IO管理……………………………………………………………………… – 13 –

8.1 Linux的IO设备管理方法……………………………………………………………….. – 13 –

8.2 简述Unix IO接口及其函数…………………………………………………………….. – 13 –

8.3 printf的实现分析……………………………………………………………………………. – 13 –

8.4 getchar的实现分析………………………………………………………………………… – 13 –

8.5本章小结…………………………………………………………………………………………. – 13 –

结论…………………………………………………………………………………………………………. – 14 –

附件…………………………………………………………………………………………………………. – 15 –