2026-06-20 | network | #wireguard #vpn #noise-protocol #kernel #chacha20-poly1305 #curve25519 #cryptokey-routing #secure-channel #netlink
WireGuard 用不到 4000 行内核代码替代了 IPSec/IKE 数十万行的协议栈——这不是少写功能,而是用固定密码学原语、固定握手模式和 cryptokey routing 这三个设计决定,换掉了证书体系、协商机和 SPD/SAD 分离。本文钻进源码和协议握手过程,逐层拆解 cryptokey routing 的双向执行、Noise IKpsk2 的 1.5 RTT 握手(含四次 ECDH 的安全属性贡献)、内核多核队列架构、timer 状态机、cookie DoS 防御和三密钥对轮换。
2026-07-19 | network · security | #wireguard #vpn #noise-protocol #cryptokey-routing #curve25519 #chacha20-poly1305 #kernel #ndss
从 Donenfeld NDSS 2017 的设计哲学出发,拆解 Noise IKpsk2、内核数据路径、运维实践与形式化验证争论——把 WireGuard 从「好用的 VPN」讲成可核对的协议与系统。
2026-06-28 | linux · storage | #fsync #writeback #errseq #ext4 #xfs #postgresql #data-integrity #kernel
fsync() 返回 EIO 后再调一次为什么会成功?为什么这反而是灾难?从 2018 fsyncgate 到 Linux errseq_t,再到本机内核 6.6 上用 dm-error 单块故障注入的实测,讲清 writeback 失败时脏页被标记 clean、数据静默丢失的真相,以及 PostgreSQL 为什么选择 PANIC。
2026-06-26 | gpu · architecture | #cuda #gpu #kernel #cublas #cudnn #operator #ai-stack #ptx #sass
从框架一行 matmul 到 PTX/SASS,拆开 AI 计算栈的分层:框架算子、算子库、手写 kernel、编译器生成。回答工程师什么时候才需要自己写或调 kernel,以及本系列的实验环境与方法。
2026-06-27 | gpu · architecture | #cuda #kernel #grid-stride #syncthreads #launch-config #block-size #indexing
从向量加法到归一化,讲清 CUDA kernel 的结构:全局索引计算、grid-stride loop、__syncthreads 同步、launch 配置选择与错误检查。实测 block 大小对带宽的影响,给出安全默认值。
2026-06-26 | gpu · architecture | #cuda #gpu #kernel #tensor-core #cutlass #triton #flash-attention #gemm #nsight #roofline #hpc
从 GPU 执行模型与内存层次出发,系统讲解如何写出并调优高性能 CUDA 算子:访存合并、occupancy、Roofline、Nsight 调优,reduction/GEMM/Tensor Core/FlashAttention 核心算子实现,以及 Triton、CUTLASS、kernel fusion 与算子库工程。
2026-06-18 | architecture · observability | #kernel #ftrace #kprobe #uprobe #tracepoint #bpftrace #perf #ebpf #linux #tracing #debugfs
当用户态观测工具无法定位问题时,深入 Linux 内核追踪层。拆解 ftrace、tracepoint、kprobe、uprobe、bpftrace 的适用场景、WSL/生产复现步骤、安全边界,以及与 eBPF 全景和 linux-net 系列的阅读边界。
2026-06-17 | os · security | #freebsd #openbsd #bsd #kernel #zfs #pledge #security #operating-system #comparison
FreeBSD 和 OpenBSD 从同一个 BSD 根分出两条相反的路径:一个追求通用性能与广泛生态,一个追求安全正确性与代码洁癖。本文从安全模型、文件系统(ZFS vs FFS)、网络栈(pf vs pf 正统)、虚拟化(jail/bhyve vs vmm)、社区治理、包管理、硬件支持到生产案例做逐项对比,给出选型框架和不该选 BSD 的典型场景。
2026-04-22 | architecture · opensource | #opensource #license #GPL #GPLv2 #GPLv3 #LGPL #Linux #Tivoization #copyleft #kernel #compliance
深入解析 GPLv2 到 GPLv3 的条款变化、Tivoization 反规避与 DRM 条款、专利终止条款;LGPL 链接例外的工程边界;以及 Linus Torvalds 拒绝升级到 v3 的真实原因与嵌入式生态影响。包含路由器厂商、国内 Android 设备的 GPL 合规真实案例。
2025-07-25 | linux · networking | #kernel #tuning #sysctl #performance #NUMA #RSS #interrupt-affinity #benchmark #iperf3 #netperf #tcp #udp
系统化的 Linux 内核网络调优方法论:从基准测试建立性能基线,到 sysctl 参数与内核数据结构的对应关系,再到中断亲和性、NUMA 拓扑、ring buffer、qdisc 的逐层调优,最终通过 A/B 对比验证生产效果。
2025-07-24 | linux · networking | #kernel #kfree_skb #drop_monitor #drop_reason #dropwatch #perf #bpftrace #packet-loss #tracepoint
从内核源码拆解 Linux 网络丢包追踪的完整体系:kfree_skb tracepoint 与 80+ 种 drop_reason 枚举、drop_monitor netlink 子系统、dropwatch 工具、perf 丢包记录、bpftrace 丢包聚合脚本,以及生产环境常见丢包点速查表。
2025-07-23 | linux · networking | #kernel #bpftrace #perf #ftrace #tracepoint #kprobe #tcp_probe #kfree_skb #softirq #flame-graph
从内核 tracepoint 定义出发,系统讲解 bpftrace、perf、ftrace 三大工具在网络诊断中的实战用法:TCP 重传根因分析、softirq 延迟定位、收发包路径延迟剖析、conntrack 表满监控、per-function 火焰图,以及各工具的适用场景与性能开销对比。
2025-07-22 | linux · networking | #kernel #eBPF #TC-BPF #XDP #socket-ops #cgroup-BPF #sockmap #sk_msg #struct_ops #bpftrace
从内核源码全面拆解 eBPF 在网络子系统中的所有挂载点:TC BPF direct-action 模式与 bpf_mprog 多程序链、XDP 驱动级钩子回顾、socket ops 回调与 TCP 生命周期事件、cgroup BPF 策略控制、sk_msg/sk_skb 的 sockmap 重定向引擎、struct_ops 实现自定义拥塞控制,以及 bpftrace 可观测实战。
2025-07-21 | linux · networking | #kernel #XDP #eBPF #AF_XDP #xdp_buff #xdp_frame #devmap #cpumap #zero-copy #bpftrace
从内核源码拆解 XDP 的完整实现:xdp_buff 数据结构、驱动级钩子、五种动作路径、AF_XDP 零拷贝通道、devmap/cpumap/xskmap 重定向机制、多缓冲区支持,以及 bpftrace 可观测实战。
2025-07-20 | linux · networking | #kernel #memory #sk_buff #page_pool #NUMA #slab #socket #backpressure #bpftrace #truesize
从内核源码拆解网络子系统的内存管理全貌:sk_buff 分配路径与 slab 缓存、page_pool 页面回收机制、NUMA 感知分配策略、socket 内存记账与反压,以及 bpftrace 可观测实战。
2025-07-19 | linux · networking | #kernel #GRO #GSO #TSO #LRO #offload #NAPI #skb_shared_info #netdev_features
从内核源码拆解 GRO 聚合引擎、GSO 延迟分段、TSO 硬件卸载的完整实现,分析 LRO 废弃原因,以及卸载机制对 Netfilter/TC/隧道的影响与常见陷阱。
2026-04-23 | algorithms | #veb-tree #predecessor #integer-data-structure #scheduling #kernel
打破 O(log n) 的壁垒——深入 Van Emde Boas 树的递归宇宙分裂、O(log log U) 全操作复杂度、以及它在操作系统调度器中的真实回响
2025-11-30 | linux · io_uring · high-performance | #linux #io_uring #async-io #kernel
深入解析 Linux io_uring 的核心机制:提交队列 (SQ)、完成队列 (CQ) 与零拷贝技术,理解它如何重塑高性能网络编程。
2026-04-03 | linux | #linux #kernel #concurrency #memory-ordering #C-macros
Linux 内核 ACCESS_ONCE/READ_ONCE/WRITE_ONCE 宏详解:并发编程与内存访问
2026-04-03 | linux | #linux #file-io #system-calls #kernel #file-system
Linux 文件 I/O 深度解析:内核文件表、系统调用与文件描述符管理
2026-03-31 | linux | #memory-barrier #smp_wmb #arm #x86 #tso #kernel #concurrency #debugging
一个在 x86 上跑了两年的内核模块,迁移到 ARM 后开始随机丢数据。三天的调试过程教会了我 smp_wmb() 的真正含义。附 Linux 内核屏障 API 完整分类与 x86/ARM 编译产物对比。
2026-04-03 | linux | #linux #scheduler #process-scheduling #kernel #performance
Linux 进程调度详解:调度类、优先级与实时任务调度机制
2026-04-03 | linux | #linux #process #task-state #kernel #system-programming
Linux 进程状态详解:运行、睡眠、僵尸等 7 种进程状态分析