Path: utzoo!utgpu!utstat!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!dogie.macc.wisc.edu!uwvax!umn-d-ub!umn-cs!ns!ddb From: ddb@ns.network.com (David Dyer-Bennet) Newsgroups: comp.lang.c Subject: Re: Book on MS C (really user inter Message-ID: <1307@ns.network.com> Date: 20 Apr 89 20:15:53 GMT References: <452@pai.UUCP> <225800159@uxe.cso.uiuc.edu> Reply-To: ddb@ns.UUCP (David Dyer-Bennet) Organization: Terrabit Software Lines: 51 In article <225800159@uxe.cso.uiuc.edu> mcdonald@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@terrabit.fidonet.org, or ddb@ns.network.com or ddb@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