You can run ELF binary apps directly from an SD card without restarting or flashing the ROM. There's an SDK for building these apps, but I haven't made an official release yet.
Admittedly, I don't know a whole lot about what instruction set features the ESP32 actually has, but isn't an embedded processor that small by nature lacking in things like, say, a memory management unit? Don't take this the wrong way, but the notion of making a general-purpose OS that relies on cooperative multitasking seems a bit sketchy at a time when you could just spend an extra buck to move up to something like a Raspberry Pi Zero that can run a proper memory-safe and preemptive OS.
There is indeed no way to create new virtual memory mappings. When a binary is loaded, it's manually mapped into IRAM (instruction RAM).
The target audience for things like Lilygo T-Deck is probably the more technical side of the Flipper Zero audience. I can see how it could also become an end-user device (like Flipper Zero is to many people), but we'll need more apps for that.
And sure, you could use a Raspberry Pi, but part of the fun/challenge of this project is that it hasn't been done for ESP32 before (as far as I'm aware).
Some differences: a Raspberry Pi draws more power, costs more, and generally doesn't boot in under 2 seconds. I'm also not aware of compact Pi-based handhelds like the Lilygo T-Deck is to my project.
edit: There's the uConsole, but it's twice the price, likely has 6+ months delivery time, is much larger, and weighs much more.
I didn't know this exists! I'm currently using a dependency to load ELF files: https://components.espressif.com/components/espressif/elf_loader
I guess it would make more sense to have the memory mapping done inside elf_loader, so that S3 devices can load to PSRAM and non-S3 devices can load into IRAM. Thanks for the tip!