另一个用 XMind 记录 CS 基础问题的地方,同样提供了 .xmind
源文件以及导出的 .pdf
文件,XMind 版本为「XMind 2020」。
在 2020 年时,曾花了约 2 个月的时间整理了第一份 XMind 知识库: ZeroMind。 之所以额外创建一个 Repo 干同样的事情,是因为一方面自己的审美发生了变化,另一方面则是对那些最重要但基础的问题有了更深刻地理解。
温故而知新,孔子诚不欺我。在整理基础知识点的过程中,对诸如 CFS-vruntime、POSIX 条件变量、TCP 和 epoll 等内容有了自己的理解,有一种恍然大悟的感觉。
之所以使用 XMind 来记录这些内容,是因为我非常喜欢《火星救援》里面的一句台词:
有时候,所有的情况都会对你不利。所有的坏事一起发生,你就可能会想,就是这样了,这就是我的终点了。面对这种情况,你要么接受,要么想办法解决,这就是一切的真谛。解决问题,你想各种办法,解决一个问题,然后接着解决下一个问题,循环往复,等你解决了足够多的问题,你就可以回家了。
也就是说,面对一个大问题时需要学会将其分解成一个一个的小问题,然后逐一地处理,即"分而治之"。下面是一些图片,可以帮助你更好地了解这个项目做了什么:
- 为什么 MySQL 使用 B+Tree?
- InnoDB 数据页结构
- 深入浅出 InnoDB Index
- InnoDB WAL
- InnoDB undo log 与 MVCC
- 全局锁、表级锁以及行锁(上)
- 全局锁、表级锁以及行锁(中)
- 全局锁、表级锁以及行锁(下)
- 主键的选择
- Redis 数据结构
- Redis 主从复制原理
- etcd 概述
- 信号
- 信号集与信号掩码
- 进程的创建
- 进程间通讯简介
- DAEMON
- 可靠数据传输协议——TCP
- TCP 拥塞控制
- socket 编程问题一览(01)
- socket 编程问题一览(02)
- epoll 原理剖析
- epoll_event
- HTTPS 握手过程
- Nginx 基本进程模型与核心数据结构
TODO
- Linux 进程、线程与调度
- 线程的创建与执行
- std::async 与 std::future
- 互斥量与 std::lock_guard、std::unique_lock
- 通知状态的改变——POSIX 条件变量
- 通知状态的改变——C++ 条件变量
- POSIX 信号量