Supriya Ghosh (Editor)

Oberon (operating system)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Written in
  
Oberon

Initial release
  
1987

Source model
  
Open source

Available in
  
English

Oberon (operating system)

Developer
  
Niklaus Wirth and Jürg Gutknecht

Platforms
  
NS32032, IA-32, Xilinx Spartan, and many others

The Oberon System is a modular single user single process multitasking operating system developed in the late 1980s at ETH Zürich using the Oberon programming language. It has an unconventional visual text-based user interface (TUI, see also below in Section 2 User Interface) for activating commands, which was very innovative at that time.

Contents

History

The Oberon operating system was originally developed as part of the NS32032-based Ceres workstation project. It was written almost entirely (and since the 2013 edition, now is described entirely) in the Oberon programming language . The basic system was designed and implemented by Niklaus Wirth and Jürg Gutknecht and its design and implementation is fully documented in their book "Project Oberon". The user Interface and programmers reference is found in Martin Reiser's book "The Oberon System". It was later extended and ported to other hardware by a team at ETH-Zürich and there was recognition in popular magazines. Wirth and Gutknecht (although being active Computer Science professors) referred to themselves as 'part-time programmers' in the book 'Project Oberon'. In late 2013, a couple of months before his 80th birthday, Niklaus Wirth published a second edition of Project Oberon. It details the implementation of the Oberon System using a RISC CPU of his own design realized on a Xilinx FPGA board. It was presented at the symposium organized for his 80th birthday at ETHZ.

According to Josef Templ, a former member of the developer group at Eidgenössische Technische Hochschule, Zürich and later member of the "Institut für Systemsoftware" of Johannes Kepler University of Linz, where one of the versions (V4) was maintained, the genealogy of the different versions of the Oberon System was the following:

User interface

Oberon has a text user interface (TUI), which has to be differentiated from the terminal user interface. It combines the point-and-click convenience of a graphical user interface (GUI) with the linguistic strength of a command line interface (CLI) and is closely tied to the naming conventions of the Oberon language. Any text appearing (almost) anywhere on the screen can be edited and can therefore be used as command input. Commands are activated by a middle-mouse click on a text fragment of the form Module.Command (optionally followed by Parameters, which are terminated by ~). A command is defined by a procedure, which has an empty argument list. Parameters to the command have to be defined before executing the middle click and must be explicitly scanned and retrieved by the procedure. There are no checks nor any questions asked during command execution. This is sometimes called a "non-modal" user interface (UI). Nothing like a command prompt is required.

Although radically different from a command line, the TUI is very efficient and powerful. A steep ascent in the early learning curve makes it a little bit difficult in the beginning. No questions are asked: this is a deliberate design decision, which needs getting used to. Most editors ask the user when closing a modified text: this is not the case in the Oberon System. The usage of the TUI and programming interface is fully documented in Martin Reiser's book "The Oberon System". A short introduction to the user interface can be found on Niklaus Wirth's home page. The later versions Oberon V4 and Oberon System 3 enhanced the basic interface with different but incompatible implementations for buttons, drop down menus, and other active elements.

Similar user Interfaces have yet to appear in more commonplace operating systems. Rob Pike's Acme system under Plan 9 from Bell Labs was strongly inspired by the Oberon TUI. Whether the worksheet interface of the Macintosh Programmer's Workshop influenced Oberon's TUI or vice versa is difficult to decide: Oberon System was based on Wirth's previous computer design the Lilith, and both the Apple Macintosh (and its precursor Lisa) and the Oberon System (on Ceres and its precursor Lilith) were all inspired by the Alto developed at Xerox PARC.

Versions and availability

The Oberon OS is available for several hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package can be compressed to a single 3.5" floppy disk. There are/were versions which emulated the Oberon OS on top of another operating system and versions which run on bare hardware. The latter ones are called Native Oberon. There are/were native versions for the Ceres, Intel IA-32, and ARM platforms. In 2013 Niklaus Wirth adapted the basic system as described in "Project Oberon" to a current FPGA design. According to the preface of the 2013 edition, the whole system compiles in less than 10 sec on a Spartan-3 board.

