290 lines
14 KiB
HTML
290 lines
14 KiB
HTML
<!--startcut ==============================================-->
|
|
<!-- *** BEGIN HTML header *** -->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<HTML><HEAD>
|
|
<title>General Graphics Interface Project (GGI) LG #54</title>
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
|
|
ALINK="#FF0000">
|
|
<!-- *** END HTML header *** -->
|
|
|
|
<CENTER>
|
|
<A HREF="http://www.linuxgazette.com/">
|
|
<H1><IMG ALT="LINUX GAZETTE" SRC="../gx/lglogo.jpg"
|
|
WIDTH="600" HEIGHT="124" border="0"></H1></A>
|
|
|
|
<!-- *** BEGIN navbar *** -->
|
|
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="correa1.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue54/correa2.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="ferrari.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
|
|
<!-- *** END navbar *** -->
|
|
<P>
|
|
</CENTER>
|
|
|
|
<!--endcut ============================================================-->
|
|
|
|
<H4 ALIGN="center">
|
|
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
|
</H4>
|
|
|
|
<P> <HR> <P>
|
|
<!--===================================================================-->
|
|
|
|
<center>
|
|
<H1><font color="maroon">General Graphics Interface Project (GGI)</font></H1>
|
|
<H4>By <a href="mailto:frc@linux.com.br">Fernando Ribeiro Corrêa</a><BR>
|
|
Originally published at
|
|
<A HREF="http://www.olinux.com.br/interviews/14/en">http://www.olinux.com.br/interviews/14/en</A><BR>
|
|
(Follow this link for more OLinux interviews)
|
|
</H4>
|
|
</center>
|
|
<P> <HR> <P>
|
|
|
|
<!-- END header -->
|
|
|
|
|
|
|
|
|
|
<P> <b>Olinux: Please, introduce yourself and our workgroup.</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> I am working with the General Graphics Interface Project (GGI).
|
|
The GGI Project is developing a suite of libraries, that should allow
|
|
applications to output graphics using a common Application Programming
|
|
Interface no matter what the actual underlying mechanism (target) is.
|
|
For instance, you can run GGI applications directing output to
|
|
an X window, but also run the same application fullscreen using
|
|
output to SVGAlib, frame buffer devices etc.
|
|
I am mainly working on design and implementation of the Kernel
|
|
Graphics Interface (KGI), a part of GGI. KGI should provide the
|
|
neccessary Operating System services to allow several applications
|
|
to share the graphics hardware safely.
|
|
|
|
<P> <b>Olinux: Where did you graduate and live?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> I received my Diplom in Phyiscs from the Chemnitz University of
|
|
Technology and live in Chemnitz.
|
|
|
|
<P> <b>Olinux: What is GGI?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> A general graphics interface. Strictly speaking it is a set of
|
|
libraries that allow you to write programs that can do graphics
|
|
output on any so-called target. A target is a generalized output
|
|
device that is capable of doing graphics output.
|
|
This way you may for instance run the same program in an X11 window,
|
|
fullscreen using SVGAlib or fullscreen using fbdev.
|
|
Also, there are so-called wrappers which translate other
|
|
application programming interfaces into GGI, so that you may
|
|
- for instance - run SVGAlib programs on any target GGI supports.
|
|
|
|
<P> <b>Olinux: When and how did it start?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> The first ideas were developed in 1995, at that time known as scrdrv, then it grew bigger and became what is known as the GGI
|
|
project.
|
|
|
|
<P> <b>Olinux: Was it a group?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Yes, it is. I can hardly image both GGI and KGI become what they are
|
|
now without the input from all the people that contributed to this
|
|
effort.
|
|
|
|
<P> <b>Olinux: Were you unsatisfied or willing to innovate?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Both. In 1995 I got my first computer capable of running Linux.
|
|
I had trouble getting XFree86 running. It crashed from time to time,
|
|
preferably when I switched between X and virtual consoles or started
|
|
a SVGAlib application. Mostly this action resulted in hard-locking the
|
|
machine so I could only reset and reboot. I tried to understand why
|
|
this happened, and found several implementation details that -- if
|
|
done different -- would have prevented the troubles I had.
|
|
So I looked around for projects that had similar concepts and
|
|
came about an early version of scrdrv, and got involved.
|
|
However, I had no idea how difficult this effort would be.
|
|
|
|
<P> <b>Olinux: What are the most important innovations and future in all GGI projects?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> As far as I know the ability to run the same application in any environment, from a simple terminal window to a full
|
|
screen video wall is unique to GGI.
|
|
As far as the kernel part is concerned, I think we could claim
|
|
to have done some important steps towards a flexible console system
|
|
the first time. There have been a lot of controverse discussions
|
|
about the approach we have taken, but the latest developments of
|
|
the console subsystem show that these approaches were at least not
|
|
as wrong as believed by some people.
|
|
|
|
<P> <b>Olinux: What were the main ideas ands plans involved?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Originally, the basic idea to overcome the troubles mentioned was
|
|
to have one an only one driver responsible for coordinating
|
|
access to the hardware by different applications.
|
|
Considering the traditional UNIX operating system design,
|
|
the most natural place of this driver would be as a part
|
|
of the kernel. However, this implies that one should not
|
|
prescribe any drawing operations or hardware models specific
|
|
to a particular API, but rather provide a 'virtual graphics card'
|
|
that should have most or all capabilties of the real hardware.
|
|
We soon realized that this in turn makes it neccessary to have
|
|
some library that does convert the actual drawing routines into
|
|
'hardware commands', which is pretty much independent of the kernel
|
|
part. This way libGGI and KGI became the two main components
|
|
we are working on.
|
|
|
|
<P> <b>Olinux: How the project is divided?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> For the reasons mentioned above, development may be divided into the following parts, though all might be seen as an integrated
|
|
effort:
|
|
<UL>
|
|
<LI> development of a set of very flexible graphics libraries,
|
|
mainly libGGI and it's target drivers;
|
|
<LI> development of wrappers to allow other applications to
|
|
run on targets supported by libGGI, e.g the SVGAlib
|
|
and ggiMesa libraries
|
|
<LI> development of a X server (XGGI) that uses libGGI directly
|
|
<LI> development of KGI, the kernel graphics interface to
|
|
allow libGGI to take full advantage of the hardware present.
|
|
</UL>
|
|
|
|
<P> <b>Olinux: Does it involve universities or any other gnu/linux organizations?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Except for the fact that some developers are students, and that
|
|
the universities implicitly provide infrastructure to do development,
|
|
there is no active involvement in terms of research projects etc.
|
|
There is no GNU/Linux organization involved.
|
|
|
|
<P> <b>Olinux: How is GGI integrated with GNU/Linux community?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> As much as the community likes it. All enhancements to existing
|
|
GNU/Linux programs we have done are available to the community,
|
|
but we will not force anybody to use it.
|
|
|
|
<P> <b>Olinux: Are there any sponsors helping and funding the project?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> The Freiberger Linux Users Group, 3Dlabs Incorporated and
|
|
AEON Technologies donated development hardware, but beside that
|
|
there is no sponsoring or funding of the project except by the
|
|
developers themselves. As much as we would a preciate it sometimes.
|
|
|
|
<P> <b>Olinux: How many people are involved?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> All in all probably 10-20 active developers.
|
|
|
|
<P> <b>Olinux: How far the project has gone?</b>
|
|
|
|
<b>Steffen Seeger:</b> libGGI is pretty much useable already. Currently my main effort
|
|
is to get the next generation of KGI delivered so that we can
|
|
work on a improved version of XGGI.
|
|
|
|
<P> <b>Olinux: What can be done to improve the project?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> There are lots of things that could be done, mainly active developers
|
|
are welcome. But we also need a new webmaster, documentation
|
|
writers, etc. I think KGI could most benefit from porting it to
|
|
another hardware platform, e.g. PowerPC or Alpha. Unfortunately
|
|
an Alpha based system is beyond my budget.
|
|
|
|
<P> <b>Olinux: Are there any weakness that still disturbs you?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Speaking of KGI, it has advanced quite a lot, but there are still
|
|
some deficiencies I would like to fix, mainly it needs to have
|
|
specification and documentation, and further improved backward
|
|
compatiblity.
|
|
|
|
<P> <b>Olinux: Are there any part of it already available for use?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Yes. LibGGI is useable already. As far as KGI is concerned, the
|
|
KGI console subsystem is quite useable already, though there are
|
|
still some known bugs, so this part of KGI could be labeled
|
|
being in beta testing state. The KGI drivers, however, are still
|
|
alpha or early development.
|
|
|
|
<P> <b>Olinux: What are the main objectives for this year?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Yes. LibGGI is useable already. As far as KGI is conce
|
|
rnedTo deliver the new KGI and get an accelerated X server running
|
|
on top of it.
|
|
|
|
<P> <b>Olinux: Are there any deadlines for GGI apps releases?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Yes. LibGGI is useable already. As far as KGI is conce
|
|
rnedToGGI applications are outside the main GGI development (except XGGI).
|
|
As for KGI or GGI, we will announce when new versions become available.
|
|
|
|
<P> <b>Olinux: How GGI project is related with Berlin?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Berlin is a windowing environment, while GGI is a drawing kit.
|
|
Berlin may use GGI to draw it's windows and GGI may provide its
|
|
drawing to Berlin. Just as GGI provides its drawing to XGGI.
|
|
Some GGI developers are also involved in Berlin.
|
|
|
|
<P> <b>Olinux: Are GGI applications compatible with X or svgalib?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Sure. You are able running GGI applications using the SVGAlib
|
|
target and you can run SVGAlib applications on GGI using the
|
|
SVGAlib wrapper.
|
|
|
|
<P>
|
|
<b>Olinux: How Linux graphical interface has evaluate since it began? How will
|
|
GGI help Linux interface improvement?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> GGI is primarily about a stable and fast graphics output, which is
|
|
one thing required for a good user interface. There are much
|
|
more areas where current user interfaces need to be improved.
|
|
|
|
<P> <b>Olinux: What about hand devices: GGI will ever be used in this kind of
|
|
technology?<b>
|
|
|
|
<P> <b>Steffen Seeger:</b> GGI already has been used on the Itsy, a little hand-held computer
|
|
using the StrongARM processor. Whenever there is a need for
|
|
graphical output, without the overhead involved with running
|
|
a full featured X server, GGI can help to ease development.
|
|
|
|
<P> <b>Olinux: Pick the most interesting and promise new technology for the future in your opinion.</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Optical information processing and storage.
|
|
|
|
<P> <b>Olinux: What are the web sites that you like most?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> I prefer well-structured sites with interesting content.
|
|
I do not have that much time to surf the web, and I do not
|
|
have particular sites I would prefer.
|
|
|
|
<P> <b>Olinux: Do you have any other idea that will pursue in future?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> There are quite some ideas I want to try, but first I want
|
|
to finish my part on KGI such that it can stand on it's own.
|
|
|
|
<P> <b>Olinux: What else do you imagine to create or project o be involved with?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> Animation tools, creation of tools for film production and special
|
|
effects...
|
|
|
|
<P> <b>Olinux: Are there any special personalities or organizations that you
|
|
admire. Who is he/she?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> People who have the braveness to think their own thoughts.
|
|
Organisations that remain open to input from outside.
|
|
|
|
<P> <b>Olinux: Send a message for developers dedicated to FS/OS around the world?</b>
|
|
|
|
<P> <b>Steffen Seeger:</b> If you intend to write free software, write it to solve a problem,
|
|
not to please a particular person or organization. Write it such
|
|
that others can re-use your work easily, you can't know everything.
|
|
|
|
<P> Abstract:::
|
|
Steffen Seeger is leading GGI projects to develop "a suite of libraries, that should allow applications to output graphics using a common Application Programming Interface." He explains what are the other related projects as KGI (kernel Graphic Interface), XGGI (Xserver for GGI) and libGGI (its graphic library).
|
|
|
|
<!-- *** BEGIN copyright *** -->
|
|
<hr>
|
|
<H5 ALIGN=center>
|
|
|
|
Copyright © 2000, Fernando Ribeiro Corrêa<BR>
|
|
Published in Issue 54 of <i>Linux Gazette</i>, June 2000</H5>
|
|
<!-- *** END copyright *** -->
|
|
|
|
<!--startcut ==========================================================-->
|
|
<HR><P>
|
|
<CENTER>
|
|
<!-- *** BEGIN navbar *** -->
|
|
<IMG ALT="" SRC="../gx/navbar/left.jpg" WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="bottom"><A HREF="correa1.html"><IMG ALT="[ Prev ]" SRC="../gx/navbar/prev.jpg" WIDTH="16" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="index.html"><IMG ALT="[ Table of Contents ]" SRC="../gx/navbar/toc.jpg" WIDTH="220" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../index.html"><IMG ALT="[ Front Page ]" SRC="../gx/navbar/frontpage.jpg" WIDTH="137" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="http://www.linuxgazette.com/cgi-bin/talkback/all.py?site=LG&article=http://www.linuxgazette.com/issue54/correa2.html"><IMG ALT="[ Talkback ]" SRC="../gx/navbar/talkback.jpg" WIDTH="121" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><A HREF="../faq/index.html"><IMG ALT="[ FAQ ]" SRC="./../gx/navbar/faq.jpg"WIDTH="62" HEIGHT="45" BORDER="0" ALIGN="bottom"></A><A HREF="ferrari.html"><IMG ALT="[ Next ]" SRC="../gx/navbar/next.jpg" WIDTH="15" HEIGHT="45" BORDER="0" ALIGN="bottom" ></A><IMG ALT="" SRC="../gx/navbar/right.jpg" WIDTH="15" HEIGHT="45" ALIGN="bottom">
|
|
<!-- *** END navbar *** -->
|
|
</CENTER>
|
|
</BODY></HTML>
|
|
<!--endcut ============================================================-->
|