Hacker News new | past | comments | ask | show | jobs | submit login

I haven't looked into io_uring except superficially, but Windows implemented Registered I/O in Windows 8 circa 2011. this is the basically the same programming paradigm used in io_uring, except it is sockets-only.

Talk here [1] speaks to the modern reality of 14 years ago :-).

Since kqueue seems very similar to IOCP in paradigm, I guess some of the overheads are similar and hence a ring-buffer-based I/O system would be more performant.

It's worth noting that NVME storage also seems to use a similar I/O pattern as RIO, so I assume we're "closer to the hardware" in this way.

1. https://learn.microsoft.com/en-us/shows/build-build2011/sac-...




Microsoft implemented I/O rings in an update to Windows 10 with some differences and it is largely a copy-and-paste of io_uring.

It's important to note that the NT kernel was built to leverage async I/O throughout. It was part of the original design documents and not an after-thought.

https://learn.microsoft.com/en-us/windows/win32/api/ioringap...

https://windows-internals.com/i-o-rings-when-one-i-o-operati...

https://windows-internals.com/ioring-vs-io_uring-a-compariso...

https://www.cs.fsu.edu/~zwang/files/cop4610/Fall2016/windows...


Winsock Registered I/O or RIO predates io_uring and you could make the argument that io_uring "is largely a copy-paste of RIO" if you wanted to be childish.

The truth is that they both use a obvious pattern of high-performance data transfer that's been around a long time. As I said, NVME devices have been doing that for a while and it's a common paradigm in any DMA-based transfer.

io_uring seems more expansive and hence useful compared to the limited scope of RIO or even the NtIoRing stuff.


> io_uring "is largely a copy-paste of RIO" if you wanted to be childish.

This was unnecessary. I'm not denigrating I/O Rings or io_uring. The NT kernel is more advanced than the Linux/BSD/macOS kernels in certain ways. There should be a back-and-forth copying of the good ideas/implementations.


I misunderstood. apologies.


io_uring is not limited to networking/sockets

io_uring is not even limited to IO


I was talking about RIO


And I was talking about the modern reality enabled by iouring. Not really 14yo stuff, to be honest.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: