The wrong way to switch operating systems on your server
world wide web benji-style
Topics /
The most popular blog posts about systems & performance on Hacker News. 4,390 posts.
world wide web benji-style
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
Suppose you have multiple processes appending output to the same file without explicit synchronization. These processes might be working in parallel on different parts of the same problem, or these might be threads blocked individually reading different external inputs. There are two concerns that come into play:
In C, the length of a string in marked by a 0 byte at the end of the string. Thus to determine the length of the string, one must scan it, looking for the 0 byte. Recent ARM processors have a powerful instruction set (SVE) that is well suited for such problems. It allows you … Continue reading Implementing ‘strlen’…
The personal blog of Pig Fang.
How to disable heap (dynamic memory allocation) in an embedded application? This article goes into the details of linker files and how to detect dynamic memory allocation.
Jonathan Blow of “The Witness” fame likes to talk about just typing the obvious code first. Usually it will turnout to be fast enough. If it doesn’t, you c...
[New to Gemini? Have a look at my Gemini FAQ.] This article was bi-posted to Gemini and the Web; Gemini version is here: gemini://gemini.circumlunar.space/users/kraileth/neunix/2025/installing_bsd_…
Safely leverage PostgreSQL's asynchronous commit for significant performance gains
Update (28th of September 2026) Max Desiatov told me that the @c swift attribute should work, instead of declaring the functions using @_cdecl. The @c attribute marks a global function as a C function implemented in Swift, which formalizes the @_cdecl attribute. A link to the proposal is available here. I did update…
Kernel modules are code components that can be loaded and unloaded by the kernel when required. They are used to extend the functionality…
Discussion on notions of software complexity as defined by Rich Hickey, John Ousterhout and Zach Tellman.
Wherein the author discusses the Plan 9 operating system. First of several.
It's been a while since I've last rewritten my favorite lexical analyzer :-) That post is the last in a series implementing a lexer for the TableGen language in a variety of programming languages, using multiple techniques. The last lexer written, in Go, was very fast indeed - processing 1 MiB of source in about 20…
ABSTRACT In May 2003, the University of Wisconsin - Madison found that it was the recipient of a continuous large scale flood of inbound Internet traffic destined for one of the campus' public Network Time Protocol (NTP) servers. The flood traffic rate was hundreds-of-thousands of packets-per-second, and hundreds of…
A lot of people seem to be talking about and performing load tests on HTTP servers, perhaps because there’s a lot more choice of servers these days.
Unikernel Profiling: Flame Graphs from dom0. This post investigates performance profiling of Unikernels, and with a proof of concept shows that with a little work a lot of observability is possible.
We all know that when designing and operating applications at scale, it is persistent state management that brings the most difficult challenges. Delivering state-free applications has always been (fairly) easy. But most interesting commercial and consumer applications need to manage persistent state. Advertising…
While working on my Windows 3.x display driver , I ran into a vexing problem. In Windows 3.1 running in Enhanced 386 mode, I could start a DOS session and switch it to a window. But an attempt to set a mode in the DOS window (e.g. MODE CO80 ) would destroy the Windows desktop, preventing further drawing from happening…
I got into some interesting discussions about IPv6 on Twitter. Then someone asked if Android is getting DHCPv6 support in version 11 of the OS.