Subject: Re: serial line ideas
To: None <current-users@NetBSD.ORG>
From: Michael Richardson <>
List: current-users
Date: 12/26/1996 17:23:51

  {my appoligies for dragging things out from over a month ago. I kept
meaning to clean up my mailbox. Mouse and my original private emails
woke something about had been smoldering for some time}

>>>>> "Curt" == Curt Sampson <> writes:
    Curt> True enough. On the other hand, if a processes wedges (gets
    Curt> stuck in a non-interuptable state, such as waiting for disk
    Curt> I/O), that device now remains locked forever and you have to
    Curt> reboot your system before you can have access to it.

  While Sun never didn't fix all these problems in the SunOS 4 line
(did Solaris do anything? I never tried), the major problem was lack
of kernel source to fix it. In fact, fixing these problems are what
got into the Sun3 effort in the first place :-)
  Now, I run mgetty on a 486.

    Curt> Neither system is perfect, but I think the consequences of
    Curt> messed-up userland locks are a little less serious, and
    Curt> userland locks give you a feature you don't have otherwise.

    Curt> Another thing you can't do with kernel locks is to lock the
    Curt> port without bringing up DTR, which you might want to do if
    Curt> you wanted to await an incoming call that you don't want
    Curt> your modem to answer, for example.

    Curt> (Actually, come to think of it, you'd need some special
    Curt> hacks in the kernel to deal with DTR, too, otherwise

  This is why the dialin/out stuff never got made MI, I suspect.
  My fundamental problem is that we are thinking about this wrong.

  DTR up to answer, and ATS0=1 just don't pass these days anymore. I
want to recognize fax calls. I want to grab caller id strings, I want
to know what the kind of call it is on the ISDN.

  Meanwhile, if I'm trying to figure out my new (used) Dec 425SL
notebook (it probes com0,1,2, but has only one connector), I just want
three wires to plug into a terminal. 
  And when I hook up that CryptoCard programming device, I care even
less about carriers, locks, etc..

  I find it deplorable that we are even trying to do 115k or more over
RS-232 to ISDN modems. What about the "universal serial bus" --- I
know next to nothing about it, but I suspect that it will be yet
another blight on the "everything is a dumb terminal" thinking of the
current Unix tty subsystem.

  Can't we move more smarts closer to the device? That should let us
replace current 16550 crap with smarter controllers much easier. 

  I'd rather see "POTS" domain sockets, with "connect(2)" being the
interface to dialing the phone, rather than dialin/dialout devices. In
my mind, Mouse's three devices are:

	1. dialin: getty listens here. If there is any funny stuff
	with faxes, etc.. they happen *before* getty gets woken up.
	2. dialout: connecting to this port optionally *blocks* until
	the modem is available, perhaps even until the number has been
	dialed, and a carrier received. 
	3. generic: no special junk. This is the port I use when I 
	want RS-232, no frills. This is the port that a *hardwired*
	PPPD uses, and where my EPROM programmer gets connected to.

  Oh my lord: Am I starting to sound like I want TLI? Was this one of
its goals? I never knew much about TLI, except that I had to type NSAP
addresses in hex into a config file before TCP/IP would work :-)
  Maybe it wasn't a terrible goal, but like STREAMS, TLI took a good
idea and did it wrong.  
  Does the prospect of putting modem dialers into the kernel scare
people? Yup. Me too. They don't exactly require high performance
kernel copy interfaces, etc... Mostly they could live in userland, but
have a T fitting at the bottom of the MI code. I can't quite think of
the right analogy from the Unix world right now. Old Amiga hackers
familiar with Welmat (a fido mailer that Russ & James McOrmond and I
wrote), VLT, and the shared library transfer protocols will know what
I mean. 

  I'm so disgusted with doing RS-232 to my Bitsurfr, that I've ordered
a Spellcaster BRI ISA card. It was apparently shipped on the 24th. I
have yet to look at the ISDN4Linux stuff, but I will. I have no idea
if they have done anything other than tty stuff.
  I will hopefully be starting the driver this weekend.
   :!mcr!:            |  Network security consulting and 
   Michael Richardson |      contract programming
 WWW: PGP key available.

Version: 2.6.3ia
Charset: latin1
Comment: Processed by Mailcrypt 3.4, an Emacs/PGP interface