old-www/LDP/LG/issue54/correa2.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&ecirc;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 &copy; 2000, Fernando Ribeiro Corr&ecirc;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 ============================================================-->