At consumer products shows, like CES and
Comdex, and at technical trade shows, like LinuxWorld Expo and the
Embedded Systems Conference, the buzz this year surrounds a new
class of computing devices, the Internet Appliance, and a new force
in the operating systems wars, Linux. The fusion of these hot
technical categories promises to incite further IPO fever, and
re-invent how consumer devices are developed and
marketed.
Embedding the Web
The terms Internet Appliance, Information Appliance, and Web
Appliance have used to market several types of products. Compaq,
Dell, Acer, and other PC vendors use these terms to market
simplified post-PC browsing devices designed to streamline Web use.
A slightly broader definition includes dedicated Internet access
devices, like set-top boxes, mobile phones, and palm computers,
that are also about Web browsing.
A far more interesting and broader class of Internet Appliances
comes from leveraging inter-networking technology to make familiar
devices smarter. Wired devices benefit from enhanced connectivity,
yielding new twists on existing products, like the Internet
refrigerator, and spawning whole new classes of products, like
Internet radios and streaming multimedia devices.
Almost any embedded application can be reinvented as an Internet
Appliance by substituting readily available Web-enabling components
for traditional user interfaces (e.g., a small Web server, TCP/IP
networking, and physical connectivity like Ethernet or a telephone
connection).
Web-enabled devices, rather than having a physical console or
control panel, just plug into a local network or dial into the
Internet. You see a Web site whose sole purpose is to control or
manage the device. Embedding the Web in such devices lets you
leverage standard browser technology on networked PCs and
workstations, and offers more flexible interfaces you can run from
the next room, the building down the road, or sites around the
globe.
Applications that benefit from a little "Web-ability" are wide
ranging, including wired and wireless office automation equipment,
home networking devices, industrial automation controllers, and
even building control/security systems.
Web-enabled devices running Linux are flexible and inexpensive,
presenting an attractive proposition for cost-sensitive developers
of consumer products. Costs are reduced because physical switch
panels on the device are not needed, and because generic Web-based
interfaces replace proprietary, client-specific computer interfaces
(e.g., for Windows or UNIX-based X/Motif systems) that are
notoriously expensive to develop and maintain.
Rather than building device-specific local control panels and
application-specific client interfaces for multiple computing
hosts, "headless" Web appliances can serve up Web pages and Java
applets with the needed data displays and control inputs into
platform-independent Netscape and Internet Explorer browser
windows. Whereas embedding a local user interface, video
controller, and drivers, and other interface components like
embedded browsers and Java virtual machines can eat up in excess of
16 megabytes of memory, an embedded Web server-based interface can
fit into under 200 kilobytes of RAM. This eighty-fold saving in
memory space results either in lower cost of goods sold or more
room for feature-rich applications code.
Intranets, Extranets, and the Internet
While connection to the Internet excites the imagination of
consumer device marketers, such connectivity is not really the goal
of many Internet appliances. More appropriately, the wired versions
of today's familiar home appliances, multi-media devices, and
office equipment are best employed on subsets of the Internet or on
private local-area networks.
For example, unless you are a food "exhibitionist," you probably
don't want the contents of your refrigerator to appear as a public
Web site. You may want, however, to check the contents of your own
fridge from a remote location (your office or the supermarket)
leveraging the Internet over a Virtual Private Network (VPN) or a
secure Internet-based interface (Extranet).
While you may want to e-mail video snippets of your daughter's
birthday over the Internet, you are more likely to use an IP-based
home Intranet to move those same pictures from your camera to your
PC or to a local printing device. And in the office setting, while
you might use a Web-enabled multi-function device to scan in
documents for fax or email over the Internet, you are more likely
to submit print and fax jobs to that machine over a local
intranet.
The IP Protocol Family
The Internet Protocol (IP) family grew up around UNIX-type
systems and became the mainstay of the Internet that exists today.
The Internet Protocol builds up a series of abstractions that hide
the need for understanding the physical and transport mechanisms at
the application level and the need for individual network client
nodes to have knowledge of the location of the other nodes
(systems) with which they communicate.
Internet Protocol data can ride over serial and phone lines
(SLIP and PPP) or over network media (e.g., Ethernet). Applications
can count on the protocol infrastructure to monitor delivery
(TCP/IP) or implement their own guarantees (UPD/IP). Internet
Protocol also supports a series of higher-level protocols for
specific operations:
- FTP (File Transfer Protocol)—Moving files over an IP
network
- SMTP or Simple Mail Transfer Protocol—Packaging e-mail
messaging for network transmission
- http (Hyper Text Transfer Protocol)—Downloading text,
graphics, and resources for graphical rendering from a remote
server
- SNMP (Simple Network Management Protocol)—Monitoring the
health of networking and system resources.
Probably the first Internet Appliance was the now-famous (or
infamous) MIT Coke machine. Ingenious (or lazy) grad students used
FTP to check on the supply of soft drinks in the vending machines
in another part of the building. Linux, with its UNIX heritage and
compatibility, inherits these protocols and others, offering their
robustness and interoperability to a new generation of
programmers—embedded systems developers building Internet
Appliances.
Networking Content—TCP/IP vs. Application-Specific
Networking
TCP/IP and Ethernet together make a powerful team for general
purpose Internet Appliances, but both technologies carry a cost
structure and performance requirement that is not appropriate for
all types of applications.
On the software side, TCP/IP is "expensive"—the necessary
protocol stacks and other interface software can occupy as much as
200 Kilobytes, which while small compared to local GUIs (as above),
can induce significant performance overhead, especially on low-end,
inexpensive embedded processors. And, for applications with
real-time requirements for predictable data transport, TCP/IP
offers no guarantees of timely data delivery.
On the hardware side, while Ethernet interface devices are
becoming more common in high-integration CPUs (e.g., Motorola's
PowerQUICC devices), such interfaces and the requisite external
cabling are expensive relative to other application-specific
connectivity options. Moreover, environmental factors can render
Ethernet inappropriate, such as noisy locations or physical abuse
to cables and connectors due to mishandling.
There are a large number of domain-specific interfaces that can
easily play a part in mixed-architecture intranets:
- USB (and earlier ADB) for interfacing with computer desktop
peripherals
- FireWire (IEEE1394) for moving large data streams among
multi-media components
- AC power modulation networks for lighting and electrical
control
- RS-485 for electrically noisy point-to-point industrial
control
- LON for a wide variety of applications.
New wireless technologies like BlueTooth promise to eliminate
cabling challenges but raise security concerns.
Non-traditional networking environments represent a hierarchy of
application needs and cost structures. As such, not every node
needs a full-blown general-purpose network interface. To control
the lights in a house requires a very simple AC circuit controller
for each channel or light socket that communicates over the local
electrical wiring to control unit, like those available at Radio
Shack or Home Depot.
Every light socket need not be a complete IP-networked,
Web-serving entity. Even the control unit is likely to employ
non-standard interfaces to perform its function. But connect that
device to a PC or home network gateway, and an office workstation
or an Internet-enabled cell phone can become a universal home
controller. On the shop floor, not every lathe or milling machine
needs to appear as an independent Web device.
Figure 1: Linux provides all of the necessary ingredients
for Internet Appliances to operate in a home networking
environment.
Application Example: Architecture of a Home Network
The ultimate success of home networking will rely on several
economic, not technological advances. Within the home setting,
inexpensive, unobtrusive, and safe interconnectivity options will
need to be readily available to create the home network or
Intranet. Outside the home, cost effective, high-speed data links
will need to be available for curbside connection with the ubiquity
of plain old telephone service.
Why Linux for Internet Appliances?
Linux is emerging as the strongest contender for the platform
underlying Web-enabled devices. Compelling arguments for using
Linux in Internet Appliances include a well-understood application
programming environment, rich IP networking resources (from its
UNIX heritage), a broad array of readily available software and
hardware resources, and a royalty-free business model amenable to
the COGS-sensitive consumer market.
Linux for Embedded Systems
Today, a number of vendors, including MontaVista Software, are
enhancing Linux by adding capabilities designed to address the
requirements of embedded systems. Such core enhancements
include:
- Scaling the Linux kernel footprint memory down to 0.5
megabytes
- Enabling "headless" embedded operation (no console, no
disk)
- Integration "spindle-less" storage media—Flash memory for
booting and run-time file systems
- Supporting high-integration CPUs and associated
peripherals
- Bundling fast, robust IP networking and "Internet Toolkit"
items like small Web servers embeddable daemons for FTP and Telnet,
and compact programming shells like ash and sash.
Linux also addresses an Internet Appliance's demanding hardware
support requirements with support for a wide range of devices found
in and required by wired embedded applications, including:
- Serial Interfaces (single and multi-channel) for local
connection, debug consoles, and PPP modem-based networking
- Magnetic and solid-state storage (SCSI, IDE, and proprietary
interfaces)
- 10/100 megabit Ethernet network interfaces
- Multimedia/streaming interfaces, for sound, video, etc.
- USB, Firewire, and I2C connectivity.
Linux offers developers well-understood, standard user
interfaces, promoting both the porting of existing software to
Linux and the development of more general applicable software on
Linux, regardless of underlying CPUs. Java has not fared well in
the quest for true "write once, run anywhere" portability (WORA)
because of dialect differences, API fragmentation, and mediocre
performance. Conversely, the pragmatic, open, portable approach to
Linux programming, and the anti-forking (version divergence)
philosophy of the open source movement, as well as excellent
performance make Linux the best candidate for the universal
platform for next-generation applications.
Helping Developers Build Internet Appliances
Linux helps developers of Internet Appliances and Web-enabled
devices in technical, financial, and marketing arenas. The wealth
of resources, including device drivers, networking, middleware, and
application components helps developers bring their products to
market faster by eliminating investments in internal technology
development and by letting manufacturers concentrate on their
particular value-added technology. The open-source,
service-oriented Linux business model reduces sunk costs in
development tools source code and encourages real partnership among
developers and Linux distribution/service providers. A pure, 100%
Linux deployment strategy eliminates margin-sapping run-time
royalties in cost of goods sold. And, the caché imbued upon a
Web-enabled product from the label "Linux Inside" appeals to
marketers and techno-savvy consumers, and can even lift a company's
sagging share prices!
The Future of Linux in Internet Appliances
The marriage of embedded network connectivity and embedded Linux
promises to deliver a dazzling array of new products and entire new
product categories in the next 12 to 18 months. Already, companies
like Kerbango are bringing Linux-based "post-PC era" devices to
market, boasting the expected features and functions of the
original product category (in this case, a radio) combined with
Web-leveraged enhancements (here, hundreds of stations, instant
song replay, artist look-up, and even on-line instant music
purchases) with the added benefit of Web-based enhancements and
upgrades.
The message for product development is to leave the platform and
infrastructure to Linux and concentrate on where the most value can
be added. The message for consumers is to look for "Linux Inside"
and enjoy feature-rich products and a newfound level of investment
protection.