Modder made an IRC client that runs entirely inside the motherboard's BIOS chip

A screenshot of UEFIRC in action.
(Image credit: axleOS.com)

Phillip Tennen, developer of the open-source axleOS, has recently decided to use what he learned from that project to create an IRC client that runs entirely within the UEFI pre-boot environment, with no operating system required. This "UEFIRC" is nearly fully functional, with a graphical interface and a TrueType font renderer, and it's all written in the Rust programming language.

For those unfamiliar, "UEFI" is just the modern term for "BIOS" since UEFIs replaced those long ago. You'll often see both referred to as BIOS for simplicity's sake. They both serve the same purpose as the first piece of software any PC runs before it can boot into an Operating System, where virtually all your work will be done. All the extra features the UEFI interface offers, including complete mouse control and network access, lend themselves to ease of use and even high-end (if questionable) applications like these.

However, according to Tennen's write-up, UEFIRC is entirely unnecessary. It's even an elaborate joke! Maybe it was meant for April Fool's, though that might have led people to believe it wasn't real, so it may be for the best that he waited.

A note says, "I told a friend I was making a joke project, then explained it. She said she wasn't sure when to laugh. I'm not sure either." While UEFIRC isn't recommended for mainstream use (and is referred to as not "that usable"), it does function well enough for test footage to exist. The header is Phillip entering an IRC room for UEFI development to announce his discovery (to the immediate confusion of the first replier), and below is video test footage with some basic IRC commands.

More exhaustive documentation of achieving this is available at the source for those who want to learn the intricacies of forcing the scrolling text to function inside a UEFI. There are also some other unexpected UEFI applications out there in the wild, like Mitnal, a UEFI Twitter client.

Christopher Harper
Contributing Writer

Christopher Harper has been a successful freelance tech writer specializing in PC hardware and gaming since 2015, and ghostwrote for various B2B clients in High School before that. Outside of work, Christopher is best known to friends and rivals as an active competitive player in various eSports (particularly fighting games and arena shooters) and a purveyor of music ranging from Jimi Hendrix to Killer Mike to the Sonic Adventure 2 soundtrack.

  • bit_user
    The original writeup includes some very nice graphics and lots of details about various technical aspects of working in a pre-boot environment. Worth a look!
    https://axleos.com/an-irc-client-in-your-motherboard/
    What I find mystifying about both this article, and I think it goes back to the original author talking about it being "in your motherboard", is that the program does seem to run on your main CPU. The only part that's potentially "on your motherboard" would be if you burn the image into the boot ROM. However, I'm pretty sure UEFI can also run extensions off a special partition in your boot drive, which I'm guessing is probably how he developed & tested it.
    Reply
  • philliptennen
    bit_user said:
    The original writeup includes some very nice graphics and lots of details about various technical aspects of working in a pre-boot environment. Worth a look!
    https://www.tomshardware.com/software/someone-made-a-functioning-irc-client-that-runs-entirely-inside-the-motherboards-uefi#xenforo-comments-3841572
    What I find mystifying about both this article, and I think it goes back to the original author talking about it being "in your motherboard", is that the program does seem to run on your main CPU. The only part that's potentially "on your motherboard" would be if you burn the image into the boot ROM. However, I'm pretty sure UEFI can also run extensions off a special partition in your boot drive, which I'm guessing is probably how he developed & tested it.
    Hello, author of the original article here! This is a great question, and I apologise for the confusion! You're correct that this program runs on the 'BSP' (or 'bootstrap processor', a technical term that is basically equivalent to 'main CPU'). When I say 'in your motherboard', I'm basically trying to be pithy: you're absolutely right that this program is not actually stored in the motherboard. The UEFI firmware itself *is* stored in the motherboard's ROM, and it then loads the bootloader (or UEFIRC, or whatever) from the EFI partition on the connected hard drive.
    Reply
  • CmdrShepard
    philliptennen said:
    Hello, author of the original article here! This is a great question, and I apologise for the confusion! You're correct that this program runs on the 'BSP' (or 'bootstrap processor', a technical term that is basically equivalent to 'main CPU'). When I say 'in your motherboard', I'm basically trying to be pithy: you're absolutely right that this program is not actually stored in the motherboard. The UEFI firmware itself *is* stored in the motherboard's ROM, and it then loads the bootloader (or UEFIRC, or whatever) from the EFI partition on the connected hard drive.
    Why not just make an uefirc.efi executable which all of us can run when we boot from UEFI shell?
    Reply
  • USAFRet
    CmdrShepard said:
    Why not just make an uefirc.efi executable which all of us can run when we boot from UEFI shell?
    The next question is...why would one want to do that?

    From the UEFI, the only thing you wish to run is an IRC client?
    Welcome to last century.
    Reply
  • bit_user
    USAFRet said:
    The next question is...why would one want to do that?

    From the UEFI, the only thing you wish to run is an IRC client?
    Welcome to last century.
    It would probably help if you'd look at the original blog post. I think the point was more to explore UEFI development in Rust, including network and GUI programming within it. It's just a vehicle for that purpose.

    Also, this:
    "The IRC client itself, as a client, isn’t that usable because this project is an elaborate joke*."
    Reply
  • USAFRet
    bit_user said:
    It would probably help if you'd look at the original blog post. I think the point was more to explore UEFI development in Rust, including network and GUI programming within it. It's just a vehicle for that purpose.

    Also, this:
    "The IRC client itself, as a client, isn’t that usable because this project is an elaborate joke*."
    Yes, I read that 'joke' part.
    Reply
  • CmdrShepard
    USAFRet said:
    The next question is...why would one want to do that?
    My question to your question is "Why not have an IRC client for UEFI shell?"
    USAFRet said:

    From the UEFI, the only thing you wish to run is an IRC client?
    No, but this is an article about IRC client.
    USAFRet said:

    Welcome to last century.
    Welcome to this century.
    Reply
  • duffer9999
    Admin said:
    Phillip Tennen, the developer of the open-source axleOS project, has made a functioning IRC client within UEFI.

    Someone made a functioning IRC client that runs entirely inside the motherboard's UEFI : Read more
    I havent used irc in 20 years
    Reply
  • neojack
    I always wondered what kind of hobbies nerd programmers with 200 IQ would do on their free time.... now i know !

    Please someone donate a steam account to this guy so we can drag him to our level.
    Reply
  • 35below0
    I like how the article points to a helpful link that explains what UEFI is. But not what IRC is. :D

    I have used IRC as recently as a few years ago. It was Discord that finally pushed it into the abyss. And the freenode thing.
    Reply