Sign in

Chris Williams

@diodesign.org
465 followers 236 following 80 posts

Fun: diosix.org & diodesign.org Work: Technical editor at google.com Previously: Editor-in-chief @theregister.com Wear sunscreen.

PostsRepliesMedia
Chris Williams @diodesign.org · 11/09/2026
BTW I previously tried using the Unicorn engine for embedded dynarec. While this is an awesome piece of software, based on Qemu, it didn't really fit my bare-metal needs. So I started my own dynarec engine, inspired by Bleem, beginning with RV32 then aarch64 then the ultimate monster: x86_64
000
Chris Williams @diodesign.org · 11/09/2026
Previously experimented with a RISC OS-like WIMP (Windows, Icons, Menus, Pointer) desktop environment, but I think a fixed BIOS/UEFI-like GUI is better for managing a virtualization host. Individual guest VMs can provide the desktop apps/environment, routed through the GUI VM, if needed.
Screenshot of a very bare-bones desktop environment with a terminal in the middle of the screen showing the user creating a second VM and then SSH into it.Screenshot of a very bare-bones desktop environment with a terminal in the middle of the screen showing the user running the 'ls -l /' command, listing the root directory's contents: the Buildroot Linux minimum.
000
Chris Williams @diodesign.org · 11/09/2026
In addition, the hypervisor supports non-native guests seamlessly through dynamic recompilation, starting with 32-bit RISC-V (RV32) guests... github.com/diodesign/di...
github.com
GitHub - diodesign/diosix at dynarec
A lightweight, robust, multiprocessor bare-metal hypervisor written in Zig for RISC-V - diodesign/diosix
200
Chris Williams @diodesign.org · 11/09/2026
Working on a native BIOS/UEFI-like GUI for the Diosix.org RISC-V hypervisor. Beyond an in-guest CLI and Linux kernel driver, I’m experimenting with a graphical console to configure guest VMs, storage, networking, and more directly on screen-attached RV64 hosts. WIP! github.com/diodesign/di...
Screenshot of the Diosix RISC-V Hypervisor interface running inside a QEMU window, displaying the "Storage" datastore management tab.

A dark-themed system menu inside a QEMU window with the "4: STORAGE" tab active. The layout includes:

Virtual Disk Datastore (Left): A list of virtual disks showing debian.img (highlighted; 4096 MB, ext4, attached to debian-vm), second-vm.img (512 MB, ext4, attached to second-vm), and scratch-data.img (1024 MB, ext4, unattached).

Storage Operations (Right): Action buttons to "Create Virtual Disk", "Resize Virtual Disk", and "Delete Virtual Disk".

Datastore Status (Bottom): Status panel stating, "Datastore mounted at /var/lib/diosix/disks. Select an image for disk geometry and usage."Screenshot of the Diosix RISC-V Hypervisor interface running inside a QEMU window, displaying the "Controls & Icons" configuration tab. This is a demonstration, WIP view of the available icons and windows.

A dark-themed graphical interface inside a QEMU desktop window with the navigation bar set to "2: CONTROLS & ICONS". The main view is split into three sections:

Interactive Controls Showcase (Left): Displays interactive UI elements including a live telemetry tick counter, a text input labeled "Diosix RISC-V Hypervisor", sliders for glass opacity (78%), Gaussian blur (100%), and VCPU quota allocation (75%), along with an enabled checkbox for verbose telemetry.

Backdrop Gradient Color Selection (Right): Radio options for top and bottom background gradient colors, with "Sunset Amber (#C86840)" selected for the top and "Pitch Black (#000206)" selected for the bottom.

