Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 6,949 posts.
Allocgate: Restructuring how allocators work in Zig
Version 0.9 of the Zig programming language is planned to release in about a week. One of the major changes coming in this release is a restructuring of how allocators work, which has been termed Allocgate . This is a breaking change to the Allocator API provided by the standard library, so pretty much any code that…
X86 Register Encoding
If you've ever look at the disassembly output for C or C++ code, you'll probably notice that there are a lot of push/pop instructions. And if you pay close enough attention, you'll notice that the compiler prefers to use certain registers over others. In particular, compilers will prefer pushing "old" registers like…
A P2P Vision for QUIC (2024)
Using QUIC to achieve everything needed for NAT traversal, from address discovery to proxying UDP
File Locks on Linux
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Systemd's DynamicUser feature is currently dangerous
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
The curious case of the Unix workstation layout
Cathode Ray Dude recently did an excellent video about the history of the PC case, particularly the early- and mid-1990s, and the various mainboard layouts that pre-date the ATX standard. You should watch it. Here it is.
Why did we take reddit down for 71 minutes?
Get the latest product news, company announcements, and user insights from the official Reddit blog.
Running Ubuntu on the Lenovo IdeaPad Duet
I own a Lenovo IdeaPad Duet Chromebook, a ChromeOS 2-in-1 ARM64 tablet. I had been running ChromeOS, then postmarketOS, which suddenly broke. Time for some firmware hacking to try and get Ubuntu to run there!
SSH uses four TCP segments for each character you type
Every time we press a key in an interactive SSH session, the SSH Client sends that keystroke as a TCP segment to the SSH Server. Here is a Wireshark …
Paul Buchheit: The Cloud OS
My recent remark about the future of ChromeOS generated a surprisingly passionate response . Some said that my prediction was obvious and b...
Rediscovering Transaction Processing from History and First Principles
In July 2020, I stumbled into a fundamental limitation in the general-purpose database design for transaction processing.
Even more fun with building and benchmarking Firefox with GCC and Clang
Recent switch of official Firefox builds to Clang on all platforms has triggered some questions about the quality of code produced by GCC c...
Pizlix: Memory Safe Linux from Scratch
Pizlix is LFS (Linux From Scratch) 12.2 with some added components, where userland is compiled with Fil-C. This means you get the most memory safe Linux-like OS currently available.
When can glibc be built with Clang?
Updated in 2026: glibc 2.43 added experimental support for building with Clang. In September 2021, I wrote "So, dear glibc, will you be happy with my sending Clang patches?" in Build glibc with LLD 13. We have come to a turning point. In Linux Plumbers Conference 2021, at the glibc Birds of a Feather session, I asked…
Shrinking a Kotlin Binary by 99.2%
We'll get to the shrinking, but first let's motivate the binary in question. Three years ago I wrote the "Surfacing Hidden Change to Pull Requests" post which covered pushing important stats and diffs into PRs as a comment. This avoids surprises with changes that affect binary size, manifests, and dependency trees.
Closures as Win32 Window Procedures
Back in 2017 I wrote about a technique for creating closures in C using JIT-compiled wrapper. It’s neat, though rarely necessary in real programs, so I don’t think about it often. I applied it to qsort , which sadly accepts no context pointer. More practical would be working around insufficient custom allocator…
Deno Under TinyKVM in Varnish
Previously, I said that TinyKVM runs regular Linux ELFs and I use this to test my programs on the terminal like a regular program before I load them in Varnish.
Coreboot 4.11
The coreboot project is proud to announce to have released coreboot 4.11. This release cycle was a bit shorter to get closer to our regular schedule of releasing in spring and autumn. Since 4.10 there were 1630 new commits by over 130 developers. Of these, about 30 contributed to coreboot for the
What is: Linux keyring, gnome-keyring, Secret Service, and D-Bus (2019)
What are Linux keyring, gnome-keyring, Secret Service, and D-Bus - a brief overview and usage examples
The rise and fall of IBM's 4 Pi aerospace computers: an illustrated history
The morning of April 12, 1981, 20 years to the day after Yuri Gagarin became the first person in space, the Space Shuttle thundered into the...
Moving Past the Scaling Myth
Moving Past the Scaling Myth - Discontinuous Transition in Process and Architecture
The Effects of CPU Turbo: 768X Stddev
I build and maintain smf - the fastest RPC in the west.The main language supported is C++. We use Seastar asthe actual asynchronous framework.
Don’t Eat Too Much Three Bean Salad. The Server Will Crash.
Hands-on reviews of the latest online casinos in Australia. Find new pokies, fast payouts, PayID deposits and top welcome bonuses for 2026.
Reversing a MacOS Kernel Extension
In my last post I covered the basics of kernel debugging in macOS. In this post we will put some of that to use and work through the process of reversing a macOS kernel module. As I said in my last post, in macOS there is a kernel module named “Don’t Steal Mac OS X” (DSMOS) which registers a function with the Mach-O…