Disambiguating Arm, Arm ARM, ARMv9, ARM9, ARM64, AArch64, A64, A78, ...
If you’re new to the Arm ecosystem, consider this a quick primer on terms you likely have seen before but might have questions about.
If you’re new to the Arm ecosystem, consider this a quick primer on terms you likely have seen before but might have questions about.
The time has come to talk about something uncomfortable to a lot of you. You’ve been using legacy methods for far too long. It’s time to move to IPv6. But, of course, there’s a lot more to IPv6 than ‘just’ switching everything over. A lot of systems in the world still haven’t…
After many years of effort, I am happy to announce that Debian riscv64 is now an official architecture! This milestone is not the end of the...
In the past few years, I've heard a lot about Avro, Parquet, ORC, Arrow and Feather, but I also keep hearing about Iceberg and Delta Lake. As a "database person", I’ve been struggling to understand all of these different things, and how they relate to Data Lakes and
This post introduces [[butler]], a virtual operating system that runs multi-players applications on the web. In two parts, I present:
Fly.io Distributed Systems Challenges
Before Apple had even released its Developer Transition Kit, virtualisation was already one of the 3 pillars of software support on Apple silicon Macs.
By Phil Norman Code at Scale At Google, tens of thousands of software engineers contribute to a multi-billion-line mono-repository . This re...
In my previous role, I supported a Java service that operated similarly to RDP or Citrix by enabling remote UI functionality. This service relied on sessions, which consisted of interconnected Java objects that were supposed to be cleaned up either when a user logged out or after a predetermined timeout period.
In a recent pull-request for curl, I clarified to the contributor that their change would only be accepted and merged into curl's git code repository if they made sure that the change was done in a way so that it did not break (testing) for and on legacy platforms. In that thread, I could almost … Continue reading…
A blog about free software and programming
Web browsing is a pervasive part of modern life, and the quality of the experience directly affects the quality of your day. When your tasks are disrupted
An investigation of weird hardware utilization highlighting some interesting Linux kernel behaviors.
Media over QUIC: The long path to use something else for real-time media.
You are most likely familiar with AWS Lambda and Fargate — Amazon's serverless computing engines. At its nature, serverless computing introduces quite a challenging task requiring both tight security and great performance. For exactly that matter Amazon came up with its microVM solution called Firecracker .
Take a practical approach to containerization as we guide you through the step-by-step process of building your own Docker-like environment using Linux namespaces, cgroups, and chroot. Dive into the code and command examples to gain a deeper understanding of how these technologies work together to create isolated and…
Structures allow us to combine several variables to create a new data type. Some other languages support the same concept but call it “records”. If you come from object-oriented program…
RabbitMQ and Apache Kafka might appear similar but serve very different needs. Read to learn and make an informed decision suitable for your needs.
This is a very concise introduction to x86 disassembly. It shows that you probably have all the skills to start reading disassembly right now even if you thought it was too complicated for you. It really isn't, see it for yourself.
Linux is not a secure desktop operating system. However, there are steps you can take to harden it, reduce its attack surface, and improve its privacy. Before we start… Some of the sections will include mentions of unofficial builds of packages like linux‑hardened, akmod, hardened_malloc, and so on. These are not…
Introduced in 2019 (kernel 5.1) by Jens Axboe, io_uring (henceforth uring) is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. Whereas epoll and kqueue support multiplexing, where you're told when you can usefully perform a system call using some set of…
Over the past year I’ve refined my approach to arena allocation . With practice, it’s effective, simple, and fast; typically as easy to use as garbage collection but without the costs. Depending on need, an allocator can weigh just 7–25 lines of code — perfect when lacking a runtime . With the core details of my own…
When a laptop crashed in an empty office, we knew it was time to overhaul our performance testing framework.
Everyone already knows that SQLite is great. This article makes the praise much more specific though — it explains why we, the developers of libSQL, think that SQLite is a great choice for bringing your data to the edge.
ESET researchers are the first to publish an analysis of BlackLotus, the first in-the-wild UEFI bootkit capable of bypassing UEFI Secure Boot.
This is an introduction to data structure flattening, a special case of arena allocation that is a good fit for programming language implementations. We build a simple interpreter twice, the normal way and the flat way, and show that some fairly mechanical code changes can give you a 2.4× speedup.
Over the past years, the adoption of RocksDB increased dramatically. It became a standard for embeddable key-value stores.
It is time to celebrate EC2-Classic, which defined early cloud computing, and which is finally retiring.
How to modernize C arrays for greater memory safety: a case-study in refactoring the Linux kernel and a look to the future Kees Cook C i...