Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 6,943 posts.
Sometimes Kill -9 Isn't Enough
If there’s one thing to know about distributed systems, it’s that they have to be designed with the expectation of failure. It’s also safe to say that most software these days is, in some form, distributed—whether it’s a database, mobile app, or enterprise SaaS. If you have two different processes talking to each…
Anatomy of Linux Dynamic Libraries
Dynamically linked shared libraries are an important aspect of GNU/Linux. They allow executables to dynamically access external functionality at run time and thereby reduce their overall memory footprint (by bringing functionality in when it's needed). This article investigates the process of creating and using…
Smaller than Bloom filters
I've been looking at what would be needed in order to have a global view of CRLs in browsers. At the moment revocation has three problems: privacy (by asking the CA about the status of a certificate you're revealing to them what you're looking at), performance (OCSP checks take hundreds of milliseconds which adds up…
Porting rr to x86-64
(TL;DR: rr from git can record and replay 64-bit programs. Try it for yourself !)
Process behaviour anomaly detection using eBPF and unsupervised learning
Hello everybody, I hope you’ve been enjoying this summer after two years of Covid and lockdowns :D In this post I’m going to describe how to use eBPF syscall t…
LLVM internals, part 4: attributes and attribute groups
This is the last post I plan to do on parsing LLVM’s bitcode, at least for a while. I’ll keep working on the various libraries that I’ve started under the mollusc umbrella, but they won’t be accompanied by regular posts anymore — I’d like to refocus on writing smaller, less dense (read: lower-pressure) posts for a…
Monitoring and Tuning the Linux Networking Stack: Sending Data
This post discusses monitoring and tuning the Linux networking stack in great detail with the focus on sending data.
Build a simple LSM-Tree storage engine in a week
A hands-on introduction to database internals. Build an LSM storage engine with SSTables, compaction, WAL recovery, MVCC, and transactions.
What I think what we need to do to keep FreeBSD relevant (2019)
Since I participate in the FreeBSD project there are from time to time some voices which say FreeBSD is dead, Linux is the way to go. Most of the time those voices are trolls, or people which do not really know what FreeBSD has to offer. Sometimes those voices wear blinders, they only see their
We're moving away from swap partitions on our Linux servers
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…
Why collision avoidance is harder for an AI-based system
Recent incident where Uber car was involved in an accident where a cyclist got killed has sparked many comments and opinions. Many blame…
A bit of XENIX history (2014)
Retrocomputing and other indulgences
MutexProtected: A C++ Pattern for Easier Concurrency
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
Firefox 32-bit Linux Support to End in 2026
For many years, Mozilla has continued to provide Firefox for 32-bit Linux systems long after most other browsers and operating systems ended support. We made this choice because we care ...
Why can’t you just roll back from a bad macOS update?
If it’s so easy to uninstall a troublesome RSR, why can’t we simply roll back to a previous version of macOS, like we did in High Sierra?
Dealing with Out-of-Memory Conditions in Rust
In this post, CrowdStrike's Engineering team walks through one possible way of adapting a library to handle OOM events without aborting the process.
The Move from Linux to FreeBSD
About 2 months ago, I had a spare VPS at my host, Hetzner. So I decided to play with FreeBSD which was being offered for Hetzner servers and VPSes.That’s how the whole thing started. I didn’t have much problems getting the concepts because it belongs to *nix family of OSes [...]
LUMI, Europe’s most powerful supercomputer
LUMI is the first pre-exascale supercomputer of the EuroHPC Joint Undertaking and is now Europe’s most powerful supercomputer. It will be inaugurated on Monday 13 June 2022 in Kajaani. LUMI offers European researchers a world-class tool for understanding complicated phenomena, such as climate change. LUMI serves as a…
OpenBSD is a cozy operating system
With the recent release of OpenBSD 7.5, I decided to run through my personal OpenBSD “installer” for laptop/desktop devices. The project is built off of the dwm tiling window manager and only installs a few basic packages. The last time I updated it was with the release of 7.3, so it’s been due for an minor rework.
Fedora 22 released
We are proud to announce the official release of Fedora 22, the community-driven and community-built operating system now available in Cloud, Server, and Workstation editions. If that’s all you need to hear, jump over to Get Fedora to download — or for current users, run the upgrade tool. In addition to the latest…
Booting an M1 Mac from an external disk
If you’ve been unable to create a bootable external disk to use with your M1 Mac, this explains what you need and its limitations and quirks.
The costs of the i386 to x86-64 upgrade
If you read my previous article on DOS memory models, you may have dismissed everything I wrote as “legacy cruft from the 1990s that nobody cares about any longer”. It's time to see how any of that carried over through the 16-bit to 64-bit evolution.
Abusing C to implement JSON parsing with struct methods
Json parsing in C using function pointers attached to a struct
Hidden dependencies in Linux binaries
I have recently released an open source tool called sotrace . It maps out the .so dependencies for a binary or library, and presents th...
Why Cassandra Doesn't Need Vector Clocks
Deepening watsonx capabilities to address enterprise gen AI data needs with DataStax.
Command-line apps with Clojure and GraalVM: 300x better startup times
I am a fond Clojure user, and love to use it for both server-side projects and small command-line tools. I love its expressivity and concision, and I like th...