[comp.sys.ibm.pc] X on IBM PC

edward@ga.ecn.purdue.edu (Edward L Haletky) (03/09/88)

Okay,

My mail box is getting full of letters from people who are requesting the
same information. Here is what I have found out.

1) Several software house (mentioned in previous articles) have ported
   X to various PC's.

2) X is a unixed based program. In order to run it on a PC you would most
   likely need to be running a unix system. (Minix, Xenix, Unix PC may
   be adequate.) X makes unix system level calls. You would also need lots
   of disk space to hold the X system. Plus lots of memory. A virtual
   machine is the best bet (386, 68020 boxes).

3) To port such a beast to a PC would require C compiler that can handle
   all the Unix system calls. I do not know one that can. (possibly MSC.)

			Good-Luck to any one who wants to port.

=====================================    ^    =================================
    Edward L. Haletky            |E     |o|     U| "To race against the sky..."
Usenet: ~!pur-ee!edward          |L   ^/| |\^   S| "The world of the
Arpa:   edward@ga.ecn.purdue.edu |H   / | | \   A|  immagination is boundless."
=====================================/__-|-__\=================================

jg@jumbo.dec.com (Jim Gettys) (03/10/88)

In article <347@ga.ecn.purdue.edu> edward@ga.ecn.purdue.edu (Edward L Haletky) writes:
>
>Okay,
>
>My mail box is getting full of letters from people who are requesting the
>same information. Here is what I have found out.
>
>1) Several software house (mentioned in previous articles) have ported
>   X to various PC's.
>
>2) X is a unixed based program. In order to run it on a PC you would most
>   likely need to be running a unix system. (Minix, Xenix, Unix PC may
>   be adequate.) X makes unix system level calls. You would also need lots
>   of disk space to hold the X system. Plus lots of memory. A virtual
>   machine is the best bet (386, 68020 boxes).

Ultimately, X is a network protocol, not a specific implementation.
People are indeed working on other implementations other than the "sample
server" on the MIT distribution.  Lisp implementations have also been
done for LispM environments.

The sample server implementation was very carefully designed not to
be Unix dependent; all of the OS dependencies are fully isolated in the
implementation.  In fact, this server has been ported to other systems
than Unix, VMS for example (look at the VAXstation 8000 announcement
made in January).  The VS8000 development group on VMS kept within a week or
so of the Unix development; they kept us reasonably honest.

X performs relatively few system calls; read and write (preferably,
but not necessarily non-blocking), select (or poll in the System V world)
are the major ones.

The only piece of the distribution particularly Unix dependent is the
terminal emulator, by nature somewhat OS dependent.

Porting the server only to MS-DOS is straightforward, as the various
commercial implementations suggest (the biggest problem is a reasonable
network transport).  The server plus clients in 640 k would be
a serious problem.  We implemented the sample server often trading
memory for speed, which was a conscious design decision, though much
could be done to make it smaller.  With the time constraints on the
sample server implementation, we did not have extra time to do work
to make it smaller while preserving speed.  (For example, some internal server
data structures could be shared in the window heirarchy, at the cost of
some additional code complexity, but no performance penalty).

By far the biggest issue on a PC is getting a good multiconnection
network transport, not X itself.  There are kludge arounds for this,
but they are hackish enough not to mention here.

>
>3) To port such a beast to a PC would require C compiler that can handle
>   all the Unix system calls. I do not know one that can. (possibly MSC.)
>

As stated above, X makes very few system calls, not "all the calls", and
they are well isolated.
				Jim Gettys
				Digital Equipment Corporation
				Systems Research Center

peter@sugar.UUCP (Peter da Silva) (03/18/88)

In article ... edward@ga.ecn.purdue.edu (Edward L Haletky) writes:
> 1) Several software house have ported X to various PC's.

> 2) X is a unixed based program. [ It runs on the PC under UNIX ]

> 3) To port such a beast to a PC would require C compiler that can handle
>    all the Unix system calls. I do not know one that can. (possibly MSC.)

That's one way of saying it. You also need an operating system to support
all the UNIX calls (like fork()) or else you need to do more or less a
complete rewrite to jam it into a device driver.
-- 
-- Peter da Silva  `-_-'  ...!hoptoad!academ!uhnix1!sugar!peter
-- Disclaimer: These U aren't mere opinions... these are *values*.

geoff@desint.UUCP (Geoff Kuenning) (03/23/88)

In article <1583@sugar.UUCP> peter@sugar.UUCP (Peter da Silva) writes:

> In article ... edward@ga.ecn.purdue.edu (Edward L Haletky) writes:
> > 1) Several software house have ported X to various PC's.
> 
> > 2) X is a unixed based program. [ It runs on the PC under UNIX ]
> 
> > 3) To port such a beast to a PC would require C compiler that can handle
> >    all the Unix system calls. I do not know one that can. (possibly MSC.)
> 
> That's one way of saying it. You also need an operating system to support
> all the UNIX calls (like fork()) or else you need to do more or less a
> complete rewrite to jam it into a device driver.

The software houses that are offering "X on a PC" are actually offering
X *servers* on a PC.  As far as I know, nobody offers X clients on a PC.
While it would be possible to run one client at a time on a PC, talking
to a server on another, such a stunt strikes me as just that -- a stunt.

The so-named "sample server" delivered on the X release tape has *all*
OS-dependent system calls collected in a few modules in a single directory
named "os/4bsd".  None of these calls are particularly UNIX-specific.  The
server has no reason to fork, exec, or anything like that.  Mostly it opens
and closes files and network connections.  There is no need to use a fancy
C library, nor to jam the whole thing into a device driver.  The hardest
part is getting rid of all of MIT's 32-bit assumptions so the thing can run
on the 16-bit 286.  The second hardest part is writing, porting, or interfacing
the so-called "device-dependent" code so that it will drive an EGA or whatever.
The changes needed to convert "os/4bsd" to "os/dos" are quite minor by
comparison.
-- 
	Geoff Kuenning   geoff@ITcorp.com   {uunet,trwrb}!desint!geoff

tada@athena.mit.edu (Michael Zehr) (03/25/88)

Sorry to have to subject the net to this question again, but my handy
on-line list of sources for PC X software got trashed.  Could someone plese
e-mail me a list?

Thanks in advance.

-------
michael j zehr
"My opinions are my own ... as is my spelling."