Home Downloads Windows Etherboot HowTo SPARC-based Netgear NAS x86_64 DIY NAS
About DIET-PC 3 Discussion Forum Hot-e Debian HowTo ARM-based Thecus NAS ChipPC Thin Clients
Wiki DIET-PC as a Hypervisor Efika Open Client

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 network appliances, using a wide range of hardware (including various non-x86 devices, as well as commodity x86 PC hardware).

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 currently provides binaries for x86 (486 or better), x86_64, ARM (standard ABI and EABI), PowerPC (G3 or better), MIPS/MIPSEL, SPARC, and SuperH (v4 or better). As it uses Debian as a development environment, it can run on anything that Debian runs on. 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 Embedded Linux Distros

Summary

Whereas most embedded distributions cater only to 32-bit x86 and possibly ARM, DIET-PC can run on pretty much anything that supports Linux.

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.

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.