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 provide 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 tries to explain why the current design of "system software" is deeply and unrecoverably flawed, and proposes a new way for designing computing systems such as to achieve real utility, using only well-known available (though sometimes deprecated) techniques.
Faré -- rideau@clipper.ens.fr