Next: , Previous: , Up: GNU Mes   [Contents][Index]

1 Introduction

These were “Maxwell’s Equations of Software!”

Alan Kay

The purpose of GNU Mes1 is to help create a computer operating system that we can trust.

Mes consists of a mutual self-hosting Scheme interpreter written in C and a Nyacc-based (see see NYACC User's Guide in NYACC User’s Guide) C compiler written in Scheme. The Scheme interpreter mes.c is about 5,000LOC of restricted C, to be compiled with M2-Planet2, a very simple C compiler.

If we want to trust our computers to do what we instructed them to do then we need to be able to inspect all instructions—all softwares—that we have given it to run.

1.1 Software Freedom

The four essential Freedoms of Software are at the core of our GNU community. Quoting the GNU philosophy3

A program is free software if the program’s users have the four essential freedoms:

  1. The freedom to run the program as you wish, for any purpose (freedom 0).
  2. The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  3. The freedom to redistribute copies so you can help others (freedom 2).
  4. The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

A computer operating system that respects the user’s freedom is one essential ingredient for building a reliable, trustable computing system. There are about a dozen general purpose operating systems that can be trusted in this way, see Free Distributions. For all softwares on such a system we have the full source code and build recipes available.

So we have access to all the software, we have studied it, possibly modified it, then we built it and we installed it on a computer or some device or appliance. How can we trust that when we run the program we are indeed running the untainted product of the source code that we studied? Unless we are certain of this we cannot really enjoy Freedom 1.



“Mes” is an acronym for the Maxwell Equations of Software.




The four essential freedoms

Next: Installation, Previous: GNU Mes, Up: GNU Mes   [Contents][Index]