Yeah, nommu Linux basically cannot run normal ELF since there is no virtual memory which is needed for relative addressing and relocations. You are mostly left with classical formats like AT&T a.out only
You wouldn’t be able to guarantee execution of arbitrary ELF, but couldn’t you intentionally build non-PIC-compiled ELF executables where the section base addresses as defined in the header must match the MMU region “slots” the host provides?
I can't find it now, but someone ported nommu linux to those cortex-m3 "bluepill" development boards that could be bought for ~$2 (they were built wrong and liquidated for a massive discount).
Seeing the title of this submission reminded me of it because I messed around with it a bit a few years ago.
Comments
There is actually precedent for nommu Linux, though it obviously has tradeoffs.
Yeah, nommu Linux basically cannot run normal ELF since there is no virtual memory which is needed for relative addressing and relocations. You are mostly left with classical formats like AT&T a.out only
You wouldn’t be able to guarantee execution of arbitrary ELF, but couldn’t you intentionally build non-PIC-compiled ELF executables where the section base addresses as defined in the header must match the MMU region “slots” the host provides?
I can't find it now, but someone ported nommu linux to those cortex-m3 "bluepill" development boards that could be bought for ~$2 (they were built wrong and liquidated for a massive discount).
Seeing the title of this submission reminded me of it because I messed around with it a bit a few years ago.