Skip to content(if available)orjump to list(if available)

Ilo – a Forth system running on UEFI

Ilo – a Forth system running on UEFI

14 comments

·October 21, 2025

throw0101c

Ah, Forth-as-BIOS. Memories of Sun SPARC (and Apple PowerPC):

* https://en.wikipedia.org/wiki/Open_Firmware

* https://apple.fandom.com/wiki/Open_Firmware

davidw

No reference in those articles to the open firmware song? Pity...

https://www.youtube.com/watch?v=b8Wyvb9GotM

oersted

A Forth-like command-line shell (bash replacement) does sound quite interesting actually, particularly if the stack is displayed on the side and is not implicit.

It's rather concise, most functions tend to be a single short line. Its syntax is minimal (or non-existent according to some), it's just flat white-space separated tokens. It has imperative/interactive semantics, in the sense that every successive word makes some changes on the current state (the stack).

All of this makes it quite amenable to be used as an OS shell I think, it seems obvious in retrospect.

The idea of starting with an empty Forth and creating a whole universe of automations and DSLs for your system, one command at a time, is quite pleasing, in a purist sense, although perhaps not entirely practical.

Does such a shell exist? Not as minimal as Ilo, one you can actually use in a modern system instead of bash and the like, ideally with a nice display of the stack. Probably Factor is the most appropriate Forth-like to build it on, it already has a good REPL mode, it would mainly involve adding a bunch of utilities for practical command-line use.

pjmlp

During the 8 bit home computer days Jupiter Ace, and ROM replacements for ZX Spectrum.

crc_

For RetroForth, I have a new interface under development that may be somewhat like this. A screenshot can be seen at https://imgur.com/a/z4jhq6e

I use RetroForth as a working environment on Unix [mostly OpenBSD & FreeBSD], with an (unreleased) userland written in it, along with some use of external standard utilities. I'm still working on improvements around chaining programs via a pipe-like structure, but it's been my main environment apart from Konilo for a few years now.

kragen

One of the most useful ways to use Forth is as a command-line shell for scripting assembly-language primitives on a small computer, like, 64KiB of RAM or less. (Ilo has 64KiB of RAM, IIRC.)

kragen

Ilo/Konilo is pretty cool, but I already knew that. What I didn't know about was qemu-system -nographic.

Any idea why crc is specifying a custom BIOS image? QEMU comes with a default one, right? Questions like these make me wish asciinema supported recording voiceovers.

I'm guessing that the slow text screen updates are some kind of an artifact of unoptimized UEFI implementation, and/or QEMU, because I'm pretty sure Konilo is a lot snappier than this running under Linux, even though the Ilo implementation is not a highly optimized virtual machine.

crc_

I'm not well versed in qemu's various options. When I didn't specify a BIOS image, it seems to be using SeaBIOS, not UEFI, and hangs on "Booting from Hard Disk...". I should be able to start doing proper videos soon; I've been slowly working towards that.

I can say that the display & overall performance is noticeably faster on the two actual computers I tested on than under qemu on my Linux system.

kragen

Thanks!

It makes sense that it would default to using SeaBIOS; QEMU has a lot of options whose defaults were more reasonable 20 years ago.

deivid

you probably should set the serial port speed

gjvc

the name "ILO" clashes with "Integrated Lights-Out" management as used by (or was used by) some server hardware vendors.

imglorp

    IPMI - standard
    DRAC - Dell
    iLOM - Sun/Oracle
    iLO - HP
    IMM - IBM

buildbot

XSCF - Fujitsu/Oracle SPARC

(I wonder how they got that acronym)

codezero

[dead]