正在上传…重新上传取消
计算机系统
大作业
题 目 程序人生-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 –
参