job control

Moderator, John Quarterman std-unix at ut-sally.UUCP
Sun Oct 12 11:27:08 AEST 1986


From: guy at sun.com (Guy Harris)
Date: Sat, 11 Oct 86 02:49:48 PDT

> "It" is the "virtual console" feature found in most PC-based UNIX
> implementations.  This does rely on memory-mapped video, but character-
> mapped terminals work as well as bit-mapped ones.

No, you don't need a bit-mapped display to do windowing, but I presume most
people already knew that.  Convergent Technologies, for instance, has a
windowing scheme on their PT terminals.  It's not even a "virtual console"
scheme; you can see parts of several windows, if you want.

This sort of windowing mechanism doesn't even necessarily require a
memory-mapped screen; it merely needs a way to redraw a window when it moves
to the front.  Mark Horton's earlier message describes a window manager for
dumb terminals; it even permits more than one window on the screen.

> A process trying to write to a non-current virtual console will (fill
> up some clists and then) block.  A process trying to read the keyboard
> will block until the user switches to its console and types something.

> This is all completely invisible to user programs;  they think they're
> dealing with a perfectly ordinary 24x80 terminal.  No SIGTSTP, no window
> size ioctls, etc.

There's nothing particularly special about all this; other window systems do
the same thing.  Virtual consoles are just a special case of a window system
where all windows cover the full screen.

As for the window size "ioctl", consider this: any program that thinks it's
always dealing with a "perfectly ordinary 24x80 terminal" is going to be
quite surprised when run on an Ann Arbor Ambassador with 60 lines.  Programs
should not make assumptions like that.

Given that the program will then have to query "termcap" or "terminfo" to
find the size of the screen, it's not much trouble to have the routine that
reads in the "termcap" or "terminfo" entry check what the window size
"ioctl" says and only use the value in the entry if the window size is 0x0
(i.e., not specified).  That's what Sun's "termcap" code does.

Volume-Number: Volume 7, Number 50



More information about the Mod.std.unix mailing list