Cloud computing has been covered extensively in a number of venues and from many points of view. For embedded Linux engineers and aficionados, one exciting aspect of cloud computing is the sudden interest in thin Linux clients.
The basic concept of cloud computing is the use of resources accessed over the Internet. Combined with clients of limited capability, cloud computing becomes broadly similar to client-server computing over a LAN using dumb terminals or once-vogue thin clients. (The reference to "thin" meant these devices had little or no processing power of their own, relying instead on the processing power of the server.)
Because a great deal of data had to traverse the network, the limiting factor was bandwidth. When graphical thin clients became popular in the mid-1990s, their use was still largely limited to LANs because of bandwidth requirements. The Internet simply wasn't fast enough. But even with this limitation, the benefits of centralization—particularly hardware cost, as computers were expensive and thin terminals were cheap—made it worth the trade-off.
This trade-off has disappeared with the rapid growth of readily available high-speed Internet access and the ever-increasing capacity of the Internet backbone itself. The resulting shift to higher throughput makes all kinds of interesting technology feasible.
It is now possible to use a Web browser to perform tasks on a remote server that were previously the sole domain of software hosted on a local machine—even graphics-intensive operations such as page layout or image editing. A large number of companies are creating services to meet the demand. Think of any task you perform locally, and chances are good that some company somewhere is providing that service online, probably at no cost.
This paradigm has also paved the way for new methods of accessing information over networks, including entirely new classes of software and devices. Terminals are no longer dumb, and clients are no longer very thin. For some, the definition of "thin" has grown to include any system that can access the Internet, regardless of its overall capabilities: cellular phones, new devices such as netbooks and mobile Internet devices (MIDs), even re-purposed, older desktop and laptop computers. All clients are thin when the server is as thick, rich, and connected as the Internet itself.
Most industry analysts agree that the use of thin clients—particularly cellular phones—is rising dramatically. In fact, thin clients are expected to be the primary method of accessing the Internet for a majority of people in the world within the next few years.
The network has finally become the computer, as John Gage predicted back in 1984.
The bottom line
Usefulness, however, is not always the primary factor that determines wide-scale adoption. A more accurate determination can be made in terms of absolute cost—especially when adoption is considered in developing countries—as well as relative cost in relation to value. A client's thinness bears a direct relationship to its cost, because less capable systems are less expensive to produce. Similarly, the cost of cloud-based software is directly related to its large-scale adoption.
Creative markets and the cost-value ratio
Cloud computing, along with supporting technology like thin clients, is driving organizations to consider creative methods of financing and marketing. For example, One Laptop Per Child (OLPC) produces extremely inexpensive devices (currently in the US$200 range), structure the software around education, and market to governments of developing countries rather than to individuals in order to create educational opportunities in countries that previously had no Internet access or technology education at all. This kind of activity, although eventually profitable for the company, is also beneficial to the world in general.
OLPC's story also points out the importance of considering cost in relation to value. Consider the total cost of a "thick" client. Think of a technical writer at a laptop computer in a coffee house. This laptop may contain all the resources available to complete the project—a word processor, page-layout program, diagramming tools for graphical insets and illustrations, and conversion tools for XML and PDF—all in the self-contained universe of that laptop, which may cost US$2,000 and have similar capabilities to a desktop machine. The software could cost as much as the system itself, resulting in a US$4,000 total investment.
In contrast, that same writer in the same coffee house may work on a thin client—a much smaller, resource-constrained system that literally costs one-tenth as much as the expensive laptop. Thanks to the software and storage available in the cloud, this thin client may have no moving parts, a very simple processor, and just enough resources to run a modern Web browser and a fast network connection, but the writer has as many—possibly even more—resources at hand than the local user, as well as the safety of knowing that his or her work will survive even if the battery dies or the laptop itself is stolen.
The software available in the cloud can produce documents of the same quality with similar levels of control over the end product, yet it is absolutely free, subsidized by corporate adoption, by advertising, or by some other creative monetization process. Total investment by the user: US$200.
Penguins in the clouds
The best operating environment for a thin client designed around cloud computing has the following characteristics:
- Highly customizable
- An inexpensive or even free operating system
- All necessary applications inexpensive or free
- Networking built into the operating system core
- Small enough to fit into tiny devices
- Flexible and powerful enough to run full laptops
- Miserly enough to conserve battery life to a maximum degree
Linux meets all of these criteria. It is taking over in the mobile space, the enterprise space, and the embedded space, including dedicated consumer devices such as book readers and set-top boxes. And with virtualization, Linux can also run applications built for the Windows®, Mac OS X, and other operating systems.
Linux: the operating system for the cloud
Linux has matured and become viable as an embedded operating system; its freedom—both in terms of cost and royalty-free licensing—has revolutionized a market that once was dominated by only a few players who demanded stiff per-unit royalties. Linux now has real-time support as well as structured driver support with a flexibility never dreamed of for proprietary real-time operating systems, and the availability of relevant applications is unprecedented. Linux is the basis behind at least four new netbook operating systems, leads the explosive growth in smart phones, and is slated to continue to absorb market share over the next 5 to 10 years.
The flexibility, developer control, power-management facilities, and overall stability of Linux also make it well suited to older, recycled systems. You can give older machines a new life by loading Linux instead of (or in addition to) the host operating system.
Applications for accessing the cloud
What about applications? Something beyond the operating system is required in order to gain access to the cloud, and cost must be considered here, as well. The cloud has made thin clients possible, but the key to making them inexpensive is limiting the cost of the software to run them.
As most developers know, some of the most powerful network-oriented applications available are completely free, including Web browsers (such as Firefox, Opera, and Chrome), e-mail software (such as Thunderbird and Evolution), instant messaging (such as Pidgin and Trillian), and multi-platform application environments (such as Java™ technology). The combination of just these four application types alone would make a formidable thin client, all completely free.
Note, however, that free, open source operating systems and applications do not mean that you can make a device completely without cost. As noted open source developer Jamie Zawinski famously said, "Free software is only free if your time has no value." You must accept a certain amount of work to design and implement systems based on free software, just as you must do when evaluating proprietary software. However, because the base product is free and its source code is available, the value gained for that time is far higher for free software than for paid software, even if the process itself takes a little longer.
It is no wonder that there are over 100,000 embedded Linux developers currently, and the number is growing.
What thin clients currently exist?
This section describes several types of thin clients on the market today. Many of these clients are new devices still finding their niches in the hearts of consumers and enterprises. All share a few common features: they have little storage and processing power of their own relative to the functions they are designed to perform, they are all designed around cloud computing, and they all run operating systems based on Linux and other open source software.
A netbook is a small, underpowered (by modern standards), yet fully functional laptop, usually supporting wireless networking. Netbooks are designed to be used as thin clients, and many have no fans or disk drives.
Examples include the OLPC XO, the Asus EEE PC, and the MSI Wind. Most run full-scale Linux distributions like Fedora or Ubuntu, although some have distributions developed for them specifically, like OLPC's Linux-based Sugar operating system, which was developed by educators as a learning environment. The Sugar interface is also available to run on a standard Windows or Apple system (see Resources for links to more information).
A mobile Internet device (MID) is a very small-scale device with a touchscreen and, optionally, a thumb-sized keyboard. Also known as ultra-mobile PCs (UMPCs), MIDs support wireless networking and are designed specifically for mobile use. (They are roughly the size of cellular phones.) The principal difference between netbooks and MIDs is size, because many use the same processors, although MIDs are generally less capable: they have less storage, less memory, and smaller screens.
Examples include the Nokia N810, the Sony Vaio P, and the Acer Aspire ONE series. Nearly all devices known as MIDs run some variant of Linux. The Nokia device in particular runs Maemo, a combined kernel and middleware platform whose user environment is relatively constrained and optimized in order to keep resources available for applications, although some developers have created alternative desktop environments. Also available is Ubuntu MID Edition, which can be built together with Moblin on Intel®-based middleware sets, to yield a powerful operating environment.
These overgrown cellular phones, which started out as enterprise devices capable of reading e-mail and browsing the Web, have exploded in popularity. Many come with thumb keyboards and fast, always-on Internet connections because of the simultaneous massive growth of 2.5G and 3G cellular telephone data networks.
Examples of smart phones with keyboards include the new Palm Pre, the HTC G1, and the OpenMoko project. Some without keyboards include the Motorola Krave ZN4, the Samsung Anycall SCH-i859, and the Emblaze Mobile Edelweiss, and the Purple Magic reference design from French company Purple Magic. All of these phones are based on Linux.
Many new phone designs running variants of Linux have recently been announced. Linux distros designed specifically for smart phones include Android (a Google product) and software based on LiMo, a smart phone standards organization.
Some dedicated devices also rely on the network for their primary functions. Electronic book readers must have some method of downloading books: The Amazon Kindle uses a cellular-based network connection to connect directly to Amazon's server. (Note that the Kindle runs Linux.) Other dedicated, network-capable devices include the TiVo digital video recorder (DVR) and the Roku Netflix Player video-streaming set-top box, both of which run Linux.
There is a new device entering the market that might best be called a hybrid cloud computer. It is a standard office laptop with an interesting twist: a thin Linux-based client built directly into the hardware that shares the keyboard, screen, and network connection. It may seem strange to have two computers in one case, but the utility becomes apparent when the thin client turns on and connects instantly like a cellular phone, stays on for up to 18 hours with a standard battery, and goes to sleep so the user can boot into the larger machine whenever necessary. It is a true cloud machine with a local backup.
The only current hybrid device is the Dell Latitude E4200/E4400 series (the capability is called Latitude ON), but more such devices are planned in the near future.
Green penguins, green clouds
There are environmental benefits to both cloud computing and the use of thin clients based on Linux.
Cloud computing centralizes resources, which means that all the hard processing happens on large, fast machines somewhere out there "in the cloud." Some companies—Google in particular—have taken this concept to heart by locating server farms physically close to power-generating stations, as they have in Oregon and in Eemshaven, The Netherlands (near a large set of windmills). Because much of the efficiency of electrical power is lost in transport, this is good for the planet as well as for the company. Google has also (famously) patented a floating wave-powered server farm, which would not only be co-located with its power source but would also be totally sustainable.
There are additional benefits to thin Linux clients. First, they are "thin," meaning that they contain low-powered hardware and thus use much less electricity than expensive laptops. Second, they run Linux, which has many advantages related to power management, even on older hardware.
Third and most importantly, Linux runs practically everywhere. Rather than consigning an old computer to the e-waste scrap heap, give it a new, inexpensive hard disk—or just boot from a CD or a USB flash drive (UFD)—and re-purpose the computer as a thin client.
The earth will thank you.
- Read "Automating Linux Cloud Installations" (developerWorks, November 2008) to learn how to make cloud-based Linux installations automatic on IBM POWER systems.
- In "Cloud Computing with Linux" (developerWorks, February 2009), you'll get more details about using Linux in the cloud.
- "Architectural manifesto: An introduction to the possibilities (and risks) of cloud computing" (developerWorks, February 2009) gives details about the pros and cons of cloud computing.
- "Cloud computing with Amazon Web Services" (developerWorks, July 2008) discusses cloud computing with an Amazon focus.
- "Linux system development on an embedded device" (Anand Santhanam and Vishal Kulkarni, developerWorks, March 2002): This is an older but still very relevant article on porting Linux to embedded devices, making them thin Linux clients.
- Check out Linuxdevices.com for news on embedded Linux and thin clients.
- Meld is an online community for embedded Linux developers.
- Wikipedia's thin clients entry centers mostly around enterprise thin clients but also describes the concepts well.
- In the developerWorks Linux zone, find more resources for Linux developers, and scan our most popular articles and tutorials.
- See all Linux tips and Linux tutorials on developerWorks.
- Stay current with developerWorks technical events and Webcasts.
Get products and technologies
- Some popular, free Linux environments suitable for thin clients include:
- With IBM trial software, available for download directly from developerWorks, build your next development project on Linux.
- Get involved in the My developerWorks community; with your personal profile and custom home page, you can tailor developerWorks to your interests and interact with other developerWorks users.
Dig deeper into Linux on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.