UEFI Bindings for JavaScript

Overall reaction

  • Many describe the project as “cursed” or “blursed” but also hilarious and impressive.
  • A lot of commenters clearly enjoy the sheer audacity: “everything rewritten in JS,” “it begins,” references to “The Birth and Death of JavaScript,” etc.
  • Several people quote the “your scientists/developers were so preoccupied with whether they could…” line, reflecting both admiration and discomfort.

Intended purpose and potential uses

  • Author’s stated goal (per comments) is a bootloader customizable via HTML/CSS/JS, not just a random stunt.
  • People joke about DOM support, CSS splash animations, and React/Ink-based UEFI TUIs; some note this might even improve current “gamer” firmware UIs.
  • A few imagine using the UEFI network stack for JS-based boot scripting or package loading.
  • There’s speculative interest in going further: JS inside coreboot, browser support for UEFI, etc. (often tongue‑in‑cheek).

Security, stability, and threat model

  • One camp sees this as dangerous: an unnecessary new attack surface at a critical layer.
  • Another camp argues UEFI already runs arbitrary code; the real risk is bad JS, not the interpreter itself, and that’s comparable to C/C++ UEFI code.
  • Some celebrate it as “more ways to jailbreak stuff.”
  • Longer subthread on whether a JS (or GC’d) kernel is viable: concerns about GC pauses, out‑of‑memory behavior, and historical attempts (.NET/Longhorn), versus claims that GC in kernels is hard but technically possible.

JS as OS / systems language

  • Clarification: this uses C to embed a JS engine and expose UEFI protocols; once bootstrapped, you could in principle implement “OS-like” logic in JS, but you still need low‑level code (interrupts, page tables, etc.).
  • Debate over how much of an OS could be written in JS alone versus needing C/asm or a meta‑circular VM.
  • Examples mentioned: JS/asm.js attempts at kernels, Linux compiled to asm.js, and MicroPython‑style projects in other languages.

Technical details and language choices

  • Choice of Duktape is praised: small, embeddable, works in freestanding environments; heavyweight engines like V8/SpiderMonkey would be painful at boot time.
  • Interesting design point: raw UEFI services (graphics, filesystem, network) are exposed directly to JS rather than wrapped in a heavy abstraction layer.
  • Floats are reported to work; someone notes Linux historically avoided FP in kernel to skip saving/restoring FP registers.

Broader JavaScript discussion

  • Philosophical split: JS “should stay in the browser” vs “JS as a general‑purpose language.”
  • Some emphasize that bloaty Electron apps are more about Electron and npm stacks than about JS itself.
  • Others mention using Deno/Node/Bun for scripting and system tasks as evidence that JS is already a practical general‑purpose language.

Educational and novelty value

  • Multiple comments frame this as a great “silly experiment” and learning tool rather than something production‑ready.
  • Several say it’s a striking demonstration of control over the machine and a fun playground for low‑level + JS enthusiasts.