> A channel has 2 handles, h1, h2, write messages from one end, and read messages from the other.
This seems like it's bound to be a critical section for many operations. So for one/some of the supported target architectures, what's an example of how channel write/reads look in detail? Do I need to trap or can I write "directly" into pages that the recipient can read? Can messages span cache lines?
I believe that Fuchsia sounds ambitious and it's only through the dedication of mega-tech corps like Google/etc that ambitious efforts like this can succeed. But the world in general, even the tech world, is loathe to accept change. Backwards-compatible layers to emulate the linux syscall layer would probably be a critical transition feature. This allows consumers to phase in the work required as they can stomach it, rather than suffer it all-at-once-or-nothing.
How hard is it to port Fuchsia to a new target? Can anyone point me to a series of commits for a target that does this?
The kernel switch for channel communication seems like a big performance hit just to stop "sharing memory". Why not allow shared memory with negotiation on the communication protocol? The OS software could share memory, but only use protocols that are strict, simple, secure, etc...
If it's anything like sel4 in this regard, you can share memory just fine, it's just that the first pass should use IPC through the kernel (which is very optimized).
> A channel has 2 handles, h1, h2, write messages from one end, and read messages from the other.
This seems like it's bound to be a critical section for many operations. So for one/some of the supported target architectures, what's an example of how channel write/reads look in detail? Do I need to trap or can I write "directly" into pages that the recipient can read? Can messages span cache lines?
I believe that Fuchsia sounds ambitious and it's only through the dedication of mega-tech corps like Google/etc that ambitious efforts like this can succeed. But the world in general, even the tech world, is loathe to accept change. Backwards-compatible layers to emulate the linux syscall layer would probably be a critical transition feature. This allows consumers to phase in the work required as they can stomach it, rather than suffer it all-at-once-or-nothing.
How hard is it to port Fuchsia to a new target? Can anyone point me to a series of commits for a target that does this?