▲ | miki123211 5 days ago | ||||||||||||||||||||||||||||||||||
This is what IBM I[1] (AKA AS400) does I think. Ibm I applications are compiled to a hardware-independent intermediate representation called TIMI, which the SLIC (kernel) can then compile down to machine code, usually at program installation time. As the SLIC is also responsible for maintaining system security, there's no way for a malicious user to sneak in a noncompliant program. | |||||||||||||||||||||||||||||||||||
▲ | pdw 5 days ago | parent | next [-] | ||||||||||||||||||||||||||||||||||
I always wondered how secure AS/400 actually is. The original implementation might have checked tag bits in hardware (I don't know), but the current (PowerPC) implementation relies on the compiler generating a "check tag bits" every time a pointer is dereferenced [1]. So it seems that any arbitrary code execution vulnerability would be absolutely devastating. And the "SLIC" is not a small microkernel -- it also contains the compilers, the database and other system components. It'd be hard to believe there would no exploitable bugs in there. | |||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||
▲ | kragen 5 days ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||
Correct, although I can't be sure I'm remembering the names of the parts correctly. Soltis's book Inside the AS/400 https://archive.org/details/insideas4000000solt is fascinating reading, but the title overpromises rather badly; there is no list of opcodes, for example. | |||||||||||||||||||||||||||||||||||
▲ | ptx 5 days ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||
That's basically the same idea as WebAssembly, isn't it? | |||||||||||||||||||||||||||||||||||
|