Oberon/Historical Perspective

Following development of the programming languages Euler, Algol W, Pascal, Modula and Modula-2, Niklaus Wirth proceeded to create the Oberon language (language report) with original release occurring in 1986. The language design was driven by the wish to design an operating system similar to the OS of the Alto and the insight that Modula-2 did not have the required language construct, which we would now call type inheritance. Wirth chose the other viewpoint and called it type extension. Beside other syntactic differences, which were mainly simplifications, type extension is the major difference between Modula-2 and Oberon. Having met at Xerox PARC, Wirth collaborated with Jürg Gutknecht to build a complete operating system written in the Oberon language. This system was also named Oberon. The distinction between language and system is usually obvious from the context.

The Rechenzentrum (RZ, Data Center) at the ETH Zurich, birthplace of Oberon.[1]

In subsequent developments, small syntactical changes created various dialects of the language (Oberon-2, Component Pascal, Active Oberon, and Oberon-07), with compatibilities and incompatibilities. Variants of the operating system also evolved, again entailing small incompatibilities. The four most prominent of these OS flavors are

  • ETH Oberon (formerly System 3, S3) is written in Oberon-2[2].
  • V4 Oberon (aka Linz-Oberon) basically written in Oberon but with many extensions in Oberon-2
  • AOS (aka Bluebottle and A2) written in Active Oberon, and
  • Oberon V5, described in Wirth's Project Oberon, 2013 Edition and written in Oberon-07.

With reasonable effort, incompatibilities can always be resolved to allow shift of source text from one system to another.

Oberon genealogy. Click to enlarge. SVG is rendered from the DOT source.

Beside being a stand-alone operating system, Oberon has been implemented as an emulated operating system atop other systems, decades before virtualization became a buzz-word.

The most prominent of these emulated Oberon Systems was Oberon V4, which was implemented on top of SunOS 1 & 2, Ultrix, Irix, AIX, MacOS 7,8,9 (both 68K and Power PC), AmigaOS, TOS (Atari), OS/2, Microsoft Windows, HPUX, and (of course) Linux[3]. Oberon V4 was sometimes also called Linz-Oberon, due to the fact that it was maintained by the group around Hanspeter Mössenböck, who joined the faculty at JKU Linz in 1994. But also System 3 was implemented on top of another operating system for MacOS (68K and PowerPC), SunOS (SPARC and x86), and Microsft Windows. A2 is running as an emulated OS on Microsoft Windows, Linux, and Solaris (x86). In 2015 Peter Matthias revitalized System 3 under the name "Oberon Linux Revival" (OLR) as a multi-platform proof of concept running both in framebuffer-mode and in the X-Window System on X86, Mips, and ARM hardware under Linux.[4]

Refer to the articles about the language and about the OS for further details and to find references to the extensive literature.

  1. The Rechenzentrum, Clausiusstrasse 55/59, is approximately 500 m north-northwest or right of the domed Hauptgebaeude in this view. See also http://lists.inf.ethz.ch/pipermail/oberon/2021/015854.html. Additional information and photos are at https://www.tg.ethz.ch/en/contact/contact/.
  2. With Oberon-2 being a superset of Oberon, much of the source is Oberon while all is Oberon-2. See language report.
  3. Sources of Oberon V4 at SourceForge
  4. Matthias, Peter. "Oberon Linux Revival". http://oberon.wikidot.com/.