A distributed systems reading list
An old document I surfaced with my quick tour of distributed systems theory fundamentals
An old document I surfaced with my quick tour of distributed systems theory fundamentals
I have been tinkering with the vanilla source code of Wolfenstein 3D from 1992. Even though it is more than 20 years old and has rotten for modern systems, you can still compile it if you recreate the environment. All you need is :
This is a story about the messy state of Microsoft’s DirectX shader compiler, and trying to wrangle it into a nicer experience for game developers. In some respects, building the DXC compiler better than how Microsoft does.
ChromeOS will soon be developed on large portions of the Android stack to bring Google AI, innovations, and features faster to users.Over the last 13 years, we’ve evolve…
Android 15 has been refactored to support using 16 KB page sizes, and file systems like EROFS and F2FS have been made compatible.
How a modern AVX instruction shares a similar design with a 1985 blitter chip, by Arnaud Carré
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…
We're going to speed up some numpy code by 100x using "unsafe Python." Which is not quite the same as unsafe Rust, but it's a bit similar, and I'm not sure what else to call it... you'll see. It's not something you'd use in most Python code, but it's handy on occasion, and I think it shows "the nature of Python” from…
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.
A Pretty Map of the European Power Grid
Memory-Dump-UEFI is a UEFI application for dumping the contents of RAM.
Simplifying the problem to an earlier problem.
Structuring a large program is always a difficult job. One of the particular problems that often comes up is this: if you have a piece of code producing data, and another piece of code consuming it, which should be the caller and which should be the callee?
Hubris's oddest syscall
In this post, I’ll look at CVE-2023-6241, a vulnerability in the Arm Mali GPU that allows a malicious app to gain arbitrary kernel code execution and root on an Android phone. I’ll show how this vulnerability can be exploited even when Memory Tagging Extension (MTE), a powerful mitigation, is enabled on the device.
(please note that there’s a correction at the bottom) In the Overview of cross-architecture portability problems, I have dedicated a section to the problems resulting from use of 32-bit time_…
Migrating onto Kubernetes can take years. Here’s why we decided it was worth undertaking, and how we moved a majority of our core services.
This is not at all news, but it comes up often enough that I think there should be a concise explanation of the problem. People, myself included, like to say that POSIX time, also known as Unix time, is the number of seconds since the Unix epoch , which was 1970-01-01 at 00:00:00.
Preface In October 2023 I learned about HTTP/2 Rapid Reset attack, dubbed “the largest DDoS attack to date”. I didn’t have deep knowledge of HTTP/2 back then. I knew its basics like frames or HPACK but I was focusing more on HTTP/1.1 protocol and programming languages vulnerabilities. I decided to dedicate time to…
The Ivory Tower is a blog about software engineering and development philosophy by Anders Sundman.
Often when I’m prototyping a project, I hesitate to use a sqlite database despite their many adavantages . It seems much easier to just dump a bunch of files in a directory and to rely on the universal support for the filesystem API to read/delete/update records. Part of this is avoiding the overhead of figuring out a…
The first article in a series where I explore aspects of systemd by creating small examples with the help of containers.
Google networking leaders reflect on the milestones that led to Jupiter supporting 13 petabits per second bandwidth, and what comes next.