Beyond Ctrl-C: The dark corners of Unix signal handling
An introduction to signals: a written version of my talk at RustConf 2023.
The latest blog posts to take off on Hacker News. 569 posts.
An introduction to signals: a written version of my talk at RustConf 2023.
One of the hardest things for people to understand with distributed systems is that eventual consistency is the same thing as eventual inconsistency. The very...
The difference in security defaults between Debian and Red Hat.
The first argument of a program’s command line, typically reflecting the program’s name/path and often referred to as argv[0], can in most cases be set to an arbitrary value without affecting the process’ flow. Making the case against argv[0], this post demonstrates how it can be used to deceive security analysts…
The Internet's architecture is viewed as an hourglass: broad application support at the top, narrow waist (IP), wide choice of links below IP
I reversed the firmware updater of my Toshiba HDD to be able to update it on Linux. The following commands should work, USE AT YOUR OWN RISK :
The Championnats d’Europe d’Escalade (climbing) in Villars-sur-Ollon has just finished. I couldn’t make it to all the events, but did see the finals of the “Speed” event. It’s a series of head-to-head elimination races up a 15m tall wall, resulting in an eventual victor after enough rounds.
🚀 3.5 sec to Linux userspace code
in which two women are driven into madness by poorly documented cab signaling gear
The {fmt} formatting library is known for its small binary footprint, often producing code that is several times smaller per function call compared to alternatives like IOStreams, Boost Format, or, somewhat ironically, tinyformat. This is mainly achieved through careful application of type erasure on various levels…
As you may, or may not know, I wrote paraLLEl-RDP back in 2020. It aimed at implementing the N64 RDP in Vulkan compute. Lightning fast, and extremely accurate, plus the added support of up-scaling on top. I’m quite happy how it turned out. Of course, the extreme accuracy was due to Angrylion being used as reference…
Around a decade ago, I was happy to learn about bcache – a Linux block cache system that implements tiered storage (like a pool of hard disks with SSDs for cache) on Linux. At that stage, ZFS on Linux was nowhere close to where it is today, so any progress on gaining more ZFS features in general Linux systems was very…
Teens wrote me a secret. I found them.
Userspace wireguard is fun!
What It Takes to Run The Witcher 3 on RiSC-V
There are significant changes happening in distributed systems.
An overview of erasure coding, its trade-offs, and applications in distributed storage systems.
Errata: Some significant mistakes were pointed out to me by email by Brendan MacDonell. I have included errata, but the results might not be reliable, so take this with pinch of salt! vmsplice is too fast Some programs use a particular system call “vmsplice” to move data faster through a pipe. Francesco already did a…
Android 15 has been refactored to support using 16 KB page sizes, and file systems like EROFS and F2FS have been made compatible.
This article explains the mechanics behind traceroute, from IP headers and TTL fields to ICMP messages. Learn why traceroute is a crucial tool for network diagnostics, how it differs from ping, and how to interpret its output. Ideal for network administrators, IT professionals, and curious users looking to understand…
Marc Olson, a long-time Amazonian, discusses the evolution of EBS, highlighting hard-won lessons in queueing theory, the importance of comprehensive instrumentation, and the value of incrementalism versus radical changes. It's an insightful look at how one of AWS’s foundational services has evolved to meet the needs…
The .NET team has been working on a new experiment called async2, which is a new implementation of the async/await pattern that is designed to be more efficient and more flexible than the current implementation. It started with green threads and ended with an experiment that moves async and await to the runtime. This…
Project overview QEMU is a virtual machine which allows running an operating system inside of another. While there already is a Haiku port, it currently does not support any acceleration system through native virtualization (through Intel VT-x and …
I have recently done some performance work and realized that reading about my experience could be entertaining. Teaching to think is just as important as teaching to code, but this is seldom done; I think something I’ve done last month is a great opportunity to draw the curtain a bit. serde is the Rust framework for…
SIMD in game development Often in game development we talk about SIMD. It is the holy grail of CPU performance, often out of reach. The conventional wisdom is that it is difficult to achieve real gains from SIMD. It is tempting to build a math library around SIMD hoping to get some performance gains. However, it often…
Collectively, we have been thinking about sorting for longer than we have had computers. There is still an active literature 1 , 2 , 3 . We are taught that how the counts of comparisons and swaps vary with problem size is what matters: as problems get bigger, order dominates, and anything else is buried in the noise…