1317 字
7 分钟
CSAPP_P2P

计算机系统原理#

大作业#


题目:程序人生 - Hello’s P2P#

专业:
学号:
班级:
学生:
指导教师:

计算学部
2025年9月


摘要#

摘要是论文内容的高度概括,应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要应包括本论文的目的、主要内容、方法、成果及其理论与实际意义。摘要中不宜使用公式、结构式、图表和非公知公用的符号与术语,不标注引用文献编号,同时避免将摘要写成目录式的内容介绍。

**关键词:**关键词1;关键词2;……

(摘要0分,缺失 -1分,根据内容精彩程度酌情加分 0–1 分)


自媒体发表截图#

(此处插入截图)


目录#

第1章 概述 - 5 -
第2章 预处理 - 6 -
第3章 编译 - 7 -
第4章 汇编 - 8 -
第5章 链接 - 9 -
第6章 Hello进程管理 - 11 -
第7章 Hello的存储管理 - 12 -
第8章 Hello的IO管理 - 14 -
结论 - 15 -
附件 - 16 -
参考文献 - 17 -


第1章 概述#

1.1 Hello简介#

根据 Hello 的自白,利用计算机系统的术语,简述 Hello 的 P2P、020 的整个过程。

P2P:是Program to Process的缩写,指从源代码到可执行文件的过程。

1.2 环境与工具#

列出你为编写本论文、折腾 Hello 的整个过程中,使用的软硬件环境,以及开发与调试工具。

1.3 中间结果#

列出你为编写本论文,生成的中间结果文件的名字、文件的作用等。

1.4 本章小结#

(第1章 0.5分)


第2章 预处理#

2.1 预处理的概念与作用#

2.2 在 Ubuntu 下预处理的命令#

应截图,展示预处理过程!

2.3 Hello 的预处理结果解析#

2.4 本章小结#

(第2章 0.5分)


第3章 编译#

3.1 编译的概念与作用#

3.2 在 Ubuntu 下编译的命令#

应截图,展示编译过程!

3.3 Hello 的编译结果解析#

应分 3.3.1 ~ 3.3.x 等按照类型和操作进行分析,只要 hello.s 中出现的属于大作业 PPT 中 P4 给出的参考 C 数据与操作,都应解析。

3.4 本章小结#

(第3章 2分)


第4章 汇编#

4.1 汇编的概念与作用#

4.2 在 Ubuntu 下汇编的命令#

应截图,展示汇编过程!

4.3 可重定位目标 ELF 格式#

分析 hello.o 的 ELF 格式,用 readelf 等列出其各节的基本信息,特别是重定位项目分析。

4.4 Hello.o 的结果解析#

使用 objdump -d -r hello.o 分析 hello.o 的反汇编,并与第3章的 hello.s 进行对照分析。

4.5 本章小结#

(第4章 1分)


第5章 链接#

5.1 链接的概念与作用#

5.2 在 Ubuntu 下链接的命令#

应截图,展示链接过程!

5.3 可执行目标文件 hello 的格式#

分析 hello 的 ELF 格式,用 readelf 等列出其各段的基本信息。

5.4 hello 的虚拟地址空间#

使用 gdbedb 加载 hello,查看本进程的虚拟地址空间各段信息,并与 5.3 对照分析说明。

5.5 链接的重定位过程分析#

使用 objdump -d -r hello 分析 hellohello.o 的不同,说明链接的过程。

5.6 hello 的执行流程#

说明从加载 hello_start,到 main,以及程序终止的所有过程。

5.7 Hello 的动态链接分析#

分析 hello 程序的动态链接项目,通过调试分析在动态链接前后这些项目的内容变化。

5.8 本章小结#

(第5章 1分)


第6章 Hello 进程管理#

6.1 进程的概念与作用#

6.2 简述 Shell-Bash 的作用与处理流程#

6.3 Hello 的 fork 进程创建过程#

6.4 Hello 的 execve 过程#

6.5 Hello 的进程执行#

6.6 Hello 的异常与信号处理#

结合 psjobspstreefgkill 等命令,给出运行截图并说明。

6.7 本章小结#

(第6章 2分)


第7章 Hello 的存储管理#

7.1 Hello 的存储器地址空间#

7.2 Intel 逻辑地址到线性地址的变换 - 段式管理#

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

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

7.5 三级 Cache 支持下的物理内存访问#

7.6 Hello 进程 fork 时的内存映射#

7.7 Hello 进程 execve 时的内存映射#

7.8 缺页故障与缺页中断处理#

7.9 动态存储分配管理#

7.10 本章小结#

(第7章 2分)


第8章 Hello 的 IO 管理#

8.1 Linux 的 IO 设备管理方法#

8.2 简述 UNIX IO 接口及其函数#

8.3 printf 的实现分析#

参考链接:https://www.cnblogs.com/pianist/p/3315801.html

8.4 getchar 的实现分析#

8.5 本章小结#

(第8章 1分)


结论#

用计算机系统的语言,逐条总结 Hello 所经历的过程。
表达你对计算机系统设计与实现的理解与感悟,提出你的创新理念或改进建议。

(结论 0分,缺失 -1分)


附件#

列出所有的中间产物的文件名,并予以说明其作用。

(附件 0分,缺失 -1分)


参考文献#

为完成本次大作业你翻阅的书籍与网站等:

CSAPP_P2P
https://biscuit0613.github.io/posts/csapp/csapp_p2p/
作者
Biscuit
发布于
2025-09-30
许可协议
CC BY-NC-SA 4.0