These were “Maxwell’s Equations of Software!”
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.
|• Reproducible Builds|
|• Bootstrappable Builds|
|• Reduced Binary Seed Bootstrap|
|• Scheme-only Bootstrap|
|• Full Source Bootstrap|
|• LISP as Maxwell’s Equations of Software|
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:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- 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.
- The freedom to redistribute copies so you can help others (freedom 2).
- 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.
|• Reproducible Builds||Reproducibility and free software.|
|• Bootstrappable Builds||The freedom to build a software without binary seed.|
|• Reduced Binary Seed Bootstrap||Guix reduces bootstrap binaries with 50%.|
|• Scheme-only Bootsrap||Guix reduced bootstrap binaries to 25%.|
|• Full Source Bootstrap||A bootstrap worthy of GNU.|
|• LISP as Maxwell's Equations of Software||Auditable elegance.|
“Mes” is an acronym for the Maxwell Equations of Software.
The four essential freedoms https://www.gnu.org/philosophy/free-sw.html