Topics /

Systems & Performance

The most popular blog posts about systems & performance on Hacker News. 4,387 posts.

Any year
848

Why Const Doesn't Make C Code Faster

In a post a few months back I said it’s a popular myth that const is helpful for enabling compiler optimisations in C and C++ . I figured I should explain that one, especially because I used to believe it was obviously true, myself. I’ll start off with some theory and artificial examples, then I’ll do some experiments…

852

Landlock-Ing Linux

Landlock is a Linux API that lets applications explicitly declare which resources they are allowed to access. Its philosophy is similar to OpenBSD’s unveil() and (less so) pledge() : programs can make a contract with the kernel stating, “I only need these files or resources — deny me everything else if I’m…

854

Wddbfs – Mount a SQLite database as a filesystem

Often when I’m prototyping a project, I hesitate to use a sqlite database despite their many adavantages . It seems much easier to just dump a bunch of files in a directory and to rely on the universal support for the filesystem API to read/delete/update records. Part of this is avoiding the overhead of figuring out a…

861

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.

862

Desktop Linux Hardening (2022)

Linux is not a secure desktop operating system. However, there are steps you can take to harden it, reduce its attack surface, and improve its privacy. Before we start… Some of the sections will include mentions of unofficial builds of packages like linux‑hardened, akmod, hardened_malloc, and so on. These are not…

866

Io uring

Introduced in 2019 (kernel 5.1) by Jens Axboe, io_uring (henceforth uring) is a system for providing the kernel with a schedule of system calls, and receiving the results as they're generated. Whereas epoll and kqueue support multiplexing, where you're told when you can usefully perform a system call using some set of…