本大作业围绕 Hello 程序从源代码到进程执行再到终止的完整生命周期展开深入探究,以 “Program to Process” 的 P2P 历程和 “Zero to Zero” 的 O2O 特性为主线,系统剖析了 Hello 程序在计算机系统中的运行机制。通过在 Ubuntu 环境下对 hello.c 进行预处理、编译、汇编、链接等操作,详细分析了各阶段的原理、命令执行过程及结果;深入研究了程序对应的进程管理、存储管理和 IO 管理等核心计算机系统功能,包括进程创建与调度、地址空间转换、内存映射、IO 设备交互及信号处理等关键技术。本作业不仅验证了计算机系统各组成部分的协同工作原理,更通过对 Hello 程序 “一生” 的追踪,加深了对计算机系统分层架构、软硬件协同设计的理解,为后续复杂系统开发与优化奠定了理论与实践基础。
关键词:Hello 程序;计算机系统;编译链接;进程管理;存储管理;IO 管理。
(摘要0分,缺失-1分,根据内容精彩称都酌情加分0-1分)
目 录
第1章 概述
1.1 Hello简介
Hello 程序的 “一生” 是计算机系统核心机制的缩影,其 P2P 历程(From Program to Process)涵盖了从源代码到可执行程序再到进程运行的完整链路。开发者通过编辑器将代码敲入文件形成 hello.c(Program),经过预处理、编译、汇编、链接四个关键步骤,生成可执行目标文件;随后在 Shell(Bash)环境中,操作系统通过 fork 创建新进程,经 execve 加载该可执行文件,通过 mmap 完成内存映射,分配时间片使进程在 CPU、内存等硬件资源上执行;在存储管理的支持下,完成虚拟地址到物理地址的高效转换,IO 管理与信号处理则实现了程序与键盘、显示器等设备的交互;程序执行结束后,操作系统回收其占用的资源,完成 “从无到有再到无” 的 O2O 历程(From Zero to Zero)。Hello 程序虽功能简单,却完整贯穿了计算机系统的软件分层与软硬件协同逻辑,是理解计算机系统工作原理的核心载体。1.2 环境与工具。
列出你为编写本论文,折腾Hello的整个过程中,使用的软硬件环境,以及开发与调试工具。
硬件环境
处理器:Intel Core i7-10750H(6 核 12 线程,基础频率 2.6GHz,最大睿频 5.0GHz),内存:16GB DDR4 2933MHz,存储:512GB NVMe SSD,操作系统:Windows 10 专业版(64 位)+ VMware Workstation Pro 16虚拟机配置:Ubuntu 20.04 LTS(64 位),分配 4 核 CPU、8GB 内存、100GB 磁盘空间
软件与工具
代码编辑工具:Visual Studio Code(安装 C/C++ 插件)、Ubuntu 内置 Vim,编译调试工具:GCC 9.4.0(64 位)、GDB 9.2、Objdump、Readelf、Edb-debugger
,辅助工具:Terminal(终端)、截图工具 Flameshot、文件查看工具 Cat、Less
,文档编辑工具:Microsoft Word 2021、CSDN 博客编辑器
1.3 中间结果
列出你为编写本论文,生成的中间结果文件的名字,文件的作用等。
hello.c,作用存储 Hello 程序的 C 语言源代码,是整个流程的起点
hello.i,经过预处理后的 C 语言文件,展开宏定义、包含头文件、删除注释等
hello.s ,汇编语言源代码文件,由 hello.i 编译生成,包含 CPU 可识别的汇编指令
hello.o,可重定位目标文件(ELF 格式),由 hello.s 汇编生成,包含机器语言指令但未完成链接
Hello,可执行目标文件(ELF 格式),由 hello.o 与系统库链接生成,可被操作系统加载执行
hello_asm.txt,由 objdump 生成的 hello.o 反汇编文件
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/Zlt0615/article/details/156777966



