哈工大计算机系统实践:Hello程序的全程探索与进程管理

需积分: 11 6 下载量 137 浏览量 更新于2024-08-05 收藏 3.71MB DOC 举报
本篇文档是哈尔滨工业大学2022年计算机系统大作业,主题为“程序人生”,由学生乔江洋完成,指导教师为郑贵滨,隶属于计算机科学与技术学院。作业详细探讨了Hello程序在Linux系统中的生命周期,包括预处理、汇编、编译、链接以及生成可执行文件的过程。作者深入剖析了每个步骤的作用和在Ubuntu操作系统中的具体操作。 第1章概述了Hello程序的基本介绍,以及实验所使用的环境和工具,通过实际操作演示了预处理阶段,解释了预处理的概念和作用,以及如何在Ubuntu中使用预处理器命令,并分析了预处理后的结果。 在第2章中,作者进一步讨论了编译的概念,展示了在Ubuntu中编译Hello程序的命令,并解析了编译结果,强调了编译过程对于生成目标代码的重要性。 第3章和第4章分别讲解了汇编和汇编后的Hello.o文件。汇编是将高级语言源码转换为机器语言的过程,通过Ubuntu命令行展示汇编命令,同时解释了可重定位目标elf格式和Hello.o文件的结构。 第5章是链接环节,介绍了链接的概念和作用,展示了在Ubuntu中的链接命令。分析了可执行目标文件的格式,以及Hello程序的虚拟地址空间、重定位过程和执行流程,还包括动态链接的讨论。 第6章深入到进程管理,定义了进程的概念,讲解了Shell-bash的作用及其处理流程,然后详细描述了Hello程序的fork和execve过程,以及进程的执行、异常处理等关键环节。 第7章专门探讨了Hello程序的存储管理,涵盖了存储器地址空间、逻辑地址到线性地址的变换(段式管理)、线性地址到物理地址的变换(页式管理)以及TLB和四级页表在地址映射中的角色。 这篇作业提供了详尽的Hello程序在Linux系统下的全程解析,涵盖了从源代码到可执行文件的每一步骤,同时也涉及了操作系统中重要的进程管理和存储管理概念,是理解计算机系统底层工作原理的实用案例。