A version of the Oberon System 3, which was integrated in the Microsoft Windows OS was Plugin Oberon.

The version called Oberon V4 (see also History) is closer to the original operating system developed by N. Wirth & J. Gutknecht. It was originally developed at ETHZ, but when H.P. Mössenböck went to Institut für Systemsoftware at Johannes-Keppler University in Linz (JKU) the development of V4 moved also. Therefore, V4 is sometimes also called Linz-Oberon in contrast to ETH-Oberon. The most recent version of V4 and extensions are available at JKU. Oberon V4 appears to be orphaned, there are almost no changes since 2000. Another repository of V4 is Claudio Nieder's Oberon V4, which also shows difference between the different V4 implementations. Since 2013 this page moved to/is mirrored at SourceForge. V4 is closer to what would now be called an integrated development environment than an operating system of its own. There were many extensions written for V4, which are still available from the ftp server of SSW at JKU; some documentation can be found on their web-pages more is normally included in the packages in Oberon's special rich text format.

The computer science department at ETHZ has in recent years begun exploring active objects and concurrency for operating systems, and has released an early version of a new language Active Oberon and a new operating system for it, first called AOS and — due to copyright issues — now called A2, and/or Bluebottle. It is available from ETHZ with most source via the Internet. Native versions (A2), i.e. running on the bare hardware, are currently possible for Intel IA-32 and X86-64 single- and multi-processor systems and for the StrongARM CPU family, versions running on top of another operating system are available on Windows (WinAos), Unix (UnixAos), Linux (LinuxAos), and OS-X (DarwinAos).

As a part of an industrial research project the Native Systems Group of ETHZ has developed an application-specific operating system called stailaOS which is based on the latest version Oberon OS. It is targeted towards applications like real-time analytics, high performance trading systems, main memory based ERP etc.

Native Oberon

Native Oberon stands for the Oberon System running on bare hardware. PC-Native Oberon is the version of the Oberon operating system which runs on IA-32 (x86-32) PC hardware. It has minimal hardware requirements (133 MHz Pentium, 100MB hard disk, and a VESA 2 graphics card with a resolution of at least 1024x768 pixel, optionally a 3COM Network card). The basic system runs from a single HD-Floppy and additional software can be installed through the network. The full installation includes the Gadgets GUI. It is written completely in the Oberon programming language.

Some confusion is caused by the fact that there exists a version called LNO (an acronym for Linux Native Oberon), which uses Linux as hardware abstraction layer (HAL). Its goal was to be as compatible as possible to PC-Native Oberon. Other versions of the Oberon System, i.e. without Native in the name, had partially modified interfaces of low level modules. In 2015 Peter Matthias revitalized LNO under the Name OLR (Oberon Linux Revival) as a multi-platform Distribution running seamingless under Intel x86, RISC-V, MIPS, and ARM. It runs nicely on the Raspberry Pi and on the inexpensive CHIP computer; with some tweaking it runs under Tiny Core Linux. Since mastering the Oberon User Interface is absolutely non-trivial, you might proceed to André Fischers Oberon System 3 Tutorial. An expanded version of this tutorial was available as a book. Although it is out of print now, the whole book is available in electronic form under a single user license in every installed version of System 3 (Windows, Linux or Native, i.e. also with the Gadgets toolkit of OLR). If you try to read it in System 3, you are confronted with the classical hen and egg problem: You have to master the user interface to have access to the documentation of the user interface.

Project Oberon 2013

In 2013 Niklaus Wirth and Paul Reed completed a re-implementation of the original Oberon System for the Digilent Xilinx Spartan 3 FPGA Starter Board. The work included a revision of "Project Oberon", identified as Project Oberon (New Edition 2013). The system has since been ported to a Xilinx Spartan 6 FPGA Development Board by Saanlima Electronics. In 2015 Paul Reed collaborated with Victor Yurkovsky in the creation of OberonStation, a Xilinx Spartan 3-based computer designed specifically to run Oberon.

Glossary

RISC-5, the CPU of Project Oberon 2013 based upon Wirth's RISC architecture. Not to be confused with RISC-V.

References

Oberon (operating system) Wikipedia