Overview: What is TUNES?

We are visionaries, striving for a renaissance in computing technology. Guided by history, reason, and ethics, we seek to bring together the best available software technologies in a coherent system that is stable, comprehensive, understandable, and free.

The purpose of this web site is

Guiding Principles

Computing Freedom

For technical and ethical reasons, open-source software is an essential part of TUNES. Beyond that, we envision a new software economy that turns the status quo on its head by giving programmers a monetary incentive to improve existing software and reduce its complexity.

Mutual Trust

Probably not.

This kind of trust requires of ubiquitous use of (A) strong encryption and authentication and (B) open source software that's cleanly written, understandable, and periodically scrutinized by independent experts.

Technology

What follows is a laundry list of promising software techniques. The challenge is to cleanly integrate them into a coherent system, without creating a monster.

High-level languages (HLLs) enable generalization and abstraction, freeing us from irrelevant details. "C" is a relatively low-level language. Haskell, Lisp, and Scheme are among the highest-level languages in use today, and we can go higher yet. (For TUNES hacking, we gravitate toward the Lisp/Scheme family because of its high-level macros and freedom from syntactic clutter.)

Our favorite high-level technique is Reflection, which refers to the practice of writing introspective and self-modifying software. We envision a system that enables clean and easy reflection.

Being essential to our principles, Security should be enforced by means of a formal proof system, particularly in code where security and performance are both required, such as the networking stack. (Because of the mathematical rigor involved, this technique would never be required for ordinary programs.)

Unification is another major theme of our vision. A first step is to unify the compilation/runtime/library infrastructure of various programming languages while preserving their individuality.

Orthogonal Persistence unifies temporary and permanent storage, wiping away the distinction between variables, files, and databases. "Distributed Persistence" (which unifies storage and communication) could greatly simplify everything from parallel processing to electronic publishing. (This became an active research frontier quite recently, around 2007.)

User Interfaces ease our interactions with machines, via menus, programming languages, and various specialized notations and devices. There are countless ways to represent information, via several mediums: sound, graphics, text, braille -- and perhaps holograms and direct brain interfaces in the future. Today's GUIs are limited to visual media. We envision a system which can present information in the manner best suited to the user and the work environment.

Other techniques with a role in TUNES include Garbage Collection; Self-extensible syntax; Higher-order functions; Fault Tolerance; Versioning; Decentralized (no-kernel) process control; High-performance Dynamic Compilation; Hardware-Independent code; Migratable actors; and Capability security.

Timeline

TUNES is a Useful, Not Expedient, System

Way back in 1995, TUNES formed from the remnants of MOOSE and a few other operating system projects that never got off the ground. The OS hackers amongst us created a few proof-of-concept systems from scratch, but nothing really useful. Starting around 2000, we slowly and painfully outgrew our OS-development roots.

By 2005 it had become clear that we must leverage mainstream software to make TUNES a reality, imperfectly at first, so that we might benefit from immediate practical applications and real-world experience. A few years later, armed with better tools and experience, we can write a new compiler and operating system within TUNES, replacing the messy underpinnings of our imperfect prototype with a clean, manageable infrastructure that supports our highest aspirations. At least that's the plan!

It's 2008 now. If a few dedidated hackers can find the time and money to put some sustained effort into it, we could have a working prototype by 2010, with widespread use by 2015 or 2020.


This document last modified 2008-02-21 18:17 UTC by tcn.