|
|
|
|
|
by ori_b
1910 days ago
|
|
Channels are not IPC -- they're a libthread API that stays within a shared-memory thread group. There are few magic kernel devices that don't act like 9p, like '#s' which implements fd passing on a single node. And the VGA drivers expose a special memory segment on PCs to enable configuring VGA devices. But the exceptions are very few and far in between, and affect very few programs. > So it's unclear what benefit is being provided by 9p here. A uniform and simple API for interacting with out-of-process resources that can be implemented in a few hundred lines of code. |
|
I guess I just don't see what is conceptually the difference here versus something like doing basic HTTP over a TCP socket, it seems like the same kind of multiplexing. Either way, you still have to deal with the same issues: can't pass pointers directly, need to implement byte swapping, need another serialization library if you want the format to be JSON/XML or if you want a schema, etc... So in cases where that stuff isn't important, channels would come in handy, but of course that is now getting closer to a local Unix IPC. Am I getting this right?