深入了解计算机系统1

CMU CS15-213 学习笔记

第一章 计算机系统漫游

信息就是位和上下文

先来看一段最简单的C语言代码

hello.c

1
2
3
4
5
#include<stdio.h>
int main(){
printf("Hello, world!");
return 0;
}

hello.c 在计算机中以文本形式储存,每个字节都对应一个整数值

程序被其他程序翻译成不同的格式

1
linux> gcc -o hello hello.c

GCC编译器读取源程序hello.c文件,并且把他翻译成一个可执行的目标文件 hello

他分为四个阶段:

预处理阶段 由预处理器(ccp)根据以 # 开头的命令,修改原始的C程序,比如读取hello.c的第一行内容并把它插入源代码中

编译阶段 编译器(ccl)将文本文件翻译成汇编语言

汇编阶段 汇编器将汇编文件翻译成机器语言指令

链接阶段 由于hello.c 储存于一个 printf.o的单独预编译文件中,连接器(dl) 负责完成这部分工作,合并完成后结果就得到hello文件