The Philosophy of RISC OS (This document is an edited form of the note handed out to Independent Software Vendors during a course of seminars held by Acorn to introduce them to RISC OS.) Acorn System Software --------------------- From The BBC Computer onwards, Acorn has provided system software with its products that emaphsise an *abstract* view of device and IO control. By accessing system calls rather than absolute locations and direct hardware poking, applications can be made *future-proof*, so that they will run on future releases of hardware and of software. This applies to IO ports, graphics, and storage devices. As a consequence, there are numerous useful (and commercially important) programs that run on Archimedes which have been around since the earliest days of the BBC Computer. Considering the staggering differences in underlying hardware between these two systems, no other hardware manufacturer has managed this to such an extent. When BBC Computers first appeared PCs did not exist, and Apple ][s and Z80-based machines were prevelant in the microcomputer world: how many of those programs still run usefully today on current products? There are numerous other programs from the BBC machines which have failed to stand this test. Sometimes there are good reasons for this: if you wish to push a specific configuration to its limits you may have to write for that specific model. At other times, however, this is not so true. There were numerous programs for the BBC Computer which could not be ported to the Master or the Compact or to Archimedes without considerable pain. Similarly, there are commercial Arthur 1.20 applications which: rely on specific return addresses into the ROM poke device hardware directly access ADFS internal workspace access kernel internal workspace scribble on page zero access the system heap assume the base hardware address of the screen assume the use of :0 By doing these things without good reason, an application mortgages its future in terms of portability to future machines, operating system releases, and architectures. Perhaps, at one time or another, you have had to do one of these things in order to get round some fundamental limitation of the current machine. That is all very well, but THINK FIRST! Some more subtle assumptions that should not be made: do not reconfigure the machine do not assume N-key rollover do not assume that video frame refresh is 50Hz (or any other value) do not assume that page size is 8 or 32K do not assume that the alphabet is Latin-1, or that the keyboard is English (international sales!) do not assume the precise processor speed: it could get faster, or slower do not assume the boot-up configuration properties that the user likes Some of these were much harder to live with on Arthur 1.20. Any such decisions should be reevaluated with RISC OS. How is RISC OS Different from other systems? -------------------------------------------- RISC OS is not just Arthur with a few additional features. The functionality of the system as a whole has expanded out of all recognition, so that it should be thought of as a completely different system, more advanced and more effective at supporting high-quality applications than any competing operating system. The best way to understand the difference is to see a demonstration, and to try using it. RISC OS is about making programs EASY TO USE making programs WORK TOGETHER making programs EASY TO CONTROL It is not simply that we have provided multi-tasking: we also provide the advice, the guidance and the example to make multi-tasking programs work together harmoniously and productively, while remaining under easy control of the user. EASY TO USE ----------- RISC OS is easy to use because it provides a *consistent* model for easy-to-understand operations. Applications do similar things in a similar way. Standard facilities are provided for menus, dialogue boxes, and icons. Standard metaphors are provided for data transfer, loading and saving, loading and unloading an application, WYSIWYG colour and graphics, printer drivers, selection, and so on. Every aspect of RISC OS encourages applications to make life easier for the user. The use of common metaphors for common operations is further ensured by the extensive written guidelines that we supply to applications authors. PROGRAMS WORKING TOGETHER ------------------------- The constantly resident Filer provides instant access to filing system operations, whatever other applications are running. The user interacts with this when loading and saving files for running applications, rather than having to learn about some separate part of each application. Identical user actions are also used to transfer data between applications. As another example, facilities such as interactive help can be built using applications that talk to each other, rather than having to build such facilities into the system itself. All of these are examples of the operation of general-purpose primitives within RISC OS, rather than being built-in special cases. This demonstrates the power of the underlying system. EASY TO CONTROL --------------- The Task Manager utility provides the user with instant understanding of which applications are running, and how much memory is used by each. It also provides the means to control interactively the use of memory by the operating system. Unlike many systems there is no "fragmentation" problem caused by changing such things dynamically, making best use of Archimedes' memory mapping hardware. The Palette utility provides the user with control of the screen mode being used, allowing on-the-fly tradeoff between memory usage, resolution, colour and performance. All applications are written to run in any mode, making the best use possible of whatever graphics facilities are available. The configuration and installation guidelines for applications ensure that any application can be run from any filing system. Complex installation procedures are not required for applications, they can simply be moved from one location to another on the desktop. Access to central resources such as font libraries is also provided in a way that is easy to control. On many systems multi-tasking is only provided at the cost of additional complexity for the system user, installer and maintainer. On RISC OS these things are actually simplified by the presence of multi-tasking, rendering them comprehensible (and thus controllable) to all.