QDOS even had non-blocking I/O at the individual read/write call level.
I had to mention this when I learned of Daniel J. Bernstein advocating, almost 20 years after QDOS, non-blocking nonblock_read()/nonblock_write() additions to the POSIX model, so that your I/O model wasn't something that you had to coördinate and share with every process that might have the same open file descriptor.
I had to mention this when I learned of Daniel J. Bernstein advocating, almost 20 years after QDOS, non-blocking nonblock_read()/nonblock_write() additions to the POSIX model, so that your I/O model wasn't something that you had to coördinate and share with every process that might have the same open file descriptor.
* https://jdebp.uk/FGA/dont-set-shared-file-descriptors-to-non...
There were all sorts of little innovations in the operating systems world back then. Helios was another interesting one, with capabilities.