Book on MS C (really user inter

David Dyer-Bennet ddb at ns.network.com
Fri Apr 21 06:15:53 AEST 1989


In article <225800159 at uxe.cso.uiuc.edu> mcdonald at uxe.cso.uiuc.edu writes:
:IF -- IF X were the standard user interface for all those machines,
:a program written to the X spec would be portable.

"Portable to environment q" means just what it says -- that the program
in question can be run in that environment.  I know of no definition
of portable that forbids you to use standard and freely available
library code to achieve this.

:But, it is NOT
:standard. Certainly not on IBM-PC's, where the standard graphics
:interface is Microsoft Windows, nor on the Macintosh, where the 
:graphics standard IS the operating system itself.

A quick scan of the boxes down at Egghead should make it pretty clear that
calling Microsoft Windows "the" standard graphics interface for IBM-PC's is
nonsense.  The vast majority of graphics programs on IBM PC's don't use
it and can't run with it.

:So, the question arises here - IS X PORTABLE? That is, if I get
:the code for X off of your Unix box (and, assuming that it
:is not filled to the gills with #ifdef IBM_PC)will it 
:compile and run on my computer with its particular graphics display?
:I find it INCREDIBLY difficult to believe that it is. The graphics
:code to generate lines, ellipses, fills, characters and pattern
:transfers is extremely dependent on the exact details of a
:graphics device and the nature of the processor. 

How did you get so far into this discussion if you know so little
about the subject matter?  Speaking very roughly (not having developed
any X applications, or ever used X), X works by having a "server"
which does the actual graphics display, in communication with the
program which does the image generation.  The system-dependent details
are taken care of by the display server (which will answer questions
asked by the actual program about things like display size, aspect
ratio, colors available and such).  The display server talks to one or
more programs wishing display services using some appropriate
interprocess communication technique, often over a network.  Thus, you
can have windows on your screen connected to programs on many
different computers around a network.

It is my understanding that the X server code has been ported to the pc
environment both under DOS and under UNIX.  That's all you need to run
any X program with its window appearing on your PC.  Making the actual
program run on the PC may be subject to the usual problems of small 
address space and 64k segments, of course.
-- 
David Dyer-Bennet, ddb at terrabit.fidonet.org, or ddb at ns.network.com
or ddb at Lynx.MN.Org, ...{amdahl,hpda}!bungia!viper!ddb
or ...!{rutgers!dayton | amdahl!ems | uunet!rosevax}!umn-cs!ns!ddb
or Fidonet 1:282/341.0, (612) 721-8967 9600hst/2400/1200/300



More information about the Comp.lang.c mailing list