| Introducing Dillo, a lightweight embeddable browser |
Jorge Arellano Cid (June 1, 2002)
After more than two years of development since the project was founded, Dillo has now matured enough to become a very attractive component for embedded devices.
Being the Dillo project's founder, maintainer, lead developer, and having a full time dedication for all of Dillo's lifespan, puts me in an excellent position to introduce the Embedded Linux community to the Dillo project.
Although our website already has a nice general project presentation, this article aims to underline the matters that may be of greatest interest to the Embedded Market. Nevertheless, for a broader view of the Dillo project's achievements and projections, the general presentation is definitively recommended as the authoritative complementary reading.
Now, for some background on Dillo . . .
What's Dillo?
Dillo is a very fast, extremely small web browser that's completely written in C. The source and binary are less than 300KB each (currently, the binary is around 230KB). It is a graphical browser built upon GTK+ (GNOME is NOT required), and it renders a good subset of HTML -- excluding frames, JavaScript, and JVM support. Dillo aims to be a multi-platform browser alternative that's small, stable, developer-friendly, usable, fast, and extensible. Best of all, Dillo is a 'free software' project, released under the terms of the GNU general public license (GPL).
Note that dillo is NOT designed solely for embedded systems -- however, its extraordinary efficiency and low library dependencies are what makes it suitable for such environments. For instance, the stripped binary on an x86 machine is around 230KB, and the main library dependency is GTK+. Memory requirements are lower than for lynx at start time, and the low CPU performance requirements let it run snappily on a 75 MHz pentium, 37 MHz ARM (Psion), or 25MHz 486 with 8MB of RAM.
 Dillo on the iPAQ
