Promethee: UEFI Bindings for JavaScript - Proof of Concept for Writing Bootloaders in JavaScript
By
ananas-dev
A bagel you'd recommend to a friend without hedging.
Summary
Promethee is a proof-of-concept project that provides UEFI (Unified Extensible Firmware Interface) bindings for JavaScript, allowing developers to write bootloaders and low-level firmware code in JavaScript. The project enables JavaScript code to interact directly with UEFI services, with script.js serving as the entry point that gets loaded from the boot volume. The article provides basic setup instructions including fetching dependencies, building, and running in QEMU emulator, along with a simple example showing how to access graphics output protocol to fill the screen with red color.
Key quotes
· 4 pulledPromethee loads script.js from the boot volume and runs it. That script is your bootloader.
If you can do it with UEFI services, you can do it in JavaScript.
Your entrypoint is script.js. The run target copies it to the UEFI FAT volume as \script.js.
var gop = efi.SystemTable.BootServices.LocateProtocol(efi.guid.GraphicsOutput);
You might also wanna read
Restartable Sequences: A Linux Kernel Feature for Lock-Free Thread-Safe Programming
This article explores restartable sequences (rseq), a Linux kernel feature introduced in version 4.18 (circa 2018) that enables creation of
Zig Days: Collaborative Full-Day Programming Events for the Zig Community
Zig Days are full-day collaborative programming events organized by the Zig community, typically held on Saturdays. Participants meet in the
Spectre Programming Language Documentation: A Contract-Based Approach to Safe Low-Level Systems Programming
Spectre is a contract-based programming language designed for safe low-level systems programming. It enforces correctness through type-level
A Grounded Conceptual Model for Ownership Types in Rust Programming
This article presents a grounded conceptual model for ownership types in Rust, the programming language known for memory safety without garb
Rail: A Self-Hosting Systems Programming Language with Pure-Rail TLS 1.3 Implementation
Rail is a self-hosting systems programming language that compiles itself without any C dependencies. The compiler is written in Rail and pro
Solod: A Go Subset That Compiles to C for Systems Programming
Solod is a strict subset of the Go programming language that compiles to regular C code, designed for systems programming with manual memory
