Welcome!

Linux Authors: Shelly Palmer, Greg Smith, Fiona McNeill, Noel Wurst, Sandi Mappic

Related Topics: Linux

Linux: Article

Thin Client Linux: Thin Is In

Should you migrate to thin client Linux?

As with all big conferences, LinuxWorld Boston earlier this year had a few broad themes that you couldn't help be exposed to just by walking the floor. One that caught me by surprise was the excitement around thin client Linux. At first I attributed it to a combination of the big vendors pushing blade computing and the malaise that had developed around desktop Linux. For the past few years the battle cry had been "This is the year of Linux on the desktop." Linus Torvalds himself made the assertion in a few interviews. Well...Windows hasn't been crushed in an avalanche of Linux adoption on the desktop. I personally believe that desktop Linux is going to be less of an avalanche and more like the buildup of sand on the beach - gradual, constant, and imperceptible to the casual onlooker. The lack of widespread adoption however had people like Jeremy White of Codeweavers talking about going through the five stages of grief (denial, anger, bargaining, depression, acceptance) when they discovered that the year of the Linux desktop had yet to arrive.

Initially I viewed thin client Linux as a symptom of the third stage of grief - bargaining. I pictured people telling themselves "If desktop Linux isn't going to take over the world, maybe thin client Linux can." After all, I had seen Larry Ellison and Oracle with his "Network Computer" (along with Sun and others) bet big on the thin client as a Windows killer in the mid-90s only to have it go nowhere. The idea of ending Microsoft's reign over the desktop with an entirely new architecture is appealing. I couldn't just dismiss it out of hand as wishful thinking by those heavily invested in desktop Linux however. I personally knew some businesses that were using thin client infrastructures very successfully. In the mid-90s this was definitely not the case. Harrison Ford once said, "We all have big changes in our lives that are more or less a second chance." Had thin client actually changed since the mid-90s or was this just an undeserved second chance?

What Is a Thin Client?
The basic premise of thin client computing is that a number of users can get most of their computing resources (disk and CPU) from a central server and use their local machine just for display and input (keyboard and mouse). This lets cheap, underpowered computers (or repurposed old computers) be put on each user's desktop. Each of these then connect to a more powerful central server to run applications. In the purest thin client scenario the client computers are diskless and even boot an operating system over the network via the thin client server, which begs the question: How is Linux especially suited for this purpose?

Why Thin Client Linux Works
Thin client Linux works for two reasons. First, almost accidentally, Linux does a great job of separating application data (or "shareable data," as it's sometimes called) from user data. Application data is the general configuration of an application needed to make it work for all users (for example, the set of standard document templates in OpenOffice). User data is the configuration information that's changed by and specific to each individual user. The user's custom dictionary in OpenOffice is an example. Web browser bookmarks are another example. I say "almost accidentally" because Linux, like Unix, was designed as a secure multiuser system and the separation of application data grew out of that design. This system encourages individual users to run in their own environment with access only to their own individual portion of the file system. Applications that don't store user data in each individual user's portion of the file system simply don't work on Linux. This creates a strong incentive for application developers to develop their applications to separate user data from application data. Another contributing factor is the fact that a central "registry" for application data came late to the Linux world. This allowed the developers of the major Linux desktop environments to avoid the problems of the Windows registry by storing the user-specific portions of the registry in the individual user's portion of the file system. For these two reasons virtually all Linux applications store user data correctly. This may seem common sense, but I can assure you the same is not true on the Windows desktop. Large numbers of Windows applications store user data in shared areas (like c:\program files) despite the fact that Windows has been a multiuser system for some time now and Microsoft has greatly discouraged this practice.

The second reason thin client Linux works is that Linux's user interface is built on top of the X Window System, which is client/server based even when running on the same computer. In X Windows terminology, the client (or application) can use the X Window server (the display) to display the desktop, show application windows, access input, etc. Although the names client and server are reversed in the X Windows/thin client terminology, this is exactly what a thin client requires. The ability to display an application that's being run on a central server on a remote client computer is fundamental to thin client computing and is built into Linux through X Windows.

These two aspects of the Linux architecture significantly reduce the effort required to develop thin client solutions based on Linux. Let's take a look at some of the current solutions available.

Current Solutions
Thin client implementations currently available range from documents that cobble together publicly available tools (see http://trieste.linux.it/documenti/ThinClient.html, for example) to full-blown commercial thin client packages that include both hardware and software.

The most well-known thin client solution for Linux is the Linux Terminal Server Project or LTSP (www.ltsp.org), a mature Open Source project that installs on a Linux server and lets you boot Linux clients via a number of different methods including PXE, which is supported by most modern network cards. LTSP relies on the X Windows protocol and NFS, a protocol for sharing files over the network that provides thin client support. To install LTSP on a client you must build a special client kernel (or use one of the pre-compiled ones that are supplied). LTSP can be a little difficult to set up but projects based on LTSP that simplify setup are already popping up. The Norwegian Skolelinux ("skole" means "school") is LTSP with expanded documentation and a simplified installation.

There are a number of other Linux-based thin client solutions. PXES (http://pxes.sourceforge.net) is a "micro" Linux distribution that can be used to access a thin client server using the X Windows protocol (like LTSP) as well as a number of other protocols including VNC, which is a remote control protocol originally developed by AT&T and available on Linux.

Another project that has drawn some interest lately is Ndiyo! (pronounced nn-dee-yo). It's attempting to develop an "ultra-thin" client (video and Ethernet adapter) that can eventually be incorporated directly into a monitor. Ndiyo! is an effort of Newnham Research in the UK (www.newnhamresearch.com/). It's not ready for enterprise deployment but stay tuned.

More Stories By Jon Walker

Jon Walker serves as CTO of Versora, an ISV providing Microsoft to Linux migration software. Mr. Walker recently has co-authored 2 whitepapers with Novell titled Migrating from IS Web Servers to Apache SUSE LINUX Enterprise Server 9.0 and Migrating File and Print Servers from Windows to SUSE LINUX Enterprise Server 9. Prior to Versora, Mr. Walker was CTO/VP of Engineering for Miramar Systems. Software developed under his direction at Miramar has been deployed to over 20 million computers worldwide. Mr. Walker has also served as senior technologist for Nortel and Xing Technology (now Real Networks).

Comments (3) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
SijiSunny 04/24/06 07:59:54 AM EDT

I am siji Sunny from C-DAC Mumbai working with OpenSource Research And Development and now I am working with Thin Client machines with Indian Language support in Client side and I had did it

SijiSunny 04/24/06 07:59:37 AM EDT

I am siji Sunny from C-DAC Mumbai working with OpenSource Research And Development and now I am working with Thin Client machines with Indian Language support in Client side and I had did it

dtmilano 06/15/05 12:17:21 PM EDT

PXES Universal Linux Thin Client I:
I think that something very important is missing in this article and it is the concept of deploying PXES to access diverse set of servers using a wide range of protocols (XDM, ICA, RDP, VNC, NX, SSH, etc.).

PXES Universal Linux Thin Client II:
Established as the most important Open Source thin client project (see http://pxes.sf.net/images/PXES_Search_Engines.png), PXES Universal Linux Thin Client is standing out as a clear alternative to proprietary operating systems in the desktop.