源码阅读

程序猿阿越2 天前
后端·kubernetes·源码阅读
从 StatefulSet 到容器挂载:CSI 源码走读以 StatefulSet → PVC → 动态 PV → Pod 调度 → Attach → Mount → 容器挂载 为主线,梳理CSI的实现方式。
嘎嘎风3 天前
gpt·llm·源码阅读
MiniMind 学习笔记之 25 Web UI 与 LLaMA-Factory:两条“不写代码”的路径上承〔24 · 社区生态:围绕一个项目长出来的森林〕。前面二十四篇,训练靠命令行,对话靠 eval_llm.py。但命令行对不熟悉的人不友好。这一篇讲两条“不写代码”的路径:MiniMind 自带的 Streamlit Web UI,让你在浏览器里和模型对话;LLaMA-Factory,让你用图形界面完成 SFT / DPO / PPO 的微调。两条路都基于同一个前提:模型已经转换成 HuggingFace 格式。
RobinXYuan4 天前
源码阅读·leveldb
【LevelDB 源码阅读】07 | MemTable 的骨架:SkipList上一篇结尾停在写路径的最后一站:DBImpl::Write 里,batch 落完 WAL 之后,InsertInto 把每条记录灌进 mem_——恢复流程的终点也是它,20400 条短链一条条插回的地方。这个所有写入的必经之地、库内存里唯一可变的数据结构,内部长什么样?为什么它选了跳表,而不是红黑树或者哈希表?
RobinXYuan8 天前
kafka·源码阅读
【Kafka 源码手记】04 客户端如何找到 Broker上一篇结尾留下了一条悬念:Producer 「查元数据缓存」查到的那些 Leader 位置,最初是从哪来的?bootstrap.servers 明明只写了一个地址,客户端怎么找齐了整个集群?
GeminiJM8 天前
rust·源码阅读·cargo·编程入门·codex
从 0 到 1 学 Codex 源码:Rust 基础(一)适合读者与阅读前提:本文主要面向写过 Java、Python 或其他语言、但从未接触 Rust 的读者。不需要提前了解 Cargo、所有权或 Rust 工程结构;遇到共同概念时,可以借助已有经验理解。
用户0942485680310 天前
redis·快应用·源码阅读
第1章:Redis 术语全景与单线程工作原理公司准备把一个日活百万的传统电商系统改造成"缓存优先"的高并发架构。产品需求文档里列了一长串功能:登录验证码要5分钟过期、商品详情要缓存加速、购物车要支持实时修改、积分排行榜要实时展示、附近门店要按距离排序、订单状态变更要异步通知下游系统。
用户0942485680312 天前
redis·快应用·源码阅读
Redis 实战修炼与原理进阶专栏大纲本专栏以 Redis 8.6.x 为主线,采用「业务痛点 → 三人剧本对话 → 代码实战 → 总结思考」的章节结构,从单机 Redis 入门、常用数据结构实战,到高并发缓存架构、分布式一致性、性能调优、可观测性,再深入源码、模块扩展与 SRE 落地。整体遵循“实战为主,理论为辅”的原则:每一章先从真实业务问题出发,再解释必要原理,最后用可运行的命令、代码、压测或故障演练完成闭环。
RobinXYuan12 天前
kafka·源码阅读
【Kafka 源码手记】02 Kafka 的核心哲学:Everything Is A Log上一篇结尾我留了三个问题:这一篇主要回答第三个问题。第三个问题答完,前两个问题也能得到一半答案:快,是因为 Log 的写路径从头到尾只有顺序追加,这一半放在本篇说;另一半(Page Cache 与 Zero Copy)和「凭什么敢留」(retention 怎么删)分别在后面存储引擎部分展开。所以本篇的任务就一个:把 Log 这个抽象本身搞清楚。
麦客奥德彪12 天前
agent·源码阅读
别把 Agent 写成一个大循环:读懂 DeepSeek Harness 的接口与运行时设计写一个能调用工具的 Agent,最初似乎并不复杂:模型提出工具调用,程序执行工具,再把结果交给模型。但随着系统开始支持网页界面、SDK、子 Agent、会话恢复、取消操作和插件卸载,这个循环很快就不再只是循环。
RobinXYuan14 天前
源码阅读·leveldb
【LevelDB 源码阅读】06 | WAL:日志的物理格式上一篇结尾留下了几个问题:log_->AddRecord 把 93 字节交出去之后,字节去了哪?一条 record 被切成 32KB 的 block 分片时发生了什么?写一半断电,恢复时的 CRC 检查和尾部截断,是怎么把“半个 batch”安全地丢掉的?以及 03 篇遗留的一个更早的问题:sync=false 时“进程被杀不丢数据、机器掉电可能丢数据”,这条边界的物理细节如何。
嘎嘎风15 天前
gpt·源码阅读
MiniMind 学习笔记之 21 训练细节:数据、分词器、断点续训上承〔20 · 实验性变体:扩散语言模型与线性注意力〕。前面二十篇,我们把 MiniMind 的模型架构、训练算法、对齐流程、多模态扩展,全部拆了一遍。但有一层东西一直没正面讲:让这套流程真正跑起来的工程细节。 数据怎么洗、分词器怎么训、DDP 怎么配、断点续训怎么恢复——这些不在模型的数学里,但缺了它们,模型跑不起来。这一篇补上这些“幕后”的事。
RobinXYuan15 天前
kafka·源码阅读
【Kafka 源码手记】01 从消息队列到 Event Streaming写这个系列之前,我觉着有必要先搞清楚一件事:Kafka 出现之前,世界是什么样的。2010 年 LinkedIn 着手做 Kafka 的时候,ActiveMQ 已经是 Apache 顶级项目,RabbitMQ 从 2007 年发布算起也已流行数年,两个都是久经考验的消息中间件,LinkedIn 内部也并非没有这类系统可用。一家公司明明有现成的消息中间件,还要再造一个,通常说明旧东西在某些场景下真的不好用了。
RobinXYuan16 天前
源码阅读·leveldb
【LevelDB 源码阅读】05 | WriteBatch:原子写的载体上一篇结尾留了一个黑盒:BuildBatchGroup 把八个线程的写请求拼成一个大 batch,一次落盘——这个“batch”究竟长什么样?每个成员怎么分到自己的序列号?为什么说它就是一次原子写?
云浪19 天前
后端·go·源码阅读
Go源码分析:搞懂 Go 是如何实现堆的如果你写过 JavaScript,可能见过类似这样的代码:比如实现一个定时任务队列、消息队列、优先级队列。
Android打工仔21 天前
android·kotlin·源码阅读
CoroutineScheduler 设计解析(上)—— 为什么 Dispatchers.IO 会创建更多线程?阅读源码版本:kotlinx.coroutines 1.10.x最近在阅读 Kotlin CoroutineScheduler 源码时,我产生了一个疑问。
嘎嘎风22 天前
架构·源码阅读
MiniMind 学习笔记之 04 注意力之外:位置、记忆、省显存、省时间、深加工上承〔03 · 自注意力:模型怎么“看懂”上下文?〕。上一篇把自注意力拆完了:Q、K、V 怎么来,注意力权重怎么算,多头怎么并行。但一个完整的 Transformer 块,不是只有注意力。注意力只是“让 token 互相看”的那一半。
嘎嘎风22 天前
算法·源码阅读
MiniMind 学习笔记之 07 模型怎么学会猜词(旋钮是怎么被拧动的)上承〔06 · 一张图、一百行:MiniMind 的骨架〕。上一篇那一百行伪代码,从头到尾只有 forward。模型能算,能出分数,但不会学。参数是随机初始化的,输出是乱码。这一篇补上另一半:backward。看看那 6400 万个旋钮,是怎么从随机数,一步一步被拧到有用的位置的。
嘎嘎风22 天前
github·源码阅读
MiniMind 学习笔记之 05 从 768 维到下一个 token上承〔04 · 注意力之外〕。前四篇把模型内部拆完了:文字进来变成向量,向量经过 8 层积木,每层做注意力、FFN、残差、归一化。但积木的输出还是 768 维的向量。模型怎么把这个向量变成下一个 token?这一篇只讲 MiniMind 实际用到的部分:输出层、Softmax、温度、Top-k、Top-p,以及生成循环。
RobinXYuan25 天前
源码阅读·leveldb
【LevelDB 源码阅读】03 | 打开一个数据库:DBImpl::Open 与恢复之前几章我们看到了写入一条数据后,LevelDB 目录下的一些文件:CURRENT、MANIFEST-000002、000003.log,还有一把 LOCK。然后我们的进程就推出了,如果我们再另起一个进程来读取这些文件,可这些文件是否可信,我们要想一个办法进行判断。
程序猿阿越1 个月前
后端·kubernetes·源码阅读
containerd如何拉取镜像之前看了 containerd如何创建Pod,其中创建 Sandbox / 业务容器前,kubelet 都会先 ImageStatus,镜像不存在则 PullImage。本章顺着这条线,把镜像从仓库拉到本地、解压成可挂载 rootfs、再给容器用的完整链路拆开。