Virtual OS/2 International Consumer Education

February 1999
Features
editor@os2voice.org
[Previous Page ] [ Index] [Next Page
]
VOICE Home Page: http://www.os2voice.org



By: Rob Fargher fargher@POBoxes.com



What is X?

One of the most influential developments in the way we interact with our computers originated at Xerox's Palo Alto Research Centre (PARC). It was at PARC that the original WIMP (Windows, Icons, Menus and Pointers) GUI (Graphical User Interface) was developed. This was a major step forward in human/computer interaction.

Prior to this novel visual interface, computers had been controlled by throwing switches on the front panel, by punched cards or paper tape or by typing commands upon a keyboard. All of these mechanisms have been labeled as "non-intuitive", frequently demanding an intercession from a priesthood of professional computer operators to ensure that the supplications of mere users were correctly submitted. The WIMP GUI was a revolution, enabling individual users to have much more power over the machine.

While the Xerox parent company of PARC didn't realize the significance of this new way of controlling a computer, many others did, including manufacturers of personal computers. The familiar WIMP GUI is found in the Apple Macintosh (and in Lisa, the predecessor to the Mac), Microsoft Windows and has reached its highest development so far in IBM's excellent OS/2 Workplace Shell. It seems that at the personal computer level a GUI is the almost universally preferred interface to the system. It doesn't seem farfetched to me to think that it has been the triumph of the WIMP GUI that has directly been responsible for the explosive growth in personal computer usage.

But there is a whole other world out there beyond the personal computer horizon, a world of workstations, servers and mainframes. This world is much more pantheistic than the personal computer world in which operating systems are used to run these machines. However, a very significant fraction of this world runs upon unix. (I use unix in a generic sense and include systems such as Unix, SysV, BSD, AIX, HP-UX, Solaris, SUN OS, FreeBSD, SCO, Minix, Xenix and, of course, Linux in this genus. The "Unix" is a single, trademarked species of unix. I also use unix in both the singular and plural.) Unix are the dominant systems in engineering and many other high level workstation platforms. Unix are also the major platform for systems that form the Internet

There has been a WIMP GUI produced for unix. Developed as Project Athena at MIT in the 1980's, the dominant GUI upon unix systems is the X Window System, commonly called X. (Please note that it is X Window, *never* X Windows; calling it such is a grating, grevious error.) Superficially, X is extremely similar to other WIMP GUIs and an adept user of any other GUI will quickly pick up the basic usage of X. But there is one area in which X is outstandingly proficient: networking.

At their very core, unix are built to be multiuser networked systems and X completely implements and extends this capability. An X workstation (i.e. a network connected computer running the X Window system intended for the use of a single person) can be networked to a much more powerful remote machine, run a X application on that remote machine and have the graphical output displayed on the local screen. Except for any network lag, the X app appears to be running locally, making the network invisible; so-called network transparent access.

X operates in a client-server model. However, the usage of these terms is somewhat different from their more common usage outside of X. One normally thinks of one's own machine as being the client, requesting services from a remote server, usually file or print services. This is not how X uses these terms. In X, the server is the local X Window system and the client is the X app, which may be local or remote, requiring the services of the X server. The X server serves local or remote X clients (remember, the network is invisible) by displaying their output upon the screen. You will need to keep this usage of client/server in mind when dealing with XFree86/OS2 as it might be a bit confusing.

For example, you might be at your X workstation in Vancouver working upon evolutionary stable strategies of frog mating behaviours, a fascinating subject indeed. The particular program doing the analysis is not running on your workstation, it is located on a colleagues computer in England. As a matter of fact, your workstation and the English computer are running different OS's; you are running OS/2 and the English computer is running Linux. However, the analysis program (the client) running under Linux in England is an X app and has been told to send its output to XFree86/OS2 (the X server) for display at your IP address. It does not matter where the client is running nor does it matter what platform the client is running upon as long as it has been correctly instructed where the X server to display its output is located.

What is XFree86 and XFree86/OS2?

