Symmetric Multiprocessing, Hyper-Threading and Scheduling on Maestro with ACPIPermalink

Luc Lenôtre:

In my [previous blog article], I have presented Maestro running gcc and g++. This was a crucial step before being able to port many pieces of software to the OS.

However, compiling software can often take time, especially when you have only one CPU core available, which was the case on Maestro for a long time.

To remedy this issue, I have implemented SMP (Symmetric MultiProcessing) support, which I am going to detail in this article.

To begin with SMP, we need a way to enumerate the CPU cores present on the system, which can be done with ACPI.

ACPI is one of those things that I’m aware of, but that’s about where my knowledge ends. This post demystifies it somewhat and goes into detail of how it’s used to bring up the other CPUs and cores on SMP hardware. All this in the context of the author’s Linux-compatible kernel implemented in Rust, Maestro.

Ambian Tool for Creating Bootable MediaPermalink

Armbian project:

Armbian Imager is the official tool for downloading and flashing Armbian OS images to single-board computers. It focuses on safe and reliable flashing of Armbian images, with board-aware guidance and verification.

Key features

  • Support for 300+ boards with smart filtering and board-aware metadata
  • Disk safety checks, checksum validation, and post-write verification
  • Native cross-platform builds for Linux, Windows, and macOS (x64 and ARM64)
  • Multi-language UI with automatic system language detection
  • Automatic application updates
  • Small binary size and minimal runtime dependencies

Animation of Armbian Imager

Armbian Imager is implemented with Rust and TypeScript using Tauri. It’s not quite as slim as the Raspberry Pi Imager, but it’s still way better than the bloatware that is balenaEtcher—the more alternatives to that the better.

BLAKE2s Hashing Accelerator: A Solo Tapeout JourneyPermalink

Julia Desmazes:

Some people have hobbies, I find that cryptographic hashing accelerators are fascinating engineering challenges. Please hear me out. Each algorithm offers slightly different design tradeoffs, presents unique opportunities for optimization, is easy to validate, and each serves as a perfect excuse to voluntarily subject yourself to a Friday evening of debugging hash result mismatches.

Now that the stage is set, let me introduce today’s star: BLAKE2. BLAKE2 is a family of cryptographic hash functions that takes arbitrary amounts of data and compresses it down to a variable-sized digest (hash). This hash is then used as a digital signature for message authentication codes and integrity protection mechanisms.

The BLAKE2 family comes in two primary variants:

  • BLAKE2b, designed for 64-bit platforms
  • BLAKE2s, the 32-bit variant

What makes BLAKE2 particularly interesting is that it was originally designed and optimized for high software performance. It’s fundamentally a software-first algorithm, in contrast to AES, which maps so clearly to hardware that your architecture practically writes itself as you read the spec.

This article will mostly focus on the why behind the design choices and not an in-depth presentation of the design itself.

Chip design is a mystery to me, and I imagine most people. Julia’s post sheds a lot of light on the process and challenges, and ends up with a finalised design that will be manufactured as part of the Tiny Tapeout project.

Gaming With a Raspberry Pi 5 and Nvidia RTX 5090 GPUPermalink

Scott J. Goldman conducting important science:

Why add a GPU to a PC when you can add an SBC to your GPU?

It turns out, you can attach an external GPU to a Raspberry Pi 5. So my natural first question is, can I game on it? Let’s try it out and compare it with some similar computers.

For the showdown of crappy gaming computers, we’ll see which of these handles gaming best.

The contenders are Beelink MINI-S13 (4-core x86-64), Radxa ROCK 5B (8-core aarch64), and Raspberry Pi 5 (4-core aarch64). Amazing that this is possible at all, but it’s not without its challenges.

It’s Hard to Justify Tahoe IconsPermalink

Nikita Prokopov with a spectacular takedown of Apple’s use of icons in menus in macOS Tahoe:

Apple releases macOS Tahoe. Main attraction? Adding unpleasant, distracting, illegible, messy, cluttered, confusing, frustrating icons (their words, not mine!) to every menu item:

Screenshot of two menus. On the left is Sequia with no icons, and on the right is Tahoe with many icons.
Sequoia → Tahoe

It’s bad. But why exactly is it bad? Let’s delve into it!

The post brings receipts, lots of receipts. It’s an incredibly compelling rebuttal to Apple’s reversal of it’s decades long guidance to not include icons and other visual clutter in menus. As Prokopov points out, that advice dates back to the earliest versions of the Human Interface Guidelines published in 1992.