Optimizing a lock-free ring buffer
A single-producer single-consumer (SPSC) queue is a great example of how far constraints can take a design. In this post, you will learn how to implement a ring …
The latest blog posts to take off on Hacker News. 6,943 posts.
A single-producer single-consumer (SPSC) queue is a great example of how far constraints can take a design. In this post, you will learn how to implement a ring …
zswap and zram are fundamentally different approaches with different philosophies. If in doubt, use zswap.
How I made a Linux distro that runs `wget | dd`
i wanted to have a deeper grasp of how compression works, so i wrote a gzip decompressor from scratch. the result is about 250 lines of rust that can decompress gzip from a file or stdin.
In this article I will introduce a new command line search tool, ripgrep , that combines the usability of The Silver Searcher (an ack clone) with the raw performance of GNU grep. ripgrep is fast, cross platform (with binaries available for Linux, Mac and Windows) and written in Rust .
At this point in history, AI sociopaths have purchased all the world's RAM in order to run their copyright infringement factories at full bl...
Due to some lucky circumstances, I recently had the chance to appear in one of the biggest German gaming podcasts, Stay Forever, to talk about the technology of RollerCoaster Tycoon (1999). It was …
I started a reading group in 2021, a few months after joining Microsoft as a new grad on the Azure Databases team. The group was initially focused on database internals, which was my favorite subject at UW. Databases touch so many areas of CS: compiler construction in the query engine, memory management with the…
If you want to program a graphical application for linux, your primary choices are using either X11 or Wayland. According to Wikipedia, X11 had its first release in 1984. X11 follows a client-server-model. I assume it's because the whole computational environment, was very different back then. If you have a central…
A high-level architecture overview to start with FFmpeg.
BIO is the I/O co-processor in the Baochip-1x, a mostly open source 22nm SoC I helped design. You can read more about the Baochip-1x’s background here , or pick up an evaluation board at Crowd Supply .
A blog about software craft and quality
Fixing common Java anti-patterns took an app from 1,198ms to 239ms. Eight patterns that compile fine and pass code review but silently drain CPU and balloon heap, with benchmarks and code fixes for each
The final report of the Expert Panel on the 28 April 2025 blackout in continental Spain and Portugal identifies the causes of the blackout and outlines recommendations to strengthen the resilience of Europe’s interconnected electricity system. It was prepared by a technical Expert Panel of 49 members, including…
Wayland has been a broad misdirection and misallocation of time and developer resources at the expense of users. With more migration from other operating systems, the pressure to fix fundamental problems has become more prominent. After 17 years of development, now is a good time to reflect on some of the larger…
How an undefined behavior in C made me pull my hair out for days but became my first patch to the Linux kernel!
Modern processors have the ability to execute many instructions per cycle, on a single core. To be able to execute many instructions per cycle in practice, processors predict branches. I have made the point over the years that modern CPUs have an incredible ability to predict branches. It makes benchmarking difficult…
The Qualys Threat Research Unit has identified a Local Privilege Escalation (LPE) vulnerability affecting default installations of Ubuntu Desktop version 24.04 and later. This flaw (CVE-2026-3888)…
A system freeze led us deep into Linux spinlock internals, where we helped find not one but three bugs in the kernel's resilient locking code used by eBPF.
Node.js now has a virtual filesystem. Learn why VFS matters for testing, sandboxing, Single Executable Apps, and running generated code directly in me
I built a tiny shell in C to learn what fork, execvp, and dup2 are doing under the hood.
MariaDB is a popular open source SQL database which began as a fork of MySQL . MariaDB Galera Cluster is an active-active replication system for MariaDB which allows reads and writes on every node. In 2015 this author analyzed MariaDB with Galera Cluster and found that although Galera claimed to offer Snapshot…
Meta recognizes the long-term benefits of jemalloc, a high-performance memory allocator, in its software infrastructure. We are renewing focus on jemalloc, aiming to reduce maintenance needs and mo…
I don't normally do follow-ups and never this quick. After posting that last article, it was fun to read the comments on Reddit and Hacker News as they rolled in. I even found other discussions . I couldn't help wonder, "Could I have made it even more performant?" . After heading home I decided to take another look.
A personal reflection on my first encounter with FreeBSD in 2002, how it shaped the way I design and run systems, and why its philosophy, stability, and community still matter to me more than twenty years later.
A look at modern news websites. How programmatic ad-tech, huge payloads and hostile architecture destroyed the reading experience.
Once in a while new hardware is released that makes a difference. Such a device is the Intel Optane series of high-performance SSD’s for professional use, which was released in late 2017. In this case I’m talking about the Intel Optane P4800X and P5800X and their consumer counterparts ( 900P and 905P ). All drives are…
Traditional Wayland compositors have a monolithic architecture that combines the compositor and window manager into a single program. This has the downside of requiring Wayland window managers to do the significant work of implementing an entire Wayland compositor as well.
So where has the last six months gone ? I was planning on getting images done for Fedora 44 Beta but I was unwell and busy and ran out of time. So what better time to get them out than Pi Day! .