Embedded Linux Graphics Quick Reference Guide
Embedded Linux Graphics Quick Reference Guide
Embedded Linux Graphics Quick Reference Guide
0diggsdigg
By Rick Lehrbaum
2002-02-28
Article Rating: / 10
Poor Best
Rate
vote 0
content 28
40816 /index.php?option
When you install Linux on a desktop PC, you normally choose from among a few
"standard" graphics support components. You'll likely use the X Window system (XFree86
or ) as the display interface foundation (with associated Linux drivers to control the
hardware),
But the typical desktop Linux "graphics stack" isn't well suited to embedded Linux applications.
Embedded devices frequently have highly constrained resources and can afford neither the
program storage space nor the memory footprint of desktop graphics software. For example,
embedded devices may easily have as little as 2 to 16 MB of Flash disk from which to load
programs, and 4 to 32 MB of RAM memory in which to run them. But the typical desktop
graphics components are notorious resource hogs . . .
• X Window System: 5MB RAM, 16MB disk
• GNOME: 14MB RAM, 95MB disk
• KDE: 11MB RAM, 96MB disk
• Mozilla: 12MB RAM, 26MB disk
All that memory costs money, requires board space, and consumes power. Then too, embedded
systems frequently have unique needs that can't be met by desktop graphics system components.
These include the requirement for a customized look and feel, control over what functions are
available to users, speed of loading, unusual display or input device characteristics, etc.
To satisfy the demands of the rapidly emerging embedded Linux marketplace, a growing number
of graphics support projects and products have sprung up. Targeted environments run the full
gamut -- including fixed, portable, and mobile systems -- and the applications range from hand-
held consumer products like PDAs and cell phones, to medical instruments, factory automation,
and commercial airlines cockpit displays.
With this in mind, LinuxDevices.com has created The Embedded Linux Graphics Quick
Reference Guide. We intend to continually update this guide -- so be sure to check back
frequently for the latest info.
Dillo -- Dillo is a very small (less than 300KB), fast, Open Source multi-platform web browser
that's written completely in C and built on GTK+ libraries. Dillo's high efficiency and minimal
library dependencies make it quite suitable for embedded apps. Dillo can be teamed up with an
embedded webserver to completely eliminate the need for a window manager in an embedded
device. -- details
DirectFB -- DirectFB is a thin library that provides developers with hardware graphics
acceleration, input device handling and abstraction, integrated windowing system with support
for translucent windows and multiple display layers on top of the Linux Framebuffer Device. It
is a complete hardware abstraction layer with software fallbacks for every graphics operation
that is not supported by the underlying hardware. -- details
The Familiar Project -- this open source PDA Linux project, which is an offshoot of the
activities at handhelds.org, has collected together all of the key components of a complete Linux-
based PDA computing platform. The Familiar distribution currently includes a Blackbox-based
window manager, Agenda Computing's Fltk+ based PIM applications, an embedded Python
implementation, system configuration and settings backup utilities, OpenSSH client and server,
and a Debian-based ARM kernel. -- details
FBUI -- FBUI is a tiny GUI that resides inside the Linux kernel. The key concepts of FBUI are
that firstly it is small; secondly that it is spartan, which is good; thirdly that it is just another
driver; and fourthly that drivers belong in the kernel, not in userspace. details
GGI project -- the "General Graphics Interface" project is dedicated to development of fast,
stable, open-source cross-platform multimedia API systems. Designed from the ground up with
environments such as embedded systems in mind, GGI is fast, clean, abstract, dynamically
modular and highly optimizeable. -- details
GPE Palmtop Environment -- this project aims to provide a Free Software GUI environment
for palmtop/handheld computers running the GNU/Linux operating system. GPE uses the X
Window System, and the GTK+ widget toolkit. -- details
GtkFB -- beginning with version 2.0, GTK+ will support rendering directly to the Linux
framebuffer instead of using the X Window System. This is good for embedded systems and
devices with limited resources, because it eliminates the overhead of an X server, while still
taking advantage of the power of GTK+ and the large base of existing programs. -- details
handhelds.org PDA support -- want to create your own unique Linux PDA implementation?
handhelds.org is for you! Early this year, Compaq created the Open Handheld Program, an
initiative designed to stimulate innovation and research on handheld devices that resulted from
the company's "Itsy" pocket computer project. To support this initiative, Compaq created
handhelds.org -- a vendor neutral website dedicated to open source handheld development. Not
surprisingly, Compaq's iPAQ PDA is used as the base platform for all these activities and,
consequently, a iPAQ Linux port is available as freely available open source software. -- details
Microwindows -- an Open Source project aimed at bringing the features of modern graphical
windowing environments to smaller devices and platforms. Microwindows applications can be
built and tested on the Linux desktop, as well as cross-compiled for the target device. -- details
NxZilla (formerly nanozilla) -- a set of libraries that allow Mozilla to be used with a NanoX
server from the Microwindows project. -- details
OpenGUI -- a fast, 32-bit, high-Level C/C++ graphics & windowing library/GUI built upon a
fast, low-level x86 asm graphics kernel. It is under LGPL license. OpenGUI provides 2D
drawing primitives and an event-driven windowing API for easy application development. --
details
PicoGUI -- small, portable client/server GUI designed to work on many types of hardware
including handheld computers. Like the X Window System, it has a flexible client-server
architecture. Unlike X, however, fonts, bitmaps, widgets, and anything else the application needs
are built directly into the server. This sacrifices a small decrease in flexibility for an increase in
speed and a large decrease in size. -- details
Qt/Embedded -- provides a full graphics stack, from the hardware interface to a full GUI
tookkit. Although the API is identical to the popular Qt/X11 and Qt/Windows products,
Qt/Embedded is not based on X11 and therefore it has substantially reduced memory
requirements. Memory demands can be tuned to the range of 800 KB to 3 MB in ROM (Intel
x86). Qt/Embedded is available as open source software, under the GNU General Public License
(GPL), or can be licensed on other terms from its originator, Trolltech. -- details
ViewML -- a freely available, open source web browser targeted specifically at the embedded
Linux platform. Currently, ViewML along with it's interface requires 2.1 MB of RAM, with a
disk image of only 760K. -- details
WML Browser -- a project, sponsored by 5NINE to develop a browser which will allow any
wireless device to have WAP functionality. It must support multiple protocol stacks (WAP 1.2.1,
http), in differing environments, using differing input devices. The browser will work with
framebuffer graphics. -- details
Xynth Windowing System -- a free software project to build a portable, embedded client-server
windowing system. The Xynth Windowing System, released under the GPL, offers a lightweight
GUI-capable windowing system usable in Linux-based embedded systems and devices, such as
handhelds and set-top boxes. details
Access: Netfront browser -- an embedded browser designed for information appliances with
modest memory and CPU performance. It requires less than 1.3MB ROM and 2MB RAM,
supports full HTML 3.2 and selected features from HTML 4.0, frames, JavaScript, cookies,
Web-printing and multi-languages. Its modular and scalable architecture can be enhanced by
application-specific modules and plug-ins. An independent user interface layer and design tool
allows device manufacturers to create a unique look and feel for their product. -- details
ANT: Freesco browser -- a small memory footprint, standards-compliant JAVA based browser
that enables OEMs to quickly and easily design a branded interface for Internet appliances. It is
platform-independent, so it can be used with any hardware or operating system environment
(including various implementations of Embedded Linux). -- details
Century Software: PIXIL PDA and Microwindows -- a complete PDA system including an
operating environment, PIM applications, email client, web browser, and a set of multimedia
applications. The Microwindows graphical windowing system (described above) is at the core of
the PIXIL PDA solution. -- details
Espial: Espial Suite -- a complete, 100% Java application layer that sits independently from the
operating system and JVM on the upper layer of a device stack and has been used extensively
with Linux. Espial Suites include the following applications: Espial DeviceTop graphical OSGi
client, Espial Escape web browser, Espial Ebox email client, and Espial Espresso lightweight
GUI toolkit.
Feynman Software: MiniGUI -- [Oct. 26, 2005] -- a dual-licensed (GPL or commercially
licensable) project to create a small windowing system support library for embedded systems and
devices, which offers the equivalent window management functions of Win32 APIs. -- Details
here (article), here (link), and here (news).
Fluffy Spider: FancyPants -- [Oct. 26, 2005] -- This commercial graphics framework from
Australian ISV Fluffy Spider is a set of lightweight special effects software for user interfaces
(UIs). FancyPants supports skinning, overlays, and fancy effects, and targets media-centric
consumer and mobile devices, such as POS (point-of-sales/service) systems, set-top boxes, and
mobile phones. Details here, here, and here.
NetClue: Clue WBC browser -- a compact, modular, and platform independent 100% Java
browser. Clue WBC supports Unicode for international characters, smooth scrolling, streamline
parsing and display, web printing, customizable user-interface, and is WAP compliant. Other
features include support for HTML 4.0, XML, HTTP 1.0 and 1.1, CSS, DOM, cookies,
JavaScript, Java Applets. -- details
Swell Software: LinuxPEG -- LinuxPEG is an embedded GUI library and development toolkit
designed specifically for embedded systems. The LinuxPEG library is designed to run on any
Linux distribution and its development tools run in the X11 development environment.
LinuxPEG, which is available under license, is small footprint, completely ROMable, includes
full C++ source code, and is royalty fee. -- details
Trolltech: Qtopia and Qt/Embedded -- Qtopia is a mobile device window environment and
application suite for PDAs, palmtop computers, Internet appliances, and similar devices. Qtopia
is based on Qt/Embedded (described above), and includes PIM applications, Internet clients,
entertainment and games, utilities, and more. Qtopia/PDA is available in commercial or open
source licenses, while Qtopia Phone Edition is commercial-only. -- details