标签
一篇博客文章,讲述了拥有 50 年历史的 kill(1) 工具(经由 procps 随 Ubuntu 14/16/18/22/24 LTS 发行)中的一个缺陷如何导致 Endcrawl 服务中断——该缺陷会杀掉机器上的所有进程,而不是仅针对目标进程组;文章追溯了此类缺陷长达十年的系列案例,并提出了相关建议。
一篇进行「Unix 考古」的博客文章,探讨早期 Unix 版本(V4,1973 年)如何处理内存分配——从使用 sbrk() 的原始线性分配器,到 Dennis Ritchie 在 /usr/sys/dmr/malloc.c 中实现的、基于 map 的 malloc()/mfree() 前身。
Sawyer X 在 Code Maven 的 Zig 演讲中,通过配置解析与内存分配示例,讲解 Zig 的核心设计哲学:一切可见、无隐藏控制流、无宏与运算符重载,并尽量将问题提升为编译时错误。
作者从 Go 和 Zig 回到 C 编程时,反思了错误处理和资源清理的痛点,并介绍了受 John Carmack 邮件启发的使用 goto 统一清理出口的写法,让 C 的错误处理更简洁。
博客文章讨论计算中读写操作的不对称性,解释缓冲 I/O、块设备对齐以及错误处理如何打破 read/write 系统调用表面的对称性。
作者回顾四个月重返 Zig 的经历,包括开发 snurl、参加 Zig Day Seattle(Andrew Kelley 出席)以及对 anyzig、内建 fuzzing、TLS 等的喜爱与不满,并与 Rust 做了对比。
讨论了 Filian、Fil-C 工具链以及在 Debian 上构建 Fil-C 二进制文件,标志着主流 Linux 发行版在采用内存安全 C 语言方面取得了进展。
Syl 是一门新的系统编程语言,它在模态类型系统中编码编译时计算,通过静态/动态和擦除/未擦除两条模态轴来实现单态化和编译时依赖类型,其灵感来源于双层类型理论和 OxCaml。
作者描述了如何为 Rust 构建 Dumpster —— 一个循环引用检测垃圾回收器。Rust 本身的设计目标是避免 GC,但通过利用 Drop 机制、自定义 trait 和 unsafe 原子操作,Dumpster 能够处理 Rc/Arc 无法释放的共享所有权循环引用问题。
一篇介绍使用 OCaml 编写 unikernel 的文章,探讨如何构建最小化的虚拟机镜像,以实现轻量级、专用化的部署。
Jim Calabro 的博客索引,收录了关于单哈希布隆过滤器(One Hash Bloom Filters)、uscope 调试/内省工具链、DWARF/ELF 深入解析系列,以及 Go/Zig 静态链接技术的文章。
Raymond Chen 解释了为什么 x86 需要专门的 ud2 指令,而不能直接用 int 6 来触发未定义指令异常:int 6 是陷阱(trap,报告下一条指令的地址),而 #UD 是故障(fault,报告出错指令的地址);而且操作系统会禁止用户态调用 int 6,以免混淆 #UD 处理程序。
Jeff Pelle 在 Software You Can Love Vancouver 2026 上讲解如何在 Linux 上构建实时软件:采用周期性任务、PREEMPT_RT 与"准备—实时—关闭"三阶段设计,将复杂的时序需求收敛为可证明的延迟保证。
一篇技术博客文章,介绍双头(碰撞式)栈分配器。这是一种经典的快速内存分配技巧,源于 Surreal Software 的游戏动画编程实践,其中内存分配只需一次整数加法,而内存释放则通过重置栈顶指针完成。
Matthew Garrett 解释了 Linux Lockdown LSM 与休眠功能之间的冲突,以及 UEFI Secure Boot 如何催生了内核与 root 权限之间的强边界。
Andreas 在演讲中厘清了面向数据设计(DOD)与 Clojure 式『面向数据编程』的区别,阐述 DOD 作为『巴别塔』式软件系统解药的核心——机械同理心,并以他开发的 Feno 语言中 AST 节点的 32 字节布局为例,展示传统『指针森林』设计的内存浪费问题。
一篇讲解 C 语言中 Arena 分配器的技术指南,介绍如何通过批量分配内存块来替代传统的 malloc/free 模式,从而提升性能并减少内存泄漏。
Valen 的新文章介绍了一种更灵活的借用检查器(group borrowing),编译器会记住引用指向的位置,以实现比 Rust 更简单灵活的内存安全方案,并已被 Google Carbon 等语言采纳。
Sergey 'Shnatsel' Davidoff 解释了 Rust 的 SIMD 抽象层现在如何做到内部安全:利用 Rust 1.87 的 target_feature 追踪与 CPU 特性 token,消除包裹在 SIMD 内在函数周围无处不在的 unsafe 块,同时保留 a+b 这样的人体工程学用法。