深入理解计算机系统-读书笔记(1)

来源:互联网 发布:ecshop的app源码 编辑:程序博客网 时间:2024/06/05 09:11

首先这是一本神书,如果能够学明白50%以上,我想我就能成为大神吧。为了这个目标,决定好好努力。笔记是学习的重要方法和工具,所以开始记笔记。

这本书是以程序员的视角(perspective)去介绍计算机系统的。具体分为以下三个部分:

1. advanced language ->mid language(assemble)

1.1 通过预处理器生成.i文件,就是把include的头文件添加到source code中。具体怎么执行,还需要进一步学习。

1.2 通过编译器将.i文件转化成汇编文件(如.as文件)。

2. how to explain & execute mid language

2.1 通过汇编器生成可重定位目标.o文件

2.2  通过链接器将多个.o文件加工为可执行目标文件.exe(win上面)。

3. how the part of computer system influence the efficiency of programm?

其中,很巧合的是,1和2都是分为两大步骤实现的。在这里,关于最前面的部分,以后每次都会看一点。而不是一次看完。


下面,开始学习第一章

CH1 Computer Systems:Programmer's Perpective

将会学习一下实用的技巧:

1. avoid digital mistake

2. optimize c program

3. know the compiler how to  make process call

4. avoid safe bug, such as buffer overflow


1.1 信息= bits+context

source code save asbyte array in text. Every byte-> integer,every integer->char.

只由ASCII字符组成的文件称为文本文件。也就是bytes可以通过ascii码来解码成有意义的内容。

相同的bytes,在不同的context下,表示的对象可能不同(例如int,float等等)。不同的context对应的是不同的解码方式。

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

1.3 了解编译系统是如何工作的是非常有益处的

1. optimize code

2. 理解链接时的错误

3. 避免buffer overflow.

1.4 CPU读并解释存储在内存中的指令

将文件输入到命令行解释器(shell)中。为什么能够执行呢?这部分我以windows来理解,比如输入cmd.exe,执行命令行程序。是由于PATH中包含了该cmd.exe的目

录,然后把目录和文件名拼接在一起,执行该程序。


0 0
原创粉丝点击