Home Build Documentation Downloads SourceForge Project Page x86_64 DIY NAS
About DIET-PC 3 Hot-e Debian HowTo Legacy Downloads Mailing Lists ChipPC Thin Clients
Windows Etherboot HowTo Wiki Efika Open Client
ARM-based Thecus NAS

DIET-PC logo

Support This Project

Overview

DIET-PC (DIskless Embedded Technology Personal Computer) is a Do-It-Yourself open source thin client software kitset, allowing IT professionals to construct generic- or special-purpose thin clients, or other network appliances, using commodity x86 PC or Apple Mac hardware or certain commercial embedded appliances.

DIET-PC is based on an embedded Linux O/S running entirely in RAM, loaded either from local storage (CD, disk, flash) or over the network via TFTP. The O/S is fully self-contained and communicates with application servers by means of industry standard IP protocols, such as X11, RDP, ICA or RFB (VNC). Consequently the Linux nature of the O/S is largely hidden from and irrelevant to the user. It is primarily intended for use as a graphical appliance such as a thin client, media player, kiosk, POS or industrial terminal, although it could conceivably be used for almost any purpose that requires an embedded O/S. Incorporated technologies include Etherboot, SysLinux, Linux kernel, Squashfs, Unionfs, Busybox, Xorg, Rdesktop, TightVNC, Citrix ICA Client, and Xine.

DIET-PC is a "kitset" rather than a finished distribution. To assemble and deploy it you will need a development platform running a mainstream Linux distribution (a virtual machine is sufficient), and some Linux or UNIX shell experience.

DIET-PC runs on x86 (486 or better), x86_64, ARM, PowerPC (G3 or better), and MIPSEL, although there is little documentation or installation support for non-x86 platforms. You will typically need at least 32 Mb of RAM, regardless of CPU architecture, and at least 8 Mb of local storage if you want to boot independently of network servers.


DIET-PC vs Other Thin Client Distros

Summary

DIET-PC's target audience and design philisophy differs from that of most other Linux-based thin distributions, so it does not aim to compete with them. In fact, the DIET-PC developer has a close working relationship with the Thinstation developers, from which both projects have benefitted.

The principal difference between DIET-PC and other Linux thin client distros is that DIET-PC is predominantly a distribution by developers, for developers. It is deliberately promoted as a general embedded framework rather than a thin client appliance. This is not to say that DIET-PC cannot be deployed as a thin client with relative ease, but rather that the focus is on underlying technologies rather than "icing on the cake" such as web-based configurators. DIET-PC is not intended as an end-user product, but rather as a starting point for an IT professional to build an end-user product.

Accordingly, DIET-PC aims to be more developer-friendly than other distributions. DIET-PC filesystem layout and underlying glibc are "traditional", rather than the abbreviated layout and obsolete/cut-down libc used by most other distributions, so that in most situations the developer ought to be able to transplant binaries compiled on his/her native Linux platform directly into DIET-PC, rather than use a dedicated cross-compiler or build environment.

Despite this, DIET-PC is small - not particularly small by embedded standards, perhaps, but almost certainly smaller (uncompressed) than any other Linux thin client with comparable features and hardware support. There are several smaller embedded Linux distributions with a GUI (typically UcLibC plus TinyX, Qt-Embedded or SVGALib), but these are much more limited than a full-featured GlibC-plus-Xorg solution, and are usually intended for use with very specific hardware. DIET-PC is intended primarily for (relatively) high-performance graphics on widely-available general-purpose hardware. While you could use DIET-PC for non-GUI appliances (eg. a router or firewall), there are many alternative embedded Linux distributions that are better suited to this task. Its lightweight but conventional design could make it useful for distributed processing projects, however.

A major technical difference between DIET-PC and most other thin client distros is the use of a read-write (ext2/3, initramfs, or unionfs) root filesystem, rather than a read-only one. This avoids the need for complex non-intuitive workarounds, and creates a more familiar working environment for experienced Linux system administrators. Shell script integration is kept to a minimum in DIET-PC, and also kept fairly concise and readable.

The other major technical difference is that DIET-PC is not "variable-driven". There is no single configuration file, parsed by shell scripts and used to dynamically generate application-specific configuration files, as there is in most other distributions. Each DIET-PC subcomponent is configured in the "normal" way for that software, following existing standards and best practices wherever this is open to intepretation. With the exception of ICA Client and boot scripting, DIET-PC avoids inventing a new DIET-PC-specific layer of abstraction above that of the underlying software components. The result is a dramatic reduction in complexity (particularly the amount of shell script required), at the expense of convenience for inexperienced integrators.

Reduced complexity means less bugs. The DIET-PC developer is also very fastidious with regard to pre-release testing, which produces a reliable, high quality result, albeit with a slow release rate and a small range of evaluated hardware. The DIET-PC developer is a strict adherent to the KISS principal, and therefore likely to be unsympathetic to requests for features that have simpler but costlier alternatives, eg. embedded browser etc.

Reduced complexity means less code to run. If the integrator includes only the packages he/she needs and builds his/her own kernel tailored to the target hardware, as recommended, the resulting system will perform better than one-size-fits-all plug-and-play equivalents.

As the DIET-PC developer has a background in high-security IT environments, DIET-PC also has a security focus. Properly locked down with developer conveniences turned off, it is more secure than any other open source thin client distribution known to the developer. As always, however, high security comes at the cost of reduced operator convenience.

Help Wanted - Apply Within

DIET-PC is only a single developer distribution due to lack of volunteers. While the DIET-PC originator and sole developer has perfectionist tendencies and is fairly strict about adherence to core DIET-PC design philosophies, he is not a total control freak, and would welcome some assistance!

Additional developers would improve the release rate, and help DIET-PC reach the critical-mass point of community interest at which it becomes self-sustaining, and that would be great.