Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 4,387 posts.
Does a compiler use all x86 instructions? (2010)
On the Z80 CPU there are so few registers and instructions that you can easily know and use them all and wish there were more of them. However, half of the time it feels like the only on you really use is ld. I imagine that if ld took half the number of clock cycles, average code would run twice as fast.
Benchmarking division and libdivide on Apple M1 and Intel AVX512
libdivide is fish ’s library for speeding up integer division by runtime constants. It works by replacing divide instructions with cheaper multiplications and shifts.
"<ESC>[31M"? ANSI Terminal security in 2023 and finding 10 CVEs
This paper reflects work done in late 2022 and 2023 to audit for vulnerabilities in terminal emulators, with a focus on open source software. The results of this work were 10 CVEs against terminal emulators that could result in Remote Code Execution (RCE), in addition various other bugs and hardening opportunities…
Running Nomad for a Home Server
Setting up a single node Nomad and Consul server to deploy self hosted workloads.
Serverless: Cold Start War
Comparison of cold start statistics for FaaS across AWS, Azure and GCP
Serialization Is the Secret
If a value mutates in the forest with no one to see it, does it really mutate?
A byte string library for Rust
bstr is a byte string library for Rust and its 1.0 version has just been released ! It provides string oriented operations on arbitrary sequences of bytes, but is most useful when those bytes are UTF-8. In other words, it provides a string type that is UTF-8 by convention , where as Rust’s built-in string types are…
Systems that defy detailed understanding
Last week, I wrote about the mindset that computer systems can be understood, and behaviors can be explained, if we’re willing to dig deep enough into the stack of abstractions our software is built atop. Some of the ensuing discussion on Twitter and elsewhere lead me to write this followup, in which I want to run…
Reverse-Engineering Apple Dictionary (2020)
Personal webpage of Fabian Mentzer.
Building a Distributed Log from Scratch, Part 1: Storage Mechanics
The log is a totally-ordered, append-only data structure. It’s a powerful yet simple abstraction—a sequence of immutable events. It’s something that programmers have been using for a very long time, perhaps without even realizing it because it’s so simple. Whether it’s application logs, system logs, or access logs…
How to zero a buffer
Now, we don't want to truly change the observable behaviour of our software — but fortunately the C standard has a more liberal concept of "observable" than most people. In particular, the C standard states that the observable behaviour includes accesses to volatile objects . What is a volatile object, you ask? It is…
How to do distributed locking
As part of the research for my book , I came across an algorithm called Redlock on the Redis website. The algorithm claims to implement fault-tolerant distributed locks (or rather, leases [1]) on top of Redis, and the page asks for feedback from people who are into distributed systems. The algorithm instinctively set…
My Own Private Binary: An Idiosyncratic Introduction to Linux Kernel Modules
Several years ago, I spent a serious chunk of time figuring out how to make really teensy ELF executable files. I started down this path because I was annoyed that all of my programs, no matter how short they were, never got smaller than 4k or so. I felt that was excessive, for C, and so I started looking at what ELF…
How X Window Managers Work, and How to Write One (2014)
How X Window Managers Work, And How To Write One (Part I)
Amazon’s Glacier secret: BDXL?
by Robin Harris | Friday, April 25, 2014 | Backup , Cloud computing & storage | 24 comments
Systemd is bad parsing
Systemd has a remotely exploitable bug in its DHCPv6 client . That means anybody on the local network can send you a packet and take control...
Intel x86 considered harmful – survey of attacks against x86 over last 10 years
Back in summer I have read a new bookpublished by one of the core Intel architects about the Management Engine (ME).I didn’t quite like what I read there. In...
Clip control on the Apple GPU
After a year in development, the open source “Asahi” driver for the Apple GPU is running real games. There’s more to do, but Neverball is already playable (and a lot of fun!).
Call me maybe: Elasticsearch 1.5.0
Previously, on Jepsen , we demonstrated stale and dirty reads in MongoDB . In this post, we return to Elasticsearch, which loses data when the network fails, nodes pause, or processes crash.
What do you mean by “Event-Driven”?
Some notes on the different patterns that may be present when people talk about event-driven architectures.
Haskell in the Datacentre
Bluesky: @simonmar.bsky.social Github: simonmar Email: marlowsd@gmail.com LinkedIn: Simon Marlow
Debugging a Live Saturn V
Writing and photos by Brennan Moore
Serenity OS: Interview
How would you build an operating system? My answer is I wouldn't. First off, I don't know how. And the second thing is it seems like to large of a task. It took thousands of developers to build Windows XP. But actually, it is possible to build an operating system from scratch. My guest is doing it. Andreas Kling…
tolower() with AVX-512
A couple of years ago I wrote about tolower() in bulk at speed using SWAR tricks . A couple of days ago I was interested by Olivier Giniaux’s article about unsafe read beyond of death , an optimization for handling small strings with SIMD instructions, for a fast hash function written in Rust.
Reliable 25 Gigabit Ethernet via Thunderbolt
I found this tiny fanless Thunderbolt 25G Ethernet adapter. With a little tinkering, it actually works.