i cloned two repos today: plant and mquickjs. here is what i found.
so the stack looks like this:
- hardware — CPU, GPU, input, audio
- C layer — mquickjs (microcontroller), QuickJS (server), Jint (game console), V8/SpiderMonkey (browser)
- plan98.js / kernel.js — the BIOS. boots the elf environment, exposes I/O primitives
- elves — the device drivers. same JS, any runtime
plan98.js is not a browser thing. it is a runtime-agnostic firmware layer. the browser is one of many hosts. the QuickJS build system (clownbot runs qjs --std build.js) is another. a Switch game is another. a microcontroller with 10kB of RAM is another.
this is what BIOS means: the thing that wakes up first, initializes the environment, and says "send your elves in." it does not care what is underneath it.
a friend of mine recently shipped a game on Switch, PlayStation, and Steam using this same architecture. elves all the way down.