Digging into a QEMU problem of slow data copying
The work on QEMU and this post was paid for by Determinate Systems, and the post was co-published on the Determinate Systems blog .
The work on QEMU and this post was paid for by Determinate Systems, and the post was co-published on the Determinate Systems blog .
Macintosh Application Environment for Unix -- from back in 1994.
curl, along with every other Internet tool with aspirations, supports proxies. A proxy is a (usually known) middle-man in a network operation; instead of going directly to the remote end server, the client goes via a proxy. curl has supported proxies since the day it was born. Which proxy? Applications that do…
How Virtual Machines were used to deploy services. What old problems containers solve and what new problems create. How Kubernetes used containers to recreate Virtual Machines in a better way?
You are seeing this because the administrator of this website has set up Anubis to protect the server against the scourge of AI companies aggressively scraping websites . This can and does cause downtime for the websites, which makes their resources inaccessible for everyone.
Two years ago more or less I started my journey in Linux. I was scared at first and I didn’t know where to start from. But then I decided to buy a book - and what a book! - in order to follow a path. Along the way, I integrated the material with up-to-date documentation from kernel.org and source code. In the…
Get root on macOS 13.0.1 with CVE-2022-46689 (macOS equivalent of the Dirty Cow bug), using the testcase extracted from Apple’s XNU source.
tl;dr: Having swap is a reasonably important part of a well functioning system. Without it, sane memory management becomes harder to achieve.
Multi-variable optimization is an incredibly useful tool for writing software. It allows you to specify a desired result and delegate finding the solution to a reliable algorithm. If you know what you want but not how to get it, optimization can probably help. Problems with many interacting variables that are…
I am lucky in that I have a few side projects which have grown up to become full fledged companies. One of them builds little tools to detect different types of financial crime.
The Microvium JavaScript engine for microcontrollers takes less than 16 kB of ROM and 64 bytes of RAM per VM while idle, making it possibly the smallest JavaScript engine to date with more language features than engines 4x its size
The Linux Scheduler: a Decade of Wasted Cores – Lozi et al. 2016 This is the first in a series of papers from EuroSys 2016. There are three strands here: first of all, there’s some grea…
Back in the old days, I could just type route (or, later, ip route) in my Linux terminal and get an accurate picture of all my routes. This is no longer the case.
The time has come to replace file systems!
In support of software packages that come in the form of a single binary executable (statically linked or portable), that one can just copy anywhere in `${PATH}` and execute, without needing `sudo`, or downloading half the distribution's packages as dependencies.
If you are a Rust developer you have most likely celebrated the news that the version 1.64 released on 22/09/2022 is 10-20% faster on…
I’ve been a maintainer of asdf for about 6 years now. Most of my work these last several years has been fixing bugs, writing automated tests …
If you are dealing with text in a computer, you need to know about encodings. Period. Yes, even if you are just sending emails. Even if you are just receiving emails. You don't need to understand every last detail, but you must at least know what this whole "encoding" thing is about. And the good news first: while the…
How big should your queue be, and what should you do when it fills up? Many times, we implement or even deploy a networking system before w...
This little ARM64 single-board computer dragged me into the world of device trees, voltage regulators, and one of the worst Heisenbugs I encountered so far.
Between 2016 and 2020 I wrote a series of blog posts called “How to speed up the Rust compiler”. These were mostly about my work on the Rust compiler, plus some updates on the progress on the Rust compiler’s speed in general.
Last week Microsoft started selling their $599 Windows Dev Kit 2023, formerly known as 'Project Volterra'. I got my hands on one after a little bit of a shipping delay, and promptly started tearing it down to see what's inside. You can click here to browse the entire Twitter thread where I posted pictures of the box…
The Threading library Starting in Emacs 26 some very ambitious changes were added. Basic thread support was enabled, laying the groundwork for a future concurrent emacs. The docs layout this possibility: Emacs Lisp provides a limited form of concurrency, called threads. All the threads in a given instance of Emacs…
Yesterday, Apple did release RosettaLinux as part of the macOS Ventura preview. Let’s take a first quick look…