/sys/doc/ Documentation archive

Inferno Programming with Limbo

Here you can find the complete book in PDF:

Or you can buy the dead-tree version from Amazon ;)


The subject matter of the text is the development of software for the Inferno operating system, using the Limbo programming language.

Inferno is an operating system for building distributed applications in networked environments. It is targeted at resource-constrained computing systems such as set- top boxes, PDAs and point-of-sale terminals, which usually have limited computing resources, are networked and often need to handle multimedia such as streaming audio or video. It was designed from the ground up to address these issues.

Inferno derives its heritage from the creators of the Unix and Plan 9 operating systems and the C and C++ programming languages, Lucent Technologies' Bell Labs. Inferno has recently been made freely available to the general public in binary form, and source code is available for a small fee under an open-source-like licence. Limbo is the programming language in which applications for Inferno are written.


This book is intended as a comprehensive guide for programmers who wish to develop applications for the Inferno operating system, with an emphasis on taking advantage of its unique capabilities. The text provides a brief introduction to the installation and use of Inferno, and an in-depth exposition and solid reference for developing Inferno applications in Limbo.

A reader with no prior experience of Inferno, or of related technologies, should be able to use the text both as an introduction to Inferno and as a reference on developing Inferno applications in Limbo.

Target Audience

The text is targeted primarily at professionals who will be developing applications in the Limbo language for Inferno and is therefore structured as a self-study text. It is also suitable for use as a college-level text, providing end-of-chapter exercises to further develop the concepts introduced in each chapter. For both the professional audience and the college student, a familiarity with programming languages such as Pascal, C/C++ or Java is assumed. It is not meant to be an introductory programming text.

Every attempt has been made to keep the book as self-contained as possible, mak- ing it an ideal introduction as well as a handy reference. Readers will appreciate the practical approach of the text. Each chapter concludes with an analysis of a complete representative application that uses concepts introduced in the chapter, which may be used as a starting point for developing the reader’s own applications. The exam- ple discussion further serves to point out common pitfalls when programming with concepts introduced in that chapter. The tone of the book is intended to be refreshing, and every attempt is made to keep the presentation and discussions lively.