Hacker News new | ask | show | jobs
by p_l 1303 days ago
TL;DR - Async I/O wasn't included in Unices because it's hard & complex and unices are about keeping to the simple till you can no longer lie about it being painless.

Considering that Windows NT's IOCP is very close to direct copy of VMS QIO mechanism (and even more underneath in officially undocumented boundary layer between user space and kernel space), I don't think it's a case of patents.

UNIX was just always against asynchronous I/O, back from the start - asynchronous I/O schemes were known and used as early as original UNIX, and going with fully synchronous model was explicit design choice at Bell Labs.

When asynchronous I/O turned out to be important enough to include after all, there was no common enough interface to handle it and everyone was using select() and poll() out of lack of anything better for the most obvious use cases of AIO (networking). Meanwhile properly implementing asynchronous I/O can be non-trivial - QIO never ran truly multithreaded from the PoV of client program, for example (NT focused on making sure async worked from start).

2 comments

MS fought a legal battle with Dec over Cutler's move. Supposedly that ended up settled such that MS had license to Dec patents and explains why NT resembles VMS yet no lawsuit from Dec. Meanwhile other Unix vendors did not have said license. Fwiw I heard this story directly from Unix vendors OS devs when I worked at Netscape on servers (that supported IOCP on NT and hence often performed much better on a low end PC vs high end Unix iron).

https://techmonitor.ai/technology/dec_forced_microsoft_into_...

The legal battle happened because it wasn't just that MS hired Cutler out of Digital - They effectively hired out a team that will as already working on design for next generation OS based on the same principles as VMS, and litigation went down on that IP.
Afaik Dec was pretty mismanaged at this time and Cutler didn't get his project greenlit. So "hired out" sounds more evil than it actually was. Microsoft saw the potential of Cutler's vision while Dec was busy being stupid. Why stay at Dec and work in something you don't believe in?
Oh, I didn't see "hired out" as evil. Whether it was mismanagement on Digital side to not greenlit Cutler's vision I'm not sure, but there could have been better ways even if they didn't want to replace VMS at the time.
> Considering that Windows NT's IOCP is very close to direct copy of VMS QIO mechanism

Microsoft hired the main architect of VMS, Dave Cutler, away from DEC to design Windows NT - so this shouldn’t be a surprise.

https://news.ycombinator.com/item?id=32602132

Not only that, Cutler went to MS essentially with a team and a project (that didn't get accepted at Digital) to redo VMS from scratch using same principles but with new experience and in cleaner way.