New
The latest blog posts to take off on Hacker News. 4,388 posts.
Gzip exceptions, but only on hot or rainy days
A debugging story about a mysterious C# gzip decompression exception and what actually caused it, with investigation steps and lessons learned.
How stdbuf works
Harry Marr — Member of Technical Staff at Anthropic. Co-founded Dependabot, previously at GitHub, Monzo, and GoCardless.
Why is Rosetta 2 fast?
Rosetta 2 is remarkably fast when compared to other x86-on-ARM emulators. I’ve spent a little time looking at how it works, out of idle curiosity, and found it to be quite unusual, so I figur…
Unix as a tool forge and how Emacs fits in Unix philosophy
Wikipedia cites a few different sources on what “Unix Philosophy” is. Peter Salus summarizes it as:
Maps and Memory Leaks in Go
A map can always grow in memory; it never shrinks. Hence, if it leads to some memory issues, you can try different options.
How to make sure no dynamic memory is used
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.
Galois field instructions on 2021 CPUs
CPUs like to operate on data types such as uint8_t , uint16_t , uint32_t , and uint64_t . These data types can be viewed as integers modulo 2 8 , 2 16 , 2 32 , and 2 64 respectively. Addition and multiplication can be defined on these integers modulo 2 N in a way which is familiar to most people; for example, in…
Home truths about macOS
True or false? Apple supports macOS for three years. Apple’s security updates are sufficient. New versions of macOS are full of bugs. It’s safer to delay upgrading.
The Linux scheduler: A decade of wasted cores (2016)
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…
Is CBL-Mariner going to become Microsoft Linux?
Microsoft is increasingly standardizing on its in-house CBL-Mariner Linux distribution. Is this Microsoft Linux?
Linux boot partitions and how to set them up
Posts and writings by Lennart Poettering
Testing Microsoft's Windows Dev Kit 2023
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…
Comparing TCP and QUIC
There is a common view out there that the QUIC transport protocol (RFC 9000) is just another refinement to the original TCP transport protocol [ 1 ] [ 2 ]. I find it hard to agree with this sentiment, and for me QUIC represents a significant shift in the set of transport capabilities available to applications in terms…
Cache Associativity
Consider a strided incrementing loop over an array of size $N=2^{21}$ with a fixed step size of 256:
If one GUI's not enough for your SPARC workstation, try four
Who needs a jack-o-lantern when you've got a bright orange gas plasma display? This is a 1990 Solbourne Computer S3000 all-in-one workst...
Compilers and IRs: LLVM IR, SPIR-V, and MLIR
Overall discussion on compilers and IRs (LLVM IR, SPIR-V, and MLIR): why they are in their current manner and how they would evolve
The Talos II, Blackbird POWER9 systems support tagged memory
Nowadays, there is increasing interest in adding tagged memory functionality to CPU architectures. Such architectures associate one or more tag bits with each quantum of a system's memory. There are many motivations for this ability to associate “metadata” with individual memory words, but one of the most clear is the…
Untangling Lifetimes: The Arena Allocator
Making performant dynamic manual memory management in C feel almost like garbage collection.
Linux 6.1 on NanoPi R4S – On fixing SD-card support, Heisenbugs and Rabbit Holes
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.
Bringing a dynamic environment to C: My linker project
I'm writing a linker. It's an unusual linker. It's focus is not on producing executable files. Instead, its focus is to facilitate rapid iteration on a program without having to re-link or re-open it after making changes. It is hot-loading of code at an object-file granularity.
Why I use Jellyfin for my home media library
The blog post Streaming services lost the plot detailed how streaming services have become the thing they were made to destroy. Like cable networks and satellite companies before, they're raising rates (at a rate higher than inflation), stuffing their content libraries with filler that's not even worth the bandwidth…
Writing systemd units that stop gracefully before shutdown
systemd Shutdown Units
Time is an illusion, Unix time doubly so
Unix counts time as seconds since the epoch. Seems straight forward. What could possibly go wrong?
Brave New Trusted Boot World
Posts and writings by Lennart Poettering
Multi-Kernel Drifting
Using truss, dtrace & ctfconvert to figure out a faulty illumos kernel module.
How the clipboard works
Reading how copy-paste works from the Wayland specification is non-trivial unless you understand a lot of how desktop computing works and Wayland internal. It took me quite a while to figure it all out, though once you get there, it seems quite obvious.
The cult of dd (2017)
You'll often see instructions for creating and using disk images on Unix systems making use of the dd command. This is a strange program of [obscure provenance](https://en.wikipedia.org/wiki/Dd_(Unix)) that somehow, still manages to survive in the 21st century.