Christopher B. Browne's Home Page
cbbrowne@acm.org

15. GGI - General Graphical Interface

This project sought particularly to improve the robustness of graphics handling under Linux. The official "home" is at www.ggi-project.org which has recently been "resurrected" from apparent death. There is a SourceForge project at ggi.sourceforge.net that has not yet released any files as of early 2002.

The GGI project is moving along, albeit somewhat slowly; there have only recently been official releases at Sourceforge, but there have been several thousand CVS commits, indicating that something has been going on...

At present, the easiest method to utterly crash a Linux machine is via graphics applications that by virtue of their access to graphics implicitly reach deeply into the kernel. Programs such as X servers and SVGAlib applications must run as setuid root (e.g. run as the ultimately privileged user, root) in order to access graphics capabilities. This provides these processes with complete access to IO ports and DMA. This represents:

Every program that manages a graphics console has to manage video modes independently. Running SVGAlib and X applications simultaneously on different virtual consoles is the most common source of problems as they don't change video modes in a coordinated fashion.

GGI would change this, having the following components:

All this "good stuff" being said, all is not joy and bliss in paradise. The GGI project has not been quickly adding to their list of supported graphics cards and operating systems. In order to achieve "world dominance," they desparately need to support a wide variety of graphics cards and architectures. The numbers of graphics cards and chipsets are growing faster than they seem able to cope with.

The recent move to allow Libggi run atop various other infrastructures most notably including X is probably the best thing that could have happened; it allows people to start writing applications for Libggi with the expectation that they can run on X-based systems right now, with future efficiency improvements coming from later hosting applications directly atop the kernel-based KGI.

Some projects have come along using GGI; note the PSV - Postscript viewer.

Google
Contact me at cbbrowne@acm.org