CSAPP《深入理解计算系统》,我的学习心得 - CSDN博客
文章推薦指數: 80 %
CSAPP 涵盖的内容非常多,有计算机组成+ 操作系统+ 汇编+ C语言+ Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引 ...
CSAPP《深入理解计算系统》,我的学习心得
小林coding
已于 2022-05-3017:34:53 修改
30350
收藏
263
分类专栏:
程序人生
文章标签:
算法
网络
java
编程语言
于 2021-06-2515:26:42 首次发布
版权声明:本文为博主原创文章,遵循CC4.0BY版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34827674/article/details/118221739
版权
程序人生
专栏收录该内容
12篇文章
41订阅
订阅专栏
大家好,我是小林。
今天跟大家聊聊《深入理解计算系统》,这本书的英文全称叫ComputerSystem:Aprogramerperspective
英文名翻译过来是「程序员视角下的计算机系统」,也被简称为CSAPP。
可能大家以为这本书是讲操作系统的,我最开始也以为是这样。
后面当我开始啃这本书的时候,发现我大错特错,它远不止我想的那样。
这本书是从程序员的角度学习计算机系统是如何工作的,通过描述程序是如何映射到计算机系统上,程序是如何执行的,以及程序效率低下的原因,这样的方式可以让大家能更好的知道「程序与计算机系统」的关系。
CSAPP涵盖的内容非常多,有计算机组成+操作系统+汇编+C语言+Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引书。
第一章「计算机系统漫游」内容,就很好的把程序与计算机系统有哪些关系都阐述清楚了,一下就知道了计算机系统的整个脉络,把一些零散的知识点都串了起来。
在国内已经有很多高校开始采用这本书作为大一或大二的教材了,采用用这本书作为教材的学校,真心给你们点个赞。
因为这本书其实可以给计算机专业的同学指明了一个很好的计算机基础学习方向,这样后续在单独学计算机组成、操作系统等这些独立的科学的时候,会更清楚知道它们在计算机里处在的位置和作用。
CSAPP主要包括以下内容:
信息表示(如何使用二进制表示整型、浮点数等);C和汇编语言的学习(通过汇编语言更深入地理解C语言是什么);计算机体系结构(存储层次结构、局部性原理、处理器体系结构);编译链接(C语言如何从文本变成可执行文件、静态链接、动态链接);操作系统的使用(异常控制流、虚拟内存、多个系统调用介绍);网络及并发编程(并发的基本概念、网络相关的系统调用的介绍)。
那学这本书需要什么基础呢?
这本书的作者已经在开头跟大家说清楚了,只需要有C语言基础,即使你没学过汇编、计算机组成、操作系统也是可以的。
前面我也提到CSAPP是一本程序员修炼内功的指引书,为什么说是指引书呢?
CSAPP是计算机原理+操作系统+Linux系统+汇编的一个大杂烩,它不是深入理解汇编、深入理解操作系统、深入理解计算机原理,所以它不会在某个知识点给你涉及很深,比如:
虽然讲了虚拟内存,但是并没有说各种页面置换算法,这部分内容得我们去看操作系统相关的书;虽然讲了Cache,但是并没有说缓存一致性协议,这部分内容得我们去看计算机组成相关的书;虽然说了链接,但是讲的内容比较表面,要想深入这块内容还是得看看《程序员的自我修养》这本书;虽然说了Linux系统的I/0和网络编程,但是只是说了几个简单案例,要想深入理解这些内容还得看《APUE》和《UNP》这两本;没有提及操作系统中的文件系统、调度算法等。
但是CSAPP会给我们建立一个计算机系统的体系,好让我们在后面对体系里的每一个支点往下深入。
读了这本书,你后面在写代码的时候,会有不一样的视角,你会开始思考代码的底层原理,而不是把计算机系统当作一个黑盒子,跑完代码就完事的那种想法。
当然,单纯看书会很乏味,我们可以结合视频一起学。
这本书的视频课程是国外老师录制的,但是在b站已经有好人帮我们做了中文字幕,看了这视频,相当于在国外上了一门计算机课的感觉。
B站地址:CSAPP视频课
如果你是在校生,有了一定C语言基础后,非常建议你就开始看这本书,有精力也可以做做CSAPP的lab。
越早开始看,你的收益就越大,因为当计算机体系搭建起来后,你后面再深入每一个课程的时候,你会发现学起来会比较轻松些。
对于已经工作了,但是计算机系统没有一个清晰认识的读者,也可以从这本书开始一点一点学起来,这本书是很厚,但是并不一定要把书完完看完,每个章节的知识点还是比较独立的,有关硬件的章节我们可以选择跳过。
最后说件事情。
曾经我也苦恼于那些晦涩难弄的计算机基础知识,但在我啃了一本又一本的书,看了一个又一个的视频后,终于对这些“家伙”有了认识。
我想着,这世界上肯定有一些朋友也跟我有一样的苦恼,为此下决心,用图解+通熟易懂的讲解来帮助大家理解,利用工作之余,坚持输出图解文章两年之久,我的文章都汇总到了网站:https://xiaolincoding.com
网站内容共1000张图+50万字,网站宗旨让天下没有难懂的八股文!(口嗨一下,大家不要当真),网站地址:https://xiaolincoding.com。
希望图解网站成为你们上班摸鱼必备网站哈哈!
小林coding
关注
关注
121
点赞
踩
263
收藏
打赏
36
评论
扫一扫,分享内容
点击复制链接
专栏目录
看完CSAPP,我人麻了
a1472750149的博客
10-27
5361
最近几个周末去图书馆刷CSAPP完全停不下来啊,这种看不懂却还是强忍着痛苦硬逼着自己去看的感觉,真让我着迷。
这本书从真正意义上让我体会到了什么叫做看书五分钟,休息俩小时。
不过大家可千万别学我,我相信在坐的各位绝对比我牛批,为什么?因为后面我给你推荐了一款神器,那么首先我们先来介绍一下这本书。
这本书总共分成十二个章节,我给你绘制了一个思维导图,比较简单明了。
第一章是提纲挈领性质的一章,从一个helloworld程序来引出C、引出UNIX、Linux,引出C.
CSAPP英文版
04-13
CSAPP英文版pdf
ATourofComputerSystems1
1.1InformationIsBits+Context3
1.2ProgramsAreTranslatedbyOtherProgramsintoDifferentForms4
1.3ItPaystoUnderstandHowCompilationSystemsWork6
1.4ProcessorsReadandInterpretInstructionsStoredinMemory7
1.4.1HardwareOrganizationofaSystem7
1.4.2RunningthehelloProgram10
1.5CachesMatter12
1.6StorageDevicesFormaHierarchy13
1.7TheOperatingSystemManagestheHardware14
1.7.1Processes16
1.7.2Threads17
1.7.3VirtualMemory17
1.7.4Files19
1.8SystemsCommunicatewithOtherSystemsUsingNetworks20
1.9ImportantThemes21
1.9.1ConcurrencyandParallelism21
1.9.2TheImportanceofAbstractionsinComputerSystems24
1.10Summary25
BibliographicNotes26
评论 36
您还未登录,请先
登录
后发表或查看评论
CSAPP:深入理解计算机系统概述(各章节重点概述)
最新发布
song_shaoze的博客
05-24
116
终于“草草”阅读完了CSAPP,第一次读完,主要目标是建立起知识框架,没有在细节上进行过多的深追,主要目标是构建起知识网络,为后续细节学习打下基础,本文先进行概述,描述各章的主要思想与重点内容。
第一章(计算机系统漫游)
可以说是整本书的一个缩影,很多国外的教材都采用这种方式,以简单的例子来给读者呈现整书的思想。
该章节主要描述了一个简单的程序是如何运行起来的,这一章也提到了高速缓存、进程线程、虚拟内存、网络通信等都会在后续章节进行细讲。
第二章(信息的表示与处理)
这一章节主要讲的是数据的底层存储格式与基
CSAPP-深入理解计算机系统
05-26
CSAPP并发编程——深入理解计算机系统
Eternitykc的博客
06-01
308
12.3基于线程的并发编程
到目前为止,我们已经看到了两种创建并发逻辑流的方法。
在第一种方法中,我们为每个流使用了单独的进程。
内核会自动调度每个进程.而每个进程有它自己的私有地址空间,这使得流共享数据很困难。
在第二种方法中,我们创建自己的逻辑流,并利用I/O多路复用来显式地调度流。
因为只有一个进程,所有的流共享整个地址空间。
本节介绍第三种方法——基于线程,它是这两种方法的混合。
线程(thread)就是运行在进程上下文中的逻辑流。
在本书里迄今为止,程序都是由每个进程中一个线程组成的。
但是现代系统
深入理解计算机系统(CSAPP)含lab详解完结
hxhxhxhxx的博客
10-18
3451
深入理解计算机操作系统-第一章
1.1信息就是位+上下文
#include
hello.c的表示方法说明了一个基本思想∶系统中所有的信息——包括磁盘文件、内存中的程序、内存中存放的用户数据以及网络上传送的数据
CSAPP学习系列:什么是CSAPP
weixin_36349662的博客
10-09
1万+
CSAPP全称ComputerSystemsAProgrammer'sperspective,国内通常的书名翻译是《深入理解计算机系统》
《深入理解计算机系统》CSAPP入坑推荐
gwj1139177410的博客
11-04
1163
1、CSAPP是什么
CSAPP是什么?
CSAPP是一本书,全称ComputerSystemsAProgrammer’sperspective,国内通常的书名翻译是《深入理解计算机系统》
电子在线版本可以在github上找到:
https://hansimov.gitbook.io/csapp/
https://github.com/Hansimov/csapp
CSAPP的来源?
这本书是CMU的计算机导论教材,是曾经的CMU计算机系主任编写的。
配套的课程可以再github和bili
CSAPP-----总结
一个人的学习和碎碎念
03-08
1万+
CSAPP是操作系统方面的圣经,一共分为三大部分,共12个章节。
第一个章节是简单的介绍了计算机系统,第一章大致浏览可以了解到很多关于计算机的基本知识。
接下来分为三大部分。
第一部分是程序的结构和执行,这一部分主要讲了信息的表达和处理、程序的机器级表示、处理器的体系结构、优化程序性能等,这一部分其实比较偏向于硬件和底层,如果有时间这一部分应该好好看,如果只是想了解操...
CSAPP深入理解计算机系统笔记
qq_41230365的博客
04-26
7169
csapp的学习从2019.3.18开始。
从05.10-08.01这几个月一直工作,重心转去学了点软件工程和面向对象的东西,中断了这部分的学习。
从08.01重新继续这部分的学习,但平时工作忙,只能挤出很少的时间。
前言:
如果是第一次看csapp这本书,建议先不要看,直接去看上交软院的课程主页,按照上面的课件学习。
推荐一个个人博客“不周山之读薄CSAPP”,也可以按这个博客学习。
这本书的必...
csapp学习
不舍的猫的博客
03-02
583
文章目录shihsi
shihsi
CSAPP学习总结
fsrstydt的博客
07-06
375
CSAPP旨在阐述计算机系统的核心概念——为后续操作系统、编译原理、网络编程的深入学习作了很好的引入
CSAPP(深入理解计算机系统)
小白的博客
10-19
1万+
CSAPPMIPS学习笔记
哈工大CSAPP大作业
Linsani的博客
06-23
222
计算机系统
大作业
题目程序人生-Hello’sP2P
专业计算学部
学 号1190202128
班 级103002
学生林搏海
指导教师郑贵滨...
读完了csapp(中文名:深入理解计算机系统)
sr_srr的博客
01-21
1851
上个星期终于把csapp看完了。
我买的是中文版的,因为除了貌似评价不错以外,由于涉及到些自己不了解的底层东西,怕是看英文会云里雾里。
现在看来,大概不能算是个优点,但是的确能够加快我的看书速度,否则一星期还真不大可能把这书搞定。
对csapp慕名已久,主要在于据说这本书尽量的做到相对实用,不去讲那些和实际编程没多大关系的计算机原理(毕竟是著名计算机院校里面最偏软件的cmu的作品),重点非常得当
CSAPP(一)
咕嘟咕嘟
05-21
1974
简介CSAPP全名是《深入理解计算机系统》,是CMU的教材,也被很多国内外著名的大学选用作教材,我们的408考研使用的《计算机组成原理》其中的一篇参考书目就是经典的CSAPP。
其中涉及到计算机系统结构、操作系统、编译器、网络、并发编程方面的知识,并且书中的讲解详细且清晰,循序渐进的学习非常有利于从programmer的视角理解计算机的工作原理,因此特开一版记录我自己的心得,不过毕竟刚而且现在力争把书
csapp操作系统
weixin_45861496的博客
01-15
1654
应用程序与硬件的关系
从上一章讲起,无论是shell程序还是hello程序都没有直接访问键盘,显示器,磁盘这些硬件设备,真正操纵硬件的是操作系统,它是应用程序和硬件的中间层,所有的应用程序对硬件的操作必须通过操作系统来完成,如下图所示,这样设计有两个主要目的:
1.防止硬件被失控的应用程序滥用;
2.操作系统提供统一的机制来控制这些复杂的底层硬件。
操作系统
为了实现上述功能,操作系统引入了几个抽象的概念:
就是说,
1.文件是对IO设备的抽象
2.虚拟内存是对内存和磁盘IO的抽象
3.进程是对处理器
CSAPP(原书第二版)
11-14
CSAPP(深入理解计算机系统)作者RandalE.BryantDavidR.O'Hallaron
计算机组成原理-CSAPP
Nick_cloud的博客
04-23
655
CSAPP第一章计算机系统漫游1.1信息是位+上下文1.2程序被其他程序翻译成不同格式1.3了解编译系统1.4处理器读解释存储在内存中的指令1.5高速缓存至关重要1.6存储设备形成层次结构1.7操作系统管理硬件1.8系统之间利用网络通信(非408)1.9主要概念第二章信息的表示和处理2.1信息存储2.2整数表示
第一章计算机系统漫游
1.1信息是位+上下文
信息是位+上下文,例如helloworld,程序的生命周期是从一个源程序(源文件)开始的,即程序员通过编辑器创建
CSAPP:CacheLab
热门推荐
未选之路
07-13
3万+
cacheLab
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:博客之星2020
设计师:CSDN官方博客
返回首页
小林coding
CSDN认证博客专家
CSDN认证企业博客
码龄6年
网络领域优质创作者
159
原创
1860
周排名
229
总排名
126万+
访问
等级
2万+
积分
5万+
粉丝
1万+
获赞
4020
评论
3万+
收藏
私信
关注
热门文章
小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend.....
244818
数据结构,计算机网络,数据库,计算机组成原理,操作系统有哪些好的网课值得推荐?
58221
一口气搞懂「文件系统」,就靠这25张图了
43821
有什么优质的计算机专业书籍?操作系统、计算机网络、计算机组成、数据结构、数据库.....
35797
20张图揭开「内存管理」的迷雾,瞬间豁然开朗
31356
分类专栏
图解Redis
14篇
图解计算机网络
38篇
图解MySQL
14篇
图解操作系统
29篇
程序人生
12篇
学习路线
7篇
Linux性能调优
3篇
sequoiadb
2篇
Redis
1篇
C++基础知识
15篇
数据结构与算法
1篇
快速入门Shell编程
9篇
Linux
11篇
Shell
11篇
FFmpeg
1篇
C/C++
19篇
最新评论
如何理解是TCP面向字节流协议?
达不达闻西:
通俗易懂,写的非常好~~~~
小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend.....
m0_72858340:
五年级,自学Java,桌面应用精通
面试官:MySQL是怎么加锁的?
qq_40183541:
非唯一索引等值查询的值不存在时,例子举得是whereb=5,确定next-keylock的范围是(8,16],不是{4,8]吗?还是说这里b=5写错了
小学六年级的读者,自学计算机,会爬虫,搞崩过学校网站,还有Girlfriend.....
weixin_73038431:
关键我在他桌面上看见的那个紫色的小玩意。
。
。
是什么?干啥用的?
聊聊索引失效?失效的原因是什么?
L.S.Adam:
不错,很好
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Redis大key要如何处理?
服务端没有listen,客户端发起连接建立,会发生什么?
如何用Redis实现分布式锁的?
2022
08月
2篇
07月
4篇
06月
4篇
05月
5篇
04月
6篇
03月
15篇
02月
2篇
01月
5篇
2021年49篇
2020年37篇
2019年30篇
目录
目录
分类专栏
图解Redis
14篇
图解计算机网络
38篇
图解MySQL
14篇
图解操作系统
29篇
程序人生
12篇
学习路线
7篇
Linux性能调优
3篇
sequoiadb
2篇
Redis
1篇
C++基础知识
15篇
数据结构与算法
1篇
快速入门Shell编程
9篇
Linux
11篇
Shell
11篇
FFmpeg
1篇
C/C++
19篇
目录
评论 36
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
小林coding
交个朋友
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1如何阅读《深入理解计算机系统》这本书? - 知乎
也就是csapp。那它到底是一本什么样的书那。我们先来看它的英文名《ComputerSystem:A programer perspective》翻译过来就是程序员视角下的计算机系统。因此这本书...
- 2第1 章重點提示 - HackMD
CS:APP3e 全名為Computer Systems: A Programmer's Perspective,是CMU 的計算機系統概論的教材(難度相當於台灣的大學研究所),該書的簡體中文翻...
- 3CSAPP《深入理解计算系统》,我的学习心得 - CSDN博客
CSAPP 涵盖的内容非常多,有计算机组成+ 操作系统+ 汇编+ C语言+ Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引 ...
- 4本电子书信息 - GitHub
... GitHub - Hansimov/csapp: 个人整理的《深入理解计算机系统》中文电子版(原书第3 版)与实验材料:https://hansimov.gitbook.io/csapp/
- 5CMU 15-213: CSAPP - CS自学指南
CMU CS15213: CSAPP. 课程简介. 所属大学:CMU; 先修要求:CS61A, CS61B; 编程语言:C; 课程难度: ; 预计学时:150 小时.