Re:Io_uring is not (only) a generic asynchronous syscall fac...
by Nican on Wednesday June 30, 2021 @04:16AM
(#27686209)
My knowledge about kernels is very limited, but is this not the whole principle behind Google's Fuchsia?
[ Parent
| on HN ]
Re:Io_uring is not (only) a generic asynchronous syscall fac...
by cmrdporcupine on Wednesday June 30, 2021 @08:59AM
(#27687934)
As far as I understand it, this kind of asynchronous callback based I/O was a hallmark of VMS's IO subsystem (1st release 1977...); and Unix's "get a byte, get a byte, get a byte byte byte" model was a major criticism that the VMS folks had about it.
https://retrocomputing.stackexchange.com/questions/14150/how...
So, no, I don't think you need to jump all the way to microkernel/message-passing (like Fuchsia) to get this kind of model.
Re:Io_uring is not (only) a generic asynchronous syscall fac...
by twic on Wednesday June 30, 2021 @08:07AM
(#27687497)
It sounds exactly like every microkernel architecture to me. Subsystems are processes, processes communicate by sending asynchronous messages, there is a way to wait for a reply to a message to allow synchronous interaction, there is a way to share or transfer ownership of memory between processes to allow bulk data transfer.
Message sending might be implemented on top of memory mapping, but doesn't need to be.
Re:Io_uring is not (only) a generic asynchronous syscall fac...
by fancl20 on Wednesday June 30, 2021 @09:17AM
(#27688115)
That's exactly the point I want to express - this type of communication design is not bind to microkernel or io_uring or any system. It's a general architecture pattern appears on any cross subsystems communication. Hardware DMA also has a similar design.