Topics /

Systems & Performance

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

Any year
3276

Casually removing root files

You’re walking at $HOME, minding your own business. $ whoami > user $ pwd > /home/user But something is bothering your feet. It’s like if a little rock has fallen into your shoe. You take it off, to see what’s going on. $ ls -lah ./left-shoe ---------- 1 root root 4 May 30 13:20 little-rock That’s odd. It’s there, but…

3281

ZeroMQ: Modern & Fast Networking Stack

Berkeley Sockets (BSD) are the de facto API for all network communication. With roots from the early 1980's, it is the original implementation of the TCP/IP suite, and arguably one of the most widely supported and critical components of any operating system today. BSD sockets that most of us are familiar with are…

3282

The Evolution of Caching Libraries in Go

For the last few years, I've been developing caching library, and today I'd like to talk about the evolution of caches in Go and where we stand today. Especially since Go 1.24 was officially supposed to focus on caching improvements, but I haven't heard much news about them - time to fix that .

3286

GCC Specs: An Introduction

If you've ever used the GNU Compiler Collection (GCC) then you've worked with the gcc binary. For those who don't know, gcc is a driver, not a compiler. It runs the compiler/assembler/linker as required and coordinates the input and output between them. Use of the driver is so ubiquitous that everyone calls it the…

3287

Implementing a safe garbage collector in Rust

In my last post I introduced an Emacs Lisp VM I was writing in Rust. My stated goal at the time was to complete a garbage collector. I think Rust has some really interesting properties that will make building garbage collectors easier and safer. Many of the techniques used in my GC are not original and have been…

3290

Why I stopped releasing EasyOS as an ISO file

Some time ago I stopped releasing EasyOS as an ISO file, from then onward as a drive image file only. This has been contentious, and I receive emails from people lamenting the demise of the ISO. So, I should post some thoughts why I made this decision. Not an exhaustive rationale, just some thoughts while I think of…

3291

Linux – The beginning of the end?

Important article slash rant about the recent story involving Linus Torvalds and his behavior in the Linux kernel development circles, the subsequent apology, the fallout, and the disturbing implications and ramifications of the whole affair on the long-term survival of Linux as a whole

3294

ODROID-C2 Compared to Raspberry Pi 3 and Orange Pi Plus

tl;dr: The ODROID-C2 is a very solid competitor to the Raspberry Pi model 3 B, and is anywhere from 2-10x faster than the Pi 3, depending on the operation. The software and community support is nowhere near what you get with the Raspberry Pi, but it's the best I've seen of all the Raspberry Pi clones I've tried. The…

3295

Rootless Pings in Rust

Sending a ping by creating an ICMP socket normally requires root: you can’t create a raw socket to send ICMP packets without it. The ping command line tool works without root however, how is that possible? It turns out you can create a UDP socket with a protocol flag, which allows you to send the ping rootless. I…

3300

RaptorQ and performance optimization in Rust

I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set…