mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1293 字
4 分钟
技术内幕揭秘
2023-08-31

系列简介#

你是否曾经好奇:

  • 浏览器输入 URL 按下回车后,到底发生了什么?
  • 一条 SQL 语句是如何被数据库执行的?
  • Docker run 命令背后容器是如何启动的?
  • React 的 setState 如何触发界面更新?

本系列致力于揭示技术黑盒背后的秘密。我们不满足于”怎么用”,更追求”为什么这样”。每一篇文章都深入到底层原理,通过流程图、源码分析、时序图等方式,完整呈现技术内部的运行机制。

核心理念:知其然,更知其所以然。

学习路径#

第一阶段:浏览器与前端
├── 01 浏览器渲染原理
├── 02 JavaScript 引擎原理
├── 03 React 渲染流程
└── 04 Vue 响应式原理
第二阶段:网络与协议
├── 05 TCP 连接建立过程
├── 06 TLS 握手详解
└── 07 DNS 解析完整流程
第三阶段:数据库与存储
├── 08 MySQL 查询执行流程
├── 09 Redis 请求处理流程
└── 10 PostgreSQL 查询优化器
第四阶段:编程语言运行时
├── 11 Python 解释器原理
├── 12 Go 调度器原理
└── 13 Java JVM 运行机制
第五阶段:容器与云原生
├── 14 Docker 容器启动流程
├── 15 Kubernetes Pod 创建流程
└── 16 Linux 进程启动过程

系列文章#

浏览器与前端#

文章状态简介
浏览器渲染原理:从 URL 到页面已发布DNS、TCP、TLS、HTTP、解析、渲染全流程
JavaScript 引擎原理:V8 执行流程已发布词法分析、语法解析、字节码、JIT 编译
React 渲染流程:从 setState 到 DOM 更新已发布Fiber 架构、调度器、协调器、渲染器
Vue 响应式原理:从数据变化到视图更新已发布依赖收集、响应式代理、调度队列、异步更新

网络与协议#

文章状态简介
TCP 连接建立过程:三次握手深度解析已发布SYN、SYN-ACK、ACK、状态机、队列
TLS 握手详解:从明文到加密通道已发布ClientHello、证书验证、密钥交换、Finished
DNS 解析完整流程:从域名到 IP已发布递归查询、迭代查询、缓存、DNSSEC

数据库与存储#

文章状态简介
MySQL 查询执行流程:从 SQL 到结果集已发布连接器、分析器、优化器、执行器、存储引擎
Redis 请求处理流程:从命令到响应已发布事件循环、命令解析、执行、响应协议
PostgreSQL 查询优化器:如何选择最优执行计划已发布语法解析、语义分析、查询重写、计划生成

编程语言运行时#

文章状态简介
Python 解释器原理:CPython 执行流程已发布词法分析、语法树、字节码、虚拟机
Go 调度器原理:GMP 模型详解已发布G、M、P 关系、调度策略、抢占机制
Java JVM 运行机制:从 .class 到机器码已发布类加载、运行时数据区、GC、JIT

容器与云原生#

文章状态简介
Docker 容器启动流程:从镜像到运行已发布镜像加载、namespace、cgroup、联合挂载
Kubernetes Pod 创建流程:从 kubectl 到容器运行已发布API Server、Controller、Scheduler、Kubelet
Linux 进程启动过程:从 fork 到 exec已发布fork、exec、内存映射、文件描述符

核心方法论#

分析框架#

每一篇文章遵循统一的分析框架:

flowchart TB subgraph 输入 A[用户操作/触发条件] end subgraph 处理流程 B[入口点] --> C[核心组件] C --> D[关键决策点] D --> E[输出/结果] end subgraph 深入分析 F[源码追踪] --> G[数据结构] G --> H[算法实现] end A --> B E --> F

图解原则#

  • 流程图:展示完整执行流程
  • 时序图:展示组件间交互
  • 状态图:展示状态变迁
  • 架构图:展示系统结构

技术栈对照表#

层级技术内幕揭秘文章
前端React/Vue渲染流程、响应式原理
运行时V8/CPython/JVM引擎原理、解释器
网络TCP/TLS/DNS连接建立、握手过程
存储MySQL/Redis/PG查询执行、请求处理
容器Docker/K8s容器启动、Pod 创建
系统Linux进程启动、内存管理

前置知识#

不同文章有不同前置要求:

文章最低要求推荐基础
浏览器渲染HTTP 基础网络协议、HTML/CSS
JS 引擎JavaScript 语法编译原理基础
React/Vue框架使用经验前端工程化
TCP/TLS网络基础操作系统网络栈
MySQL/RedisSQL 基础数据结构、索引原理
Docker/K8s容器使用经验Linux 命名空间、cgroup

阅读建议#

按职业角色#

flowchart LR subgraph 前端开发者 A1[浏览器渲染] --> A2[JS 引擎] A2 --> A3[React/Vue] end subgraph 后端开发者 B1[MySQL 流程] --> B2[Redis 流程] B2 --> B3[TCP/TLS] end subgraph 运维工程师 C1[Docker 流程] --> C2[K8s 流程] C2 --> C3[Linux 进程] end subgraph 全栈工程师 D1[全部文章] end

按学习目的#

目的推荐文章
面试准备全部(高频面试题来源)
性能优化浏览器渲染、MySQL 流程、Redis 流程
架构设计K8s 流程、Docker 流程
调试排查全部(理解原理才能定位问题)

扩展阅读#

本系列与其他系列的关系:

系列关系交叉内容
Web 协议详解前置知识HTTP、TLS、DNS 协议细节
数据库系列补充深入索引、事务、优化器算法
分布式系统扩展应用分布式一致性、服务发现
Golang 系列语言深入Go 调度器、GC 原理

参考资源#

经典书籍

  • 《深入理解计算机系统》(CSAPP)
  • 《性能之巅》
  • 《Linux 内核设计与实现》
  • 《MySQL 技术内幕》
  • 《Redis 设计与实现》

源码仓库

技术博客

支持与分享

如果这篇文章对你有帮助,欢迎支持作者或分享给更多人

技术内幕揭秘
https://blog.souloss.com/posts/principles/principles-series-guide/
作者
Souloss
发布于
2023-08-31
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时