计算机系统
大作业
题 目 程序人生-Hello’s P2P
专 业 计算机类
学 号 120L021305
班 级 2003002
学 生 李一凡
指 导 教 师 史先俊
计算机科学与技术学院
2022年5月
本文从编写开始,完整详细地深入了解hello.c程序从预处理、编译、汇编、连接一直到可执行文件诞生的全过程,分析其背后的软硬件知识如Bash与OS对hello的进程管理、存储管理等。通过hello程序的“人生”,对整个计算机系统有了更深入的理解。
关键词:计算机系统,hello.c,编译,汇编,进程,虚拟内存;
目 录
6.2 简述壳Shell-bash的作用与处理流程 - 29 -
7.2 Intel逻辑地址到线性地址的变换-段式管理 - 37 -
7.3 Hello的线性地址到物理地址的变换-页式管理 - 38 -
7.4 TLB与四级页表支持下的VA到PA的变换 - 39 -
7.7 hello进程execve时的内存映射 - 40 -
第1章 概述
1.1 Hello简介
(1)P2P:From Program to Process的缩写,即从程序到进程的转换过程。该过程中hello.c文件首先经历来自cpp的预处理,实现文本替换功能产生hello.i文件。然后再经历ccl的编译,转换成汇编代码hello.s文件,此时已贴近计算机硬件。接着汇编代码经过as的翻译称为一定格式的机器码hello.o文件。最后经过ld的链接形成可执行文件hello。在shell中输入启动命令后,shell为其fork产生一个子进程,然后hello便从程序变为了进程。
(2)020:From Zero to Zero的缩写,即进程从初始到回收的过程。该过程中shell为hello进程execve、mmap,execve时hello会被分配一个虚拟内存,对应着一个物理内存,里面存放着程序运行需要的信息。CPU为运行的hello分配时间片执行逻辑控制流,I/O管理与信号处理软硬结合,然后hello程序开始运行,进行一个又一个process。最终hello程序返回,被shell回收,对应内存和虚拟内存随即释放,内核删除相关数据结构,结束。
1.2 环境与工具
列出你为编写本论文,折腾Hello的整个过程中,使用的软硬件环境,以及开发与调试工具。
硬件环境:X64 CPU;2GHz;2G RAM;256GHD Disk以上
软件环境:Windows10 64位以上;Vmware 11以上;Ubuntu 16.04 LTS 64位/优麒麟 64位以上;福昕高级pdf编辑器
开发工具:Visual Studio 2010 64位以上;CodeBlocks 64位;vi/vim/gedit+gcc;GDB/OBJDUMP;EDB等
1.3 中间结果
文件名 |