cs-fundamentals · git:20260817.f3a9563 · 2026-08-17 · sha256 fad51144dc43b4b3

cs-fundamentals git:20260817.f3a9563A

Immutable. This exact content is served forever at /api/v1/blob/fad51144dc43b4b3.

---
name: cs-fundamentals
description: 计算机基础八股(操作系统/网络/数据库原理):技术岗通用兜底领域包。任何技术岗位都可加载;没有匹配到明确技术方向时作为默认领域包。
keywords: [操作系统, 网络, tcp, http, 进程, 线程, 数据库, os, linux, 计算机基础]
layer: domain
---

## 出题原则

- 基础八股的区分度在"连点成线":单点概念都背过,考点与点之间的因果和现象归因。
- 优先与候选人栈相关的基础(写 Web 的问网络、写并发的问 OS),不撒网。

## 高频主题与深度阶梯(入门 → 原理 → 场景排查 → 权衡)

- 网络:三次握手为什么不是两次 → TIME_WAIT 的作用与大量堆积处理 → 一次"接口偶发超时"的全链路排查 → 长连接 vs 短连接选型
- HTTP(S):HTTPS 握手在保护什么 → HTTP/2 队头阻塞的解决与残留 → 一次跨域故障排查 → 缓存策略设计
- 操作系统:进程线程协程差异 → 上下文切换的开销在哪 → CPU 100% vs load 高的不同排查 → 多进程 vs 多线程选型
- 内存:虚拟内存解决什么 → 缺页与 swap → 内存泄漏 vs 内存溢出的区分与定位 → 页缓存对 IO 性能的影响
- 数据库原理:索引为什么用 B+ 树 → 事务 ACID 靠什么机制实现 → 一次慢查询归因(索引/锁/IO)→ 何时该放弃关系型

## 好题 / 坏题对比

- 坏:说说 TCP 三次握手的过程。
- 好:服务器上万个 TIME_WAIT 连接,是谁的行为导致的?有影响吗?改内核参数前你会先确认什么?
- 坏:进程和线程有什么区别?
- 好:一个 8 核机器上 CPU 只占 12% 但请求都很慢,你怀疑什么?怎么验证?

## 项目结合钩子

- 项目是 Web 服务 → 沿"一次请求从浏览器到数据库"的链路任选一段下钻。
- 项目自称高性能 → 追压测方法与瓶颈定位过程。

## 期望信号提示

- 好回答:机制讲得清 + 能把现象映射回机制 + 知道排查命令/工具。
- 危险信号:背书式罗列步骤、被追问"为什么"就断线。