Introduction: Computers

A computer is a machine that can do very quickly computations that each are very simple. By combining these simple tasks, it achieves somehow more complicated ones, but with great difficulty. It is thus very opposite to human collaborators with this respect, who can do complex tasks, but are slow and do a lot of mistakes when accomplishing simple computations.

Software is the combinatorial part of computers. It allows all useful jobs to be done, and all human-computer interaction to happen. But building all computer software from scratch is no task for everyone; people always write software from some commonly known state, called system software; they also almost always use a computing system (most often the same) for this.

This paper aims at demonstrating that while currently available computing system software provides a lot of expedient services, their low-level structure forbids them to provide useful services, and leads to huge, inefficient, slow, unusable, unportable, unmaintainable, unupgradeable, software. This paper proposes to explain why the current design of "system software" is deeply and unrecoverably flawed, and shows a new way for designing computing systems that achieve real usefulness, using well-known existing techniques.



  • Next: I. Operating Systems and Utility

  • Up: Table of Contents


    Faré -- rideau@clipper.ens.fr