Microwindows - Enabling graphical applications on embedded Linux systems
By Gregory Haerr, Chief Maintainer, The Microwindows Project
Why use Linux?
In the fast-changing world of embedded, handheld and wireless devices, there are many hardware and software design changes taking place.
Many devices now feature 32-bit microprocessors from Intel, MIPS and Motorola, as well as larger LCD graphical displays. In order to leverage
the significant results gained in the desktop arena over the last ten years, many developers are turning to using desktop-like
operating systems with these new embedded designs. One of the most promising emerging areas seems to be running Linux in these
environments, for a couple of good reasons: Linux on embedded systems brings with it the entire power of desktop computing,
along with many solutions already running. Linux, being open source, allows any aspect of the solution to be fully understood
and then customized for a particular application. Linux also alreadys supports all the new microprocessors typically included in
embedded designs, including StrongARM, MIPS and PowerPC. Finally, Linux is free, with no royalty payments required for it's use.
Problems with the X Window System
Having a freely-usable, open source, high-quality operating system with a TCP/IP stack sets the stage for interesting, innovative
applications using wireless devices. However, the resource requirements of these new applications comes under scrutiny,
since most embedded devices lack hard drives and large amounts of RAM. The desktop windowing system used on all desktop Linux
systems is the X Window System, originally developed by MIT, DEC and others in the early 1980's. The X Window system features a
client/server architecture that allows applications running on any UNIX host (clients) to display on an X-based terminal (server).
Quite a bit of code is devoted to making sure that the client/server paradigm works well across different host and server environments.
These days, typically the X clients and server run on the same machine, the user's desktop. The X Window Server is typically compiled
to support differing hardware chipsets with auto-detection, as well as having multiple copies of all drawing functions both above
and below the clipping layer for high speed. As a result, the X Window System is large and complex, typically requiring at least 8MB
of memory for execution.
Next: Why Microwindows?