New
The latest blog posts to take off on Hacker News. 4,389 posts.
How Secure Boot Works on M1 Series Macs
This article has now been extensively corrected and modified.
MIT Scheme on Apple Silicon
Instructions for compiling and running MIT/GNU Scheme.
The Container Throttling Problem
This is an excerpt from an internal document David Mackey and I co-authored in April 2019. The document is excerpted since much of the original doc was about comparing possible approaches to increasing efficency at Twitter, which is mostly information that's meaningless outside of Twitter without a large amount of…
Raspberry Pi holds its own against low-cost ARM NAS
Earlier this year, I pitted the $549 ASUSTOR Lockerstor 4 NAS against a homebrew $350 Raspberry Pi CM4 NAS, and came to the (rather obvious) conclusion that the Lockerstor was better in almost every regard. Well, ASUSTOR introduced a new lower-cost NAS, the $329 Drivestor 4 Pro (model AS3304T—pictured above), and sent…
FreeBSD Jails for Fun and Profit (2020)
Docker has recently stormed into software development. While its concepts are powerful and valuable, similar tools have been used in systems for decades. FreeBSD’s jails in one of those tools which build upon even older chroot(2). To put it shortly, with these tools, you can make a safe environment separated from the…
Isolating Xwayland in a VM
In my last post, Qubes-lite with KVM and Wayland, I described setting up a Qubes-inspired Linux system that runs applications in virtual machines. A …
Faster Linux 2.5G Networking with Realtek RTL8125B
Since the Raspberry Pi Compute Module 4 was introduced last year, I've been testing a variety of PCI Express NICs with it. One of the main types of NIC I'm interested in is cheap 2.5 Gigabit Ethernet adapters. 2.5 Gigabits is about the highest reasonable bandwidth you can get through the PCI Express Gen 2.0 x1 lane on…
The QOI File Format Specification
Last month I announced a toy project called QOI — the Quite OK Image Format . It losslessly compresses RGB and RGBA images to a similar size of PNG, while offering a 20x-50x speedup in compression and 3x-4x speedup in decompression.
Upgrading a motherboard’s BIOS/UEFI (the hard way)
A couple of weeks ago I found a really good deal on a Socket AM4 motherboard that supports the newest AMD Ryzen CPUs. The motherboard is an ASRock A520M/ac . It’s a very basic motherboard which doesn’t appear to be sold by any of the usual retailers anymore, but I couldn’t pass up on the deal, especially with the…
Unix Shell Programming: The Next 50 Years
This week’s paper won the distinguished presentation award at HotOS 2021, and discusses the potential for future innovation in the tool that many use every day - the shell! A previous submission of this paper on Hacker News elicited a number of strong reactions. One reaction was the assertion that there are in fact…
Allocgate: Restructuring how allocators work in Zig
Version 0.9 of the Zig programming language is planned to release in about a week. One of the major changes coming in this release is a restructuring of how allocators work, which has been termed Allocgate . This is a breaking change to the Allocator API provided by the standard library, so pretty much any code that…
Pine64 and Radxa's new Pi CM4-compatible boards
Since the Raspberry Pi was introduced, hundreds of clones have adopted the Pi's form factor (from the diminutive Zero to the 'full size' model B). Often they have better hardware specs, and yet they remain a more obscure also-ran in that generation of Single Board Computer (SBC). So when I saw Radxa's CM3 and Pine64's…
PDP-11 Booting
Instructions for booting a PDP-11/34 with RT-11 from a RK05
Writing a register based VM in less than 125 lines of C code
This tutorial is intended for intermediate C developers who want to get some coding practice and, in the process, gain valuable insights into low-level programming and how (some) Virtual Machines operate under the hood. The reader should already be comfortable with bitwise operations, hexadecimal notation, pointers…
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…
Essential security for Linux servers (2013)
Father, Founder, and FuturistBuilding bestinterest.app and podcasting for coparents.Learn more about me.
DNS doesn't “propagate”
DNS "propagation" is actually caches expiring
LLVM internals, part 4: attributes and attribute groups
This is the last post I plan to do on parsing LLVM’s bitcode, at least for a while. I’ll keep working on the various libraries that I’ve started under the mollusc umbrella, but they won’t be accompanied by regular posts anymore — I’d like to refocus on writing smaller, less dense (read: lower-pressure) posts for a…
Fast CSV Processing with SIMD
I recently learned of csvquote , a tool that encodes troublesome CSV characters such that unix tools can correctly process them. It reverses the encoding at the end of the pipeline, recovering the original input. The original implementation handles CSV quotes using the straightforward, naive method. However, there’s a…
Firefox's Optimized Zip Format
This post is about minimizing amount of disk IO and CPU overhead when reading Zip files. I recently saw an article about a new format that was faster than zip. This is quite surprising as to my mind, zip is one of the most flexible and low-overhead formats I’ve encountered. Some googling showed me that over past 11…
WebGPU computations performance in comparison to WebGL
WebGPU – the successor of WebGL, a brand new API to utilize GPUs in the browser. It is promised to be available in regular Chrome in Q1 2022. In comparison to WebGL, WebGPU promises better performance and better compatibility with modern hardware, but the most recognizable feature of WebGPU is a special API for…
DESQview/X: Forgotten mid-1990s OS from the future
X11 client and server. DOS. Windows 3.1. All with preemptive multitasking.
Reading NFS at 25GB/s using FIO and libnfs
My current employer does a lot of really cool systems work that’s covered by NDAs. I recently did some work to integrate a cool open source tool into our workflow. Felt it deserved a blog post. NFS Testing Requires Parallelism. I work for Pure Storage. One of the products we make is a scale-out NFS1 (and…
Explainer: .DS_Store Files
Many folders have them. They’re so invisible that you can’t even see them when you show hidden files. And the only way you know they’re there is when they cause problems.
Decompressing a Gzip File by Hand
2024 Update: Part 2 is out! Let’s make a gzipped file and see what’s in it. We’ll keep it simple: just write 8 ‘a’s to a file. $ echo "aaaaaaaa" > test.out $ xxd test.out 00000000: 6161 6161 6161 6161 0a aaaaaaaa. As we can see, our file is 9 bytes long. We have 8 ‘a’ bytes written, plus a Line Feed (LF) character…
Mini-ITX Seaberry Adds 11 PCIe Slots to a Raspberry Pi
Since the Compute Module 4 came along last year, there have been a few projects that use it that make me do a double-take: They did what with a Pi? Alftel's Seaberry is a carrier board for the CM4 in the Mini ITX form factor that adds on eleven PCI Express slots: 1 x16 slot (with x1 lane) in the standard ITX location…