New
The latest blog posts to take off on Hacker News. 555 posts.
Leveraging Rust in our Java database
A guide to adding Rust to a Java codebase with JNI and the rust-maven-plugin.
Unix shells are generally not viable access control mechanisms any more
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
How FoundationDB works and why it works (2021)
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…
Introduction to Immutable Linux Systems
In this article, you will learn what stands behind the label immutable when it comes to Linux systems
Running one’s own root Certificate Authority in 2023
A tale how running your own x509 root CA – for internal services – changed in the last 20 years.
How does Linux start a process
Stack smashing: How Linux creates the stack and runs a program. Then mess with it.
WASI Support in Go
Go 1.21 adds a new port targeting the WASI preview 1 syscall API
Hypervisor from Scratch (2022)
We write about Windows Internals, Hypervisors, Linux, and Networks.
S32 Unix Clock
I've been thinking I should do more "short form" blogging. Something between microblogging and regular blogging. This is me doing that!
Death by a Thousand Microservices
The software industry is learning once again that complexity kills
Unix Domain Sockets vs Loopback TCP Sockets (2014)
Two communicating processes on a single machine have a few options. They can use regular TCP sockets, UDP sockets, unix domain sockets, or shared memory. A recent project I was working on used Node…
RISC-V SBI and the full boot process
Detailed explanation on how RISC-V boot process works and what role SBI has in the RISC-V software stack. Concrete example with OpenSBI.
How does Linux NAT a ping?
A few months ago, I found myself wondering how a command like ping 1.1.1.1 works from within a private network. In most private networks, multiple hosts connect to the Internet through a router. For IPv4, the router performs network address translation (NAT) by rewriting the original host’s source address to the…
Why you might want async in your project
There is a common sentiment I’ve seen over and over in the Rust community that I think is ignorant at best and harmful at worst.
Using LD_PRELOAD to cheat, inject features and investigate programs
This post assumes some basic C skills. Linux puts you in full control. This is not always seen from everyone’s perspective, but a power user loves to be in control. I’m going to show yo…
Unpacking Elixir: Real-Time and Latency
Elixir was built on Erlang. Erlang was built to provide "consistently low latency" and a few other audacious goals. Note, this is not a hard realtime constraint. It is soft, squishy and yet, important and real. It makes Erlang unusually suitable to systems where latency matters and where a near-realtime experience is…
What happens when you shift a register by more than the register size?
A comparative study of processor architectures.
JIT-optimized Ruby can outperform a C extension
YJIT’s ability to improve performance by adapting to run-time behavior can increase the speed of our code in a way that dropping down to C can’t. As such, I think we should reconsider the common wisdom that “rewriting our Ruby in C” is the ideal path to performance optimization and take a serious look at “rewriting…
How Amazon uses chaos engineering to handle 80k requests per second
Discover how Amazon Search combines technology and culture to empower its builder teams, ensuring platform resilience through Chaos Engineering.
Amiga Systems Programming in 2023
If you ever get a chance to look through the classic Amiga OS source-code still floating around some murky corners of the internet, it is a thing of beauty and astonishing capabilities. It’s an inspirational piece of computing history with unmatched capabilities for the time. Remember, this was all on a computer…
ZFS for Dummies
As mentioned on previous posts, I have spent the past few weeks dealing with a ZFS crash on my FreeNAS install. Because of that, not only was I forced to learn how to troubleshoot ZFS, but I also had to learn how to setup new volumes and come up with new backup strategies (between a few other things).
Using uninitialized memory for fun and profit (2008)
This is the story of a clever trick that's been around for at least 35 years, in which array values can be left uninitialized and then read during normal operations, yet the code behaves correctly no matter what garbage is sitting in the array. Like the best programming tricks, this one is the right tool for the job…
Space travel via tether between asteroids
I wish I knew if my math was correct...
Philosophy of Coroutines
I encountered the idea as a student, when I first read The Art of Computer Programming . I’d been programming already for most of my childhood, and I was completely blown away by the idea, which was entirely new to me. In fact, it’s probably not an exaggeration to say that in the whole of TAOCP that was the single…
Microsoft finds underwater datacenters are reliable, practical and use energy sustainably
Microsoft retrieved the Northern Isles underwater datacenter from the seafloor off Scotland's Orkney Islands. Project Natick is proving the concept of underwater datacenters is feasible as well as logistically, environmentally and economically practical.
Mashing Enter to bypass full disk encryption with TPM, Clevis dracut and systemd
This vulnerability allows a physically-present attacker to control the full disk encryption unlock process and gain complete access to decrypted content in some cases where a TPM, dracut and Clevis are used.
Farewell EC2-Classic, it’s been swell
It is time to celebrate EC2-Classic, which defined early cloud computing, and which is finally retiring.