Turmoil, a framework for developing and testing distributed systems
Tokio is a runtime for writing reliable asynchronous applications with Rust. It provides async I/O, networking, scheduling, timers, and more.
Tokio is a runtime for writing reliable asynchronous applications with Rust. It provides async I/O, networking, scheduling, timers, and more.
I have been working on a hobby project to reimagine the C core of Emacs in Rust. On this journey, I reached the point where I needed some way to represent the text of a buffer. The simplest approach is to just use a large string or array of lines. However these each suffer from poor performance as either the size or…
The Nintendo GameBoy is an exceptionally well-documented system, perfect for anybody who’d like to take a crack at emulation. Publicly-maintained resources like the Pan Docs make it both approachable and convenient to get an overview of the GameBoy’s address space layout, to understand the mechanics of hardware…
How to use the legendary OS in a (somewhat) practical way
SIMT The programming model of a GPU uses what has been coined "single instruction multiple thread." The idea is that the programmer writes t...
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…
A deep dive into container scheduling and Flyd, our new orchestrator.
Stack smashing: How Linux creates the stack and runs a program. Then mess with it.
State-based CRDTs grow monotonically, but that doesn't mean they can't be efficient. We'll learn how to compress the pixel editor state by 98%.
Falcon enables an order-of-magnitude improvement over software-only transports. Today at the OCP Global Summit, Google is excited to open Falcon to the ecosystem through the Open Compute Project.
The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 14.0-RELEASE. This is the first release from the stable/14 branch.
FoundationDB is a very impressive database. Its paper won the best industry paper award in SIGMOD’21. In this post, I will explain, in detail, how FDB works and discuss a few very interesting design choices they made. It’s a dense paper packed with neat ideas. Many details (sometimes even proof of correctness) are not…
Implementing the Raft distributed consensus protocol in Go
CVE-2023-38408 is a remote code execution flaw in OpenSSH’s forwarded ssh-agent. Get full exploit details, impact analysis, and Qualys detection guidance.
Instead of using sshpass to non-interactively provide an SSH password, here is a simpler approach by harnessing the built-in features of OpenSSH...
For the last 39 years, PostScript has been at the heart of the Mac, bringing desktop publishing, fonts, and the LaserWriter and other printers. It has been removed from Sonoma.
I always wanted to understand how a CPU works, how it transitions from one instruction to the next and makes a computer work. So I thought: let's implement one and run a C program on it.
Over the past years I attended hundreds of interviews. Many candidates proudly told tales on how they develop their projects with a microservice architecture. Often (I don’t want to say “always”, but from my memory I think it actually is “always”) it does not require many questions to see that they used a rocket…
Building evolvable software systems is a strategy, not a religion. And revisiting your architectures with an open mind is a must.
Hackweek 22 took place last week. During this week all the SUSE employees are free to hack on whatever they want. This one of the perks of working at SUSE 😎.
The original ANSI C standard, C89, introduced the concept of “undefined behavior,” which was used both to describe the effect of outright bugs like accessing memory in a freed object and also to capture the fact that existing implementations differed about handling certain aspects of the language, including use of…
Window management is one of those areas I'm fascinated with because even after 50 years, nobody's fully cracked it yet. Ever since the dawn of time we've relied on the window metaphor as the primary way of multitasking on the desktop. In this metaphor, each app can spawn one or more rectangular windows, which are...
I was running some benchmarks the other day. I usually have a lot of things running (Teams, Chrome, IDE, etc…) but I have to close everything to run some tight benchmarks. When I am done, one of th…
Placing an order and capturing a payment are really different actions. I also learned a lot in a few days.
I was curious to explore how long a program takes to run, how much memory is used over time, and what processes/threads are spawned. To provide answers I wrote a tool, which I named st . Here are a few things I looked into.