New
The latest blog posts to take off on Hacker News. 4,390 posts.
Stream VByte: breaking new speed records for integer compression
In many information systems, we work with arrays of integers. For example, maybe you need to keep track of which records in a database contain a given value. This sort of mapping can be expressed as an array of integers. These arrays can end up taking up a large fraction of your memory or disk … Continue reading…
Book of the Runtime – Internals of the .Net Runtime not in the documentation
The Microsoft Docs at https://docs.microsoft.com are really fantastic lately. ...
On Disk IO, Part 3: LSM Trees
If you like the series, check out my book on Database Internals!
Mac OS High Sierra automatically checks EFI firmware each week
Every week, Macs running High Sierra will check the integrity of their EFI firmware, in a bid to detect tampering by malware.
APFS – A Backup Software Developer’s Perspective
A backup-software developer's deep dive into Apple's APFS file system — snapshots, cloning, space sharing, and what it all means for reliable Mac backups.
PulseAudio under the hood
If your browser does not support meta redirection please click here to be redirected.
Transactionally Staged Job Drains in Postgres
Building a robust background worker system that leverages transactional isolation to never work a job too early, and transactional durability to never let one drop.
Clocks for Software Engineers
If you have a software background and you want to pick up digital design,then one of the first things you need to learn about early on is the conceptof the c...
Why is memory reclamation so important for lock-free algorithms?
As it so happens, object lifetime tracking (or Memory Reclamation as I prefer to call it) is the current most difficult open problem in sha...
Chrome OS native development
Native development on a Chromebook, with Chrome OS in Developer Mode
Implementing strcmp, strlen, and strstr using SSE 4.2 instructions (2008)
Created 18 years ago by Peter Kankowski Last changed 17 years ago Contributors : Dap and Adam Messinger Filed under Low-level code optimization
Playing with Kernel TLS in Linux 4.13 and Go
The 1600 LoC patch allows userspace to pass the kernel the encryption keys for an established connection, making encryption happen transparently inside the kernel.
Hey Synaptics, Can You Please Stop Polling
TL;DR – be wary of buying a Lenovo laptop or any other laptop that uses a Synaptics touch pad until Synaptics ships a fixed driver. Their driver has a memory leak and they have a battery-life bug t…
The Windows Shutdown crapfest (2006)
I worked at Microsoft for about 7 years total, from 1994 to 1998, and from 2002 to 2006. The most frustrating year of those seven was the ...
The sudden death and eternal life of Solaris
As had been rumored for a while, Oracle effectively killed Solaris on Friday . When I first saw this, I had assumed that this was merely a deep cut, but in talking to Solaris engineers still at Oracle, it is clearly much more than that. It is a cut so deep as to be fatal: the core Solaris engineering organization lost…
Hell is a multi-threaded C++ program (2006)
What are threads? Every modern operating system has support for threads, and most programming environments provide some level of support for...
A Bourne-style shell built from scratch in 35 minutes [video]
We build a shell in the style of the Bourne shell, Bash, zsh, etc. It supports (1) running commands with arbitrarily many arguments, (2) quoting those arguments, and (3) combining the commands into arbitrarily long pipelines where the output of one command becomes the input of the next. This requires writing a parser…
An adventure in trying to optimize math.Atan2 with Go assembly
This is a recount of an adventure where I experimented with some Go assembly coding in trying to optimize the math.Atan2 function.
Rethinking the D-Bus Message Bus
Later this year, on November 21, 2017, D-Bus will see its 15th birthday. An impressive age, only shy of the KDE and GNOME projects, whose collaboration inspired the creation of this independent IPC system. While still relied upon by the most recent KDE and GNOME releases, D-Bus is not free of criticism. Despite its…
A history of branch prediction
This is a pseudo-transcript for a talk on branch prediction given at Two Sigma on 8/22/2017 to kick off "localhost", a talk series organized by RC .
Serverless Raspberry Pi Cluster with Docker
Learn how to deploy Docker Swarm to create a Raspberry Pi cluster then turn it into a serverless super-computer with the OpenFaaS framework for Docker.
Latency matters
A month ago, danluu wrote about [terminal and shell performance](https://danluu.com/term-latency/). In that post, he measured the latency between a key being pressed and the corresponding character appearing in the terminal. Across terminals, median latencies ranged between 5 and 45 milliseconds, with the 99.9th…
Ideal OS: Rebooting the Desktop Operating System
Twitter user ekse has graciously translated this blog to Chinese. Thanks! TL;DR: By the end of this essay I hope to convince you of the following facts. First, that modern desktop operating systems are anything but. They are bloated, slow, and layered with legacy cruft that still functions only thanks to Moore's Law…
Why PS4 downloads are so slow
PS4 downloads have a reputation of being very slow. I did some digging to find out the root cause, and was surprised.