CSAPP学习笔记
来源:互联网 发布:美工每天工作内容 编辑:程序博客网 时间:2024/04/30 06:04
在看到前言里如此诱惑的字符串:“如果你学习和研究这本书里的概念,你将步入稀缺的“权威程序员”的行列。。。”,决定买下《深入理解计算机系统》这本书。经过一段时间的学习后,我已爱不释手,只想说相见恨晚。。。
个人感觉,《深》书第一章“计算机系统漫游”是整本书的概述,精华(其实大多数书籍都是如此),她总结了深入理解计算机系统的各方面内容。实在惭愧,直到读了这本书,我才理解了一个程序的执行过程。这在第一章有详细的粗略叙述,我再来画蛇添足一下,总结一下一个程序的执行过程,以加深对计算机系统理解。
首先,从软件角度来看,第一步工作是用高级语言编写完成一个源程序文件。接着,开始4个翻译过程。
1.预处理:处理源程序中#开头的命令,扩展源文件(主要执行包含文件代码插入、条件编译及宏替换操作);
2.编译:将扩展的源文件翻译成汇编源程序;
3.汇编:将汇编源程序翻译成可重定位的目标程序文件;
4.链接:将所需的目标程序文件合并成一个可执行文件。
至此,得到了可加载运行的可执行文件。这里,感觉编译和链接较为重要。编译产生汇编源码,汇编代码和机器指令一一对应的,便于分析程序性能。理解链接也很重要,个人感觉程序错误主要有三类:编译时的语法错误、链接时的错误、运行时的内存错误。以前的我,连对预处理的了解都不全面的(BS自己)。
接着,开始可执行程序在硬件上的执行过程。开始,通过键盘/鼠标等设备发出加载可执行文件命令,通过寄存器,加载命令被存放到内存中。接着,根据内存中的命令,从磁盘复制可执行文件的代码和数据到主存。接着,CPU执行代码段中的机器指令序列,并操作数据段,期间,会通过寄存器与其他I/O设备交互,直到运行结束。由于计算机硬件的性价比问题,引入了金字塔型的存储设备结构;由于硬件设备使用的复杂性和合理性,引入了操作系统。由于与其他计算机通信,引入了网络系统。
硬件部分是基于PC结构的,个人感觉,如果理解了PC结构的计算机系统,则对深入理解复杂度小于PC级别的系统,应该很有帮助。很多嵌入式系统资源有限,没有硬盘、没有缓存、甚至没有操作系统,无法使用系统调用,更别说中间平台的库函数啦,多数都要手动设置寄存器。不更加深入地理解计算机系统,是搞不定的。正如前言里言简意赅的字符串“。。。你也将做好学习其他具体系统主题的准备,比如编译器、计算机体系结构、操作系统、嵌入式系统和网络互联”。
总结道,如果把其他计算机基础书籍比作一颗颗璀璨夺目的珍珠,《深入理解计算机系统》就是串接珍珠的朴实丝线,通过她,能将珍珠结合成魅力四射的珍珠项链。尽管是800页的大部头,但读到很多地方都意犹未尽,不过她玩的就是仙人指路,修行还在个人!
个人感觉,《深》书第一章“计算机系统漫游”是整本书的概述,精华(其实大多数书籍都是如此),她总结了深入理解计算机系统的各方面内容。实在惭愧,直到读了这本书,我才理解了一个程序的执行过程。这在第一章有详细的粗略叙述,我再来画蛇添足一下,总结一下一个程序的执行过程,以加深对计算机系统理解。
首先,从软件角度来看,第一步工作是用高级语言编写完成一个源程序文件。接着,开始4个翻译过程。
1.预处理:处理源程序中#开头的命令,扩展源文件(主要执行包含文件代码插入、条件编译及宏替换操作);
2.编译:将扩展的源文件翻译成汇编源程序;
3.汇编:将汇编源程序翻译成可重定位的目标程序文件;
4.链接:将所需的目标程序文件合并成一个可执行文件。
至此,得到了可加载运行的可执行文件。这里,感觉编译和链接较为重要。编译产生汇编源码,汇编代码和机器指令一一对应的,便于分析程序性能。理解链接也很重要,个人感觉程序错误主要有三类:编译时的语法错误、链接时的错误、运行时的内存错误。以前的我,连对预处理的了解都不全面的(BS自己)。
接着,开始可执行程序在硬件上的执行过程。开始,通过键盘/鼠标等设备发出加载可执行文件命令,通过寄存器,加载命令被存放到内存中。接着,根据内存中的命令,从磁盘复制可执行文件的代码和数据到主存。接着,CPU执行代码段中的机器指令序列,并操作数据段,期间,会通过寄存器与其他I/O设备交互,直到运行结束。由于计算机硬件的性价比问题,引入了金字塔型的存储设备结构;由于硬件设备使用的复杂性和合理性,引入了操作系统。由于与其他计算机通信,引入了网络系统。
硬件部分是基于PC结构的,个人感觉,如果理解了PC结构的计算机系统,则对深入理解复杂度小于PC级别的系统,应该很有帮助。很多嵌入式系统资源有限,没有硬盘、没有缓存、甚至没有操作系统,无法使用系统调用,更别说中间平台的库函数啦,多数都要手动设置寄存器。不更加深入地理解计算机系统,是搞不定的。正如前言里言简意赅的字符串“。。。你也将做好学习其他具体系统主题的准备,比如编译器、计算机体系结构、操作系统、嵌入式系统和网络互联”。
总结道,如果把其他计算机基础书籍比作一颗颗璀璨夺目的珍珠,《深入理解计算机系统》就是串接珍珠的朴实丝线,通过她,能将珍珠结合成魅力四射的珍珠项链。尽管是800页的大部头,但读到很多地方都意犹未尽,不过她玩的就是仙人指路,修行还在个人!
- CSAPP学习笔记
- [CSAPP学习笔记] 栈帧
- CSAPP 学习笔记(1)
- CSAPP 学习笔记 Chapter one
- CSAPP 学习笔记 Chapter two
- csapp第二章学习笔记
- CSAPP学习笔记——Integer Representation
- CSAPP学习笔记(第一,二章)
- CSAPP学习笔记(异常控制流1)
- CSAPP 学习笔记 Chapter two & three
- CSAPP第三章学习笔记(二)
- CSAPP笔记
- CSAPP笔记
- CSAPP学习系列:什么是CSAPP
- 工作学习笔记——CSAPP第三章
- CSAPP深入理解计算机系统第二章学习笔记(1)
- CSAPP学习笔记——Fraction Binary Numbers
- 《CSAPP》第三章之学习笔记(一)
- 数据仓库的数据模型与数据组织
- 纪念获得去IBM实习的机会
- 癌症离我们有多远?
- 科技公司手握现金防衰退
- 相约SeeToo 共享视频
- CSAPP学习笔记
- 青岛啤酒(0168.HK)下挫3.2%,择机买进-CER
- 数据库设计系列---关系建模
- 驱动入门——Hook SSDT 隐藏进程
- Sql语句操作表中字段
- AjaxControlToolkit使用心得(一)——CollapsiblePanel
- 脚印.
- 简单的计算器程序
- Excel跨表查询关联数据