Samba support is awful, though.
Samba support is awful, though.
For things that OpenVMS is good at, it is REALLY good at. Everything else... is pretty antiquated.
Could poor TCP/IP performance have been a consequence of 'real asynchronous I/O support'?
Berkeley sockets is obnoxious [Example]. But the advanced user can get fine control over it. If you have a use-case that is vulnerable to back-pressure, with Berkeley sockets you can manage that away. Some friendlier API designs would have worse options.
Berkeley sockets is ubiquitous, and there is not much to compare it to. Insights from VMS would be interesting.
--
:Example. A selector indicates that a socket is ready for read/write. But what that actually means is contextual, depending on whether it was created as a client or server socket. You can't attach metadata to the socket to assist with that. Rather, you have to maintain parallel structures.
To put it differently, a modern 10 gig ethernet card likely generates too much traffic to be effectively handled by that code. And if you had more than one 10 gig card in a box, they would contend around that common spin lock.
As a bonus feature, if your VMS TCP/IP stack is configured to send ICMP replies when there is nothing there at the given port, you'll create even more grief because now the stack is busy trying to receive the blast you give it and send out replies too.
This provides an in-depth description of the VCI API which is used to write your own ethernet frame handler. Some descriptions of when IOLOCK8 is held.
https://rtk.mirrors.pdp-11.ru/_vax/openvms.org.ru/vci1.html#...