What is Tunes ?

(Last modified Saturday November 7th 1996)


The Tunes Identity FAQ

Here is a list of frequently asked questions (with answers) about the identity the Tunes project.
This FAQ, as all of the Tunes project, is currently under active construction. Please help develop it with your feedback.
Please note that this mini-FAQ only addresses general questions about the nature of the Tunes project. Specific questions about Subprojects are dealt with in documents from those subprojects.
If you still wonder about what Tunes is, please tell me (Faré), by sending e-mail to rideau@clipper.ens.fr. Mind, that is how I happen to know which questions are frequently asked ! If no one asks me clarifications, I cannot adapt the FAQ to real questions of people. But of course, do not ask again some existing question, unless you're not satisfied with the answer (-8.


Index of Questions


Section 1: Project Goals


  • What is the Tunes project's definition ?

    Tunes is a project that strives to design and implement a computing system, based upon a paradigm of total computing freedom. These words are to be taken in their fullest sense (see the Tunes Glossary).
    We want to implement such a system because we know all our freedom requirements need be fulfilled for the computing industry to compete fairly, which is not currently possible. Even if Tunes itself does not become used world-wide, we hope our experience can speed up the appearance of a such OS that would fulfill our requirements.

    Now, let us define the context in which we stand, particularly as freedom is concerned:
    Firstly, we admit the theory of computing liberalism
    Then we believe that optimal freedom is reachable only by providing the finest possible grain in software and hardware modularity (though we have little grasp on hardware modularity).
    We believe that such modularity means that modules should depend only on other modules they actually need, so that the best module adaptation shall be achieved.
    We also believe that no reliable modularity is possible without security, and that the most secure software frame should be use, including total security through formal proof of software specification when possible.
    Finally, we believe that to express and manipulate this modularity, we need unified extensible language, that could specialize to any need, from the low-level control of computer hardware, to the highest level interaction with humans and the external world.

    Of course, none of the beliefs above is an absolute one, and anything should be reconsidered (including the project itself) if ever convincing counter-arguments would appear, and new beliefs may be added if proper arguments show them.


  • What does the name "Tunes" stand for ?

    Actually, Tunes means Tunes is a Useful, Not Expedient, System, which name refers to J.S. Mill's Utilitarianism. The philosophy behind Tunes is deeply inspired by Mr. Mill's works. The name thus reflects our commitment to write a system that will be Useful to all and last long, not only a toy, or a quick-and-dirty expedient hack to earn money or diplomas.

    The name could have been Runes or Dunes instead of Tunes, but Runes are said to be cryptic and Tunes sounded better that Dunes (-8. You may also have noticed that this name is an implicit reference to the GNU recursive acronyms.

    However, the name of the project is infinitely less important than its contents. So don't get over-enthousiastic or over-suspicious just because of it. Other names were proposed, and it may change one day. The project also has a secret name, but hey, it's secret (-8 well not that secret; ask JVS) !


  • What is "computing freedom" ?

    Actually, Tunes means Tunes is a Useful, Not Expedient, System, which name refers to J.S. Mill's Utilitarianism. The philosophy behind Tunes is deeply inspired by Mr. Mill's works. The name thus reflects our commitment to write a system that will be Useful to all and last long, not only a toy, or a quick-and-dirty expedient hack to earn money or diplomas.

    The name could have been Runes or Dunes instead of Tunes, but Runes are said to be cryptic and Tunes sounded better that Dunes (-8. You may also have noticed that this name is an implicit reference to the GNU recursive acronyms.

    However, the name of the project is infinitely less important than its contents. So don't get over-enthousiastic or over-suspicious just because of it. Other names were proposed, and it may change one day. The project also has a secret name, but hey, it's secret (-8 well not so; ask JVS) !


  • What kind of software does Tunes more specifically aims at writing ?

    The Tunes computing system shall eventually provide all needed integrated tools to perform any kind of computing, from action games to professional expert systems, on any platform, from pocket computers to parallel supercalculators.
    Because users have different needs and taste, unified way to manipulate objects down to the finest grain, through a standard High-Level Language that would be used for any kind of programming including direct user interaction.
    It should adapt to any kind of computer architecture and size, from old small single-CPU system to brand new huge massively parallel systems; it should distribute over any kind of network size and topology, from isolated single computer systems, to clusters of CPUs over the Internet. Actually, all computers in the world should be considered as a single network, with nodes being more or less quickly and reliably linked (at worst, a monthly link through floppies).
    Objects should automatically, and programmably, be scheduled over the distributed system; they should migrate or be copied as needed for the system to run correctly when foreseen or unexpected network disconnections happen. Tunes should be secure and resilient to network failures.
    Persistence of objects would provide a much more intuitive and secure abstraction than files, and be considered as just migrating or copying objects to more stable (but quite slower as for computation) subsystems.
    Tunes would abolish all kinds of computer centralization. Not only software development monopolies will be broken down, but even computer services will be decentralized when possible: in each host, the centralized "kernel"-based architecture and the "OS/Application/Program/End-User" paradigm will be trashed out to the garbage can of computer history which they belong to. Client/Server centralized computing will be systematically avoided, whenever parallelization is possible.
    A powerful module system will come with the system. Dynamic linking of modules would come easily through lazy partial evaluation. Module and author authentification, and message encryption would allow a secure system, and author payment or (dis)credit. Automatic dynamic compilation will allow high performance, while automatic dynamic decompilation will allow migration and dynamic module upgrading. Security will be enhanced through a parametrizable type system that will be enforced by Tunes, and will allow any kind of security, from none (for the risky), to total security, through checking of program proof vs arbitrary kind of specifications.
    Finally, tools will be provided to allow automatic translation of software from other environment to Tunes, thus providing a smooth transition from older systems to the new one.


  • What public (who) does the project aim at ?

    The Tunes project targets absolutely all computer users, from newbies to gurus, either humans or other machines. We precisely think there should be no arbitrary distinction between users and programmers. Each object has providers and consumers, and is built upon other objects; but anyone providing new objects, even to himself, is a programmer; anyone communicating to the machine is a programmer; any user is a programmer. And any programmer is a user. There are people who provide different services, according to their various proficiencies, and who consume different services, according to their various needs.
    Thus, any kind of users will eventually be equally welcome, and will have to, because no system is live without all those kinds of users. Of course, during early development stage, only people ready write technichal stuff will be actually able to program and use the system, so we're first looking for exactly this kind of people (hey, you, who are ready to spend time for such a great cause, we are talking to you, even if you do not have the technical knowledge yet) !



    Section 2: Project organization


  • What are existing structures ?

    The project is organized according to an open development model.
    To ensure development openness, a
    Charter ensures that anyone can freely join development, that decisions are taken fast when possible, but democratically in case of disagreement, and dictatorially in case democracy fails to yield a decision.
    The project is divided into a hierarchy of subprojects, each having its coordinator, with responsibility to animate and report the project activity through a WWW page, and power to take any decision, as long as no one opposes; a coordinator's opinion also prevails when no democratic decision was possible.
    Then, a mailing list list was created as a means to communicate between project members.


  • How can I participate to the Tunes project ?

    Basically, you can join a subproject (including the main one) by just mailing to its coordinator, and will become a member if no previous member opposes. See the Charter for details.
    If there is enough people on IRC, a permanent #Tunes channel will be set up on undernet (try using server us.undernet.org).


  • What about copyright and property issues ?

    The Tunes project is for computing freedom, but also for a just reward of an author's work.
    This is why any document or piece of software or any material that will result from the project will be copyrighted by both the project and its authors, and distributed under the following terms:
    • People using the material in a non-profit context (home computing, research and teaching) will be allowed to do so freely, and to freely redistribute the material to other people doing so, according to the GNU "copyleft" General Public License modified accordingly.
    • Other people, people using the material in a commercial or for-profit context, people selling it alone or packaged with other material, will have to first contact the project or the authors, to find a preliminary agreement on project and author retribution.
    As an exception, the WWW pages for Tunes are GNU copylefted.



    Section 3: Project motivation and history


  • Why such a project ?

    Because we are sick of existing computing systems that are expensive, and can't adapt to your specific needs, except at excessively high costs.
    I (Faré) for example never aspired to write computing systems, but to use them, until I wanted to use software that would handle and understand all kinds of musical data, and discovered that to have a truely intelligent music-managing system, I had first to have an intelligent system.
    Like Carl Sagan said, "to make an apple pie from scratch, you must first create the universe".


  • How did it begin ?

    The reasons why it appeared being as old as computers, the idea of such system is also as old. So no clear date is possible to give to this project's birth. In 1992, Dennis Marer gathered a team to design an implement his dream OS, to which he gave the name MOOSE (for Multitasking Object-Oriented Operating SystEm, or later Multi-* OO OS & Environment). But the project died because of lack of decision procedure, and could not be revived in 1993.
    In 1994, I (Faré) tried to revive the MOOSE mailing list and project simultaneously with Mike Prince trying to gather a team for his similar PIOS project (whose goal was to implement a new OS on top of existing ones, and allowing object migration in a heterogeneous distributed system).
    The two projects merged into one, and a mailing list list was created with the name Tunes, hosted at the ENS.


  • What will it bring that other systems don't ?

    The Tunes project is organized according to an open development model. In fact, with this model, the quickest feedback is made possible between developers and consumers, all existing talents can express freely, and an elite of self-taught will constitute that may help spreading the system and ensuring its maintenance. That is, computer users, whether producer or consumer of computerly goods, are granted the greatest possible freedom.
    Linux is an operating system that is being successfully developed using this development model, and is maybe the most reliable Unix clone implementation on intel-based PCs.
    But Linux is not the ultimate OS, as it only implements an existing specification that wasn't designed with computing freedom in mind at all.
    In existing systems, user freedom is hindered by prejudices imposed monopolistic companies both by inertia and for profit. Those prejudices are such as the arbitrary distinction between system programmers, application developers, programmers and final users, that forbids the latter ones to extend the computing system according to their needs, so that they have to wait for the former to provide them very expensively what they could have sooner and cheaper. Another is the idea that a the computing system needs a centralized kernel, that only introduces overhead and arbitrary limitations in objects the system is able to manipulate directly at reasonable cost.....


  • What won't it bring that other systems do ?

    In theory, nothing cannot be done in Tunes that can be done in other systems. Now, for some feature to be implemented in Tunes, there need be an implementor; and if Tunes is to communicate with other systems, the documentation for the other systems' protocols need be available. However, a system without available protocol description shouldn't be relied upon anyway, because you can't trust its efficiency and its maintenance, so the only problem is to find someone ready to implement the interesting protocol inside Tunes.
    We believe that open development will make it cheaper and more reliable to find someone to implement the protocol inside Tunes than to implement it under some other OS platform.


  • What does liberalism have to do with this project ?

    The idea behind the project is that the whole computing world is made of competing objects (computer hardware and software products). The theory of Liberalism tells us that to achieve the greatest utility, we must have the greatest possible freedom with positive feedback on utility. Thus, this project strives to create the freest computing world, where users will be able to freely select the computer objects they'll manipulate according to their own idea of utility.
    This project aims at providing (and maintaining) minimal tools to create a free competition, which tools willl then be submitted to this competition.



  • Section 4: Project Advancement


  • What is the latest release number ?

    The latest Tunes release at the date this FAQ is written is 0.0.0.30. That is, version 0, revision 0, patch-level 0, internal release 30.
    In any case, you may find up-to-date information on the Tunes WWW page. No FTP site is currently available anymore.


  • What are supported hardware architectures ?

    The Tunes design will be as architecture independent as possible. The final aim is that same distributed system should eventually be able to run on the virtual network composed of all computers in the world from old 8 bit computers and consoles to new 128 bit supercalculators.
    Currently, two test implementations are intended: a first one for Intel-based 386+ PCs (not using DOS),
    and a second portable one for on any 32-bit+ computer with a some POSIX-ly correct system.
    If you're willing to port the system to another architecture, you're welcome.
    At this stage, implementation is timid and experimental, and important design points are yet to settle.


  • What are supported software standards ?

    Currently, none.
    But we wish to support as soon as possible all the standard file encodings and transfer protocols. We also intend to build parametrizable converters that'd allow convert applications written in C into applications that'd run directly inside Tunes.


  • Section 5: More about the project


  • Where to find more information about Tunes ?

    Firstly, go on the Tunes WWW page. It's address is "http://www.eleves.ens.fr:8080/home/rideau/Tunes/".
    Then, we're looking for a FTP host address to distribute our archives.
    Please note that you do NOT need be linked to the Internet to view these files with a WWW reader that allows you to view these files as "hypertext"; emacs W3 mode, Netscape, Lynx, and Mosaic are such readers.
    If you use IRC, you might try joining channel #Tunes (/join #Tunes) on undernet (/server us.undernet.org), so that if I'm logged in, we can have a chat !


  • What are other related works and projects ?

    There is a Review subproject dedicated to finding and reviewing other related works, to determine what must be kept, rejected, improved or added about these.



    To Do on this page

  • Point to glossary entries as they are added.
  • Take transcripts of IRC logs, and find what questions are asked there, and how they were answered.
  • Wait for more feedback, as usual


    FAQ Maintainer:
    Faré