Live Callback Inspector (Bottom): A single console event line logging [BACKDROP TOP] Selected 'Sunset Amber (#C86840)' (#0xC86840).
151
Chris Williams @diodesign.org · 07/07/2026
Super cool project
010
Chris Williams @diodesign.org · 05/07/2026
I thought I recognized that name. Nick wrote Director, an add-on for RISC OS that I found indispensable, among other software www.craig-wood.com/nick/riscos/...
craig-wood.com
Director
Director - a general purpose desktop tool
011
Chris Williams @diodesign.org · 02/07/2026
Working on adding a Unicorn-based emulation layer to my 64-bit RISC-V hypervisor so you can run non-native guests (riscv32, aarch64, x86_64) seamlessly. Below, the green text is console output from an x86 Linux guest amid hypervisor debug traces. Still WIP! More: github.com/diodesign/di...
Screenshot of debug output from running an x86_64 guest on a 64-bit RISC-V hypervisor using emulation. The Linux guest's console output is mixed with the hypervisor's trace logs. The output shown includes:

tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b283
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b287
[    0.000000] Linux version 7.0.10 (chris@violet) (x86_64-buildroot-linux-gnu-gcc.br_real (Buildroot 2026.02.3) 14.3.0, GNU ld (GNU Binutils) 2.44) #2 SMP PREEMPT_DYNAMIC Tue Jun 30 22:46:55 PDT 2026
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2e4
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2ee

[...]

tb_gen_code: translating guest TB at pc = anyopaque@ffffffff818bfc0e
[    0.000000] Command line: console=ttyS0 earlyprintk=serial,ttyS0,115200 root=/dev/ram0 rw
[    0.000000] Disabled fast string operations
[    0.000000] x86/CPU: tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8128b2d9
model not found in latest microcode list
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [gap 0x0000000000000000-0x0000000007fffffff]
[    0.000000] tb_gen_code: translating guest TB at pc = anyopaque@ffffffff818bfe96
[    0.000000] BIOS-e820: [mem 0x0000000080000000-0x000000009fffffff] System RAM
[    0.000000] printk: legacy bootconsole [earlyser0] enabled
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff81325af9
tb_gen_code: translating guest TB at pc = anyopaque@ffffffff8132622d
000
Chris Williams @diodesign.org · 18/06/2026
It's the hypervisor extension I'm most interested in as I've a bunch of RV systems but they are pre-H-ext and use PMP fallback for virtualization. This will be the first virtualization in silicon test for the hypervisor I'm writing with embedded Unicorn guest emulation github.com/diodesign/di...
github.com
GitHub - diodesign/diosix at unicorn
A lightweight, robust, multiprocessor bare-metal hypervisor written in Zig for RISC-V - diodesign/diosix
110
Chris Williams @diodesign.org · 18/06/2026
Looking forward to developing on this 64-bit RISC-V Spacemit K3 Pico-ITX system: * 8 2.4 GHz RVA23 CPU cores with hypervisor and vector extension * 8 AI accelerator cores * Whole load of IO: USB, 1G Ethernet, 10GbE SFP+, Wi-Fi 6, and more www.spacemit.com/community/do...
Photo of a Spacemit K3 Pico-ITX RISC-V development board with a clear plastic covering on the cardboard box it shipped in. The motherboard has multiple IO ports, such as USB and Ethernet, other connectors, and chips.
150
Chris Williams @diodesign.org · 15/06/2026
I have no idea. I was drinking martinis in North Beach watching Sweden - Tusnia
000
Chris Williams @diodesign.org · 15/06/2026
My first proper paid job was reverse-engineering products and firmware for interoperability purposes, so this not only resonates but also is entirely accurate and representative of the kind of work involved in examining these kinds of devices.
000
Chris Williams @diodesign.org · 15/06/2026
I like this warts-and-all reverse-engineering documentary by David Given of this 6502-based system. From extracting the firmware to figuring out the device architecture, it's a realistic journey for anyone interested in this kind of forensic work www.youtube.com/watch?v=jJ0X...
youtube.com
Reverse engineering a 'tony' 6502-based game console
YouTube video by Poking Technology
184
Chris Williams @diodesign.org · 10/06/2026
This is part of his Pyromaniac project to run RISC OS on non-Arm systems, such as modern PCs and Macs. More info and an online shell to try out: pyromaniac.riscos.online
020
Chris Williams @diodesign.org · 10/06/2026
Gerph is working away on a 64-bit version of RISC OS, the original Arm operating system first developed by Acorn in the UK. I think it's a super interesting project. He did a Q&A about this effort here: www.youtube.com/live/Oy_mCJf... His summary here: www.riscosopen.org/forum/forums...
youtube.com
Gerph's live coding - Quick Q & A
YouTube video by Gerph
162
Chris Williams @diodesign.org · 10/06/2026
His Great Escape and Chase H.Q. video-game reverse-engineering projects are cool, too... github.com/dpt/The-Grea... github.com/dpt/ChaseHQ
github.com
GitHub - dpt/The-Great-Escape: Classic ZX Spectrum game "The Great Escape" reverse engineered
Classic ZX Spectrum game "The Great Escape" reverse engineered - dpt/The-Great-Escape
010
Chris Williams @diodesign.org · 10/06/2026
Super fun logo generator, inspired by the ZX Spectrum's Sinclair branding, by Dave Thomas. Online: dpt.github.io/SinclairLogo/ Info: www.davespace.co.uk/blog/2026060... Code: github.com/dpt/Sinclair... Web plus creative coding times retro computing equals... this
The word 'sinclair' stylized as the 1980s Sinclair Research logo, center, white on black, surrounded by tiled copies of the word in grey on black.
140
Chris Williams @diodesign.org · 05/06/2026
BTW second place in the wild category: Beyond The Pixels, a Game Boy Advance demo by Otomata Labs: demozoo.org/productions/... First place: READY?, an *oscilloscope* demo, by BUS ERROR Collective: demozoo.org/productions/... Full results (from April): www.pouet.net/party_result...
pouet.net
Revision 2026 results :: pouët.net
pouët.net - your online demoscene resource
010
Chris Williams @diodesign.org · 05/06/2026
You can watch the demo here: www.youtube.com/watch?v=v8zK... (It won third place in the Revision 2026 wild competition category.) More info: linusakesson.net/scene/sum-er... and linusakesson.net/scene/sum-er...
youtube.com
Sum Ergo Demonstro
YouTube video by lftkryo
110
Chris Williams @diodesign.org · 05/06/2026
The code and hardware design behind Sum Ergo Demonstro, lft's impressive real-time demoscene creation powered by a dual-core IO-stuffed and overclocked RP2350 RISC-V microcontroller: www.youtube.com/watch?v=0_9Y...
youtube.com
Microcontroller Magic: Under the Hood of “Sum Ergo Demonstro”
YouTube video by lftkryo
120
Chris Williams @diodesign.org · 30/05/2026
I rewrote my RISC-V hypervisor in Zig and added support for new features like hardware virtualization (H extension). It previously used segmented physical memory for guest isolation, and will fall back to that if H is not present. asciinema.org/a/XbV4OoBD8G... Need to tidy up the code
asciinema.org
First RISC-V Linux guest boot of Zig Diosix hypervisor
Diosix, rewritten in Zig for 64-bit RISC-V systems, boots a guest virtual machine, and allows console-based interaction with this VM.
030
Chris Williams @diodesign.org · 30/04/2026
For further proof that OS development is hard: copy.fail A page cache corruption that stays in memory but never hits the disk. Since the disk remains "clean," checksums don’t catch it. It allows unprivileged users to gain root or escape containers by corrupting shared memory of sensitive binaries.
copy.fail
Copy Fail — 732 Bytes to Root
CVE-2026-31431. 100% Reliable Linux LPE — no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.
111
Chris Williams @diodesign.org · 30/04/2026
Huge props to reassembler who is porting Sonic from the Megadrive/Genesis to the Amiga. Despite both sharing a Motorola 68000-powered base, Sega's tile-based architecture is pretty different to the Amiga's bitplane approach, so my hat's off for getting this far... www.youtube.com/watch?v=nWqK...
youtube.com
SONIC: playable on real Amiga hardware for the first time (somewhat)
YouTube video by reassembler
000
Chris Williams @diodesign.org · 18/04/2026
Developing a Dungeons & Dragons style NES RPG in 6502 assembly must have been tough, even if its programmer thought the job was "pretty simple" due to his experience with the Apple II.* Still, the code was fairly buggy, as illustrated in this cool video below * www.gamesradar.com/games/final-...
010
Chris Williams @diodesign.org · 09/03/2026
Nice. With apologies to Mike Ginns who wrote this sterling book that taught me Arm assembly language... www.computinghistory.org.uk/det/12421/Ar... ...a future one about RISC-V might look like:
Textbook cover in the style of a Dabs Press publication, which reads:

Mike Ginns
RISC-V
Assembly Language
The Complete Programming Course

New architecture edition covers RV32I & RV64I
Dabs Press

(With a wireframe drawing of someone's arm as an illustration)
010
Chris Williams @diodesign.org · 08/03/2026
Ha, yes. If I had time, I would. Read a ton of Usborne books like this growing up
000
Chris Williams @diodesign.org · 08/03/2026
It's in the Internet Archive, for those who are curious. archive.org/details/mach...
062
Chris Williams @diodesign.org · 18/02/2026
I remember that article and issue! I thought at the time, wow, that guy has a sweet gig compiling magazine CDs and must have a sweet setup to do so. I spent months roaming those CDs, so thanks!
110
Chris Williams @diodesign.org · 10/02/2026
That's a serious what the... from me
010
Chris Williams @diodesign.org · 09/02/2026
Super-in-depth look at the 6502 assembly in a NES game, with lessons for today's code in terms of performance optimization decisions and missteps
030
Chris Williams @diodesign.org · 09/02/2026
A cool demonstration of Zig as a language IMO: a PlayStation 1 emulator with built-in dissembler and debug. It emulates the 32-bit MIPS 3000A-based CPU core as well as the Sony GPU, GTE, SPU, and more Readable code, too, and links to system reference info github.com/maxpoletaev/...
github.com
GitHub - maxpoletaev/nupsx: Experimental PlayStation 1 emulator
Experimental PlayStation 1 emulator. Contribute to maxpoletaev/nupsx development by creating an account on GitHub.
022
Chris Williams @diodesign.org · 07/02/2026
My doctor hates this but I 100% am all for it
000
Reposted by Chris Williams
Chrome for Developers @developer.chrome.com · 08/01/2026
New year, new account, same great open source energy. We are ready to see what you ship 🚢
1254
Reposted by Chris Williams
Google Open Source @opensource.google · 06/01/2026
New year's resolution, engage with open source developers on our new Bluesky account. ✨
2828829
Chris Williams @diodesign.org · 02/01/2026
This is going to date me, but in college I studied 90 to 45nm processes for my EE degree. I asked a professor about sub-45 and his response was: "oh, that's just dark magic." I dunno how he'd describe sub-10nm. Anyway, if you don't know how modern chips are made, check this out
020
Chris Williams @diodesign.org · 31/12/2025
More detailed obit: computerchronicles.blog/post/stewart...
computerchronicles.blog
Stewart Douglas Cheifet (1938 - 2025) - Computer Chronicles Revisited
Computer Chronicles Revisited pays tribute to the creator, executive producer, and host of
010
Chris Williams @diodesign.org · 31/12/2025
RIP Stewart Cheifet. who died December 28. He was 87. I have no doubt his work creating and hosting the Computer Chronicles from 1984 to 2002 inspired many future journalists and engineers. Certainly was for me. obits.goldsteinsfuneral.com/stewart-chei... en.wikipedia.org/wiki/Compute...
A frame from the start of a 1980s Computer Chronicles episode, with host Stewart Cheifet sitting in front of a background featuring the show's logo: the computer chronicles
130
Reposted by Chris Williams
Liam Proven @lproven.bsky.social · 23/12/2025
UNIX V4 tape successfully recovered: First ever version of UNIX written in C is running again www.theregister.com/2025/12/23/u... Crucial early evolutionary step found, imaged, and ... amazingly ... works <- by me on @theregister.com
theregister.com
UNIX V4 tape successfully recovered
: Crucial early evolutionary step found, imaged, and ... amazingly ... works
3237
Chris Williams @diodesign.org · 12/11/2025
This was pretty interesting, hearing how the small team behind the 8-bit BBC Acorn computer went from specifying ULA chip designs to designing the early Arm CPU series from scratch using BBC BASIC www.youtube.com/watch?v=W2yD...
youtube.com
From Acorn to ARM with Professor Steve Furber MBE
YouTube video by The Retro Collective
042
Chris Williams @diodesign.org · 26/10/2025
At least it's ripe for puns
110
Chris Williams @diodesign.org · 07/10/2025
It definitely has a ring to it
010
Chris Williams @diodesign.org · 22/09/2025
And on to another week. Grateful for everything, especially these views from the weekend.
View of the Golden Gate Bridge in San Francisco on a clear sunny day, from the Baker Beach trailView of the Pacific Ocean, looking south from the Baker Beach trail in San Francisco on a sunny day as the sun starts to set
040
Chris Williams @diodesign.org · 22/09/2025
To build and run on Linux: 1. Make sure you've installed: * clang * lld * Qemu with the 32-bit RISC-V system emulator 2. Clone the repo from GitHub and edit its run-dot-sh file so: CC=clang OBJCOPY=llvm-objcopy 3. Run in a terminal: ./run.sh
000
Chris Williams @diodesign.org · 22/09/2025
It has: * Basic process multi-tasking * Paging * An exception and system call handler * A virtio-blk device driver to read and write a disk * Simple command-line shell An MIT-licensed starting point for folks. For more info, see: seiya.me/blog/operati...
100
Chris Williams @diodesign.org · 22/09/2025
If you want to get started writing your own kernel for 32-bit RISC-V from scratch, here's how seiya.me did it in 1,000 lines of cleanly written C. There's documentation to go with it. Pretty cool IMHO! github.com/nuta/operati...
OpenSBI v1.5.1
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name             : riscv-virtio,qemu
Platform Features         : medeleg
Platform HART Count       : 1
Platform IPI Device       : aclint-mswi
Platform Timer Device     : aclint-mtimer @ 10000000Hz
Platform Console Device   : uart8250
Platform HSM Device       : ---
Platform PMU Device       : ---
Platform Reboot Device    : syscon-reboot
Platform Shutdown Device  : syscon-poweroff
Platform Suspend Device   : ---
Platform CPPC Device      : ---
Firmware Base             : 0x80000000
Firmware Size             : 319 KB
Firmware RW Offset        : 0x40000
Firmware RW Size          : 63 KB
Firmware Heap Offset      : 0x47000
Firmware Heap Size        : 35 KB (total), 2 KB (reserved), 10 KB (used), 22 KB (free)
Firmware Scratch Size     : 4096 B (total), 244 B (used), 3852 B (free)
Runtime SBI Version       : 2.0

Boot HART ID              : 0
Boot HART Domain          : root
Boot HART Priv Version    : v1.12
Boot HART Base ISA        : rv32imafdch
Boot HART ISA Extensions  : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 2 bits
Boot HART PMP Address Bits: 32
Boot HART MHPM Info       : 16 (0x0007fff8)
Boot HART Debug Triggers  : 2 triggers
Boot HART MIDELEG         : 0x00001666
Boot HART MEDELEG         : 0x00f0b509

[ snipped ]

virtio-blk: capacity is 0 bytes
file: hello.txt, size=83
file: meow.txt, size=6
> hello
Hello world from shell!
130
Chris Williams @diodesign.org · 12/09/2025
This is partially why I wanted to move from media to tech. After 20 years of publishing, from London riots to cyber-attacks, I no longer wanted to be so immersed in it.
040
Chris Williams @diodesign.org · 25/08/2025
A 1956 general-purpose digital computer, the Bendix G-15, plus an algorithm from the modern-day CERN ATLAS experiment equals... this: www.youtube.com/watch?v=2y0D... What takes under a microsecond on hardware today takes about 15 minutes on this vacuum-tube machine
youtube.com
CERN Topoclustering on the Bendix G-15!
YouTube video by Usagi Electric
021
Chris Williams @diodesign.org · 17/08/2025
Wonderfully detailed per-frame performance analysis of NES Metroid, and why it lags at certain points. It's super interesting to see the software engineering decisions taken back in the day. As always, a great video by @displacedgamers.bsky.social IMO www.youtube.com/watch?v=3G6v...
Still from Displaced Gamers' https://www.youtube.com/watch?v=3G6vkRz-_0I video that depicts a frame from the NES game Metroid overlaid with statistics and a list of subroutines called in the game loop. The statistics show the percentage of time per frame spent in each subroutine as well as total frame counts and rendered frame counts.
030
Reposted by Chris Williams
Steve Klabnik @steveklabnik.com · 10/08/2025
#ziglang ’s Lovely Syntax matklad.github.io/2025/08/09/z...
matklad.github.io
Zig's Lovely Syntax
It's a bit of a silly post, because syntax is the least interesting detail about the language, but, still, I can't stop thinking how Zig gets this detail just right for the class of curly-braced langu...
97812
Chris Williams @diodesign.org · 10/08/2025
Also not quite Times Square, but Manchester Piccadilly Station in the UK was hard to miss
A large display in front of Manchester Piccadilly Station, England, shows a Windows blue-screen-of-death. Source: https://www.theregister.com/2016/08/29/bsods_at_scale_we_laugh_at_your_puny_five_storeys_heres_our_six_storey_fail/
040
Chris Williams @diodesign.org · 10/08/2025
Does a roller coaster count? www.theregister.com/2020/02/25/b...
theregister.com
Just the place you'd want to spot a BSOD: While waiting in line for a roller coaster that lifts you up 124ft
This bodes well
120