前言
1. 为什么要写这本书
本书是《计算之道》丛书的第III 卷。前两卷对计算机底层原理和计算机操作系统相关知识进行了深入探索,并结合混沌树进行串联。本书在前两卷的基础上进行扩展,使大家掌握的底层知识落地。同时,本书也是对混沌学堂课程内容的提炼和总结。
计算机网络是互联网和分布式系统的基石,了解网络协议、通信模型和网络编程是从事网络开发和系统架构的关键要素。
C++语言是一种高性能的编程语言,广泛应用于系统级开发、游戏开发和嵌入式系统等领域,掌握C++语言的语法和特性对于提升开发效率和代码质量至关重要。
JVM 是Java 应用程序的核心,它负责解释和执行Java 字节码,并提供垃圾回收、内存管理和线程调度等功能,深入了解JVM 的工作原理和调优技巧有助于编写高效的Java应用程序。
本书旨在对这三个主题进行综合介绍,帮助读者掌握扎实的基础知识,并理解它们在实际应用中的作用。
其实在现实学习过程中,大家经常学习计算机底层知识原理,但这种知识在工作中使用频率不高,又经常忘记。一边学习,一边遗忘,已经成为学习计算机底层知识原理的常态。有没有一种方法可以避免这种状况发生?这就是黄俊老师的计算机混沌学习法—尝试用混沌知识树,将计算机底层知识原理进行梳理,通过推理、推论的方式,提高大家对底层知识的理解,直到彻底掌握,不再遗忘。
本书适合以下读者阅读:希望学习计算机网络、C++语言和JVM 基础知识的读者;需要深入了解网络编程的读者;在工作中遇到网络、C++语言或JVM 相关问题,希望系统学习和解决的读者;需要深入了解计算机底层知识的读者。
2. 背景知识
本书假设读者已具备一定的编程基础和计算机科学知识。
最好是已经阅读过《计算之道》第I 卷、第II 卷的读者,理解本书内容将更为轻松。
本书将详细讲解C++语言、计算机网络和JVM 的基础知识,并提供实例和案例来帮助读者理解和应用所学知识。
3. 如何阅读本书
本书按照C++语言、计算机网络和JVM 的顺序组织,每个主题包含多个章节,依次递进地介绍相关概念和技术。每个章节都以清晰的流程和总结开头,帮助读者理解和记忆所学内容。
读者可以根据自己的需求和兴趣选择阅读顺序。如果已经熟悉某个主题,可以跳过相应章节,直接阅读感兴趣的内容。
第1 章 C++语言的推理
在这一章中,你将了解从机器语言到汇编语言,再到C 语言的语言演进过程,以及这些语言出现的原因和存在的缺点。也将了解C++语言的出现如何解决人们对计算机软件的需求,面向对象和面向过程的思想差异。并将领略学习计算机底层知识的魅力和各个编程语言的共性。
第2 章 C++语言的特性和原理
在这一章中,介绍了C++语言特性的底层原理。同时总结了C 类语言存在的问题。你将了解如何设计一门新语言,知道Java 语言的出现是为了专注于业务需求的开发,你还将了解如何通过底层原理来学习不同的编程语言。
第3 章 计算机网络推理
在这一章中,介绍了计算机网络下三层,同时让读者明确知道什么是计算机网络协议,计算机网络究竟研究什么。我们使用混沌学习推理方法,避免读者陷入大量名词堆砌的记忆。
第4 章 传输协议原理
在这一章中,你将了解TCP 是一个无比复杂的协议,需要解决网络传输中的许多问题。这些问题不仅涉及技术层面,还需要避免漏洞,如果存在漏洞被黑客利用,将会带来巨大损失。你还将了解TCP 中很多解决方案可以在不同业务场景中被借鉴。关于TCP 这个协议的细节,推荐阅读《TCP/IP 详解 卷1:协议》。
第5 章 Linux 网络包处理源码分析
在这一章中,深入分析了Linux 网络接受数据包的全过程。在Linux 操作系统中,最复杂的模块就是网络模块。在这里,你将了解Linux 操作系统网络收包细节:涉及网卡驱动、网络子系统、协议栈,以及内核ksoftirqd 线程等内核组件之间的交互。
第6 章 应用层协议原理
在这一章中,你将了解最常见却又最容易忽视的HTTP 协议。从网络支付出发,了解HTTPS 如何保证交易安全。你还将了解直播所使用的核心技术。
第7 章 Java Hello World 底层推理
希望了解虚拟机,首先要了解真实的物理机。在这一章中,首先介绍了C 语言程序Hello World 在真实的物理机下是如何编译的,编译后的二进制格式ELF,以及Linux 是如何执行ELF 的过程,作为相关知识背景。基于这些相关知识背景,我们推理出JVM 的设计目的。
第8 章 Hotspot JVM 启动原理
在这一章里,你将了解Hotspot 的启动过程,以JavaMain()函数为突破点,开启JVM源码的阅读。你还将了解类加载器,从JVM 虚拟机的角度出发,介绍三层类加载器和双亲委派模型,为深入理解JVM 原理打好基础。结合构建混沌树主干和枝叶的方法,将所学知识进行关联。
4. 勘误和支持
由于本书不可避免地存在一些疏漏或不够准确之处,欢迎读者批评指正。
