[net.unix-wizards] Windowing systems

gregg%a.cs.okstate.edu@csnet-relay.arpa (Gregg Wonderly) (04/15/86)

	The biggest problem with windowing seems to be the lack of knowledge
that the kernel has about the users environment.  It seems that several
people have essentially indicated that a more generic communications means
should exist between the kernel and the users terminal.

	It seems most natural to develope some sort of protocol for the kernel,
and have much smarter terminals to decipher it.  A protocol including info
about the process doing the I/O, as well as other data would be needed.

	This gives rise to the question of terminal type.  This provides quite
a few problems because EVERYBODY would want to define their own protocol.
I have seen a SUN workstation, and imagine that something of this nature
is used there.  Picking a very flexible workstation as a terminal is the
logical choice.

	I would like to have some information on systems doing this type of
system/user communication.  Please limit yourselves to multiuser systems,
as this is where the issue resides.  A single user micro can be as elegant
as you desire, because there is generally one screen.  Areas of interest
would probably include the VAX workstation, the SUN workstation, BLIT's,
and perhaps the ATT 7300/3B1.

	I will submit a summary if the responses warrant it.  I feel that it
is time to start making some decisions on a standard, more elegant mainframe
environment, and stop all of this "My systems better than yours" crap.  If
you think your system is better, than tell me why.  Please send your responses
to me instead of posting them here.  My net-mail address is given below.


Gregg Wonderly
Department of Computing and Information Sciences
Oklahoma State University

UUCP: {cbosgd, ea, ihnp4, isucs1, mcvax, uokvax}!okstate!gregg
ARPA:  gregg%okstate.csnet@CSNET-RELAY.ARPA  
    or
ARPA:  gregg@A.CS.OKSTATE.EDU

pdg@ihdev.UUCP (P. D. Guthrie) (04/16/86)

In article <2644@brl-smoke.ARPA> gregg%a.cs.okstate.edu@csnet-relay.arpa writes:
>	The biggest problem with windowing seems to be the lack of knowledge
>that the kernel has about the users environment.  It seems that several
>people have essentially indicated that a more generic communications means
>should exist between the kernel and the users terminal.
>
>	It seems most natural to develope some sort of protocol for the kernel,
>and have much smarter terminals to decipher it.  A protocol including info
>about the process doing the I/O, as well as other data would be needed.
I often see in this group postings that draw the conclusion that the
magic solution to many problems is to put the code in the kernel.  This
simply is not so.  The beauty of UNIX  (I alreay here a lot of groans
and "no, not another programming-as-art nut") is that the kernel
contains the minimum ammount of code to do what a good operating system
should do ; "Hardware provides `raw computing power'.  Operating systems
make this power conveniently available to users."  (Operating Systems, 
Harvey M. Deitel).  Unix provides a set of low level OS interfaces
(system calls)  to allow the writing of system and applications
software.  The question here should be,  "Does Unix provide the
necessary facilities to create windowing software?".  If I was asked
this about other operating systems (Pick, HP3000-MPE)  I would have to
say `no',  but as it has been shown, to various degrees between the
versions,  UNIX  *does*  provide adequate,  and in the case of Version 8
(which I have not used, only read about) very good, facilities for
windowing systems.  I am not opposed to the idea above,  rather
generically opposed to the idea of solving *applications* problems in
the kernel.  Version 8  seems to provide a very good alternative with
the streams package.  You say that the `biggest problem with windowing
seems to be the lack of knowledge that the kernel has about the users
environment'.  This simply is not a problem,  but rather a benefit.  By
providing a virtual (and generic) interface in the kernel,  the layers
of applications above can be provided by the proper level of control, 
the user (applications) software.  This way the kernel does not have to
be tailored to meet specific requirements.  Also,  to see how difficult
your suggestion would be to implement,  ask anyone who has had to
implement a tricky device driver (tailoring protocols would probably be
more difficult)  on a *single* Unix machine - it is *very* time
consuming with the amount of time spent recompiling the kernel and
rebooting.
>
>	This gives rise to the question of terminal type.  This provides quite
>a few problems because EVERYBODY would want to define their own protocol.
>I have seen a SUN workstation, and imagine that something of this nature
>is used there.  Picking a very flexible workstation as a terminal is the
>logical choice.
>
You have hit the major problem with your scheme on the nose.  If
everyone did define their own protocol at the kernel level the size and
complexity of the code would greatly increase and we have to be Hahvahd
grads to know what would happen to the speed.  Why should the user on
a non-windowing terminal suffer a degradation of performance for this?
You suggest picking a `flexible workstation'.  If a workstation can be
made flexible enough to comprehend many (and often changing - so
therefor user definable)  protocols,  then it should not be so hard to
instead have a workstation that  interprets  non-kernel signals  (ie
multiplexed output and input,  and new downloaded software and
administrative commands)  from a user process.  It's more or less the
same thing,  so why implement it at such a low level?
-- 

Paul Guthrie				`When the going gets weird,
ihnp4!ihdev!pdg				 The weird turn pro'
					  - H. Thompson