|
What is Xynth?
The name Xynth comes from the coordinate system, which is the heart of the
Xynth Windowing System design. Xynth is a LGPL licensed free software project.
It aims to provide a lightweight GUI supported windowing system for Linux-based
and/or real-time embedded systems. Launched at the end of 2002, the software
has, over 2 years of development, for the moment become a stable and reliable
one securing widespread applications in a variety of products and programs.
It is not a window manager or a window server, though it provides features
similar to both. In the X Window System, for example, Xynth would be roughly
equivalent to the X server plus a window manager. On the other hand, Xynth
brings some of the features of modern graphical windowing systems to the
embedded programming community, aiming to create a new GUI architecture
designed to be usable on systems ranging from embedded to desktops.
Technical Highlights of Xynth
The Xynth Windowing System is scalable, customizable, portable, modular,
reliable, lightweight, fast, and operating system independed because of these
facts below.
Client/Server
Architecture
Xynth uses a network layer comminication design between the server and
clients. TCP/IP, Unix Domanin Sockets, or minimal socket stack of our own may
be choosen as network layer, this increases the portability, and independency.
So even if the operating system has no network support/stack this will never be
a problem for development.
Direct Video Memory
Access
On a client/server architectured windowing system, when a client wants to
draw a pixel to the screen, it passes the drawing data to the server and then
server writes the data to the video buffer. Unlike any other competitors using
client/server architecture, all clients and server has direct access to the
video memory buffer. This means that any client that is drawing on the screen,
will never wait for the server response. Another income of this design is the
huge decrease of the load on server, and network layer. As a result, the system
is high-performed and light-weighted.
Double Buffer
Rendering
Although the direct access to video memory hase valuable advantages it has a
handicap, flickering. To avoid flickering double buffer rendering used in
clients. While double buffering increasing the allocated memory, also inreases
the speed due to the windowing system concept (refresh, move, resize). On the
other hand if needed, this feature may be switched off.
Threads Safe
All the code in Xynth source package is threads safe, including server api,
client library, and widget set. This feature gives the developer a customizable,
and reliable platform.
Internal Driver
Structure
The server manages input devices with polling on them. Any custom device driver can easily plugged or unplugged, within the source code a keyboard (console) and mouse driver set (PS2, IMPS2, USB, etc.) is given. This driver structure gives modularity to the system. Xynth has output driver system set, drivers included within the source are svgalib and linux frame buffer implementation. Any output driver can be easily used for video memory buffer.
SysV IPC
Any modern, embedded, or real-time operating system has the support of IPC (Inter Proccess Communication). As a result of this fact, system gains reliablity, independency, and speed.
Built in Window Manager
Again, unlike any competitor Xynth server has minimal set of window managing ability which reduces the foot print.
|