本书用一系列有趣的小故事讲述计算机底层相关的技术知识。
• 第1章:聚焦计算机中最核心的CPU,从最基础的门电路开始,到基本的指令执行过程,最后到CPU的一些高级技术。内容涵盖缓存、原子操作、指令流水线、分支预测、乱序执行、超线程、SIMD、 内存管理、TLB等。
• 第2章:主要讲述计算机中的存储设施,包括CPU中的缓存,内存、机械硬盘三者数据存储的原理,以及硬盘上的数据管理组织的软件——文件系统基本模型。
• 第3章:主要讲述计算机中的I/O和数据传输。内容涵盖总线系统、中断机制、DMA技术、零拷贝技术。重点关注网卡相关的数据传输,包括网卡的基本工作机制,网卡接收数据包后的处理,最后介绍一种时下流行的数据包处理技术——DPDK。
• 第4章:前面三章主要是在硬件层面,这一章开始介绍软件。本章聚焦计算机中最重要的软件——操作系统。本书默认以Linux为参考,内容涵盖操作系统的一些基础知识,包括进程、线程、系统调用、异常处理、信号、锁、权限管理,最后介绍一个时下流行的容器技术Docker的原理。
• 第5章:主要涉及系统编程中和操作系统紧密相关的一些技术点。包括进程的创建过程、线程栈、进程间通信、I/O多路复用、内存映射文件、协程,最后简单介绍调试器GDB和可执行文件ELF。
• 第6章:本章的主题是安全。网络安全涉及方方面面,本章挑选了和计算机系统底层相关的一些安全技术,通过故事去感受计算机攻击的原理,包含栈溢出攻击、整数溢出攻击、DDoS攻击、TCP会话劫持、HTTPS原理,还有前几年大火的CPU漏洞——熔断与幽灵攻击原理等。
轩辕之风(@編程技术宇宙)(趣话计算机底层技术)
轩辕之风(@编程技术宇宙),前百度、360、奇安信高级安全研发工程师,专注网络安全、流量分析、大数据处理领域的软件研发。