Follow

@vertigo Query: In Unix/DOS, ABI stability tends to be around syscalls. Windows's ABI stability is around its dynamically linked system libraries (win32k.dll, ntdll.dll, kernel32.dll)- which is convenient since other OSes can implement them and not have to emulate a kernel to run its applications. However, this relies on the C ABI. Do you have any ideas or examples of arch-independent calling conventions? It would be useful for emulating programs from other arches with native libraries.

@jookia The only examples I can think of are those which enforce passing arguments in processor registers. For example, AmigaOS 1.0-3.9 libraries, where all arguments are passed in D0-D7, A0-A5, and A6 is used as the library base pointer, and A7 is kept as the stack pointer.

Unfortunately, in AmigaOS 4, which targets PowerPC, it goes back to using the officially documented C ABI standards (see the PowerPC ELF document).

@vertigo Hmm. I was thinking of doing something like message-passing through a bus in the process itself.

@jookia An interesting concept; I've thought of exploring that approach before, but never acted upon it. I know some prior research in cache kernel systems used memory-mapped RPC mechanisms, and they reported good performance. I don't know much more than that though.

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!