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
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 · 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
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 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
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
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
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 · 08/03/2026
It's in the Internet Archive, for those who are curious. archive.org/details/mach...
062
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
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
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 · 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
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 · 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 · 19/07/2025
I like alternative languages and architectures to see how syntax, structure, and other implementation details can be done differently. There's not only ziglang.org which I think is cool, but also SystemVerilog alternative Veryl: github.com/veryl-lang/v... Yet another side project coming on.
github.com
GitHub - veryl-lang/veryl: Veryl: A Modern Hardware Description Language
Veryl: A Modern Hardware Description Language. Contribute to veryl-lang/veryl development by creating an account on GitHub.
110
Chris Williams @diodesign.org · 16/06/2025
This looks like a super meeting for those interested in Acorn, Arm, and RISC OS history
094
Chris Williams @diodesign.org · 07/06/2025
FYI: Gerph has been re-implementing RISC OS – which started as Arm's very first OS – in Python, allowing 32 and 64-bit apps and other software to build and run on non-Arm systems. Amazing work More on RISC OS Pyromaniac: pyromaniac.riscos.online Latest here: www.riscosopen.org/forum/forums...
RISC OS 7 post-boot showing its initialization messages and then a list of available OS-level modules. Taken from http://shell.riscos.online/Acorn's Maestro music editing and playback application running on Gerph's Pyromaniac RISC OS in the desktop RISC OS Pyromaniac desktop running full-screen on macOS

Source: https://pyromaniac.riscos.online/examples.html#talk2022
195
Chris Williams @diodesign.org · 29/05/2025
Recently enjoyed seeing and listening to quite a mix of live music in the Bay Area, from Kylie and Underworld in San Francisco to Kraftwerk in Berkeley. All pretty stunning, and all great sounds I grew up with that I finally got to experience in person.
Kylie Minogue on stage at the Chase Center in San Francisco with a disco ball lighting up the whole scene.The band Underworld on stage at the Warfield in San Francisco, with a lot of red lighting and dry ice.Kraftwerk on stage at the Berkeley Greek Theatre, with Computerworld showing on screen.
030
Chris Williams @diodesign.org · 30/12/2024
Watching some old EEng videos, because why not, and find a 50-min 1988 video from Intel about the design and challenges of its 386 CPU And look who shows up, in his late 20s, talking about mixing automation and hand drawing of transistor layout on silicon and more www.youtube.com/watch?v=LQcL...
Still frame from the linked YouTube video of now ex-Intel CEO Pat Gelsinger, in 1988, showing his name and job title: Microprocessor Project Manager
180
Chris Williams @diodesign.org · 24/12/2024
More adventures in #Zig and bare-metal RISC-V! Heap allocator is done, with merging of adjacent free blocks. A little more atomics for multi-CPU/thread support. And lots learned about the language. github.com/diodesign/di... And now onto device tree parsing and generation...
Screenshot showing some of the heap allocation code and diosix running in a terminal showing debug output to the serial port:

qemu-system-riscv64 -nographic -machine virt -smp 4 -m 2G -bios none -kernel zig-out/bin/vmdiosix

Visit https://diosix.org for usage, copyright, and distribution.
Version 0.3.0-zig (95dba5e) Tue Dec 24 11:01:17 AM PST 2024 riscv64

Device tree at 0xbfe00000
CPU core ID 1 waiting for work...
CPU core ID 3 waiting for work...
CPU core ID 2 waiting for work...
CPU core ID 0 waiting for work...
QEMU: Terminated
130
Chris Williams @diodesign.org · 18/12/2024
It's the holiday season, I've got some time off work, and so I'm gonna finally dive into Zig and RISC-V ziglang.org riscv.org/developers/ I've got bare-metal execution in Qemu, writing hello world out to the serial port. Let's bring up more of an environment and then try this on real hardware...
Screenshot of the following zig code in a purple-themed Visual Studio Code window:

export fn main() void {
    const uart: *volatile u8 = @ptrFromInt(0x10000000);
    const hello: []const u8 = "Hello world!!\n\n";

    for (hello) |c| {
        uart.* = c;
    }

    while (true) {}
}

And the execution of that code in a terminal below:

 % qemu-system-riscv64 -nographic -machine virt -smp 1 -m 1G -bios none -kernel zig-out/bin/vmdiosix 
Hello world!!
250
Chris Williams @diodesign.org · 13/12/2024
RISC-V CEO Calista Redmond resigns -- I have high hopes for RV, as I'm all for market competition. Calista had a tough job driving through a new ISA and IMHO did great riscv.org/riscv-news/2...
riscv.org
RISC-V CEO Calista Redmond resigns after 5+ years of progress – RISC-V International
120
Chris Williams @diodesign.org · 18/11/2024
Been a fan of Orbital since I was a teenager. Never got the chance to see them live in the UK. Super happy to have caught them on tour in San Francisco this weekend. Amazing night of progressive-house-techno-whatever you want to call their unique sound :)
View from the crowd looking toward the stage where Orbital were playing live at the Midway in San Francisco.
040
Reposted by Chris Williams
Kelsey Hightower @kelseyhightower.com · 15/11/2024
The tech migration from Twitter continues. One by one.
1544928
Reposted by Chris Williams
The Register @theregister.com · 13/11/2024
OK, now that the stampede to BlueSky has died down for a moment, and systems are a bit more stable, let's try sharing this again - our starter pack. Thanks for joining us! go.bsky.app/EsDR7M7
0329
Chris Williams @diodesign.org · 18/08/2023
Debian has been a bedrock for me. Pretty much every dependable system I use has Debian at its core. I can't imagine using any other OS www.theregister.com/2023/08/17/debi…
theregister.com
Debian turns 30 – and important to Linux world as ever
August 16 was an especially big day for this island of stability
061
Chris Williams @diodesign.org · 12/08/2023
I quite like the design of this, and that it's aimed at devs. Neat way to get secure P2P into apps. Written mostly in Rust, too
010
Reposted by Chris Williams
The Register @theregister.com · 09/08/2023
First Zenbleed, now Downfall. We've got a fab overview of these two data-leaking CPU bugs in AMD and Intel processors, both found by Googlers, here: www.theregister.com/2023/08/09/goog…
theregister.com
Downfall data-leak vulnerability found in Intel processors
It is with a heavy heart that we must announce that the boffins are at it again
011