目录

  • 0x00 -- 前言
  • 0x01 -- 如何阅读此书
  • 0x02 -- 概述
  • 0x03 -- 本书起源

本专栏为个人 CSAPP 读书笔记,如有兴趣请购买正版书籍。
狗东飞机票
豆瓣书评


0x00 – 前言

CSAPP,汉语译为《深入理解计算机系统》,个人觉得少了直译的一点点意思。
英文名《Computer Systems: A Programmer’s Perspective》(计算机系统:程序员的视角)

前言
我们的目的是解释所有计算机系统的本质概念,并想你展示这些概念是如何实实在在地影响应用程序的正确性、性能和实用性的。其他的系统类书籍都是从构建者的角度来写的,讲述如何实现硬件或系统软件,包括操作系统、编译器和网络接口。而本书是从程序员的角度来写的,讲述应用程序如何能够利用系统知识来编写出更好的程序。当然,学习一个计算机系统应该做些什么,是学习如何构建一个计算机系统的很好的出发点,所以,对于希望继续学习系统软硬件实现的人来说,本书也是一本很有价值的介绍性读物。大多数系统书籍还倾向于终点关注系统的某一个方面,比如:硬件架构、操作系统、编译器或者网络。本书则以程序员的视角统一覆盖了上述所有方面的内容。
⬇️
如果你研究和领会了这本书里的概念,你将开始吃横位极少数的“牛人”,这些“牛人”知道事情是如何运作的 ,也知道当事情出现故障时如何修复。你写的程序将能够更好的利用操作系统和系统软件提供的功能,对各种操作条件和运行时参数都能正确操作,运行起来更快,并能够避免出现使用程序容易受到网络攻击的缺陷。同时,你要做好更深入探究的准备,研究像编译器、计算机体系结构、操作系统、嵌入式系统、网络互联和网络安全这样的高级题目。


0x01 – 如何阅读此书

我们相信学习系统的唯一方法就是做(do)系统,即在真正的系统上解决具体的问题,或是便携和运行程序。


0x02 – 概述

  • 第一章:计算机系统漫游。通过简单程序的生命周期,介绍计算机系统的主要概念和主题。
  • 第二章:信息的表示和处理。重点描述对程序员有影响的无符号数和数的补码表示的特性。
  • 第三章:程序的机器级表示。如何阅读由C编译器生成的 x86-64机器代码。
  • 第四章:处理器体系结构。基本的组合时许逻辑元素。
  • 第五章:优化程序性能。让程序猿通过编译器能够生成更有效的机器代码来学习编写C代码。
  • 第六章:存储器层次结构。由一个不同容量、造价和访问时间的存储设备组成的层次结构。
  • 第七章:链接。动态和静态链接,主要概念有重定位的和可执行的目标文件、符号解析、重定位、静态库、共享目标哭、位置无关代码,以及库打桩。
  • 第八章:异常控制流。从底层的硬件异常和中断,道并发进程的上下文切换等。
  • 第九章:虚拟内存。加强了这样一个概念,虚拟内存空间只是一个字节数组,程序可以把它划分成不同的存储单元。帮助理解程序中包含的存储泄漏和非法指针引用等内存饮用错误时的后果。
  • 第10章:系统级I/O。Unix I/O 的基本概念,如文件和描述符。
  • 第11章:网络编程。有趣的I/O设备,将前面很多内容联系在一起。
  • 第12章:并发编程。对大多数服务器来说,并发很关键,可以使程序在多核处理器上能执行的更快。

0x03 – 本书起源

起源1988年,卡内基-梅隆(CMU)大爷开设的一门编号为15-213的介绍性课程:计算机系统导论(Introduction to Computer System,ICS)。

这本书在国外还是很多课程的前置技能–戳我


2021年10月8日

