2 ms·
«Why dont O/S support executables with something like LLVM binaries and generate the native code at load time ?» I've wondered this too. I can think of two sys
by mannschott 2mo ago
«Why dont O/S support executables with something like LLVM binaries and generate the native code at load time ?»
I've wondered this too. I can think of two systems "IBM i" (formerly OS/400) [1] and Oberon "Slim Binaries" [2] off the top of my head. I suspect that the answer to your question is some mix of path dependence and engineering trade-offs.
[1] https://en.wikipedia.org/wiki/IBM_i https://en.wikipedia.org/wiki/IBM_i
[2] https://dl.acm.org/doi/pdf/10.1145/265563.265576 https://dl.acm.org/doi/pdf/10.1145/265563.265576
For example, if the system has unix-style paged virtual memory (which Oberon did not), it's probably convenient to be able to directly map pages of native instructions into memory without needing to translate or massage them first.
In the case of "IBM i", which I've only ever read about, it sounds like it moves complexity from e.g. the compiler into the loader and so closer to the Kernel of the operating system. If I wanted to better understand the net cost/benefit analysis of this design I'd look for more detail on work done to port to PowerPC.