【笔记】深入理解计算机系统 01 - 计算机系统漫游

说明: 为了方便定位笔记对应的原书位置,笔记内容中段落的标号与原书章节号保持一致!

1.1 信息就是位+上下文

文件分类: 文本文件二进制文件

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

1
2
3
4
5
6
#include <stdio.h>

int main(){
printf("Hello, world\n");
return 0;
}

gcc 编译4阶段:

1
2
3
4
5
hello.c(文本) -> 预处理器(cpp) ->
hello.i(文本) -> 编译器(ccl) ->
hello.s(文本) -> 汇编器(as) ->
hello.o(二进制) + prntf.o(二进制) -> 连接器(ld) ->
可执行文件:hello(二进制)

旁注:GNU 是什么,和 Linux 是什么关系?

1.4.1 系统的硬件组成

总线,传送定长字节块,也叫(word);字不同于字节(Byte);字中的字节数(字长)是一个基本的系统参数,大多数机器字长为4字节(32位)或8字节(64位)。

1.7.1 进程

操作系统抽象:进程虚拟内存文件
进程,交错执行,称为并发运行。交错执行的机制称为上下文切换
进程上下文:操作系统保持跟踪进程运行所需的所有状态信息,包括:PC(程序计数器)、寄存器值和主存内容等。

1.7.2 线程

线程

1.7.3 虚拟内存

虚拟内存

每个进程看到的内存都是一致的,称为虚拟地址空间
虚拟内存空间由大量准确定义的构成,包括:

  • 程序代码和数据
  • 共享库
  • 内核虚拟内存

1.7.4 文件