Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!henry From: henry@utzoo.UUCP (Henry Spencer) Newsgroups: net.arch Subject: Re: inside the OS vs. outside the OS Message-ID: <5329@utzoo.UUCP> Date: Sat, 23-Mar-85 19:55:43 EST Article-I.D.: utzoo.5329 Posted: Sat Mar 23 19:55:43 1985 Date-Received: Sat, 23-Mar-85 19:55:43 EST References: <501@harvard.ARPA> Organization: U of Toronto Zoology Lines: 25 > Shouldn't the kernel part of a terminal driver be just two ring buffers, > one for input characters and one for output? The driver should just fill > and empty these buffers. > > Then the user can link in whatever routines are necessary for the > particular application to do all of the rest. When I'm using a screen > text editor that turns off echo and puts the terminal in RAW mode, why > do I have to pay for the checks for echo and flow control and all of the > rest. Because if it isn't done in a central place, history shows that programmers don't bother providing it at all. Look at the wild chaos of different keyboard conventions in the old Xerox Alto software. Unix originally did not provide centralized "fancy" tty handling, and as a result one could seldom count on even something as simple as a backspace character. This got fixed long ago, fortunately. Mind you, I agree that much of that machinery shouldn't be imbedded down in the kernel, where it's very hard to fix problems with it. The trick is to move it out of the kernel while retaining the centralization, so that change is easy (and can be done on an individual basis) but all programs still get the full functionality by default. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry