[comp.os.minix] TTY driver update

paradis@encore.UUCP (Jim Paradis) (12/28/87)

Here's a progress report on my new-from-the-ground-up TTY driver:
it's working.  In fact, I'm typing this message using my MINIX PC
as a terminal!  All that remains now are code cleanups, fixing some
glitches in the ANSI support, and performance tuning.

I explored numerous workarounds to the message-deadlock problem
outlined earlier in this newsgroup, and it turns out that a
reasonably elegant workaround requiring minimal impact on other
OS source files can be had by using a third party to deliver certain
classes of messages.  To explain:  There are two types of message
exchanges that can happen between the FS and the TTY driver: 
request-response exchanges, and asynchronous responses.  Request-response
is obvious: the FS sends a message asking for something and the TTY
driver does some work and sends a response back.  An asynchronous response
is an *unsolicited* message from the TTY driver (e.g. a message to
indicate that a previously blocked I/O is now complete).  These are
the messages that can cause problems, as they can "collide" in the message
channel with a request message coming down from the FS.  My workaround was
to create a second channel specifically for asynchronous responses by
adding a new system task, called TTASYNC.  This task is merely a message
relay: instead of the TTY driver sending async messages directly to the
filesystem, it sends them to TTASYNC, which in turn sends them to the
filesystem.  

Anyhow, watch this space for a posting of my driver!

   +----------------+  Jim Paradis                  linus--+
+--+-------------+  |  Encore Computer Corp.       necntc--|
|  | E N C O R E |  |  257 Cedar Hill St.           ihnp4--+-encore!paradis
|  +-------------+--+  Marlboro MA 01752           decvax--|
+----------------+     (617) 460-0500             talcott--+
...coated with sesame seeds, and garnished with lark's vomit!