Another interesting feature of Dillo is its high level of platform compatibility. Dillo compiles and runs happily on quite a few different OSes and architectures including, notably, the following handhelds: - iPAQ
- GMATE's Yopy
- Psion
- CerfPod
Yes, Dillo is already running on those devices!
Summary of Dillo features: - Image rendering (PNG, JPEG, GIF)
- A good subset of HTML/XHTML (no frames yet)
- Plain text
- Support for cookies
- Multiple browsing windows
- Non blocking user interface
- Full screen mode
- No JavaScript, no JVM
- Custom rendering engine (it's NOT based on GECKO)
Dillo as a GUI
 One of the most appealing possibilities of having a working web browser on an embedded device is to rely on HTML as a graphical user interface, and to set a cgi-enabled HTTP server to do any required processing. That way, a simple but very powerful application development framework is ready to use, with the great advantage that, as it's widely deployed in the whole internet, widescale technical expertise already exists and portability of the resulting solutions is assured.
For the sake of illustrating this point, let me refer you to this excellent article by Patrick Glennon. It describes the implementation of a real world solution (see photo at right) that not only uses Dillo as the user interface, but also gets rid of the window manager.
Doing Dillo
The best way to get an accurate idea of what Dillo can and can't do is to download and compile its code on any GNU/Linux machine (or compatible platform), read quickly through the technical details and online help, and take it for a test drive. User it first with local files and images, then the local webserver (or intranet), and finally to check out your favorite sites on the web.
In the mean time, these screenshots should help you get the general picture.
The future of Dillo
Dillo already shines with respect to . . . - Documentation browsing -- with a snappy response, it becomes an excellent tool for consulting manuals, documentation, and any kind of information provided in HTML.
- Local file viewing -- making a small library of saved web pages, images, or plain text, and a good directory structure, is all that's required for building an easily browseable repository.
- Information gathering -- Dillo's excellent networking and and rendering speed makes it a very powerful tool for searching, skimming, going backward and forward, making new queries, saving interesting pages, etc. That is, a very fine tool for hunting information on the web.
- News reading -- with its clean fonts and soft background, Dillo's very nice for reading sites that update daily, such as news sites.
In the future, with the improvements mentioned in the general presentation, Dillo will be ready for . . . - Information consulting with PDAs (handhelds)
- Secure (encrypted) operations
- Serving as an API for simple applications (dpi1)
- Serving as a common interface for embedded systems applications
- E-commerce transactions
- Online banking
Note that the last two applications require a site design that doesn't rely on a scripting language. That is, built upon HTTPS, (X)HTML, forms, cookies, and server side processing.
The Dillo project needs support
Leading a web browser project is a very demanding task, due to the dynamic nature of the converging technologies along with the inherent internal complexity of a mostly parallel application. It's been a long haul to get to this point -- almost two and a half years since the Dillo project was initially founded in late 1999. Since then, I've been working full time on it, on my own budget. Along the way, some other developers started to contribute, and a few very valuable guys kept working on Dillo for a long time.
This team of unpaid developers has succeeded in creating one of the fastest, smallest, and most robust web browsers available today. Although not all capabilities considered to belong in a feature-complete compact browser have been implemented to date, Dillo is already being used in more than 38 countries and is generating very positive user feedback.
The developers wish to make it known that they would like to concentrate on improving Dillo full-time, and for this reason are inviting potential corporate or philanthropic sponsors to contact them to discuss cooperation in accelerating Dillo's development. The code base is solid, documented, and clean, and backed by programmers who, after more than 2 years of work, are deeply familiar with browser technology and Dillo's optimized design.
We have created this presentation to assist anyone interested in understanding the past and future of the project, especially for those who are in a position to fund further development.
About the author: Jorge Arellano Cid is the Dillo project's founder, maintainer, and lead developer. He graduated from the Universidad Técnica Federico Santa María (in Chile) as an Informatics Civil Engineer with a minor in Systems Theory. He's also interested in psychology, metaphysics, and tennis.
Related stories:
(Click here for further information)
|
|
|
FUEL Database on MontaVista Linux
Whether building a mobile handset, a car navigation system, a package tracking device, or a home entertainment console, developers need capable software systems, including an operating system, development tools, and supporting libraries, to gain maximum benefit from their hardware platform and to meet aggressive time-to-market goals.
Breaking New Ground: The Evolution of Linux Clustering
With a platform comprising a complete Linux distribution, enhanced for clustering, and tailored for HPC, Penguin Computing¿s Scyld Software provides the building blocks for organizations from enterprises to workgroups to deploy, manage, and maintain Linux clusters, regardless of their size.
Data Monitoring with NightStar LX
Unlike ordinary debuggers, NightStar LX doesn¿t leave you stranded in the dark. It¿s more than just a debugger, it¿s a whole suite of integrated diagnostic tools designed for time-critical Linux applications to reduce test time, increase productivity and lower costs. You can debug, monitor, analyze and tune with minimal intrusion, so you see real execution behavior. And that¿s positively illuminating.
Virtualizing Service Provider Networks with Vyatta
This paper highlights Vyatta's unique ability to virtualize networking functions using Vyatta's secure routing software in service provider environments.
High Availability Messaging Solution Using AXIGEN, Heartbeat and DRBD
This white paper discusses a high-availability messaging solution relying on the AXIGEN Mail Server, Heartbeat and DRBD. Solution architecture and implementation, as well as benefits of using AXIGEN for this setup are all presented in detail.
Understanding the Financial Benefits of Open Source
Will open source pay off? Open source is becoming standard within enterprises, often because of cost savings. Find out how much of a financial impact it can have on your organization. Get this methodology and calculator now, compliments of JBoss.
Embedded Hardware and OS Technology Empower PC-Based Platforms
The modern embedded computer is the jack of all trades appearing in many forms.
Data Management for Real-Time Distributed Systems
This paper provides an overview of the network-centric computing model, data distribution services, and distributed data management. It then describes how the SkyBoard integration and synchronization service, coupled with an implementation of the OMG¿s Data Distribution Service (DDS) standard, can be used to create an efficient data distribution, storage, and retrieval system.
7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.
|
|
|
|
|