News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Lightweight windowing system supports embedded Linux

Dec 13, 2005 — by LinuxDevices Staff — from the LinuxDevices Archive — 102 views

[Updated Dec. 19] — A free software project based in Instanbul has released a portable, embedded client-server windowing system. The Xynth Windowing System, released under the LGPL, offers a lightweight GUI-capable windowing system usable in Linux-based embedded systems and devices, such as handhelds and set-top… boxes.

(Click for larger view of Xynth desktop screenshot)

The Xynth project was launched at the end of 2002, and its Xynth Windowing System (XWS) has since become “stable and reliable,” according to the project website. XWS comprises a client-server windowing system, widget library, and a human interface component offering basic window management functions.


XWS offers a tiny, all-in-one client-server windowing system

XWS has a client-server architecture that supports both TCP/IP networks and Unix domain sockets. Additionally, it has a minimal socket stack of its own, for use on systems that otherwise lack networking and socket stacks.

According to Xynth project's website, XWS is unique among client-server windowing systems in allowing both clients and servers direct access to video memory. This approach unloads both server and network layer, the project claims, while improving performance, since clients need not await a server response before writing to the video memory buffer.


XWS's protocol offers both clients and servers direct access to video memory

Additional claimed features and benefits include:

  • Clients can be configured to use “double buffer rendering” to avoid flicker that could result from direct access to the video memory
  • Thread-safe source code, server API, client library, and widget set, for customizability and reliability
  • Polling Input device driver structure supports PS2, IMPS2, and USB mice and console keyboards, and supports custom device drivers as plugins
  • Output driver system includes drivers for svgalib and Linux frame buffer, and any output driver can be easily used for video memory buffer
  • Supports SysV IPC (inter-process communication)
  • Minimal set of window management features built-in, to reduce footprint

The project claims that Xynth has a footprint as low as 125KB, when built as a statically linked binary. It is claimed to use about 2.5MB of memory, with 253 open clients on an XGA (1024×768) desktop with 32-bit color depth.

Ported graphics libraries include SDL and GTK 2.4.x. Supported platforms include Linux framebuffer device (fbdev), svgalib, libsdl, vesa bios, and Sony's PS2 (Playstation 2) and PSP (Playstation portable) SDKs.

Project co-founder Ali Caglar Oral said, “The project's range is embedded systems to desktops. It might be a good choice for embedded systems.”

Available downloads include source code licensed under the GPL, XWS-compatible builds of links, the gimp, mplayer (screenshot) and select other applications, a whitepaper with API reference, a powerpoint presentation, and several bootable images, including a 3.5MB ISO-9660 image that boots in seconds on compatible x86 systems into a rudimentary graphical environment.

Lead maintainer Alper Akcan reports that he has ported Xynth to the PSP (Playstation Portable). Here is a screenshot of the result:


Xynth on the PSP

The main project webpage is here. Downloads can be found on Sourceforge.net, or on lead maintainer Akcan's website, here (including the PSP Xynth port).

Note: This story was corrected on Dec. 19 to reflect a change in the Xynth license from GPL to LGPL.


 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.