Write a toy strace and gdb
Being able to peek into a process is a very helpful thing when we want to fully understand how a program behaves.
Topics /
The most popular blog posts about systems & performance on Hacker News. 6,942 posts.
Being able to peek into a process is a very helpful thing when we want to fully understand how a program behaves.
It's late 2020 and you just got a brand-new Mac with Apple's own ARM processors. Exciting! But what will development be like?
This article is dedicated to discussing why it's so hard to detect the 'key up' or 'key release' event in a Linux terminal environment without relying on X server. Several techniques and code examples will be shown that are capable of detecting the keyup event on Linux (with and without an X server), but all…
Introduction & background information NOTE: This content is from an internal talk I gave, thus the reason it may read like a presentation So what is …
Posts and writings by Lennart Poettering
It started with stb_image.c because it’s just crazy useful and avoids so much hassle in small demo programs. But that was just the gateway…
Apple has just released the first of its new Rapid Security Responses (RSRs) for macOS 13.3.1 Ventura. This is indicated as macOS Rapid Security Response 13.3.1 (a), and is just just over 300 MB to…
OpenBSD 5.4
Whenever you enter a URL into a system, it must be parsed and validated. It is a surprisingly challenging task: it may require hundreds of nanoseconds and possibly over a thousand cycles to parse a typical URL. We can use URL parsing as a reasonable benchmark of a system performance. Of course, no single measure ……
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
I've been playing with an idea of how to extend the traditional unix shell pipeline. Historically shell pipelines worked by passing free-form text around. This is very flexible and easy to work with. For instance, its easy to debug or incrementally construct such a pipeline as each individual step is easily readable…
Audio formats typically fall into one of three categories: “lossless” , “complicated” or “bad” . After developing a simple image format last year, I tried to come up with an audio format that fits neither of these categories.
A while ago, someone on the fediverse mentioned "OS/2's virtualization features" to me. I don't remember who it was, sorry. I had the chance to take a look at this today.
Regular expressions – commonly known as RegExps – are a powerful and heavily used tool for manipulating strings in JavaScript. This post describes how we updated the RegExp engine in ...
Updated October 2025 to reflect the growth in binaries from 12 to <50.
What's the big deal about key-value databases like FoundationDB and RocksDB?
The microservices honeymoon period is over. Uber is refactoring thousands of microservices into a more manageable solution [1]; Kelsey Hightower is predicting monoliths are the future [2]; and even Sam Newman is declaring that microservices should never be the default choice, but rather a last resort [3]. What’s going…
Discover Centrifuge—a system designed for high-performance, exact data delivery. Learn how it handles massive event volumes, ensuring no data loss. Join Segment's innovation.
With native Rust support announced for Cloudflare Workers, one may be eager to jump in head first. I know I wanted to. However, I tested out a few use cases and found it too limiting. Either the desired APIs weren’t available, code size was too large, or the program couldn’t run within resource constraints. I remain…
My parents live in a rural area, where the usual monopolist Internet service provider provides the usual monopolist Internet service: DSL, r...
This article explores how terminal emulators function, decoding the process of sending commands to the shell for execution. Unveil the mystery behind what happens when you open a terminal and enter Is.
Deliver modern applications with NGINX. Explore high-performance load balancing, API gateways, and web server solutions trusted by top global enterprises.
In this post I’m going to do a silly, but interesting, exercise that should never be done in any program that actually matters. I’m going write a program that changes one of its function definitions while it’s actively running and using that function. Unlike last time , this won’t involve shared libraries, but it will…
This report covers FreeBSD related projects for the period between October and December, and is the fourth of four planned reports for 2020.