写点什么

《深入理解计算机系统》读书笔记——第一章

作者:如浴春风
  • 2022 年 5 月 03 日
  • 本文字数:615 字

    阅读完需:约 2 分钟

基于第三版。

纲要

  • 信息的概念

  • C 语言源码编译过程

  • 计算机系统的软硬件组成,及各部分介绍

  • 一个简单的 hello 程序的执行流程

  • 操作系统,进程/线程、并行和并发的概念

  • Amdahl 定律

信息

信息就是位和上下文。

如何理解“位”

绝大多数计算机系统采用二进制作为底层逻辑运算的支柱,这样,一个位只有两个值,通常标记为 0 和 1。一组位表示某个信息的集合,如 ASCII 采用 8 位描述一个符号(字母及一些特殊符号)。惯例上,计算机系统通常将 8 位(也称 8bit)描述为一个字节

如何理解“上下文”

所谓“上下文”,可类比想象为汉语中的“语境”。同一句话,在不同语境下,所表达的意思可能截然相反。计算机中同样如此。同一个比特序列,在不同语境下的翻译结果可能不一样:有可能是描述一个无符号整数,也有可能是描述一个浮点数,甚至有可能描述的是一条指令。

源码编译流程

C 语言将源文件转换为可执行的程序,通常要经过四个步骤:预处理编译汇编链接。每一步的输入都是上一步的输出,最终输出的产物为可执行的程序。

预处理

C 语言中有各式各样的宏命令,通常以 # 开头,如 #define#include

这个阶段的目的是将宏命令按照其含义展开,输入产物是 .c 文件,输出产物是 .i 文件。

编译

编译阶段,将 C 语言源码,翻译成对应的汇编代码。输入产物是 .i 文件,输出产物是 .s 文件。

汇编

汇编阶段,将汇编源码,翻译为机器语言指令。输入产物是 .s 文件,输出产物是 .o

链接

链接阶段,解析汇编阶段产生的 .o 文件,处理符号的定位问题。

发布于: 刚刚阅读数: 3
用户头像

如浴春风

关注

Full solution developer 2020.02.29 加入

前 Top 3 Android 手机厂商,相机开发工程师; 现 Android 音视频开发工程师。

评论

发布
暂无评论
《深入理解计算机系统》读书笔记——第一章_5月月更_如浴春风_InfoQ写作社区