A fun optimization trick from rsync
From the highly eclectic blog of Mark Dominus
Running FreeBSD on OS X using xhyve, a port of bhyve
xhyve is port of bhyve to OS X. It is built on top of Hypervisor.framework in OS X 10.10 Yosemite and higher, runs entirely in userspace, and has no other dependencies.
Towards fearless SIMD
SIMD is a powerful performance technique, and is especially valuable in signal and image processing applications. I will be using it very extensively in my synthesizer, and also it’s increasingly used in xi-editor to optimize string comparisons and similar primitives.
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.
Linux v4.15: Performance Goodies
With the Meltdown and Spectre fiascos , performance isn't a very hot topic at the moment. In fact, with Linux v4.15 released, it is one ...
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…
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…
Is sorted using SIMD instructions
Recently, I came across a function that checks whether an array is sorted, i.e. if there is no element which would be greater than its successor. Below is a sample implementation:
Three kinds of memory leaks
So, you’ve got a program that’s using more and more over time as it runs. Probably you can immediately identify this as a likely symptom of a memory leak. But when we say “memory leak”, what do we actually mean? In my experience, apparent memory leaks divide into three broad categories, each with somewhat different…
Nerd Sniped by BINFMT_MISC
How to script in any language thanks to rootless containers and BINFMT_MISC.
APFS encrypted plaintext password found in another log file
UPDATE: PLEASE HELP ME TEST At some point you just need to stop looking and be blissfully ignorant...this was not one of those days. In and update to my previously updated blog article , I have found another instance where the plaintext password was written to system logs. Thi
Making a low level Linux debugger, part 3: our first program
This continues a series where we make a debugger and live editor for (re)creating assembly and C programs.
Two Objects Not Namespaced by the Linux Kernel (2017)
Covers two Linux primitives that are not namespaced by the current set of Linux kernel namespaces.
Linux Raw Sockets
Recently I did a userspace implementation of the Host Identity Protokoll (HIPv2, RFC 7401) with the upcoming Diet Exchange (HIP DEX, IETF draft 6) . Doing so, I've learnt a lot about raw socktet programing under Linux and here I want to share a few things with you.
Emulate Mac OS 9 with QEMU
(Updated Dec 11, 2018)
Look ma, no locks
We describe a systematic approach for replacing locks with tasks. In this approach thread blocking is replaced by properly scheduling of tasks.
Stateful Experiments on AWS Lambda
In January 2017, we presented results to the European Commission on a FP7project called SyncFree, where we were tasked with a large-scale evaluationof the Lasp programming system. In this evaluatio...
Should you Rust in embedded yet?
A transcript of the talk I given in 2018 about the state of embedded programming in Rust.
Programming the Linux Framebuffer
Previously , I installed Linux on a small ARM Chromebook and set it up without X.Org, using only the console. After neglecting that machine for quite some time, I came back to it because I wanted to try some pixel-graphics programming and the framebuffer seemed like it might be an easy target.
Fixing bufferbloat on your home network with OpenBSD 6.2 or newer
My home network (which is also my work network) is a standard-issue Comcast cable hookup. In spite of a tolerable 120 megabits down, my experience of daily Internet use is regularly frustrating. Video streams and video chats drop in quality...
Spectre Mitigations in Microsoft's C/C++ Compiler
This form of Spectre can be used to attack a broad range of software -- operating systems, device drivers, web APIs, database systems, and almost anything else that receives untrusted input and may run on the same computer as untrusted code. Because large programs can contain literally millions of conditional branches…