The current version of the X Window System is X Version 11 Release 6.4, more commonly known as X11R6.4, and was authored by the Open Group (formerly the X Consortium). While X was first deployed as the GUI for unix, it is platform agnostic and has been ported to many systems and architectures, including the Intel x86 architecture. XFree86 (http://www.xfree86.org) is one port of the X Window System to x86-based systems (there are other X ports. For OS/2 alone, there are at least 3 others). XFree86 has been ported to OS/2 by Dr. Holgar Veit et al. and is called XFree86/OS2 (http://set.gmd.de/~veit/os2/xf86os2.html). Thus XFree86/OS2 is X on OS/2.

The current version of XFree86 is version 3.3.3.1, based upon X11R6.3 (not 6.4), and XFree86/OS2 is current with that version. XFree86/OS2 is fully up to date and supports most of the recently released video hardware, e.g. it supports my Matrox Millennium G200 AGP video card.

XFree86/OS2 is not a Presentation Manager (PM) application. It does not require the PM; it is a completely independent GUI for OS/2 with its own video handler. Amazingly, it is not an either/or situation: you can be running both PM and XFree86/OS2 simultaneously, switching between them at will with either CTL-ESC or ALT-ESC.

Where to get XFree86/OS2?

To run XFree86/OS2 requires OS/2 Warp 3 (any version) with at least FP5 (but not FP26), OS/2 Warp 4 with or without any Fix Packs. I'm running Warp 4 with FP 9 and X runs fine. If you want to connect to a network, you'll need IBM TCP/IP 2.0 or later, Warp Connect, Warp Server, Warp 4, or Aurora.

Hardware requirements are undemanding in these days of inexpensive RAM: a 486 system with 16 MB RAM will do for basic use. It will occupy between 30-50 MB of disk space, depending on the optional components you choose to install. Except for the video card, the rest of the hardware should be irrelevant; if you have it working in OS/2, it'll work in XFree86/OS2.

If you have a very recently released or oddball video card, video support might be problematical. Other than that, there is very wide video support: XFree86/OS2 3.3.3.1 supports 571 video cards and added support for Matrox G100/G200, Riva128 ZX and TNT, NeoMagic, Rendition Verite and Permedia/Permedia2/GLINT video cards.

As XFree86/OS2 uses long filenames, it requires HPFS or another file system that supports long filenames, e.g. ext2fs. It will not work from a FAT partition.

Since XFree86/OS2 is ported from unix source code, it requires appropriate runtime library support, provided by EMX/gcc 0.9C fix 4 or later (ftp://hobbes.nmsu.edu/pub/os2/dev/emx/v0.9d/emxrt.zip is the latest version). Note you only need the emxrt files, not the whole package, if you are not going to be doing any development.

The files you'll need to download for XFree86OS/2 3.3.3.1 are:

X333bas.zip
X333doc.zip
X333bin.zip
X333fnts.zip

The above will provide the necessary fonts, documentation and binaries for X but does not include an X server, which is hardware dependent. You will have to download the specific X server for your hardware. Choose at least one of the following X server zip files that matches your hardware:

X333Mono.zip the Monochrome X Server
X333SVGA.zip the 8-bit pseudo-colour X server for Super VGA cards
X333VG16.zip the 4-bit pseudo-colour X server for VGA & SVGA cards
X3338514.zip the X server for IBM 8514/A and compatible boards
X333AGX.zip the X server for AGX boards
X333Glnt.zip the X server for Permedia / GLINT boards
X333I128.zip the X server for #9 Imagination 128 boards
X333Ma8.zip the X server for ATI Mach8 graphics boards
X333Ma32.zip the X server for ATI Mach32 graphics boards
X333Ma64.zip the X server for ATI Mach64 graphics boards
X333P9K.zip the X server for P9000 based boards
X333S3.zip the X server for S3 based boards (excluding S3 ViRGE)
X333S3V.zip the X server for S3 ViRGE based boards
X33W32.zip the X server for et4000w32 based boards

If your hardware isn't mentioned in the above list don't despair as it is likely supported by the Super VGA server (X333SVGA.zip). Although the Super VGA server is described as being "8-bit pseudo-colour", it does much higher pixel depths (32 bpp) and is accelerated for many video cards. This is the X server that I'm using with my Matrox G200 AGP card at 1280 x 1024, 24 bpp.

The following are optional files and fonts::

X333man.zip pre-formatted man pages for the X11 interface and clients
X333f100.zip 100dpi fonts
X333fscl.zip Speedo and Type1 fonts
X333fnon.zip Japanese, Chinese and other fonts
X333fcyr.zip Cyrillic fonts
X333fsrv.zip the font server with man pages.
X333pex.zip PEX fonts and libraries required for PEX applications
X333prog.zip the X11 header files and programmer's utilities for compiling other X applications

Personally, I would recommend getting the man pages and the font server. After installation, the xman program will display the man (short for manual) pages, providing some, albeit terse, online help for X itself and many of the basic X apps. The font server will allow you to select X fonts easily.

By the way, X has native support for Type 1 fonts. You can even use your OS/2 fonts, with some jiggery-pokery. This involves mapping between an OS/2 font file name (i.e. the .pfb files) and the 14-part X font specifier for all fonts in \PSFONTS. For examples of this 14-part X font specifier, see \XFree86\lib\X11\fonts\*\fonts.dir after installing XFree86/OS2. After grokking that, you'll realize that the font server really is a necessity, not an option! :-) Unfortunately support for True Type fonts isn't available yet in XFree86/OS2, although True Type fonts can be used in XFree86 on Linux; check http://set.gmd.de/~veit/os2/xf86os2.html and http://set.gmd.de/~veit/os2/x11os2faq.html to see if this has changed by the time you read this article.

I believe PEX abbreviates "Phiggs Extensions to X". Other than that, I neither know anything about it nor have I ever needed it. Presumably you will need it if you need to run a PEX app.

All of the necessary and optional files can be downloaded from:

ftp://ftp.xfree86.org/pub/XFree86/3.3.3.1/binaries/OS2/
http://tsikora.tiac.net/pub/os2/unix/xfree86/3.3.3.1/

You can also pickup emxrt.zip from either of those sites, too.

How to install and configure XFree86/OS2?

It is suggested that you first download only the XFree86/OS2 base system (X333bas.zip) and test your video hardware for compatibility before obtaining the whole distribution, perhaps wasting precious bandwidth. All the zip files are archived from \XFree86 with the path preserved. The Info-Zip unzip utility will retain this path by default; use the -d option with PKUNZIP.EXE to unzip the files correctly and preserve the proper path. It is suggested that you unzip all the zip archives from the root directory; they will all go in the \XFree86 directory sub-tree (many X programs assume such a directory structure).

Insert the following line in your config.sys where <drive> refers to the logical drive that XFree86/OS2 is being installed upon. In my case, I put it on my D drive and all examples from my system below reflect that.

DEVICE=<drive>\XFree86\lib\xf86sup.sys

After saving the changes to config.sys, you must reboot. If you should get a message that the "XF86SUP.SYS driver could not be installed", there are two possible problems. One is that you didn't specify the path to the driver correctly, thus it can't be found by OS/2 (you might want to check your spelling). Another would be if you have FASTIO.SYS being loaded elsewhere. XF86SUP.SYS is a superset of FASTIO.SYS and takes over all of its functions. Remove the config.sys line that loads FASTIO.SYS and reboot. Check out http://set.gmd.de/~veit/os2/xf86sup.html if you want to know more about XF88SUP.SYS.

Now you can run the video hardware testing program, Superprobe. It is located in \XFree86\bin and should be run from a full-screen OS command line session. Superprobe will post some version information and a warning that it may hang your system. That has never happened to me but a sensible precaution would be to ensure that all other windows are closed and that no other applications are running. It would also be a wise precaution to do a full system backup first, too (after all it is time that one was done anyway, right?)

The following is the output from the Superprobe program with my G200 AGP card:

First video: Super-VGA
Chipset: Matrox (chipset unknown) (PCI Probed)
Signature data: 7 (please report)
RAMDAC: Generic 8-bit pseudo-color DAC
(with 6-bit wide lookup tables (or in 6-bit mode))
Hmm, not too promising that (chipset unknown) part but I had prior knowledge that XFree86/OS2 supported my card so I went ahead anyway. The README file lists the chipsets supported by XFree86. For some other video hardware, Superprobe will give useful information on video timings, capabilities and dotclocks that will come in handy later on when configuring XFree86/OS2. If it reports such information to you, write it down or capture the output to a file: "\XFree86\bin\superprobe > output.txt" will do the trick.

If worse comes to worst, and it doesn't look like XFree86/OS2 provides specific support for your fancy video card, all is not lost. You could always use the XF86_Mono server or the XF86_VGA16 server. The XF86_Mono server is a monochrome server that should work on any VGA-compatible card, in 640x480 (more on some SVGA chipsets). The XF86_VGA16 server is a 16-colour VGA server that should work on any VGA-compatible card.

Once you have confirmation that your video hardware will work with XFree86/OS2, go ahead and download the rest of the distribution. Again, unzip the zip archive files from the root directory on the installation drive so that the files are placed properly in the \Xfree86 hierarchy.

The following are the relevant lines from my CONFIG.SYS. Note that some lines use forward slashes and others use backward slashes. This is because XFree86/OS2 has been ported from unix and unix uses forward slashes.

LIBPATH=D:\emx\dll;D:\xfree86\lib
SET PATH=D:\emx\bin;D:\xfree86\bin
DEVICE=D:\XFree86\lib\xf86sup.sys
SET ETC=C:\TCPIP\ETC
SET TMP=C:\TCPIP\TMP
SET HOSTNAME=Snapperorgans
SET TERM=ansi
SET TERMCAP=D:/XFree86/lib/X11/etc/termcap.x11
SET LOGNAME=Rob
SET USER=Rob
SET X11ROOT=D:
SET XSERVER=D:/XFree86/bin/XF86_SVGA.exe
SET X11SHELL=C:\OS2\CMD.EXE
SET DISPLAY=Snapperorgans:0.0
SET USE_HOSTS_FIRST=1
SET MANPATH=D:/XFree86/man
SET SANE_CONFIG_DIR=D:\OS2SANE

OK, let's go through these lines and see what they do.

LIBPATH=D:\emx\dll;D:\xfree86\lib
SET PATH=D:\emx\bin;D:\xfree86\bin

These two are standard OS\2 extensions to the LIBPATH and PATH search routes. Tag the relevant directories from your EMX and XFree86/OS2 installations onto the end of your current LIBPATH and PATH statements in your config.sys.

DEVICE=D:\XFree86\lib\xf86sup.sys

This is a supplementary driver for XFree86/OS2 (it is not X itself) and provides some necessary support that OS/2 lacks. Specific information on this driver is available at http://set.gmd.de/~veit/os2/xf86sup.html. Note that you will be unable to run XFree86/OS2 without this driver.

SET ETC=C:\TCPIP\ETC
SET TMP=C:\TCPIP\TMP

These are the standard OS/2 ETC and TMP directories. These two lines are what Warp 4 TCP/IP installation sets by default, thus they may already be present in your config.sys. If you do not already have ETC and TMP directories set, insert these lines into your config.sys. They do not need to point to C:\TCPIP, they can point anywhere. Remember to create the directories, though.

SET HOSTNAME=Snapperorgans

This is a networking requirement and may already have been set during installation of TCP/IP. If you haven't already set a hostname for your system in config.sys, do so now. Choose any name that strikes your fancy. By the way, if you are running Warp 3 and hadn't previously had a hostname set, you might find some IAK apps working faster now; I seem to recall that DOIP was much happier once a hostname was set.

SET TERM=ansi

This setting is needed by some programs. It sets the "preferred terminal type for the xterm or editor to be used". As you will find out, a xterm is a command line window in X, equivalent to an OS/2 window session. Other term types are available; they are described in your termcap file.

SET TERMCAP=D:/XFree86/lib/X11/etc/termcap.x11

This is the "terminal capabilities" file that is searched to determine the settings for the terminal type indicated in the SET TERM variable. You will also have one (named termcap.dat) in \emx\etc. Either can be used. They are text files; have a look in them to see what terminal types are available. Not all may work in XFree86/OS2 as they may depend upon a DOS driver.

SET LOGNAME=Rob
SET USER=Rob

LOGNAME and USER are there for the benefit of some programs that may need such settings. The documentation for XFreeOS/2 indicates that they may be used in the future. They should both be set to the same username.

SET HOME=D:\Rob

This is to point to the home directory of the user. X comes from a multiuser environment and uses each users home directory to store their individual program configuration and initialization files.

SET X11ROOT=D:

This is an essential setting, pointing to the location of the \XFree86 directory. The recommended configuration is to have \XFree86 as a subdirectory directly off the root directory; in which case, the X11ROOT variable should point to the drive where XFree86/OS2 is installed. It is possible to have \XFree86 elsewhere (e.g. D:\unix\emx\X\XFree86 with X11ROOT set to D:\unix\emx\X) but this isn't recommended as it may confuse some poor programs that assume the standard installation tree.

SET XSERVER=D:/XFree86/bin/XF86_SVGA.exe

This is the hardware dependent portion of X as it identifies the specific X server to use with your hardware. My video card is supported by the SVGA server which is why XF86_SVGA.exe is set here. You should set this to the specific server that supports your video card, this will be identified when you run the xf86config.exe program. The SVGA server is somewhat misnamed now as it is almost a catchall server for many video cards. You can find out which particular server you need to install from the xf86config program. Note that SVGA does not mean unaccelerated.

SET X11SHELL=C:\OS2\CMD.EXE

This identifies the shell or command interpreter to be used with XFree86/OS2. If you are using the default CMD.EXE as your OS/2 shell, this line isn't needed. Other shells that can be specified here are tcsh and ksh. Unfortunately, my preferred OS/2 shell, 4OS2, doesn't work as a shell for XFree86/OS2. Darn.

SET DISPLAY=Snapperorgans:0.0

This tells the X server where to display its wonders. One might think that of course it should be displayed upon the screen attached to the video card of your PC and that is what OS/2 does. But remember that X was designed from the outset to be networked and makes no assumptions about where clients and servers are located. Normally, this should be set to the local host name with a :0.0 attached; this will do what you think should be done by default i.e. display on your monitor. You could have an IP address or full internet name instead of your hostname for remote display.

Every X server has a display name of the form:

hostname:displaynumber.screennumber

The displaynumber and screennumber will change from :0.0 on multiuser, multidisplay systems.

SET USE_HOSTS_FIRST=1

This is part of the networking configuration for XFree86/OS2. I'm not sure what it does but I think it has something to do with a local loopback interface. That bang you just heard was me running into the wall at the end of my knowledge.

SET MANPATH=D:/XFree86/man

This identifies the location of the man (manual) pages. They can be displayed by the xman program. Man pages are brief and terse descriptions of the use of programs, generally describing the various invocation switches. They are part of the optional features of XFree86/OS2. At first you might find a man page to be overly succinct (I certainly did) but they will come in quite handy after you gain some familiarity with the programs. I recommend you install the X333man.zip archive unless disk space is scarce. The man pages will occupy 1.8 MB of hard drive real estate.

Although the files containing the man pages end in a .gz suffix which normally indicates that they are gzip archives, they are plain text files and can be read using any OS/2 editor or file lister you wish.

SET SANE_CONFIG_DIR=D:\OS2SANE

This isn't part of the standard XFree86/OS2 installation as it points to the installation directory of the OS/2 SANE driver (Scanner Access Now Easy, http://www.mostang.com/sane for information; http://www.geocities.com/SiliconValley/Peaks/4320/sane2.html for the OS/2 binaries).

Later on, I'm going to be mentioning image scanning in X and this variable is necessary for the XFree86/OS2 scanner utility, xscanimage, to use your scanner.

Now that you've installed XFree86/OS2, done the necessary editing of config.sys (except for the SET XSERVER variable as we haven't yet identified which X server you should use) and rebooted to activate the whole shebang, it's almost time to identify and configure the X server itself. But before going any farther, let's check if we've done everything right so far. In \XFree86\bin, there is a useful REXX script to check your installation, checkinstall.cmd. Run this script and correct any problems it identifies. With luck, it'll report:

Searching the boot drive. Please wait ...
... Bootdrive "C:" found.

***CHECK: Your system seems to be setup correctly for XFree86/OS2

Congratulations! You're almost there!

Now it's time to identify and configure the X server itself. Have your manuals for your video card and monitor handy as you'll need them to identify various timings and sync rates. X reads the necessary hardware configurations from \XFree86\lib\X11\xf86config. This is a textfile and must be set correctly for your hardware. The file, \XFree86\lib\X11\xf86config.eg, is an example of such a configuration file only and must not be used as it stands for it may cause your system to release its magic smoke! You have been warned.

Although xf86config looks somewhat complicated and confusing (at least it does to me), it's not necessary to get confused by it. Fortunately, you do not have to do the configuration work from scratch or by hand. When you installed XFree86/OS2, it placed a configuration utility (xf86config.exe) in \XFree86\bin.

Xf86config.exe will ask you a bunch of questions (have the manuals for your video card and monitor available) about your system. Once it has the proper information, it will write your xf86config file. Xf86config.exe has a built-in database of 571 video cards; if your card is in that database, xf86config.exe will tell you what X server you need to install. You will need to know which video card you have and how much memory is installed on your video card.

You will also need to know the vertical and horizontal sync rate capability of your monitor. These are also known as the refresh rates; the vertical refresh or sync rate is expressed in Hertz (Hz), the horizontal refresh or sync rate is expressed in kiloHertz (kHz). These are the most important settings; if set incorrectly, you could damage your monitor.

If you don't have the manual for your monitor, you're not out of luck yet. The Fraser Valley Linux Users Group maintains a searchable database of monitor timings and modelines for XFree86 (http://www.netmaster.ca/LUG/monitor). Also, there is a monitor database in /XFree86/lib/X11/doc/Monitors. You may well be able to garner the necessary information from either of those locations. If you already have a working XFree86 3.3.3.x system in Linux, you can use most of the configuration from that xf86config file with the exceptions of some specific OS/2 settings (e.g. the mouse driver).

If you've only now identified which X server you need to use, don't forget to make the proper setting in config.sys

Starting and stopping XFree86/OS2

Well, we've got this far. It's time to start X and get the show on the road. To do so just type "startx" in an OS/2 command window. If everything is working properly, the screen should flash black momentarily, some initialization text will be output to the screen. Shortly after that, a stippled grey screen appears with a mouse cursor shaped like a graphic cross. This is basic X, running before any X applications are launched. As such, X isn't very useful. Thus various programs, including the essential window manager, are launched (as set in \xfree86\lib\x11\xinit\xinitrc.cmd). Shortly after seeing the initial grey screen, the screen will change to a dark blue screen, with a few windows open. You can press CTL-ALT-minus or CTL-ALT-plus (the grey plus or minus keys on the numeric keypad) to change the display resolution on the fly.


Figure one shows the default XFree86/OS2 3.3.3 desktop. In the upper left corner is an xterm session, where you can enter commands. In the upper right is an xclock, displaying the current time on an analogue clock face. Just to the right of xclock is a small xman window, allowing you to browse and display man pages. At the bottom of the screen is a taskbar, with a digital clock display at the end. This is the desktop as specified in xinitrc.cmd using icewm as the default window manager.

The window manager is your interface to XFree86/OS2 and provides much of the "experience" the user has with X. The window manager controls the functionality and appearance of the windows, providing the various buttons, sliders and titlebars. The default Ice window manager (icewm) provides the most OS/2-like experience. You can use any ported window manager you wish; XFree86/OS2 also includes Tom's window manager (twm). Edit xinitrc.cmd to change window managers. You can find out which other window managers are available for XFree86/OS2 at http://set.gmd.de/~veit/os2/xf86pwm.html.

There are several methods of shutting down X. The standard CTL-ALT-Backspace works but leaves an orphan "Login Xterm" OS/2 command window hanging around that must be closed manually. A better method is to right-click somewhere on the desktop, which brings up a pop-up menu and choose "Close/Exit Window Manager". This will shutdown XFree86OS/2 cleanly and return you to the OS/2 desktop.

OK, now what?

This gets to the question of why you installed XFree86/OS2 in the first place. Perhaps you installed it as a hobbyist, just because it was available and a challenge which improves your understanding of the system. If so, you've got a wide open world ahead of you. We've barely scratched the surface of X and there are many enhancements and configurations to play with. X is an extremely flexible system and you can spend many hours tinkering with it, if you so desire.

However the main reason for installing X on OS/2 is to run X apps, either locally or remotely on a network. Using XFree86/OS2 as a networked X terminal is a very popular use but is beyond the scope of this article; see the section on what others are doing with X to get an idea of can be done. If you want to use OS/2 as a networked X terminal, you can get more information from the documentation in your XFree86/OS2 installation.

To run an X app locally, it must have been ported to OS/2 (I'm not aware that any native OS/2 X software exists). You can find out what X software has been ported to OS/2 at http://set.gmd.de/~veit/os2/xf86ported.html.

To me, the "killer" app for XFree86/OS2 is the GIMP, the GNU Image Manipulation Program (http://www/gimp.org). It is a free software, Open Source graphics program that most closely resembles Adobe Photoshop. The GIMP is a flexible, extensible and capable program, useful for photo retouching, image composition and image authoring. It has a large following of developers who are constantly adding new plug-ins that extend and enhance the GIMP.

Coupling the GIMP with the OS/2 SANE scanner drivers and the xscanimage utility, which will allow you to scan an image directly into the GIMP, OS/2 now has a complete free software graphic manipulation system of very high quality. This is shown in Figure 2.


(click on the above image to view a 1280x1024 Gif (300K) of the above)

In the upper right corner of Figure 2, below the xclock, is the control panel of the GIMP. If you've ever used Adobe Photoshop, this will look very familiar. From the GIMP panel, I used the Xtns menu to Acquire an image. This launched the xscanimage utility, whose interface is seen in the window in the lower left. Using the xscanimage interface to the SANE scanner driver, I scanned an image from my Umax Astra 610S scanner directly into the GIMP. This image is seen in the window beside the GIMP and is now ready for manipulation by all the tools and plug-ins available to the GIMP.

Once the image editing session is finished, the GIMP can save your image in a wide variety of formats, including the popular JPEG, GIF and PNG formats. The GIMP's native format is XCF, which preserves the various layers and channels of the image for future editing sessions.

By the way, the image is of the Alhambra, a beautiful fortress-palace of the Moors in Granada, Spain and I used the screen capture facility of the GIMP to take the screenshot.

There is excellent documentation and tutorials on the use of the GIMP in the GUM (GIMP User Manual). The GUM is available online at http://manual.gimp.org or can be downloaded in various formats (Postscript (43 MB), PDF (13.6 MB), HTML (15.7 MB)) from ftp://manual.gimp.org/pub/manual. I recommend getting the PDF version as the HTML version is of lower quality. There are tutorials on the use of the GIMP at http://www.gimp.org/tutorials.html and http://www.xach.com/gimp/tutorials.

You can get the GIMP/2 and xscanimage at http://www.netlabs.org/gimp/index.html#download. Grab a copy of the new GTK.DLL while you're there, it solves the shared memory problem that earlier versions had with the GIMP. The OS/2 port of SANE is at http://www.geocities.com/SiliconValley/Peaks/4320/sane2.html

What others are doing with X in OS/2.

In preparing to write this article, I posed the following question on the XFree86OS/2 mailing list:

"Would you mind taking a couple of minutes and tell me what you use XFree86OS/2 for? My main use is for the GIMP and I'll cover that base. But I'd be really interested in what other folks are doing with XFreeOS/2."

The following are some of the responses I received. Some have been edited for brevity.

(1) "I just installed it so that I could administer my new Linux server from the OS/2 system in my office. I wanted something a little better than telnet. I do most of my development under OS/2, but I may start using Linux as my Internet access system."

(2) "I use XFree86/2 for doing Telecoms development on Sun workstations. I do editing, read email, news etc. using my favourite OS/2 software, (native PM or VIO applications). Then compile the software in an xterm, and run the software and bring up debuggers on my X server. Most other people here have a Sun workstation on their desk, and a(Win95) PC to do documentation or read email (if not using the Sun)." ... edit ... "For me XFree86/2 is fast and reliable" ...edit... "I have played with a few of the X OS/2 ports - I use AfterStep for my window manager. But in general, I would rather use PM applications. I would like to use GIMP/2, but I haven't had time yet."

(3) "I personally use XFree86/2 to work on Sun machines. I run my simulation on SUN machines at the universities and occasionally I need to check the results graphically." ...edit... "I connect my home machine (OS/2) to SUN machines to run Matlab."

(4) "I'm using XFree86OS2 with some apps for viewing serial port based temperature probes and I use it at work to develop on in the office before moving down to the COLD labs. The labs run HP-UX. I also use it at home to control a Linux server I have running 7/24 and will eventually run my X10 controlled house."

(5) "I set up a PC running Warp 4 and XFree86 so that the help desk at Bell Atlantic Mobile in Bedminster, NJ could access a Sun workstation running HP OpenView. That was over a year ago, as far as I know they are still using it."

(6) "I have two machines here on a network. One is a PII350 with 128MB RAM running linux and the other is an AMD5x86/133 with 32MB RAM running OS/2. I installed xfree86/2 on the OS/2 machine with the intention of using it as a x-terminal with the linux machine."

(7) "Here I use XFree86/OS2 at the dormitory to run IC design tools at Sun workstations of the laboratory."

(8) "A strange question. It's used for 'everything'. Run some existing apps locally, and some from remote. Check out some lists of existing X11 software in the web and you will find everything: editors, file management tools, games, graphics software, scientific apps, ... So you can use it as an 'X terminal' like every un*x machine or run any of the few existing native X11 applications. No difference to another system using X11. However for OS/2 users it's an add-on, we have another GUI available!"

(9) "My main use for XFree86/OS2 is to run apps on other Un*x boxes, one in particular called MedX for medical image review and analysis, and also to use/administer a couple of Un*x boxes which don't themselves have consoles (in a computer closet somewhere) while retaining my OS/2 desktop."

(10) "I had to develop an app that had to run on NT (:-()), but I didn't want to do it on that dumb platform; so I scanned through the available cross-platform GUI-kits and I found one of the best was wxWindows: this ran on Win and X, so I ported it to X/2 and did the job."

(11) "I use it to connect to a SUN Workstation at my university and use a 3D-CAD-System (UniGraphics) from my home pc. It's running very nice.."

(12) "We use XFreeOS/2 on university computers mainly to access other machines like AIX-Boxes from IBM or Sun's Solaris. Gimp/2 is being tested now and may be used in the future."

(13) "On the one hand, I use it to do xdm logons to various Unix boxes, so I can have the Unix desktop and applications on my PC. I also use it to run the vector drawing tool XFig on OS/2. XFig looks somewhat archaic, but for doing scientifical schematic drawings, that are to be included into Latex documents it is the ideal tool." ...edit... "A lot of Windows people regret that there isn't a windows port of XFig available, so they have to use Unix boxes for it, but on OS/2, I can even run XFig on my OS/2-only notebook because there is a native port of XFig that is using XFree86/2. :-)"

(14) "I have three main uses for XFreeOS/2. The one you mentioned, GIMP. Secondly I use it at home and at work to do things on Unix boxes. I use XDM to remote run a Sun box and an SGI in the office from my desktop. At home I access them that way from my laptop. The third is to access my home Linux Box, again usually via XDM."

(15) "I'm using XFreeOS2 in three ways: 1) Connecting to remote Unix boxes (SGI, Linux) and running programs like Matlab, TeX etc. remotely. 2) Running X-clients like Gimp, XFig or Octave (a Matlab clone) with Gnuplot locally. 3) Using the Xlibs and RPClibs I've programmed my own control and data acquisition X-clients. They run on OS/2 boxes inside a small flight simulator or inside some rotating chair equipment. Thanks to XFree I now can remotely control these programs over a wireless LAN. The sampled data can then be analysed either remotely or locally with Octave."

(16) "OK, I am a GIMP-Only user :-)"

(17) "I am using XFree86/2 for running remote data analysis/genetic database access programs via my account on SGI IRIX workstations in England, right from my OS/2 desktop here in Moscow, Russia :). Much cheaper and faster than flying to England twice a year like I used to. I am also trying to learn GIMP at the moment..."

(18) "I just installed XFree86/2 at home for curiosity and I'm starting to use it to manage the Linux Server that I have at home. Much better than connecting a monitor to the system and much cheaper."

(19) "I use xfree for GIMP as well as running the Oracle Developer 2000 software on a Sun Solaris server. Developer 2000 is a major forms generation package used with Oracle databases."

Other information

The canonical source will be the documentation included with your XFree86/OS2 installation. Be sure to read the README, README.OS2 and RELNOTES files in \XFree86. There is also a Superprobe.doc textfile in that directory you should read before running the Superprobe utility. Check \XFree86\lib\X11\Doc for a the possible existence of a README file for your video card.

There is a FAQ for XFree86/OS2. It is available online at http://borneo.gmd.de/~veit/os2/x11os2faq.html or in \XFree86\lib\X11\doc\x11os2faq.html.

There is a mailing list for XFree86/OS2. To subscribe, send an email to Majordomo@borneo.gmd.de and put the following two lines in the body of the message:

subscribe xfreeos2
end

If you have problems setting up XFree86/OS, you can post a question on comp.os.os2.setup.misc. Dr. Holgar Veit, the author of XFree86/OS2 monitors this newsgroup for XFree86/OS2 issues

http://www.geocities.com/SiliconValley/Network/6571/xfree86os2.html is a bit out of date as it refers to an earlier version of XFree86/OS2 but still contains useful information. If you have problems with Xf86config, you might find more help there

The online OS/2 Ezine published an article on XFree86/OS2 (http://www.os2ezine.com/v1n6/xfree.html)

For a general FAQ on XFree86, see http://www.xfree86.org/FAQ/index.html

The official XFree86 documentation (http://www.xfree86.org/3.3.3) will detail the hardware supported by XFree86/OS2.

For information on X itself, there is a plentitude of information available in \XFree86\man\man3. A particularly useful resource is the Linux Documentation Project (http://metalab.unc.edu/mdw/linux.html); see the XFree86 HOWTO (http://metalab.unc.edu/mdw/HOWTO/XFree86-HOWTO.html), the XFree86 Video Timings HOWTO (http://metalab.unc.edu/mdw/HOWTO/XFree86-Video-Timings-HOWTO.html) and the X Window User HOWTO (http://metalab.unc.edu/mdw/HOWTO/XWindow-User-HOWTO.html)


About the author

Rob Fargher did his Ph.D. on the biochemistry and physiology of the hormone, prolactin, in salmon. This obviously qualified him to write about XFree86/OS2. Currently exiled in Southern Ontario, he's hoping to return to his beloved British Columbia in the near future where he'll continue to deny any knowledge of Windows. Rob can usually be found on the Undernet IRC #OS/2 channel as Frogger. He'll read the beefs and bouquets about this article as fargher@POBoxes.com


Features
editor@os2voice.org
[Previous Page ] [ Index] [Next Page
]
VOICE Home Page: http://www.os2voice.org