New
The latest blog posts to take off on Hacker News. 458 posts.
Arcan versus Xorg – Approaching Feature Parity
This is the first article out of two where I will go through what I consider to be the relevant Xorg feature set, and compare it, point by point, to how the corresponding solution or category works…
Validating UTF-8 bytes using only 0.45 cycles per byte (AVX edition)
When receiving bytes from the network, we often assume that they are unicode strings, encoded using something called UTF-8. Sadly, not all streams of bytes are valid UTF-8. So we need to check the strings. It is probably a good idea to optimize this problem as much as possible. In earlier work, we showed that ……
Systems, not Programs
We need programming, but do we need the program?
OpenBSD 6.4 released
OpenBSD 6.4
Making Windows Slower Part 2: Process Creation
Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use…
Vectorized Emulation: fuzzing at 2 trillion instructions per second
This is the introduction of a multipart series. It is to give a high level overview without really deeply diving into any individual component.
Using /proc to get a process' current stack trace
Check out how you can use the proc filesystem to retrieve the kernel stack trace of a given process
Oboe: A C++ library for low latency audio in Android
This week we released the first production-ready version of Oboe - a C++ library for building real-time audio apps. Oboe provides the lowest possible audio latency across the widest range of Android devices, as well as several other benefits.
Arguing against using protobuffers
I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions…
The benefits and costs of writing a POSIX kernel in a high-level language
This paper presents an evaluation of the use of a high-level language (HLL) with garbage collection to implement a monolithic POSIX-style kernel. The goal is to explore if it is reasonable to use an HLL instead of C for such kernels, by examining performance costs, implementation challenges, and programmability and…
Bpftrace for Linux 2018
bpftrace (DTrace 2.0) for Linux 2018: the bpftrace front-end
How Does an Intel Processor Boot?
When we switch on a computer, it goes through a series of steps before it is able to load the operating system. In this post we will see how a typical x86 processor boots. This is a very complex an…
Why you can have millions of goroutines but only thousands of Java threads
Many seasoned engineers working in JVM based languages have seen errors like this: [error] (run-main-0) java.lang.OutOfMemoryError: unable to create native thread: [error] java.lang.OutOfMemoryError: unable to create native thread: [error] at java.base/java.lang.Thread.start0(Native Method) [error] at…
A Brief History of High Availability
The perennial question of homo sapiens is, 'How did we get here?' Today we're going to take a crack at answering that: where 'here' is defined as 'high availability for web services'.
Lolbench: automagically and empirically discovering Rust performance regressions
ramblings by Adam Perry
A cache invalidation bug in Linux memory management
Posted by Jann Horn, Google Project ZeroThis blogpost describes a way to exploit a Linux kernel b...
How I ended up writing opensnoop in pure C using eBPF
opensnoop in pure C using eBPF
Haiku R1/beta1 has been released
After nearly 6 years since R1/alpha4, Haiku R1/beta1 has been released. See “Release Notes” for the (lengthy) release notes, “Press contact”, for press inquiries … and “Get Haiku!” to skip all that and just …
The relative performance of C and Rust
My blog post on falling in love with Rust got quite a bit of attention – with many being surprised by what had surprised me as well: the high performance of my naive Rust versus my (putatively less naive?) C. However, others viewed it as irresponsible to report these performance differences, believing that these…
Architecture of Nautilus, the new Dropbox search engine
Dash knows your context, your team, and your work, so your team can stay organized, easily find and share knowledge, and keep projects secure, all from one place.
LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group
ESET researchers have discovered the first in-the-wild UEFI rootkit. Dubbed LoJax, the research team has shown that the Sednit operators used different components of the LoJax malware to target a few government organizations in the Balkans as well as in Central and Eastern Europe.