Topics /

Systems & Performance

The most popular blog posts about systems & performance on Hacker News. 391 posts.

2023
181

Writing a Simple Garbage Collector in C (2014)

People seem to think that writing a garbage collector is really hard, a deep magic understood by a few great sages and Hans Boehm (et al) . Well it’s not. In fact, it’s rather straight forward. I claim that the hardest part in writing a GC is writing the memory allocator, which is as hard to write as it is to look up…

182

You cannot have exactly-once delivery (2015)

I’m often surprised that people continually have fundamental misconceptions about how distributed systems behave. I myself shared many of these misconceptions, so I try not to demean or dismiss but rather educate and enlighten, hopefully while sounding less preachy than that just did. I continue to learn only by…

185

Learn Wayland by writing a GUI from scratch

Wayland is all the rage those days. Distributions left and right switch to it, many readers of my previous article on writing a X11 GUI from scratch in x86_64 assembly asked for a follow-up article about Wayland, and I now run Wayland on my desktop. So here we go, let's write a (very simple) GUI program with Wayland…

186

Closing a stale SSH connection

Suppose you’re connected to a remote host with SSH and after a while the SSH session goes stale. The terminal is unresponsive and no keypress seem to take effect. There might be something with the network, the remote host is restarting or maybe your machine has been in hibernation, there could be multiple reasons for…

200

Unpacking Elixir: Observability

Elixir supports the usual supects of observability. Open Telemetry (OTel), log handlers, capturing metrics. And it does it well. This post will mostly focus on the observability you have on the BEAM that is either incredibly rare to see elsewhere or possibly entirely unique.

203

Huge pages are a good idea

Nearly all programs are written to access virtual memory addresses, which the CPU must translate to physical addresses. These translations are usually fast because the mappings are cached in the CPU's Translation Lookaside Buffer (TLB) . Unfortunately, virtual memory on x86 has used a 4 kiB page size since the 386 was…

205

Back-end parallelism in the Rust compiler

This post describes some performance work I have been doing recently on rustc. I spent several weeks on a particular problem with only a small amount of success. I hope a write-up will be interesting and educational, and may even lead to suggestions that make things better. The post is aimed at readers with some…

207

Philosophy of Coroutines

I encountered the idea as a student, when I first read The Art of Computer Programming . I’d been programming already for most of my childhood, and I was completely blown away by the idea, which was entirely new to me. In fact, it’s probably not an exaggeration to say that in the whole of TAOCP that was the single…

209

Windows NT 3.1 on Dec Alpha AXP

As I was preparing the Windows NT RISC exhibit for VCF west , I realized that I’m missing a rather important piece of the history. While I was showing the potentially last DEC Alpha Windows build ever – AXP64 2210 , I don’t have anything earlier than NT 3.51. It would be nice to showcase the very first RTM version …