《深入理解计算机系统》啃书 第一章

个人打卡,不够详细,慎看。

今天没有做《操作系统真象还原》的项目,受学长推荐,看了《深入理解计算机系统》这本书,说这本书写得很妙,帮助建立学习计算机的整体体系。

B站有UP自己讲了这本书,网课指路:

【CSAPP-深入理解计算机系统】2-1.信息的存储(上)_哔哩哔哩_bilibili

不过书其实写得很详细,只看书就够了。

一、hello程序的生命周期

实际上就是数据信息在磁盘、处理器、内存与IO设备之间搬运。

  1. 计算机中所有的数据与指令都是以二进制的形式存储的,区别他们的方式是读取这些数据时的上下文。大多计算机使用 ASCII 标准来表示文本字符【即使用唯一的单字节大小的整数值来表示每个字符】。所以我们看到的'a'在计算机里的存储内容是'a'的ASCII码。
  2. 像hello.c这样以字节序列的方式存储在文件中,只由ASCII码字符构成的文件称为文本文件,其他所有文件称为二进制文件。
  3. 大概流程:系统只认识机器指令,我们现在的hello.c程序需要转换成机器指令,hello.c现在属于高级语言,需要通过编译生成汇编语言,然后通过汇编生成机器指令。但是转化为机器语言指令还不够,这些指令还要按照exe格式打包,以二进制形式存放。
  4. 细致流程:预处理阶段、编译阶段、汇编阶段、链接阶段。
  5. hello.c 在预处理阶段,根据#开头的命令修改程序。比如#include<stdio.h>, 把stdio.h插入到hello.c得到另一个文件hello.i。
  6. hello.i通过编译器被翻译成包含汇编语言的程序hello.s。
  7. hello.s被汇编器翻译成机器指令,打包成可重定位目标程序hello.o。二进制形式。
  8. 链接器负责合并。合并调用的函数所在的目标文件与该文件。 生成exe文件,可以被加载到内存中,由系统执行。

二、硬件

  1. 为了运行hello.exe 可以利用shell。shell 是一个命令行解释器,它输出一个提示符,等待输人一个命令行,然后执行这个命令。
  2. 总线:在各个部件之间传送数据。
  3. IO设备:我们与系统联系的通道。  比如显示器、鼠标。
  4. 主存:由DRAM芯片组成。CPU必须把程序放在主存中才能执行。
  5. CPU处理器:核心是PC【大小为一个字的存储设备】。任何时候,PC 都指向主存中的某条机器语言指令(即含有该条指令的地址)。 从系统通电开始,直到系统断电,处理器一直在不断地执行程序计数器指向的指令, 再更新程序计数器,使其指向下一条指令。

这本书要记录的知识点很多,不能全粘贴进来,记录一下印象最深刻的知识点。

强推这本书!!!

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值