In the beginning, there was the BIOS, and it was good. A PC’s BIOS knows how to set up the different hardware devices, grab a fixed part of a hard drive, load it, and run it. That’s all you need. While it might be all you need, it isn’t everything people want, so a consortium developed UEFI, which can do all the things a normal BIOS can’t. Among other things, UEFI can load code for the operating system over the network instead of from the hard drive.
In true hacker fashion, [Phillip Tennen] thought, “Does it have to be an operating system?” The answer, of course, is no. It could be an IRC client. He chose Rust to implement everything. While UEFI does provide a network stack, it isn’t very easy to use, apparently. It also provides support for a mouse. [Phillip] ported his GUI toolkit library over, and then the rest is just building an IRC client.
The client isn’t the easiest to use because, after all, this is a lark. Why would you want to do this? On the other hand, we can think of reasons we might want to take control of a UEFI motherboard and use it for something. If you want to do that, this project is a great template to jump-start your endeavors.
We’ve looked at the UEFI system a few times. Or, you can use it to play DOOM.
“In the beginning, there was the BIOS, and it was good. ”
Actually, in the beginning there was uninitialized memory. At the end of the first week, the bootloader had been input via toggle switches, and all was good
And then there was light, from the NumLock LED.
… From the neon on the ASR33
But then I have calculator with nixies (and no = or clear key), and calculators that are 12/24m long :)
On the KSR28 it was a gas flame ;-)
Hey ! good phase for a t-shirt on Redbubble or similar, wondering if it is copyrighted… another one : I don´t trust UEFI…
BIOS was a component of CP/M.
Basically, my head grew in to BIOS. I won’t switch to UEFI because it repeatedly attempts to filter ducks through a lowpass network switch. I hate it and to hand it to them, Microsoft has made UEFI one of the worst disasters in computing history along the lines of Heartbleed bug. And if you’re looking for something fresh, I suppose there’s always Nintendo consoles. I just don’t see why I would want to go through such an uncomfortable firmware just to boot UNIX-like kernel.
The problem with UEFI is, that there’s no diversity. All current UEFIs are essentially the reference build of an UEFI fork by intel.
The whole story is a bit more complicated, because Intel started the whole disaster.
Long story short, essentially was like this: Intel EFI -> contributions by others -> UEFI -> intel fork -> UEFI everyone uses.
That’s in contrast to the development of the BIOS, which had evolved over decades.
I really wished CSM hadn’t been dropped. Having two “BIOSes” to choose from was nice.
One very basic and secure, one with bells and whistles.
But basic isn’t exactly right, either, WinBIOS from the 90s had offered a graphical UI and mouse support.
Adding a network support surely had been possible, considering the NE2000 compatibility of most network cards.
It was the Sound Blaster standard of networking, so to say.
Also, running out of memory in Real-Mode was no problem, anymore, either. Modern x86 BIOSes supported compression, cloaking technology and whatnot.
It was a whole industry, with Award and AMI selling whole development sets.
Alas, that’s no longer of relevance, thanks to the removal of CSM.
No we’re all stranded.
Don’t lament the past too much, Josh. The world is going to end from nuclear warming before you know it. Rest easy knowing that you at least got a taste of the sane world before it turns to dust.
I wish Open Firmware had replaced BIOS instead as it was elegant and cross platform working on both PPC and Sparc hardware and could even do tricks like this.
The irony Apple could have brought OF to X86 but choose UEFI and now doesn’t even use it anymore.
In the days of yore, on locked-down public computers, i would maintain an IRC connection from the windows built-in telnet client. So regarding ease of use, I’m sure this is a step up. Nice hack!
I hate UEFI. Wish I still had BIOS.
BIOS was a mess of incompatibility – even at the lowly state of complexity that existed back then. Lamenting its greatness can only be done through some rather fuzzy glasses of nostalgia.
Neat!
Now, to study this and make a bare-metal UEFI MAME implementation.
MAME as an OS! That’d be cool, right?