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

An overview of Linux for embedded developers (Part 4)

Oct 4, 1997 — by Rick Lehrbaum — from the LinuxDevices Archive — views

ViewML Embedded Web Browser

The ViewML Browser Project, created by Century Software, is an open source project whose aim is to produce a small footprint, high-quality web browser targetted towards the needs of the embedded Linux applications developer community. The project is discussed in this paper as an example of a key applications technology implemented on the Linux platform for mobile and embedded Linux systems. ViewML runs on both the X Window System and Microwindows, and provides a highly customizable web browser for use in Internet appliances, PDAs, and other mobile applications. In this section, a brief summary of the design goals of the ViewML project are presented, along with some issues we confronted during the design.

ViewML Design Goals

The family of available desktop browsers for Linux has evolved into quite a clan, with over 20 member browsers vying for attention. Why, then, introduce another one? After surveying the field of available browsers, in search of even one appropriate for embedded deployment, we found that no single web client would suit. Browsers were either too large, like Netscape's Mozilla, and would never run on most embedded systems, or too small, with very incomplete HTML parsing and lacking in other capabilities. So we decided to design a new browser, one that was specifically targeted at the needs of the embedded Linux community.

The initial design goals for the project were . . .

  • Create the smallest browser possible, but retain 100% standards compliance for HTML parsing. The browser would be used in many applications from embedded-device documentation display to Internet appliances and set-top boxes. We had to make sure that the browser always displayed pages correctly.

  • Use available open source code for the HTML parsing and display engine. We didn't want to get into the business of writing an HTML engine from scratch, the most common pitfall of most smaller browser implementations. It takes a lot of knowledge and experience to display all the HTML language quirks correctly, especially since so much HTML is still written by hand.

  • Use the selected HTML widget code as-is. We didn't want to change any of the core HTML display engine code, even though it is open source. This bought two major benefits: the ability to upgrade the HTML display capabilities as the original parsing engine is enhanced by HTML experts. It also meant that no bugs would be introduced directly in the core display routines, keeping the quality high.

  • Use the Fast Light Tool Kit (FLTK) applications framework for the user interface. FLTK provides a set of user-interface widgets ideally suited for small environments.

  • Run on both Microwindows and the X Window System. In order to gain large acceptance, the browser would need to run on the standard X Window System as well as Microwindows. In addition, we wanted to make sure that the selection of either windowing system was seamlessly integrated into the software design, and didn't adversely affect the architecture.
FLTK Applications Framework

Two different versions of the FLTK applications framework are used, depending on the windowing system used. Standard versions of FLTK include support for Win32 and X. Century Software and Microwindows project contributors ported FLTK to the Nano-X API available in Microwindows. This support allows client/server interaction with the Microwindows server, just like the Xlib model. Choosing FLTK is a great choice, since both FLTK and Microwindows support the X Window System. This allows the ViewML browser to be debugged or enhanced on the Linux desktop, using either the X Window System directly with FLTK, or running the Microwindows server on top of X. In this way, the exact characteristics of the target environment, whether running Microwindows or X, can be emulated. We also like the idea of being able to run almost the identical code paths on the desktop as the target device, which greatly improves quality control.

ViewML Summary

The ViewML Project has produced a high-quality web browser in a short amount of time, directly targeting the embedded and mobile Linux environment. By including open source core components, we've been able to use a high-quality display engine while keeping the overall RAM and ROM requirements quite low. Currently, the ViewML browser runs in about 2MB of RAM while having a ROM file size of around 900k. Combined with Microwindows, the entire environment can run in less than 2.1MB RAM, which allows its use on most 32-bit embedded Linux systems running graphical displays. With the entire ViewML project in open source, other contributors will quickly join the effort and enhance ViewML even further. By leveraging the vitality of the open source community, ViewML can meet the challenge of providing a high-quality web browser for the embedded Linux environment.

Continued



Story navigation . . .

 
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.