0x00 -- CSAPP -- 概览相关推荐

  1. 【Flask-RESTPlus系列】Part2:响应编组

    0x00 内容概览 响应编组 基本使用 重命名属性 默认值 自定义字段及多值情况 Url及其他具体字段 复杂结构 列表字段 嵌套字段 api.model()工厂 clone实现复制 api.inher ...

  2. 【更新1.0:PoC发布】CVE-2020-1350: Windows DNS Server蠕虫级远程代码执行漏洞通告

    0x00 更新概览 2020年07月16日,360CERT监测到 FSecureLabs 发布了 PoC,可造成拒绝服务影响.本次更新标识该漏洞极易可能在短时间内出现大规模攻击态势. 具体更新详情可参 ...

  3. shell不允许输入空字符_Linux Cygwin知识库(一):一文搞清控制台、终端、shell概念...

    本文共6100余字,预计阅读时间16分钟,本文知乎连接:Linux Cygwin知识库(一):一文搞清控制台.终端.shell概念,本文同步发布于微信公众号(伪码人). 关注账号学习了解更多Cygwi ...

  4. STM32 HAL 驱动SPI总线2.13寸电子纸墨水屏

    STM32 HAL 驱动SPI总线2.13寸电子纸墨水屏 电子纸墨水屏具有断电界面不失和低反光度的护眼效果.QYEG0213RWS800是2.13寸黑白红三色墨水屏,分辨率为250*122. STM3 ...

  5. CSAPP:Attack lab

    关注公号[逆向通信猿]更精彩!!! 原文地址:https://www.jianshu.com/p/db731ca57342 本文介绍的是CSAPP书籍中的第三个lab: Attack lab.通过这个 ...

  6. CSAPP第89章家庭作业(部分)

    画出进程图: 原则如下: (1) 遇到fork函数就分支,每个水平的箭头对应于从 左到右执行指令的进程,而每个垂直的箭头对应于 fork 函数的执行 (2) 分支的时候专注于父进程执行完,再处理另一个 ...

  7. CSAPP 3e Attack lab

    总结一下CSAPP第三版的各个lab. 这里介绍的是Attack lab,主要考察code-injection.return-oriented-programming攻击的理解,和gdb,objdum ...

  8. 深入理解计算机系统(CSAPP)含lab详解 完结

    文章目录 深入理解计算机操作系统-第一章 1.1 信息就是位 + 上下文 1.2 程序被其他程序翻译成不同的格式 1.3 了解编译系统如何工作是大有益处的 1.4 处理器读并解释储存在内存中的指令 1 ...

  9. CMU 15-213 CSAPP (Ch5~Ch7)

    CMU 15-213 CSAPP (Ch1~Ch3) CMU 15-213 CSAPP (Ch5~Ch7) CMU 15-213 CSAPP (Ch8) CMU 15-213 CSAPP (Ch9) ...

最新文章

  1. 【381天】我爱刷题系列140(2018.02.21)
  2. php ob静态缓存
  3. (新鲜出炉)二本,两年经验,阿里P6面经
  4. Apollo进阶课程㉚丨Apollo ROS背景介绍
  5. haproxy+keepalived实现负载均衡及高可用
  6. activemq 重启后java程序_ActiveMQ持久化机制代码实例
  7. Kafka详解与总结(七)-Kafka producer拦截器(interceptor)
  8. Jenkins实现持续集成 上传远程服务器war 并执行sh脚本重启
  9. JAVA 编程 练习题
  10. 移动通信原理中信道的分类
  11. 苹果4s怎么越狱_unc0ver 越狱工具来袭,免电脑操作,支持 A7-A12,支持iOS11~iOS12.4稳定越狱...
  12. windows防火墙出站规则只允许访问指定域名ip,其他出站ip全部阻止的方法
  13. 数据脱敏分类及常用方案
  14. ORACLE 8023学习总结
  15. 阿里云机器的JVM内存调优经历(菜鸟必看,大神请绕道)
  16. Chrome前端插件
  17. 【CSS】如何设置行距、段落间距、缩进格式
  18. 香港主机CDN加速,让您的网站速度飙升
  19. Relief特征提取算法实战
  20. mysql数据库管理-2019整理

热门文章

  1. 优秀简历怎么写 投递 Tips
  2. Java基础学了三年,只会一个Hello World....
  3. 2009中国软件出口(服务外包)排行榜
  4. 汉字转拼音工具类pinyin4j
  5. 2017年热门的9大技术领域
  6. Python收集视频,做自己喜欢的壁纸,不要误会我的用意
  7. 实战项目【7】MEMS惯性传感器的精度参数和单位换算
  8. Flutter 实现登录页
  9. git版本时光穿梭试用
  10. python爬取颤音_终于知道尾音发声的处理技巧