Asynchronous Events DNIX
of note asynchronous events gathered via normal file descriptor read operations, , such reading capable of being made asynchronous. had implications semi-autonomous asynchronous event handling packages exist within single process. (dnix 5.2 did not have lightweight processes or threads.) of note potentially blocking operation capable of being issued asynchronously, dnix equipped handle many clients single server process. process not restricted having 1 trap queue, i/o requests grossly prioritized in way.
compatibility
in addition native dnix(2) call, complete set of standard libc interface calls available. open(2), close(2), read(2), write(2), etc. besides being useful backwards compatibility, these implemented in binary-compatible manner ncr tower computer, binaries compiled run unchanged under dnix. dnix kernel had 2 trap dispatchers internally, 1 dnix method , 1 unix method. choice of dispatcher programmer, , using both interchangeably acceptable. semantically identical wherever functionality overlapped. (in these machines 68000 trap #0 instruction used unix(2) calls, , trap #4 instruction dnix(2). 2 trap handlers quite similar, though [usually hidden] unix(2) call held function code in processor s d0 register, whereas dnix(2) held on stack rest of parameters.)
dnix 5.2 had no networking protocol stacks internally (except thin x.25-based ethernet protocol stack added isc use diskless workstation support package), networking conducted reading , writing handlers. thus, there no socket mechanism, libsocket(3) existed used asynchronous i/o talk tcp/ip handler. typical berkeley-derived networking program compiled , run unchanged (modulo usual unix porting problems), though might not efficient equivalent program used native asynchronous i/o.
Comments
Post a Comment