Tag
A blog post recounting how a bug in the 50-year-old kill(1) utility (shipped via procps in Ubuntu 14/16/18/22/24 LTS) caused an Endcrawl outage by killing all processes on the machine instead of just a target process group, tracing a decade-long series of such bugs and offering recommendations.
A blog post doing 'Unix archaeology' on how early Unix versions (V4, 1973) handled memory allocation, from a primitive linear allocator using sbrk() to Dennis Ritchie's malloc()/mfree() map-based precursor in /usr/sys/dmr/malloc.c.
A link to an introduction to programming in the ATS language, with discussion on Lobsters.
In his Zig talk at Code Maven, Sawyer X uses examples of configuration parsing and memory allocation to explain Zig’s core design philosophy: everything is visible, there is no hidden control flow, there are no macros or operator overloading, and problems should be turned into compile-time errors whenever possible.
作者从 Go 和 Zig 回到 C 编程时,反思了错误处理和资源清理的痛点,并介绍了受 John Carmack 邮件启发的使用 goto 统一清理出口的写法,让 C 的错误处理更简洁。
博客文章讨论计算中读写操作的不对称性,解释缓冲 I/O、块设备对齐以及错误处理如何打破 read/write 系统调用表面的对称性。
作者回顾四个月重返 Zig 的经历,包括开发 snurl、参加 Zig Day Seattle(Andrew Kelley 出席)以及对 anyzig、内建 fuzzing、TLS 等的喜爱与不满,并与 Rust 做了对比。
Discusses Filian, the Fil-C toolchain, and building Fil-C binaries on Debian, marking progress toward memory-safe C adoption in mainstream Linux distributions.
Syl is a new systems programming language that encodes compile-time computation in a modal type system, using static/dynamic and erased/unerased mode axes to enable monomorphization and compile-time dependent types, inspired by two-level type theory and OxCaml.
The author describes building Dumpster, a cycle-detecting garbage collector for Rust — a language designed to avoid GC — by leveraging Drop, custom traits, and unsafe atomics to handle shared ownership cycles that Rc/Arc cannot free.
An article introducing unikernels written in OCaml, exploring how minimal VM images can be built for lightweight, specialized deployments.
Jim Calabro's blog index highlighting posts on One Hash Bloom Filters, the uscope debugger/introspection toolchain, a DWARF/ELF deep-dive series, and Go/Zig static linking techniques.
Raymond Chen 解释了为什么 x86 需要专用的 ud2 指令而不是用 int 6 来触发未定义指令异常:int 6 是陷阱(报告下一条指令地址)而 #UD 是故障(报告出错指令地址),且操作系统会禁止用户态调用 int 6 以免混淆 #UD 处理程序。
Jeff Pelle explains how to build real-time software on Linux at Software You Can Love Vancouver 2026: using periodic tasks, PREEMPT_RT, and a three-phase "prepare — go live — shut down" design to distill complex timing requirements into provable latency guarantees.
A technical blog post explaining the double headed (bump) stack allocator, a classic fast memory allocation trick born from game animation programming at Surreal Software, where allocation is just an integer addition and deallocation resets the top-of-stack pointer.
Matthew Garrett 解释了 Linux Lockdown LSM 与休眠功能之间的冲突,以及 UEFI Secure Boot 如何催生了内核与 root 权限之间的强边界。
In his talk, Andreas clarified the distinction between data-oriented design (DOD) and Clojure-style “data-oriented programming,” explaining mechanical sympathy as the core of DOD’s antidote to “Tower of Babel” software systems. Using the 32-byte layout of AST nodes in Feno, the language he developed, he illustrated the memory waste inherent in traditional “forest of pointers” designs.
一篇讲解 C 语言中 Arena 分配器的技术指南,介绍如何通过批量分配内存块来替代传统的 malloc/free 模式,从而提升性能并减少内存泄漏。
Valen 的新文章介绍了一种更灵活的借用检查器(group borrowing),编译器会记住引用指向的位置,以实现比 Rust 更简单灵活的内存安全方案,并已被 Google Carbon 等语言采纳。
Sergey 'Shnatsel' Davidoff explains how Rust's SIMD abstractions can now be made safe on the inside, leveraging Rust 1.87's target_feature tracking and CPU feature tokens to eliminate pervasive unsafe blocks around SIMD intrinsics while keeping a+b ergonomics.