Fallacies of distributed systems
Fallacies of distributed systems are a set of assertions made by L Peter Deutsch and others at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make.
Rust in the Linux Kernel: Just the Beginning
Support for using Rust in the Linux Kernel was recently merged by Linus Torvalds. This is important because Rust is memory safe, meaning that code written in Rust does not suffer from things like buffer overflows, use-after-free, and other memory management vulnerabilities that plague software written in unsafe…
Uxn is a virtual machine with 32 instructions
By Devine Lu Linvega
How Precision Time Protocol is being deployed at Meta
Implementing Precision Time Protocol (PTP) at Meta allows us to synchronize the systems that drive our products and services down to nanosecond precision. PTP’s predecessor, Network Time Protocol (…
Use fast data algorithms (2021)
As an engineer who primarily works with data and databases I spend a lot of time moving data around, hashing it, compressing it, decompressing it and generally trying to shovel it between VMs and blob stores over TLS. I am constantly surprised by how many systems only support slow, inefficient, and expensive ways of…
Understanding Google’s File System (2020)
These paper reviews can be delivered weekly to your inbox , or you can subscribe to the Atom feed . As always, feel free to reach out on Twitter with feedback or suggestions!
Running the Steam Deck’s OS in a virtual machine using QEMU
The Steam Deck is a handheld gaming computer that runs a Linux-based operating system called SteamOS. The machine comes with SteamOS 3 (code name “holo” ), which is in turn based on Arch Linux.
Yes, the 8086 wanted to be mechanically translatable from the 8080, but
So many addressing modes, so little space.
The most important thing to understand about queues (2016)
You only need to learn a little bit of queueing theory before you start getting that ecstatic “everything is connected!” high that good math always evokes. So many damn things follow th…
New Ghostscript PDF interpreter
Details for Ghostscript's new PDF interpreter
C Runtime Overhead (2015)
What do you do when libc is your bottleneck? If the total runtime of your process is under 10ms, most of this time (depending on your hardware) is spent waiting for the linker and C runtime to set things up. If you compare this to the Latency Numbers Every Programmer Should Know , it falls right above "disk seek" and…
LXC vs. Docker
Are you confused about whether to use LXC or Docker for your containerization needs? This article compares the two container platforms in terms of ...
My Unholy Battle with a Rock64
I’ve got this rock64, which is an aarch64 board comparable to a Raspberry Pi 3 B+ with 4 gigs of ram. For years I’ve wanted to put a distribution on here that doesn’t have a premade image available, mainly because out of all the options on that page I don’t actually like any of them. Well, except NetBSD, but NetBSD…
Git’s database internals I: packed object store
This blog series will examine Git’s internals to help make your engineering system more efficient. Part I discusses how Git stores its data in packfiles using custom compression techniques.
Notes on BPF and eBPF
Notes on BPF & eBPF
A general overview of what happens before main() (2019)
8 April 2019 by Phillip Johnston • Last updated 22 August 2022For most programmers, a C or C++ program’s life begins at the main function. They are blissfully unaware of the hidden steps that happen between invoking a program and executing main. Depending on the program and the compiler, there are all kinds of…
From macOS to FreeBSD
Personal experience with moving away from Apple's world.
An Introduction to PipeWire
This blog post is the first part of a series of 3 articles related to the PipeWire project and its usage in embedded Linux systems.
Oxide at Home: Propolis Says Hello
So Oxide is making some cool stuff huh? Big metal boxes with lots of computer in them. Servers as they should be! Too bad I can’t afford to buy one for myself… but wait, they’re open-sourcing the software they’re writing to do it. Mom said we can have Oxide at Home!
Raft Is So Fetch: The Raft Consensus Algorithm Explained Through Mean Girls
Understanding the Raft Consensus Algorithm can be tough. In honor of "Mean Girls" day (October 3), we present Raft as explained through the movie "Mean Girls."
Cardboard: a scrollable tiling window manager
After the initial learning curve, I found that Cardboard WM help me stay focused on one task and it greatly reduced how much time I spent rearranging my windows.
Safely writing code that isn't thread-safe
An under-appreciated Rust feature
Why is the OpenBSD documentation so good?
In this article, I'm trying to understand what makes the OpenBSD documentation that good.
Update Firmware of Samsung SSDs in Linux
Firmware flash Samsung SSD or NVMe directly from Linux without needing broken Samsung ISO boot environment!
Attacking Firecracker: AWS' MicroVM Monitor Written in Rust
Why are more security teams adopting Firecracker? How secure is it, and how suitable is it for your organization? This guide dives into this trending innovation.