Subject: Comp.lang.oberon FAQ (system) Newsgroups: comp.lang.oberon,comp.answers,news.answers From: mikeg@psg.com (Mike Gallo) Date: Mon, 9 May 1994 18:29:37 GMT Archive-name: Oberon-FAQ/system (* * * * * * * * * * * * * * * * * * * * * *) Many FAQ lists, including this one, are available by anonymous ftp from rtfm.mit.edu in the /pub/usenet/news-answers directory. Thanks to all who have contributed! Further additions, corrections, and suggestions are welcome. mikeg@psg.com (* * * * * * * * * * * * * * * * * * * * * *) Comp.lang.oberon Frequently Asked Questions The Operating System Copyright 1994 Michael Gallo (c) 1994 Michael Gallo THE OBERON SYSTEM >From "The Oberon Guide" For the present, we focus on the system Oberon, beginning with a brief overview of its design principles. The underlying dynamic model is extremely simple. There exists a single process acting as a common carrier of multiple tasks. This process repetitively interprets commands, which are the official entities of execution in Oberon. Commands are atomic actions operating on the global state of the system. Unlike customary interactive programs, they rigorously avoid direct dialogs with the system user. Besides "single-process multitasking" and execution of commands in lieu of programs, the Oberon System also features automatic garbage collection, memory resident modules, text as a built-in abstract data type, tools for editing text and graphics, and program development tools. >From "Oberon: A Glimpse at the Future" The result is a system that provides efficiency and reliability rather than offering inflated size, which dramatically increases the probability of bugs and flaws. What is most astonishing about Oberon is its smallness. The core operating system -- including the Oberon compiler -- occupies only 131 KB, which is smaller than most [Microsoft (tm)] Windows utilities. OBERON SYSTEM 3 >From "Oberon System 3 -- A Realm of Persistent Objects" We soon decided to realize our ideas by developing System 3, an evolutionary version of the original Oberon system. From our vision and from examples like the one in Figure 1 it followed immediately that System 3 needs to be settled one important step beyond the ordinary state of object-oriented programming because it needs to be able to manage hundreds or even thousands of persistent objects and components that can appear in extensive variety, including at least character patterns, formulae, all kinds of figures, pictures, gadgets and widgets. What was obviously needed is a central object management and some concept like object library. GADGETS >From The GADGETS User Interface Management System The GADGETS user interface management system (UIMS) is a graphical user interface to the Oberon system. Although it is based on the representation model of windowing user interfaces such as X Windows and Presentation Manager, GADGETS is a conceptual departure from the conventional graphical user interface (GUI). Several features such as the separation of application code and user interface, the interactive modification of user interfaces while applications are executing, the automatic generation of default user interfaces for applications, and the simplification of user interface programming have been incorporated into GADGETS. The result is smaller, easier to build application programs with a high level of integration between each other and the Oberon system. The GADGETS UIMS is extensible and provides a prototyping environment for alternative man- machine interaction styles. The high level of integration of GADGETS with the Oberon system makes the addition of graphical user interfaces to existing Oberon applications a relatively easy task. VERSION COMPATIBILITY "Is Oberon System version X compatible with version Y?" According to templ@inf.ethz.ch (Josef Templ), The Oberon ancestry is as follows Oberon = V1 ( V2 V4 | System3 ) The main difference between V1 and V2 is the introduction of an extensible text model and the text editor Write. The main difference between V2 and V4 is the unification of the two text editors Edit and Write. In order to avoid confusion with System3, the direct successor of V2 is not named V3 but V4. The main difference between V2 and System3 is that System3 introduced (a year later) a more general object model (not restricted to text elements) and the notion of persistent object libraries. Many programs port between the different versions without any changes. Some programs need simple textual substitutions, and only very few need a considerable amount of reengineering (e.g. Write, Script). CONCURRENT OBERON >From "Adding Concurrency to the Oberon System" Concurrency was not supported in the original Oberon system. We have argued that, although the Oberon experience has demonstrated that concurrency is not needed to support interactive applications in a system with a multiple window user interface, concurrency is nonetheless desirable in a single user system. We have demonstrated that it can be introduced without a significant increase in size or complexity by developing the Concurrent Oberon system. Since all interfaces remained the same or were extended, the semantics of the Oberon loop were preserved. Concurrent Oberon is completely compatible with the standard system [version 4] and all applications run without change. BIBLIOGRAPHY Sources cited in the FAQ list that are not listed in the bibliography are electronically available in PostScript and/or Oberon text formats from ETH Zrich. They can be acquired by anonymous ftp from: ftp.inf.ethz.ch:/Oberon, wuarchive.wustl.edu:/languages/Oberon, and gatekeeper@dec.com:/pub/plan/Oberon "Designing a System from Scratch" by N. Wirth; Structured Programming; 10,1 (January 1989) 10-18. "The Oberon System" by N. Wirth and J. Gutknecht; Software: Practice and Experience; 19,9 (September 1989) 857-893. The Oberon System: User Guide and Programmer's Manual by M. Reiser; ACM Press; 1992. This was reviewed in Computing Reviews articles 9109-0679, 9209-0651, 9209-0652, and 9207-0443. Project Oberon: The Design of an Operating System and Compiler by N. Wirth and J. Gutknecht; ACM Press 1992. "Implementing an Operating System on Top of Another" by M. Franz; Software: Practice and Experience; 23,6 (June 1993) 677-692. "OBERON for PC on an MS-DOS Base" by A. R. Disteli; Swiss Federal Institute of Technology (ETH Zrich); Technical Report #203, November 1993. Distributed Object-Oriented Programming in a Network of Personal Workstations by Spiros Lalis; Swiss Federal Institute of Technology (ETH Zrich); 1994 (in preparation). -- Everything we do is futile, but we must do it anyway. -- Mahatma Gandhi