《深入理解计算机系统-程序结构》读书笔记

时间:2019-09-03
本文章向大家介绍《深入理解计算机系统-程序结构》读书笔记,主要包括《深入理解计算机系统-程序结构》读书笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1.计算机系统漫游

计算机系统是由硬件和系统软件组成的,他们共同工作来运行应用程序。在《深入理解计算机系统》一书中将会学到很多实践的技巧。例如:了解编译器是如何实现过程调用的、避免缓冲区溢出错误带来的安全漏洞、理解并发带来的希望和陷阱等。

1.1 信息就是位+上下文

  • 源程序的组成:

    • 源程序是由值0和1组成的位序列,8个位被组织成一组,称为字节。

    • 每个字节表示程序中的某些文本字符。

  • 文本文件:

    • 大部分系统都使用ASCII标准来表示文本字符,只由ASCII字符构成的文件称为文本文件。

    • 所有其他文件都称为二进制文件。

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

  • 目标程序:

    • 目标程序也称为可执行目标文件,目标文件是由编译器驱动程序将源程序转化得到的。

  • 翻译过程分为4个阶段

    • 预处理阶段:将源程序修改位另一种能够编译的程序文件。

    • 编译阶段:将预处理的源程序翻译成汇编语言程序。

    • 汇编阶段:将汇编语言程序翻译成机器语言指令。

    • 链接阶段:把标准库的目标程序和源程序合并,得到可以被加载到内存中,系统执行的目标文件。

  • 了解编译系统如何工作是大有益处的

    • 优化程序性能:一个函数调用的开销有多大?本地变量和引用变量哪个更快?简单的排列括号函数就运行的快很多是什么原因?等等

    • 理解链接时出现的错误:连接器无法解析引用是什么意思?静态变量和全局变量的区别是什么?为什么有些链接直到运行时才出现错误?

    • 避免安全漏洞:缓冲区溢出错误、理解数据和控制信息存储在程序栈中的方式会引起的后果。

1.3 处理器读并解释储存在内存中的指令

 

原文地址:https://www.cnblogs.com/wuchangliang/p/11456491.html