[TUHS] Clever code (was Re: Re: Stdin Redirect in Cu History/Alternatives?

Dan Cross crossd at gmail.com
Fri Dec 16 00:18:42 AEST 2022


On Thu, Dec 15, 2022 at 9:07 AM Larry McVoy <lm at mcvoy.com> wrote:
> On Thu, Dec 15, 2022 at 09:02:08AM -0500, Dan Cross wrote:
> > On Thu, Dec 15, 2022 at 12:38 AM Bakul Shah <bakul at iitbombay.org> wrote:
> > > Don't see how unless they put multiple related services in the same
> > > address space, which reduces context switching but tends toward a
> > > monokernel (& increased coupling). Unless I am misunderstanding you.
> >
> > I don't see why two services in a microkernel couldn't arrange to
> > share a region of memory and implement bidirectional queues
> > between themselves. With an appropriate signalling mechanism,
> > you'd still be context switching but avoiding a lot of copying.
>
> My mind went to similar thoughts.  How did QNX manage the page cache?
> Did they have mmap?

I don't know if they did historically, but I kind of doubt it; QNX predates
4.2BSD, and I imagine there wasn't much influence from TENEX/PMAP).
But they seem to now:
https://www.qnx.com/developers/docs/7.1/#com.qnx.doc.neutrino.getting_started/topic/s1_resmgr_io_mmap.html

No idea how they handle page caching. That's an interesting question,
given how they adopted POSIX and try to at least give the outward
appearance of being Unix-y.

Given the emphasis on the message-based architecture, where messages
can be sent between nodes, I doubt there's that much support for shared
memory as a basis for IPC; I think they favored explicit messaging copying
facilitated by the ukernel. Whether you could build something bespoke using
the provided primitives is another matter.

        - Dan C.


More information about the TUHS mailing list