How I ended up writing a new real-time kernel (2015)
You're reading the original article in English. You can as well read the translation in Russian .
Linux Observability with BPF
Why BPF and XDP are something you should learn.
Evolution of the x86 context switch in Linux (2018)
Tracing the x86 context switch in Linux throughout time
Where do interrupts happen?
Trying to determine exactly where asynchronous interrupts are delivered on Intel CPUs.
Stop Memsetting Structures
TL;DR: Use C99’s designated initializers instead. Because it’s 2019! Edit: This post was discussed on Hacker News, Lobste.rs and /r/c_programming. It has been updated to address some of the concerns raised by commenters. One of the little things that annoy me when reading code is the unnecessary use of memset() to…
A2-class microSD cards offer no better performance for the Raspberry Pi
Update: See follow-up post about A1 vs A2 performance, Raspberry Pi microSD follow-up, SD Association fools me twice?. After I published my 2019 Raspberry Pi microSD card performance comparison, I received a lot of feedback about newer 'A2' Application Performance class microSD cards, and how they could produce even…
A Primer on Database Replication (2017)
A Primer on Database Replication
The potential risk to ZFS created by the shift in its userbase
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…
The July Galileo Outage: What happened and why
By bert hubert / bert@hubertnet.nl This post is an excerpt of a far longer post on Galileo, its structures and the cause of the outage. Here we’ll only focus on the outage - the potential underlying reasons behind it are described in the full article. Since the week-long outage in July I’ve been fascinated by Galileo…
An x86 Assembler in 256 LOC (2017)
For the first “real” post in this blog, we’ll build an x86 assembler in less than 256 lines of C code. Obviously, it won’t implement every x86 instruction, but it will implement a surprisingly useful subset: data movement, control flow, integer arithmetic, bitwise operations, and function calls. We won’t be able to…
Why don't we have Wayland on Raspberry Pi yet? (2018)
I have long wanted to create my own desktop operating system targeting the Raspberry Pi. I believe we should have a hackable desktop environment that is both powerful and lightweight, similar to BeOS and the Amiga. To build this desktop we really need full control over how apps draw to the screen, but still have…
Shipping a compiler every six weeks
This blog post is a slightly edited version of the live transcript of the talk I gave at RustFest 2019 in Barcelona on November 10th, 2019. As it's a transcript some parts of it are a bit repetitive or badly worded, but I hope the message behind the talk will be conveyed by this post anyway.
State of Industrial Control Systems in Poland and Switzerland
TL;DR New update for Kamerka allows to map Industrial Control Systems of whole country. As in previous version, interactive map is created…
Performance Tuning for .NET Core
Some of you may know I've been spending whatever time I can scrounge together grinding away at a new serialization library for .NET. Serializers can be complicated beasts. They have to be reliable, flexible, and fast beyond reproach. I won't convince you that serialization libraries have to be quick — in this post…
The sad state of font rendering on Linux
As it turns out, font rendering is a highly controversial topic. If you don’t see anything wrong with Linux font rendering, please disregard this as a shitpost. Thanks.
Battle testing data integrity verification with ZFS and Btrfs
In this article I share the results of a home-lab experiment in which I threw some different problems at ZFS, Btrfs and mdadm+dm-integrity in a RAID-5 setup.
Windows XP minimal-requirement experiments (2006)
Wettbewerb um die ultimative Mindestanforderung für Windows XP zu finden.
CPU Introspection: Intel Load Port Snooping
I blog about random things security, everything is broken, nothing scales, shared memory models are flawed.
Azure Cosmos DB: Microsoft's Cloud-Born Globally Distributed Database
It has been almost 9 months since I started my sabbatical work with the Microsoft Azure Cosmos DB team. I knew what I signed up for then...
Introduction to TLA+ Model Checking in the Command Line
Otherwise known as “wait, you mean I can use the TLA toolbox from the command line?”
Unicode programming, with examples in C
Most programming languages evolved awkwardly during the transition from ASCII to 16-bit UCS-2 to full Unicode. They contain internationalization features that often aren’t portable or don’t suffice.
Why Windows 10 Sucks or Everything Wrong with Microsoft Windows
It's funny and equally sad that year 2015 marks the end of the Windows OS for a lot of people. There are several issues with Windows which, at present, make Spyware/ Malware OS 10 inappropriate and even outright dangerous for a lot of people. The most egregious, of course, is a total abandonment of any form of privacy…
Writing an OS in Rust: Testing
This post explores unit and integration testing in no_std executables. We will use Rust’s support for custom test frameworks to execute test functions…
Building a home NAS on a shoestring budget with the Rock64 SBC (2018)
I’ve gone through many iterations of a Home NAS over the years. It started with an AMD Phenom based system running in a Norco case with about 8 hard SATA hard drives (4 primary, 4 backup via Rsync). The noise and power consumption of that system was overkill for what it was used for, so I sold it and went to a…