home *** CD-ROM | disk | FTP | other *** search
- From: dave%garfield.mun.cdn%ubc.csnet@RELAY.CS.NET (David Janes)
- Date: Sun, 2 Nov 86 11:29:02 pst
-
- The tty driver should provide a character i/o interface to the outside
- world, and nothing else.
-
- SIGWINCH, SIGSTOP, SIGCONT, etc. all have a similar purpose: to
- inform the user process that there has been a change in the `environment'
- that the process is using. (The real purpose of SIGCONT, besides
- putting a process back in run queue, is to inform a process that its
- output screen has been dirtied.) In addition to signals, ioctls have been
- added to ask the tty driver about it's environment: how big is my screen,
- and so on. All these are currently implemented as tty driver `aids', and
- really have no place there.
-
- The Solution: an `environment' file should be available for
- every tty device (including pseudo-ttys.)
- All changes to the tty's environment are reflected into this
- file. If the window size is changed (by whatever), the window
- size part of that file is modified. If the screen is `dirtied',
- a `dirty screen' flag is set, and so on.
-
- The environment file is a normal UNIX file. Some programs like init,
- and so on may need to be modified to keep this file with the
- right protections and so on, but this is basically minor.
-
- Processes (including the kernel for some implementations) which change
- the environment of the tty merely update this file when they
- make those changes.
-
- One kernel change must be added. A SIGIO signal should be
- sent when this file is modified to all interested processes (who
- declare the interest via `fnctl' or some similar mechanism.)
- This change can be justified outside the concept of `environments'
- as a reasonable extension to the SIGIO facility.
-
- The stopping and restarting of processes can be implemented
- sensibly and independantly of this scheme.
-
- NOTES:
- [1] this could be added to system V to make job control as `nice'
- to the user as Berkeley job control, and still be entirely backwards
- compatable.
-
- [2] window management process (even if implemented in the kernel)
- simply write their changes to the environment file if
- the screen size gets changed.
-
- [3] simple window management, which doesn't redraw screens,
- can be implemented under the same scheme. Thus, many styles
- of `job control' (in the broad sense) may be implemented.
-
- dave
- --
- .o.o. The UUCP: {utcsri,ihnp4,allegra,philabs}!garfield!dave
- .:O:. Mercenary CDNNET: David Janes <dave@garfield.mun.cdn>
- .o.o. Programmer "There can only be one!"
-
- Volume-Number: Volume 8, Number 24
-
-