Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,387 posts.
Massacring C Pointers (2018)
I'm taking a break from debugging books to talk about a calamitous shitshow of textbook writing: Mastering C Pointers: Tools for Programming Power , by Robert J. Traister.
Emacs standing alone on a Linux Kernel
Nano How-To explaining how to setup a root file system with only emacs.
When static makes your C code 10 times faster
Addendum : Many Hacker News commenters correctly point out that the right way to indicate to the compiler that a value does not change is const . This post is not about C best practices, but just about how one can easily get to the bottom of this kind of surprising behavior by looking at the compiler output. This…
How quickly can you remove spaces from a string?
Sometimes programmers want to prune out characters from a string of characters. For example, maybe you want to remove all line-ending characters from a piece of text. Let me consider the problem where I want to remove all spaces (' ') and linefeed characters ('\n' and '\r'). How would you do it efficiently? size_t…
An Introduction to OpenBSD [video]
A talk on OpenBSD for beginners
How to get transactions between almost any data stores
How to get ACID transactions between almost any data stores, with the Epoxy protocol.
3600 MHz Raspberry Pi 5 with Liquid Nitrogen
I tried everything but couldn’t turn this Raspberry Pi 5 into the World’s Fastest Pi 5. Unfortunately, we can’t quite claim that title.
Run your own high-end cloud gaming service on EC2
NOTE: This article has been superseded by my more recent one here
A Unix Utility You Should Know About: Pipe Viewer
Hi all! I'm starting a new article series here. This one is going to be about Unix utilities that you should know about. The articles will discuss one Unix program at a time. I'll try to write a good introduction to the tool and give as many examples as I can think of. The first post in this series is going to be…
Let's Build an MP3 Decoder
Even though MP3 is probably the single most well known file format and codec on Earth, it’s not very well understood by most programmers – for many encoders/decoders is in the class of software “other people” write, like standard libraries or operating system kernels. This article will attempt to demystify the…
Writing a RISC-V OS in Rust: System Calls
System calls are a way for unprivileged, user applications to request services from the kernel. In the RISC-V architecture, we invoke the call using the ecall instruction. This will cause the CPU to halt what it's doing, elevate privilege modes, and then jump to whatever function handler is stored in the mtvec…
Network Transparency with Wayland
M. Stoeckl's website
Some Reasons to Measure
A question I get asked with some frequency is: why bother measuring X, why not build something instead? More bluntly, in a recent conversation with a newsletter author, his comment on some future measurement projects I wanted to do (in the same vein as other projects like keyboard vs. mouse , keyboard , terminal and…
Why Rust for Low-Level Linux Programming?
I think Rust is extremely well-suited for low level Linux systems userspace programming — daemons, services, command-line tools, that sort of thing. Low-level userspace code on Linux is almos…
External boot disks still don’t work properly with M1 Macs
Making an external bootable SSD for an M1 Mac has proved tricky. Has this changed in macOS 11.2? If you’ve already got 11.1 running on one, how do you update it to 11.2?
In S3 simplicity is table stakes
From simple object storage to sophisticated table management, builders have always shaped S3's evolution. Andy Warfield discusses why making complex systems simple remains our north star at AWS.
The Rust compiler has gotten faster again
I worked on Rust part-time for several years at Mozilla. During that period I regularly summarized how the compiler’s performance had improved. For example: 2017-11-12 to 2019-07-24.
Please stop calling databases CP or AP
This blog post has been translated into Russian , Japanese , Chinese , and Chinese again . For more detail on problems with CAP, and a proposal for an alternative, please see my paper A Critique of the CAP Theorem .
Blending complex systems made my latency 10x higher
Every time someone reports higher latency after migrating to Kubernetes, the root cause is an assumption that changed. This is one of those stories.
Tokio and Prctl = Nasty Bug
Recently I encountered a bug so cute that I immediately knew that I will want to share it on my blog. It was one of those bugs that even Rust can’t save you from. It occurred in HyperQueue (HQ), a distributed task scheduler written in Rust that I work on.
Go's work-stealing scheduler
Deep dive into how scheduler works
Hash indexes are faster than btree indexes?
PostgreSQL have supported Hash Index for a long time, but they are not much used in production mainly because they are not durable. Now, ...
An ode to pack: gzip’s forgotten decompressor
The latest 4.13.9 source release of the Linux kernel is 780MiB, but thanks to xz compression, the download is a much more managable 96 MiB (an 88% reduction)