csapp读书记录001

《深入理解计算机系统》

趁这几天在家,阅读并分析一下计算机圣经《深入理解计算机系统》,并整理一下读书笔记。

目前来说,对于一个程序员,不缺零零散散的知识点,网上相关的知识视频资料几乎可以称得上是海量。所以对于一个程序员来说并不缺知识,缺乏的是思想和整体的知识体系。

缺乏整体框架体系的情况下,学了就经常会忘,需要反复记忆学习,所以说作为一个合格的程序员应该学习的书籍就是CSAPP(深入理解计算机系统)

先从序开始看,序中介绍到本书贯穿整个计算机系统的基础课程。大多数课程从设计者的角度出发,而不是使用者。作为一个软件工程师只需要了解计算机系统的整体设计就行了。所以这部书适合学软件工程的程序员了解整个计算机的整体设计。

《计算机系统漫游》

计算机系统是由硬件和系统软件组成,它们共同工作来运行应用程序。

首先对于一个简单的helloworld程序,我们来看看当在系统上执行hello程序时,系统发生了什么以及为什么会这样。

本书通过跟踪hello的生命周期来开始对系统的学习。从它被程序员开始创建开始,到系统上运行,输出简单的消息,然后终止。

信息就是位和上下文

hello程序的生命周期是从一个源程序开始的,即程序员通过编辑器创建并保存的文本文件,文件名是hello.c。源程序实际上就是一个由值0和1组成的位,8位为一字节。每个字节表示程序中的某些文本字符。

不同的上下文对应的的编码不同,所得出的信息也不同。

一般来说都是使用ASCII码表示文本字符。

二进制、输入输出、控制器、运算器、存储器(冯诺依曼)

英文转换成二进制就是编码集

十进制数字转换成二进制就是普通的二进制的转换规则。

所以二进制可以很容易的表示英文和数字

ASCII编码集,26*2+10+其他字符>64

在不同的上下文中一个同样的字节序列,可能表示一个整数、浮点数、字符串或者机器指令

c语言起源(1、C语言与Unix操作系统关系密切 2、C语言小而简单 3、C语言是为实践目的设计的)

汇编代码=打孔机 010101(助记符)

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

gcc-o自动完成下列操作

hello.c

1、预处理()hello.i(库文件粘到程序文本中)

2、cc编译器 变成汇编语言 hello.s

3、汇编器 hello.o(二进制)可重定位的结构(需要依赖别的函数,但具体地址不知道,其实就是文件偏移)486页

4、链接器hello.o(二进制)和print.o一粘贴

目前看到40/775页

posted @ 2021-01-24 23:09  chyblogs  阅读(118)  评论(0)    收藏  举报