On Mon, May 13, 2024 at 7:42 AM Douglas McIlroy
<douglas.mcilroy(a)dartmouth.edu> wrote:
These precautions are mere fig leaves that conceal important special cases. The
underlying evil of buffered IO still lurks. The justification is that it's necessary
to match the characteristics of IO devices and to minimize system-call overhead. The
former necessity requires the attention of hardware designers, but the latter is in the
hands of programmers. What can be done to mitigate the pain of border-crossing into the
kernel? L4 and its ilk have taken a whack. An even more radical approach might flow from
the "whitepaper" at
www.codevalley.com.
QNX copies messages directly between address spaces without any
intermediary buffering, similarly to L4-like kernels. However, some of
its libraries and servers do still use intermediary buffers.