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

Embedded Linux architecture for tiny devices is unveiled

Dec 21, 2000 — by LinuxDevices Staff — from the LinuxDevices Archive — 4 views

Pascal Bauermeister, software development manager for Smartdata (Lausanne, Switzerland), sent LinuxDevices.com this announcement of PocketBee, a small footprint Embedded Linux operating system being developed for use on the company's new credit-card sized “Chipslice” portable/mobile/wearable computer (see story). Bauermeister writes . . .



What is PocketBee?

Smartdata is developing a modular credit card-sized pocket device, Chipslice, that can serve as the basis of wireless phones, PDAs, MP3 players, GPS receivers, game consoles, and many other types of mobile, portable, and wearable computing applications. This extreme flexibility is facilitated by a high degree of hardware modularity: each added function is contained on a credit card-sized module, and multiple such modules can be stacked together to form the desired system configuration.

To make the most of this modularity, and to ensure compatibility of Chipslice-based devices with available software and protocols, we are developing an Embedded Linux based operating system for Chipslice: PocketBee.

What makes PocketBee so special?

PocketBee is different from other Linux-based suites for mobile devices in that it has an extremely tiny footprint, provides a strongly communication-oriented environment for applications, and offers an emphasis on code portability, using Java for this purpose.

PocketBee can run on a platform comparable with that of Palm, whereas other mobile device suites based on PocketPC, or other Linux ports, typically require 16+ MByte of RAM and 50+ MHz CPUs. (PocketBee will, of course, run extremely well on those more powerful devices!) Accordingly, the building blocks have been carefully selected to achieve this:

  • WABA — the smallest Java VM
  • PicoGUI — the smallest client-server GUI
  • SDBM — a distributed database, to allow data sharing and replication
  • uClinux — the popular scalable and stable kernel
What's in the Chipslice?

The microcomputer and display reside together on the main card, running uClinux. The current version has a 320×240 monochrome LCD, a DragonBall VZ328, 4 MB of Flash memory, and 2 MB of RAM. This somewhat spartan configuration is meant to enable very low prices, to support devices in the range of cell phones to PDAs. Alternate microcomputer cards will eventually be built around more powerful — but more expensive — CPUs like StrongARM, in order to extend the capabilities towards multimedia applications. (Further details on Chipslice are available here.)


PocketBee software architecture (see diagram1)

Here are brief descriptions of each of the principal software components that make up PocketBee . . .

  • Application environment: The Waba Virtual Machine (www.wabasoft.com) — most applications will be written in Java (actually in Waba, a subset of Java). We chose Waba because this virtual machine, although limited, is extremely small and efficient. Work is in progress to make the AWT (Abstract Windowing Toolkit) available to Waba.

  • GUI: PicoGUI (pgui.sourceforge.net) — There are a few GUI systems around that are being downsized for mobile devices, but none beats PicoGUI in terms of small footprint. PicoGUI has been designed from the ground up for small screens, with a client-server architecture, structured layout management, and skin-ability. It is therefore an ideal candidate for supporting the AWT for Waba.

  • Database: Smart DataBase Manager (SDBM) — The SDBM provides applications with APIs to access and share data without worrying too much about how to deal with the physical topology (available channels, available storage media such as memory cards, etc). The SDBM's task is to deal with replicas — for example, providing the ability to access your calendar on your device, on the Internet, etc., and the replicas will synchronize themselves according to chosen behaviors. Another task of the SDBM is to share parts of your data with other entities such as other Chipslice-based devices, desktop PIMS, other mobile devices, etc.

  • Service manager (SM) — The SM's task is to monitor the states of the different channels, and to autonomously initiate related measures, such as starting, stopping, and notifying appropriate applications.

  • Resource manager (RM) — The RM deals with the hardware modularity. It knows when a new card has been inserted or removed, and what this card does. It contains generic device drivers and a Java VM to run drivlets (drivers partly written in Java), in order to customize these drivers to handle the specifics of the cards. (Again, Waba was chosen because its simplicity allows to extend it to build an execution environment for drivlets.) The RM presents virtual interfaces to the upper blocks, so that they do not have to care about where the hardware resources are located.

  • Inter-card communication (ICC) — The ICC is an embedded, internal communication network to let the OS card communicate with the other cards. It is based on a shared high-speed serial link.

  • The kernel: uClinux (www.uclinux.org) — The uClinux kernel provides essential features such as programs execution, file systems, networking, etc.
Regarding portability (see diagram2)

Note that on the application side, Waba ensures portability by means of applets that can be downloaded, or via Java applications brought by the cards. On the card side, WABA again ensures portability of the device drivers, by allowing the cards to carry their own drivlets.

Software footprint

The following represents ROM (or Flash) size of the various software modules (described above), on an M68K CPU . . .

  • WABA VM — 40 KB
  • WABA base and utility classes — 140 KB
  • PicoGUI — 80 KB
  • SDBM — 80 KB *
  • SM — 40 KB *
  • RM — 80 KB *
  • ICC — 40 KB *
  • uClinux kernel — 500 KB
  • uClinux romdisk — 500 KB

    Total = 1.5MB

    * = estimates

Our DragonBall-based microcomputer card has 4 MB of built-in Flash, so this leaves 2.5 MB for user data. The card's 2 MB of RAM is used as working memory.

Status of the project

Here's a summary of the status of development of the main software components of PocketBee . . .

  • uClinux — up and running
  • ICC — validating the specification
  • RM — under specification
  • SM — under specification
  • PicoGUI — completed
  • SDBM — started collaboration with the Swiss Institute of technology (EPFL — lsewww.epfl.ch), in order to benefit from their expertise in database replication.
  • Waba — completed Linux port; AWT extension in progress
Best regards,
Pascal Bauermeister



 
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.