>
A new generation of Linux-based entertainment appliances will deliver a variety of experiences and content into the home, car, and wireless handheld devices. Their medium may be streaming video, digital radio, interactive gaming, or some new category-smashing concept. Either way, the delivery channel (carrier) and the client devices share a set of core technical requirements: IP networking, WAN and local connectivity bridging, streaming-media support (CODECs and streaming file systems), security, power management, and support for industry-specific peripherals. To meet the required bill-of-materials (BOM) and the market price points for consumer goods, all of these features must come together in a small memory "footprint."
To achieve these goals, many manufacturers of these and other entertainment devices are building on Linux. They hope to leverage its "gold-standard" networking, robust architecture, and high security. Because it's an open-source operating system (OS), they also reduce their cost of goods sold (COGS).
Most people are only familiar with Linux in its enterprise or workstation forms. As a result, they're surprised to see the OS making its way into next-generation entertainment applications. According to developers, some key reasons for this move are Linux networking and the evolving, highly connected nature of next-generation consumer devices.
As a society, we've grown up with a set of distinct, mostly single-function entertainment appliances. They operated as either standalone devices or terminals for uni-directional content delivery. Examples include the car radio, CD player, VCR, and TV set, as well as portable handheld electronic games and tethered video games. Home audio/video equipment processed primarily analog (non-digital) content. For management functions, this equipment became increasingly microprocessor-controlled. Yet these devices still represented classic "toaster-type" embedded applications.
NOW VS. THEN To understand how stark the contrast is between the devices of the past and those of the present, look at the entertainment applications announced at this year's Consumer Electronics Show (CES). Also, check out those being delivered during the next 12 months. New products like the Sony Cocoon and the NEC AX10 Home Server emphasize rich feature sets and high-bandwidth connectivity to other "wired" (and wireless) devices in the home. This means that they have to manage content while supporting integrated connectivity over different physical media. To do this successfully, developers look to the embedded-Linux platform. With IP networking at its core, it boasts multiple options for routing and bridging among media and protocols:- Physical connections: Ethernet; 802.11 (Wi-Fi); Bluetooth; Universal Serial Bus (USB); IEEE 1394 (Firewire/iLink); Infrared Data Association (IrDA); and various optical and analog audio/video cables
- Protocols and formats: TCP/IP; Microsoft networking; voice over IP (VoIP); Moving Picture Experts Group (MPEG); MP3; many proprietary interfaces; etc.
Linux was already known for bringing flexibility and reliability to enterprise servers, routers, and firewalls. Now, it imbues connected entertainment appliances with "consumer-grade" dependability and security in the increasingly wireless world.
Other motivators also attract entertainment-appliance developers to em-bedded Linux. For instance, it promises lower overall costs. While not all Linux-based CE solutions are royalty-free, the Linux kernel incurs no COGS impact. Moreover, the open nature of Linux is complemented by its full hardware and software toolboxes. This combined offering diminishes the need for expensive source-code purchases, proprietary add-on components, and costly consulting and services.
Developers also gain access to both an independent-software-vendor (ISV) ecosystem and developer communities. Embedded Linux can leverage the hundreds of independent software vendors that service the enterprise space, as well as software from the dozens of CE-oriented ISVs that now target Linux as their top-tier platform. The developer communities stem from the trend by which all types of consumer devices are being marketed as open platforms. Upon these platforms, both ISVs and individual developers build new applications, such as PalmOS. By leveraging the pre-existing Linux community with low-cost development tools, open-source Linux gives these communities an advantage. Examples include the growing communities around the Sharp Zaurus, as well as the hackers who port Linux to popular game systems.
A particularly interesting adoption phenomenon is the affinity that has grown between Linux, gamers, and game developers. For the past year, high-end desktop gamesmiths have been prototyping and shipping their wares on Linux. The open-source OS lets them squeeze every drop of performance out of available central-processing-unit (CPU) and multimedia devices. Unlike closed and proprietary Windows and MacOS platforms, Linux lets them reach out and optimize the underlying code that supports their digital-entertainment products.
The next logical step has been for those same developers to join the worldwide Linux hacker community. Together, they have "cracked" otherwise closed gaming platforms, like the X-Box and Sony PlayStation. They then port versions of Linux to those systems (see http://xbox-linux.sourceforge.net/ and http://playstation2-linux.com/). While targeting these devices with Linux has primarily been an exercise in hacker bravado, it also has succeeded in broadening the pool of game developers. In addition, it has established a grass-roots movement of after-market development.
>A final step is beginning to happen, but it won't be announced by any of the recognized consumer-electronics companies. Dedicated gaming platforms must now be built on Linux from the start. Microsoft may be using the X-Box as both a showpiece for embedded Windows and as a way to free itself from its dependency on the desktop. But no other game-platform manufacturer will risk diluting its brand equity by productizing on a Microsoft foundation. Instead, expect to see next-generation game systems built on Linux. They'll be coming out late this year and in 2004.
As Linux moves into entertainment applications, the next issue to tackle is the choice of CPU. In the broader embedded space, x86-compatible CPUs enjoy some design share. But today's dominant consumer-electronics processors are ARM and MIPS derivatives, as well as the PowerPC architecture. In local markets, like Japan and parts of Europe, CPUs like Hitachi SuperH, Matsushita processors, and Transputer also participate.
Today's in-home and in-office applications employ a mix of MIPS and PowerPC silicon. The high-volume digital-cable/set-top-box market is especially MIPS-centric. In the handheld space, however, the CPU with the most evident embedded-Linux design wins has been Intel's StrongARM. Next-generation ARM-family devices like XScale and TI OMAP promise to power a fleet of in-hand and in-car devices starting this year. Another CPU contestant may be seen in the recently announced PowerLP architecture from IBM.
Next-generation, Linux-powered consumer devices demand the performance offered by 32- and 64-b processors. These processors must have fully integrated memory-management units (MMUs) that are built on these same MIPS, ARM, and PowerPC cores. Many PDA and phone designs—both shipping and legacy—still employ MMU-less processors. This is especially true of the 68000-derivatives and older ARM processors. Designers who opt for the power of Linux, however, also want more processing "oomph." Specialized versions of Linux, such as ucLinux, do exist for these older architectures. But top-tier manufacturers look past the price points for these CPUs. Instead, they focus on total system cost, including development, deployment, and maintenance expenditures down the road.
All types of consumer devices leverage high integration in embedded microcontrollers. This trend started in the 1970s and 1980s with 8-b chips like the 8051 and the 68HC11. It was consumer-device manufacturers who instigated the "piling-on" of interfaces into "systems-on-a-chip" (SoCs). These devices encapsulate more than just a CPU, cache, clock, and bus interfaces. They actually subsume all or most of the application-specific peripherals that formerly sat on the board beside the CPU. The same can be said of the field-programmable gate array (FPGA).
Recently, both FPGA and SoC vendors have begun to embed MMU-enabled 32- and 64-b cores into their offerings. Their goal is to support modern OSs. Microsoft instigated this investment to enable designs to use its WindowsCE OS. Ironically, it ended up expanding the set of target CPUs for Linux as well.
In board-to-chip integration, the next logical step is the inclusion of multiple, independent cores in a single SoC. While some PowerPC processors boast integrated "communications engines," the more interesting combo chips pair a CPU core with a DSP or a complete subsystem—for example, for a General Packet Radio Service (GPRS) wide-area network (WAN), as seen in recent OMAP family offerings from Texas Instruments, Inc. (www.ti.com).
With the inclusion of multiple cores, designers can partition their applications into control and data planes. The more general-purpose control-plane CPU—be it ARM, MIPS, or PowerPC core—both runs embedded Linux and handles user-interface and control/management functions. Meanwhile, the dedicated data-plane CPU focuses on data- and often compute-intensive missions.
In processors like the TI OMAP5910, the DSP off-loads the ARM core for voice and multimedia operations. Multi-threaded DSP code can implement multiple virtual CODECs to simultaneously process MPEG, MP3, and/or other streams specified by the Linux-based ARM control-plane processor. The two cores communicate via a "DSP bridge" in shared memory and memory-mapped registers. This approach allows for the near-transparent integration of "soft" peripherals for entertainment applications.
Compute-intensive, highly multi-threaded and multi-tasked applications like high-end gaming also can benefit from multiple control-plane processors. Basically, they gain enterprise-style symmetric multi-processing (SMP) in a single package. In the next year, look for two- and four-way SMP in entertainment applications.
When it comes to building all of the requisite hardware and software, entertainment-appliance projects have traditionally employed large teams of developers. These teams worked from the silicon up. In the "old days," vertically integrated companies thought nothing of dedicating resources to all levels of a design. The first concession to a commercial-off-the-shelf (COTS) approach designed-in commercial microprocessors and chip sets. On the software side, the first COTS acquisitions were embedded OSs or RTOSs. Unfortunately, this COTS revolution stalled for over a decade. In that time, manufacturers continued to build every other component—both soft and hard—in their devices.
Today's marketplace breaks this verticalized paradigm in several ways. First, time-to-market pressures squeeze project schedules from one to two years down to less than nine months. Secondly, leaner margins and a tough global economy make all suppliers re-evaluate their value-add. Most of them have discovered that their value-add lies in brand equity. Their value-add also resides close to the top of the stack—not the bottom. The third paradigm break occurs with tier-two manufacturers and ODMs. They are now delivering their own consumer devices or subcontracting to branded players. These newer suppliers don't have the tradition, expertise, or time to "roll their own" software stacks. As a result, they look to solutions providers and ISVs to do it for them.
>The software stack(s) needed to build full-featured entertainment appliances with Linux grows increasingly rich. Currently, it is delivered by a combination of platform providers and via developments in Open Source. While entertainment appliances can differ markedly in their form and function, they share much in terms of basic architecture, networking, key peripheral interfaces, and connectivity (FIG. 1).
To both Linux suppliers and the open-source community, these shared features translate into requirements. Now, Linux suppliers and the Open Source community must face many challenging technical requirements. An example is the need for Fast Boot/Instant On. Device manufacturers need their products to avoid stepping through the familiar Linux boot sequence. Or, they must do so very quickly. Some of the instant-on requirements stem from consumer perceptions and experience. After all, how long would a person wait for his or her TV to turn on? Other instant-on requirements arise from government or carrier requirements. For instance, wireless phones must boot quickly for emergency services (FIG. 2).
Thankfully, embedded-Linux kernels boot very quickly. Even 200-MHz ARM parts can reach init in under 200 ms. As with desktop Linux, the additional time comes from the process of bringing up services, starting up file systems, initializing GUIs/desktops, etc. Another new technical requirement for Linux is a scalable resource footprint. In a departure from many consumer appliances, entertainment devices like DVRs and MP3 jukeboxes often include hard drives. But their core software still needs to operate in constrained memory footprints. These systems deploy with 8 to 16 MB of RAM and even less ROM or Flash memory. As a result, they demand small code and data footprints to match.
Many embedded operating systems (RTOSs and WindowsCE) offer scalable profiles through wholesale extraction of functionality. On one hand, the open nature of Linux makes such amateur brain surgery even easier. On the other hand, aggressive codectomy can leave a mix of capabilities. It may run a single application, but it will fail to support after-market downloads or the use of third-party code. Scaling embedded Linux also can be a tricky exercise.
Luckily, a basic network-enabled Linux profile can fit into 1 MB of Flash (compressed boot image). It can run in 1 to 3 MB of RAM. Compare those numbers to the 24- to 27-MB footprint of core PocketPC! To realize further savings, use eXecute-In-Place running from ROM, trade uncompressed Flash memory for more space in RAM, and use other scaled-down components like ucLibc.
Once the footprint issue is resolved, the Linux community must grapple with power-management needs. Even devices that do not live off battery power need to minimize their power consumption and associated heat dissipation. New chip designs from TI (OMAP ARM) and IBM (PowerLP) offer advanced power management through the scaling of CPU frequency and voltage. The device OS and systems software need to be able to take advantage of these features in an intelligent and customizable manner. Otherwise, they won't be able to minimize power consumption without visibly slowing end-user interaction with the device.
Embedded Linux supports these power-management architectures by integrating power use policies for the kernel and applications with supporting driver and kernel-level application programming interfaces (APIs). Linux already plays an important role in securing enterprise data. But entertainment devices place their own particular demands on an OS for security. These requirements fall into four key areas:
- Access control: For entertainment appliances, access control is comparable to enterprise security. Connected entertainment devices place tiny servers and vulnerable clients into the hands of users who are unaccustomed to security discipline. Devices with visible consoles are susceptible to password cracking and login spoofing—directly or over a telnet session. As for devices with Web and ftp interfaces, they can be defaced and hacked through Common Gateway Interface (CGI) and other upload channels. Those with embedded Web browsers, e-mail, and other clients must be secured from malicious content and untrusted downloads.
- System resilience: Aside from those measures that limit access to a device, the system architecture determines the types of exploits and containment strategies. It also decides the consequences of security breaches. Multi-user/multi-session embedded Linux presents points of vulnerability through shells, network daemons, Web interfaces, scripting languages, etc. At the same time, it offers greater resiliency and stronger defenses against rogue programs, Trojan Horses, and other exploits. With Linux, exploit-based failures can be isolated to single, re-startable processes. They won't require a full reboot.
- Network stream security: Entertainment appliances leverage public networks or pass data and control streams through gateways to those networks. In terms of stream security, they're on a par with enterprise systems. Legacy embedded nodes do not leverage the inherent security mechanisms that are available in their protocols. Nor do they utilize software that predates available mechanisms like IPSec in IPv4 and IPv6, SSL, etc.
- Content protection: In complete contrast to the enterprise world, many embedded applications need to deny or provide conditional access to secure content—even to trusted users. Examples include copy and regional protection schemes for digital media, like DVDs and music CDs; pay-per-use resources, such as cable-TV movies; and trade secrets embodied in program code itself.
Deploying Linux on entertainment appliances and other consumer devices isn't just a fad. Both critics and customers applauded the products introduced at the most recent Comdex and Con-sumer Electronics shows. And more devices promise to hit the market later this year. In addition, global suppliers Sony and Matsushita recently joined together to publicize their commitment to Linux. Concerning the global consumer-electronics manufacturers, their commitment has been substantiated by a slew of product announcements. Plus, these consumer giants don't just want to use Linux. They also want to join in the Open Source dynamic themselves, giving back as they gain from the platform and ensuring an ever-richer entertainment experience for consumers.