fbpx
Wikipedia

Oberon (operating system)

The Oberon System[3] is a modular, single-user, single-process, multitasking operating system written in the programming language Oberon.[4] It was originally developed in the late 1980s at ETH Zurich. The Oberon System has an unconventional visual text user interface (TUI) instead of a conventional command-line interface (CLI) or graphical user interface (GUI). This TUI was very innovative in its time and influenced the design of the Acme text editor for the Plan 9 from Bell Labs operating system.

Oberon
Tiled window arrangement of Oberon
DeveloperNiklaus Wirth
Jürg Gutknecht
Written inOberon
OS familyOberon
Working stateCurrent
Source modelOpen source
Initial release1987; 36 years ago (1987)[1]
Available inEnglish
PlatformsCeres (NS32032), IA-32, Xilinx Spartan, and many others
Kernel typeobject-oriented
Default
user interface
Text-based user interface
LicenseBSD-style[2]
Preceded byMedos-2
Official websitewww.oberon.ethz.ch

The latest version of the Oberon System, Project Oberon 2013, is still maintained by Niklaus Wirth and several collaborators, but older ETH versions of the system have been orphaned. The system also evolved into the multi-process, symmetric multiprocessing (SMP) capable A2 (formerly Active Object System (AOS),[5] then Bluebottle), with a zooming user interface (ZUI).

History edit

The Oberon operating system was originally developed as part of the NS32032-based Ceres workstation project. It was written almost entirely (and in the 2013 version entirely is valid) in the Oberon programming language.[6] 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".[7] The user Interface and programmers reference is found in Martin Reiser's book "The Oberon System".[8] The Oberon System was later extended and ported to other hardware platforms[9][10][11][12][13] by a team at ETH Zurich and there was recognition in popular magazines.[14][15][16][17][18][19] Wirth and Gutknecht (although being active computer science professors) refer to themselves as 'part-time programmers' in the book Project Oberon.[7] In late 2013, a few months before his 80th birthday, Wirth published a second edition of Project Oberon.[20] It details implementing the Oberon System using a reduced instruction set computer (RISC) CPU of his own design realized on a Xilinx field-programmable gate array (FPGA) board. It was presented at the symposium[21] organized for his 80th birthday at ETH Zurich. In the meantime, several emulators for this version were implemented.[22][23][24][25][26]

According to Josef Templ, a former member of the developer group at Swiss Federal Institute of Technology in Zurich and later member of the Institut für Systemsoftware of Johannes Kepler University Linz, where one forked version (V4) was maintained, the genealogy of the different versions of the Oberon System is this:

Year Name Remark
1985 Start of Oberon project
1987 V1 Internal use at ETHZ;[3][27] simple text editing facilities only
1991 V2 Extensible text model and a special editor named Write[28] supporting these extensions
1991 System 3 Kernel extensions supporting persistent objects and object-libraries supporting object embedding and object linking; Gadgets, Script (text editor), Illustrate (graphics editor)[15]
1992 Publication of Oberon Trilogy: "Project Oberon",[7] "The Oberon System",[8] and "Programming in Oberon"[6]
1992 V4 Functions of Write integrated into standard text editor
Rel. 1.4 Desktops
1993 Rel. 1.5 Generic document model
1994 V4 Hanspeter Mössenböck appointed at JKU (Linz), V4 development moves there
1995 Rel. 2.0 Document space extended to the whole internet; improved bitmap editor: Rembrandt; online tutorials
2000 ETH-Oberon System-3 renamed ETH-Oberon
2002 AOS Active Object System,[5] also Active Oberon System, later renamed Bluebottle, then A2
2013 PO 2013 - V5 Re-implementation of the original Oberon System in FPGA

User interface edit

Oberon has a text user interface (TUI), which is very different from a 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. Text appearing almost anywhere on a screen can be edited and used as command input. Commands are activated by a middle-mouse click[29] on a text fragment of the form Module.Command (optionally followed by parameters, which are terminated by ~). A command is defined by any procedure which is exported and has an empty argument list. Parameters to the command must be defined before executing the middle click, and must be explicitly scanned and retrieved by the procedure. No checks or questions occur during command execution. This is sometimes called a non-modal user interface (UI). Nothing like a command prompt is needed.

Although very different from a command line, the TUI is very efficient and powerful.[30] A steep ascent in the early learning curve makes it a bit difficult at first. 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 use of the TUI and programming interface is fully documented in Martin Reiser's book "The Oberon System".[8] A short introduction to the user interface can be found on Niklaus Wirth's home page.[31] The later Versions of System Oberon, Oberon V4 (V4, sometimes also named Linz-Oberon) and Oberon System 3 (or S3, sometimes also named ETH-Oberon or Spirit of Oberon), enhanced the basic interface with different but incompatible implementations for buttons, drop down menus, and other active elements. V4 used for that purpose a dedicated control character embedded in normal text in contrast to System 3, which extended the kernel by introducing persistent objects. Both extensions include a large set of user interface elements.

Mastering the Oberon user interface, both the purely textual and the so-called Gadgets System (under S3), is non-trivial. Thus, after successfully installing Oberon System 3, it is recommended to study André Fischers . An expanded version of this tutorial was published as a book,[32] which it is out of print now. The whole book is available in electronic form under a one user license in every installed version of System 3 (Windows, Linux, or Native, i.e., also with the Gadgets toolkit of OLR[33]). More information how to get your own copy of the Oberon Companion may be found in the Getting Started section of the Oberon Wikibook.

Similar user Interfaces have yet to appear in more commonplace operating systems. Rob Pike's Acme system for 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: the Oberon System was based on Wirth's prior computer design the Lilith, and both the Apple Macintosh (and its precursor Lisa) and the Oberon System (on Ceres and its precursor Lilith) have the same roots: they were all inspired by the Alto developed at Xerox PARC.

Versions and availability edit

V1 was the first usable version some time before the Oberon Trilogy[6][7][8] was published. A major change in the text model together with the editor named Write[28] yielded V2. As foreshadowed in the table in section History above, there was a major fork in the early 1990s: V4 vs. System 3: The group around Jürg Gutknecht introduced persistent objects and object-libraries thereby extending the kernel. The group around Hanspeter Mössenböck realized similar features by introducing active elements mapped to a special character thereby extending fonts without changing the kernel. System 3 was sometimes also named Spirit of Oberon and later renamed ETH Oberon, whereas V4 was sometimes also named Linz Oberon.

 
The Oberon subsystem in A2 on an XO-1.5.

As of 2017, the Oberon OS is available for several hardware computing platforms, generally in no cost versions and from several sources, which is quite confusing. The Oberon OS is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the full package can be compressed to one 3.5" floppy disk. There are versions which emulated the Oberon OS on another operating system and versions which run on bare hardware. The latter ones are named Native Oberon. There are native versions for the Ceres, Intel IA-32, and ARM platforms. In 2013, Niklaus Wirth adapted the basic system as described in "Project Oberon"[7] to a current FPGA design. According to the preface of the 2013 edition, the whole system compiles in less than 10 seconds on a Spartan-3 board. This version is sometimes also named V5, despite it being much more similar functionally to the original V1 running on the Ceres than any of the later versions.

Plugin Oberon and slim binaries edit

A version of the Oberon System 3,[15] which is more integrated in the Microsoft Windows OS than other implementations was named Plugin Oberon.[34] Plugin Oberon had support for OLE, Netscape Plugins, and the binary format named Oberon Module Interchange (OMI) or slim binaries, which allowed portable object code between Intel x86, Motorola 68K, and PowerPC architectures. Slim binaries were invented by Michael Franz in the early 1990s. They were motivated and opposed to the fat binaries invented by Apple during the transition from 68k to PowerPC architectures.[35] OMI provided portable code based on a compressed version of the abstract syntax tree. The approach of a compressed abstract syntax tree for portable code representation is revived in the Java world for GraalVM and Truffle.

Oberon V4 edit

The version named Oberon V4 (see also History) is closer to the original operating system developed by Wirth and Gutknecht. It was originally developed at ETHZ, but when H.P. Mössenböck went to Institut für Systemsoftware at Johannes-Kepler University in Linz (JKU), the development of V4 moved also. Thus, 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 information is normally included in the packages and it is given in Oberon's special rich text format.

AOS/Bluebottle/A2 edit

Around 2010, the computer science department at ETH Zurich began 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 named Active Object System (AOS) in 2002,[5] then due to trademark issues, renamed Bluebottle in 2005, then renamed A2 in 2008. It is available from ETH Zurich with most source via the Internet. Native versions of A2 run on single- and multi-processor x86-32 and x86-64 hardware, both on bare metal and inside virtual machines. It was previously also available for the StrongARM CPU family. Versions which execute as programs under other operating systems are available on Windows (WinAos), Unix (UnixAos), Linux (LinuxAos), and macOS (DarwinAos). More detailed information about A2 is on the Russian Wikipedia pages about A2.

stailaOS edit

As a part of an industrial research project[36] the Native Systems Group of ETH Zurich has developed an application-specific operating system named stailaOS which is based on the latest version Oberon OS. It is intended for uses such as real-time analytics, high performance automated trading system (ATS), main memory based enterprise resource planning (ERP), etc.

Native Oberon edit

 
The Oberon0 installer running on QEMU in Debian Wheezy. The presentation of the partition table illustrates the comprehensibility of the system in general.

Native Oberon is an Oberon System that runs on bare hardware.[37] PC-Native Oberon is a version that runs on IA-32 (x86-32) PC hardware. There has never been a V4 Native Oberon, so all information in this section implicitly assumes that it is System 3. Native Oberon has small hardware requirements: 133 MHz Pentium, 100MB hard disk, VESA 2 graphics card with resolution minimum of 1024x768 pixels, optional 3Com network card. The basic system runs from one HD floppy disk, and more software can be installed through a network. The full installation includes the Gadgets GUI. It is written fully in the language Oberon. The latest available version was 2.3.7. It is dated 5. January 2003 and sometimes also labeled as Update/Alpha, especially on the ftp-server of ETHZ. Later versions were incorporated in AOS/BlueBottle/A2.

LNO edit

A version named Linux Native Oberon (LNO) uses Linux as a hardware abstraction layer (HAL). Its goal is to be as compatible as possible to PC-Native Oberon. Other versions of the Oberon System, without Native in the name, had partly modified interfaces of low level modules. In 2015, Peter Matthias revitalized LNO under the name Oberon Linux Revival (OLR)[33] as a multi-platform distribution running seamlessly on Intel x86, ARM, MIPS, and RISC-V. It runs well on the Raspberry Pi and on the low cost (discontinued) CHIP computer; with some tweaking (adjusting group membership or/and permissions on some devices) it runs well on Tiny Core Linux. OLR interfaces with Linux kernel by direct system calls. As of June 2017, OLR lacks a network layer.

Project Oberon 2013 edit

In 2013, Wirth and Paul Reed completed a re-implementation of the original Oberon System for the Digilent Xilinx Spartan 3 FPGA Starter Board. The work includes a revision of "Project Oberon",[7] identified as Project Oberon (New Edition 2013). In 2015, Reed collaborated with Victor Yurkovsky to create , a Xilinx Spartan 3-based computer designed specifically to run Oberon. The system has since been ported to a Xilinx Spartan 6 FPGA Pepino development board by Saanlima Electronics, and a Xilinx Artix 7-based Digilent Nexys A7-100 FPGA Trainer board by CFB Software. Peter de Wachter implemented an emulator for it, which was also ported to Java and JavaScript by Michael Schierl, running in modern browsers, and ported to Free Pascal/Ultibo by Markus Greim and to Go.[22][23][24][25] Andreas Pirklbauer maintains an experimental version and extensions of Project Oberon 2013 at GitHub.

Gallery edit

Glossary edit

  • A2 – Formerly Active Object System (AOS) in 2002,[5] renamed Bluebottle in 2005 due to rumored copyright issues, renamed A2 in 2008.
  • ALO – ARM Linux Oberon; in LNO family and for ARM CPU.
  • AOS – see A2 entry above.
  • BB – BlackBox Component Builder. Component Pascal IDE from .
  • Bluebottle – see A2 entry above.
  • CP – Component Pascal. A dialect in the Oberon family most similar to Oberon-2.
  • ETHO – Oberon as developed at Swiss Federal Institute of Technology in Zurich: Eidgenössische Technische Hochschule (ETH).
  • Fox – The compiler for Active Oberon, appearing in AOS (see A2 entry above).[38]
  • LEO – Linux ETH Oberon. ETHO 2.4.3 for Linux x86.
  • LNO – Linux Native Oberon.
  • NO – Native Oberon. Runs on bare hardware rather than on another operating system.
  • OLR – Oberon Linux Revival. A version of NO which uses Linux as a HAL and runs on x86, ARM, and MIPS.
  • OP2 – The Portable Oberon-2 Compiler. OP2 was developed to port Oberon onto commercially available platforms.[39]
  • PACO – (scope) PArallel COmpiler. Appears in A2 (see entry above). Compiles each scope in an independent thread.
  • RISC5 – the central processing unit (CPU) of Project Oberon 2013 based on Wirth's RISC architecture.[40] Not to be confused with RISC-V.
  • UnixAOS – Unix-based AOS, see A2 entry above.
  • WinAOS – Windows-based AOS, see A2 entry above.

See also edit

References edit

  1. ^ Kulka, Irena. . ETH. Archived from the original on 6 January 2017. Retrieved 27 November 2017.
  2. ^ ETH-License
  3. ^ a b Wirth, Niklaus; Gutknecht, Jürg (1988). The Oberon System: Report Number 88 (PDF) (Report).
  4. ^ Wirth, Niklaus: The Programming Language Oberon. Software - Practice and Experience, 18:7, 671-690, Jul. 1988
  5. ^ a b c d Muller, Pieter Johannes (2002). The active object system design and multiprocessor implementation (PDF) (PhD). Swiss Federal Institute of Technology, Zürich (ETH Zurich).
  6. ^ a b c M. Reiser and N. Wirth: Programming in Oberon Addison-Wesley/ACM Press (1992) ISBN 0-201-56543-9. Out of print.
  7. ^ a b c d e f N. Wirth and J. Gutknecht: Project Oberon - The Design of an Operating System and Compiler Addison-Wesley/ACM Press (1992) ISBN 0-201-54428-8. Out of print. Online version of the second edition (2013).
  8. ^ a b c d Reiser, Martin: "The Oberon System - User Guide and Programmer's Manual" - Out-of-print - Addison-Wesley/ACM Press (1991) ISBN 0-201-54422-9
  9. ^ A. R. Disteli, Oberon for PC on an MS-DOS base, Technical Report #203 der ETH Zurich, November 1993, Reprint.
  10. ^ J. Supcik, HP-Oberon, Technical Report #212 of the ETH Zurich, November 1993, Reprint.
  11. ^ M. Franz, MacOberon Reference Manual, Technical Report #142 der ETH Zurich, November 1993, Reprint.
  12. ^ J. Templ, Design and implementation of SPARC-Oberon. Structured Programming, 12, 197–205 (1991).
  13. ^ M. Brandis, R. Crelier, M. Franz, J. Templ, The Oberon System Family. Software-Practice and Experience, Vol. 25(12), 1331–1366, December 1995. Also: Technical Report 174 of the ETH Zurich.
  14. ^ R. Gerike, Wider den Schnickschnack. Oberon System, Teil 1: Anwendersicht. c't 1994 (2) p. 180, Teil 2: Technische Einblicke. c't 1994 (3), p. 240 (German language).
  15. ^ a b c H. Marais, Oberon System 3, Dr. Dobb's Journal, October 1994, pages 42-50.
  16. ^ Pountain, Dick (May 1993). "Oberon: A Glimpse at the Future". Byte. Vol. 18, no. 5. p. 111ff – via Archive.org.
  17. ^ Pountain, Dick (March 1991). "Modula's Children, Part II: Oberon". Byte. Vol. 16, no. 3. pp. 135–142 – via Archive.org.
  18. ^ Pountain, Dick (January 1995). "The Oberon/F System" (PDF). Byte. Vol. 20, no. 1. p. 227f – via Vintage Apple.
  19. ^ Börner, T. (March 1999). "Betriebssysteme: Native Oberon für den PC". Chip (in German). p. 131ff.
  20. ^ Reed, Paul (21 December 2013). "[Oberon] Project Oberon, 2013 Edition". Retrieved 13 February 2021.
  21. ^ Wirth, Niklaus (20 February 2014). Niklaus Wirth Birthday Symposium. ETH Zurich. Retrieved 13 February 2021.
  22. ^ a b De Wachter, Peter (18 August 2020). "Oberon RISC Emulator". GitHub. Retrieved 13 February 2021.
  23. ^ a b Schierl, Michael (19 January 2021). "Project Oberon emulator in JavaScript and Java". GitHub. Retrieved 13 February 2021.
  24. ^ a b Greim, Markus (14 August 2016). "Port of the Oberon RISC Emulator to [Ultibo]". GitHub. Retrieved 13 February 2021.
  25. ^ a b "Project Oberon emulator in Go". GitHub. 18 September 2021. Retrieved 13 February 2021.
  26. ^ de Jong, Roel P. (19 October 2018). "Oberon Workstation". Reactive Instruments. Retrieved 13 February 2021.
  27. ^ Wirth, Niklaus. Designing a System from Scratch. Structured Programming (1989) Vol. 10, pp. 10–18.
  28. ^ a b Szyperski, Clemens A., Write: An extensible text editor for the Oberon system. Swiss Federal Institute of Technology in Zurich (1991). Report 151.
  29. ^ Using the mouse and the keyboard
  30. ^ Franz, Michael (2000). "Oberon: The Overlooked Jewel". In Böszörmény, Lászlo; Gutknecht, Jürg; Pomberger, Gustav (eds.). The School Niklaus Wirth: The Art of Simplicity. Morgan Kaufmann Publishers. pp. 41–53. CiteSeerX 10.1.1.90.7173. ISBN 1-55860-723-4.
  31. ^ Wirth, Niklaus (2015). "How to use the Oberon System" (PDF). Retrieved 24 November 2016.
  32. ^ André Fischer & Hannes Marais: The Oberon Companion. A Guide to Using and Programming Oberon System 3. vdf Hochschulverlag AG (1997). ISBN 978-3728124937, out of print, but see notes in Getting Started section of the Oberon Wikibook
  33. ^ a b Matthias, Peter. "Oberon Linux Revival". Retrieved 31 August 2016.
  34. ^ Zeller, Emil Johann (2002). "Fine-grained integration of Oberon into Windows using pluggable objects" (PDF).
  35. ^ Franz, Michael (1 March 1994). Code-Generation On-the-Fly: A Key to Portable Software. Zürich: Verlag der Fachvereine Hochschulverlag AG an der ETH Zurich. ISBN 978-3728121158.
  36. ^ stailaOS (ETHZ) Project Page 2011-10-04 at the Wayback Machine
  37. ^ Archives of the Oberon Website.
  38. ^ . Archived from the original on 6 February 2018. Retrieved 19 March 2021.
  39. ^ Crelier, Régis. "Separate Compilation and Module Extension". ETH Zurich. Retrieved 18 November 2018.
  40. ^ Wirth, Niklaus. "FPGA-related Work". ETH Zurich. Retrieved 12 September 2016.

External links edit

  • Official website, old ETH Oberon homepage, dead since Jan-2020, redirect to Archive.org:
  • Oberon article on WikiWikiWeb
  • Genealogy and History of the Oberon System
  • Oberon Bibliography
  • Oberon compilers.
  • Install ETH Oberon using QEMU
  • An evolution of Native Oberon with support for Multiprocessor systems with Active Objects (kind of threads running on separate processors, if available) and a zooming user interface available as of 4 March 2020 at ETH Zurich's redmine instance.
  • (May 2016 - this site has broken URLs in the links to the ftp-Server; files were moved from ftp://ftp.inf.ethz.ch/pub/ETHOberon/ to ftp://ftp.ethoberon.ethz.ch/, on 10 March 2022 a mirror of that server is still available at GWDG)
  • ETH PC Native Oberon, Usage Notes
  • Lukas Mathis' Blog about Oberon A nice trace back to the history of user interfaces and Oberon.
  • Oberon V4 main page at Johannes Kepler University Linz
  • Oberon V4 Sources Collected sources for different V4 implementations at SourceForge and Oberon V4 for Linux, more information in the corresponding wiki.
  • http://www.projectoberon.com/, Project Oberon.
  • Experimental Oberon
  • WinOberon aka Plugin Oberon Version 2.6 as provided by Emil Zeller to Alexander Illjin around 2010
  • Oberon System 3 Tutorial by André Fischer (1997),

oberon, operating, system, oberon, system, modular, single, user, single, process, multitasking, operating, system, written, programming, language, oberon, originally, developed, late, 1980s, zurich, oberon, system, unconventional, visual, text, user, interfac. The Oberon System 3 is a modular single user single process multitasking operating system written in the programming language Oberon 4 It was originally developed in the late 1980s at ETH Zurich The Oberon System has an unconventional visual text user interface TUI instead of a conventional command line interface CLI or graphical user interface GUI This TUI was very innovative in its time and influenced the design of the Acme text editor for the Plan 9 from Bell Labs operating system OberonTiled window arrangement of OberonDeveloperNiklaus WirthJurg GutknechtWritten inOberonOS familyOberonWorking stateCurrentSource modelOpen sourceInitial release1987 36 years ago 1987 1 Available inEnglishPlatformsCeres NS32032 IA 32 Xilinx Spartan and many othersKernel typeobject orientedDefaultuser interfaceText based user interfaceLicenseBSD style 2 Preceded byMedos 2Official websitewww wbr oberon wbr ethz wbr chThe latest version of the Oberon System Project Oberon 2013 is still maintained by Niklaus Wirth and several collaborators but older ETH versions of the system have been orphaned The system also evolved into the multi process symmetric multiprocessing SMP capable A2 formerly Active Object System AOS 5 then Bluebottle with a zooming user interface ZUI Contents 1 History 2 User interface 3 Versions and availability 3 1 Plugin Oberon and slim binaries 3 2 Oberon V4 3 3 AOS Bluebottle A2 3 4 stailaOS 3 5 Native Oberon 3 6 LNO 4 Project Oberon 2013 5 Gallery 6 Glossary 7 See also 8 References 9 External linksHistory editThe Oberon operating system was originally developed as part of the NS32032 based Ceres workstation project It was written almost entirely and in the 2013 version entirely is valid in the Oberon programming language 6 The basic system was designed and implemented by Niklaus Wirth and Jurg Gutknecht and its design and implementation is fully documented in their book Project Oberon 7 The user Interface and programmers reference is found in Martin Reiser s book The Oberon System 8 The Oberon System was later extended and ported to other hardware platforms 9 10 11 12 13 by a team at ETH Zurich and there was recognition in popular magazines 14 15 16 17 18 19 Wirth and Gutknecht although being active computer science professors refer to themselves as part time programmers in the book Project Oberon 7 In late 2013 a few months before his 80th birthday Wirth published a second edition of Project Oberon 20 It details implementing the Oberon System using a reduced instruction set computer RISC CPU of his own design realized on a Xilinx field programmable gate array FPGA board It was presented at the symposium 21 organized for his 80th birthday at ETH Zurich In the meantime several emulators for this version were implemented 22 23 24 25 26 According to Josef Templ a former member of the developer group at Swiss Federal Institute of Technology in Zurich and later member of the Institut fur Systemsoftware of Johannes Kepler University Linz where one forked version V4 was maintained the genealogy of the different versions of the Oberon System is this Year Name Remark1985 Start of Oberon project1987 V1 Internal use at ETHZ 3 27 simple text editing facilities only1991 V2 Extensible text model and a special editor named Write 28 supporting these extensions1991 System 3 Kernel extensions supporting persistent objects and object libraries supporting object embedding and object linking Gadgets Script text editor Illustrate graphics editor 15 1992 Publication of Oberon Trilogy Project Oberon 7 The Oberon System 8 and Programming in Oberon 6 1992 V4 Functions of Write integrated into standard text editorRel 1 4 Desktops1993 Rel 1 5 Generic document model1994 V4 Hanspeter Mossenbock appointed at JKU Linz V4 development moves there1995 Rel 2 0 Document space extended to the whole internet improved bitmap editor Rembrandt online tutorials2000 ETH Oberon System 3 renamed ETH Oberon2002 AOS Active Object System 5 also Active Oberon System later renamed Bluebottle then A22013 PO 2013 V5 Re implementation of the original Oberon System in FPGAUser interface editOberon has a text user interface TUI which is very different from a 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 Text appearing almost anywhere on a screen can be edited and used as command input Commands are activated by a middle mouse click 29 on a text fragment of the form Module Command optionally followed by parameters which are terminated by A command is defined by any procedure which is exported and has an empty argument list Parameters to the command must be defined before executing the middle click and must be explicitly scanned and retrieved by the procedure No checks or questions occur during command execution This is sometimes called a non modal user interface UI Nothing like a command prompt is needed Although very different from a command line the TUI is very efficient and powerful 30 A steep ascent in the early learning curve makes it a bit difficult at first 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 use of the TUI and programming interface is fully documented in Martin Reiser s book The Oberon System 8 A short introduction to the user interface can be found on Niklaus Wirth s home page 31 The later Versions of System Oberon Oberon V4 V4 sometimes also named Linz Oberon and Oberon System 3 or S3 sometimes also named ETH Oberon or Spirit of Oberon enhanced the basic interface with different but incompatible implementations for buttons drop down menus and other active elements V4 used for that purpose a dedicated control character embedded in normal text in contrast to System 3 which extended the kernel by introducing persistent objects Both extensions include a large set of user interface elements Mastering the Oberon user interface both the purely textual and the so called Gadgets System under S3 is non trivial Thus after successfully installing Oberon System 3 it is recommended to study Andre Fischers Oberon System 3 Tutorial An expanded version of this tutorial was published as a book 32 which it is out of print now The whole book is available in electronic form under a one user license in every installed version of System 3 Windows Linux or Native i e also with the Gadgets toolkit of OLR 33 More information how to get your own copy of the Oberon Companion may be found in the Getting Started section of the Oberon Wikibook Similar user Interfaces have yet to appear in more commonplace operating systems Rob Pike s Acme system for 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 the Oberon System was based on Wirth s prior computer design the Lilith and both the Apple Macintosh and its precursor Lisa and the Oberon System on Ceres and its precursor Lilith have the same roots they were all inspired by the Alto developed at Xerox PARC Versions and availability editV1 was the first usable version some time before the Oberon Trilogy 6 7 8 was published A major change in the text model together with the editor named Write 28 yielded V2 As foreshadowed in the table in section History above there was a major fork in the early 1990s V4 vs System 3 The group around Jurg Gutknecht introduced persistent objects and object libraries thereby extending the kernel The group around Hanspeter Mossenbock realized similar features by introducing active elements mapped to a special character thereby extending fonts without changing the kernel System 3 was sometimes also named Spirit of Oberon and later renamed ETH Oberon whereas V4 was sometimes also named Linz Oberon nbsp The Oberon subsystem in A2 on an XO 1 5 As of 2017 the Oberon OS is available for several hardware computing platforms generally in no cost versions and from several sources which is quite confusing The Oberon OS is typically extremely compact Even with an Oberon compiler assorted utilities including a web browser TCP IP networking and a GUI the full package can be compressed to one 3 5 floppy disk There are versions which emulated the Oberon OS on another operating system and versions which run on bare hardware The latter ones are named Native Oberon There are native versions for the Ceres Intel IA 32 and ARM platforms In 2013 Niklaus Wirth adapted the basic system as described in Project Oberon 7 to a current FPGA design According to the preface of the 2013 edition the whole system compiles in less than 10 seconds on a Spartan 3 board This version is sometimes also named V5 despite it being much more similar functionally to the original V1 running on the Ceres than any of the later versions Plugin Oberon and slim binaries edit A version of the Oberon System 3 15 which is more integrated in the Microsoft Windows OS than other implementations was named Plugin Oberon 34 Plugin Oberon had support for OLE Netscape Plugins and the binary format named Oberon Module Interchange OMI or slim binaries which allowed portable object code between Intel x86 Motorola 68K and PowerPC architectures Slim binaries were invented by Michael Franz in the early 1990s They were motivated and opposed to the fat binaries invented by Apple during the transition from 68k to PowerPC architectures 35 OMI provided portable code based on a compressed version of the abstract syntax tree The approach of a compressed abstract syntax tree for portable code representation is revived in the Java world for GraalVM and Truffle Oberon V4 edit The version named Oberon V4 see also History is closer to the original operating system developed by Wirth and Gutknecht It was originally developed at ETHZ but when H P Mossenbock went to Institut fur Systemsoftware at Johannes Kepler University in Linz JKU the development of V4 moved also Thus 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 information is normally included in the packages and it is given in Oberon s special rich text format AOS Bluebottle A2 edit Main article A2 operating system Around 2010 the computer science department at ETH Zurich began 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 named Active Object System AOS in 2002 5 then due to trademark issues renamed Bluebottle in 2005 then renamed A2 in 2008 It is available from ETH Zurich with most source via the Internet Native versions of A2 run on single and multi processor x86 32 and x86 64 hardware both on bare metal and inside virtual machines It was previously also available for the StrongARM CPU family Versions which execute as programs under other operating systems are available on Windows WinAos Unix UnixAos Linux LinuxAos and macOS DarwinAos More detailed information about A2 is on the Russian Wikipedia pages about A2 stailaOS edit As a part of an industrial research project 36 the Native Systems Group of ETH Zurich has developed an application specific operating system named stailaOS which is based on the latest version Oberon OS It is intended for uses such as real time analytics high performance automated trading system ATS main memory based enterprise resource planning ERP etc Native Oberon edit nbsp The Oberon0 installer running on QEMU in Debian Wheezy The presentation of the partition table illustrates the comprehensibility of the system in general Native Oberon is an Oberon System that runs on bare hardware 37 PC Native Oberon is a version that runs on IA 32 x86 32 PC hardware There has never been a V4 Native Oberon so all information in this section implicitly assumes that it is System 3 Native Oberon has small hardware requirements 133 MHz Pentium 100MB hard disk VESA 2 graphics card with resolution minimum of 1024x768 pixels optional 3Com network card The basic system runs from one HD floppy disk and more software can be installed through a network The full installation includes the Gadgets GUI It is written fully in the language Oberon The latest available version was 2 3 7 It is dated 5 January 2003 and sometimes also labeled as Update Alpha especially on the ftp server of ETHZ Later versions were incorporated in AOS BlueBottle A2 LNO edit A version named Linux Native Oberon LNO uses Linux as a hardware abstraction layer HAL Its goal is to be as compatible as possible to PC Native Oberon Other versions of the Oberon System without Native in the name had partly modified interfaces of low level modules In 2015 Peter Matthias revitalized LNO under the name Oberon Linux Revival OLR 33 as a multi platform distribution running seamlessly on Intel x86 ARM MIPS and RISC V It runs well on the Raspberry Pi and on the low cost discontinued CHIP computer with some tweaking adjusting group membership or and permissions on some devices it runs well on Tiny Core Linux OLR interfaces with Linux kernel by direct system calls As of June 2017 update OLR lacks a network layer Project Oberon 2013 editIn 2013 Wirth and Paul Reed completed a re implementation of the original Oberon System for the Digilent Xilinx Spartan 3 FPGA Starter Board The work includes a revision of Project Oberon 7 identified as Project Oberon New Edition 2013 In 2015 Reed collaborated with Victor Yurkovsky to create OberonStation a Xilinx Spartan 3 based computer designed specifically to run Oberon The system has since been ported to a Xilinx Spartan 6 FPGA Pepino development board by Saanlima Electronics and a Xilinx Artix 7 based Digilent Nexys A7 100 FPGA Trainer board by CFB Software Peter de Wachter implemented an emulator for it which was also ported to Java and JavaScript by Michael Schierl running in modern browsers and ported to Free Pascal Ultibo by Markus Greim and to Go 22 23 24 25 Andreas Pirklbauer maintains an experimental version and extensions of Project Oberon 2013 at GitHub Gallery edit nbsp Oberon on a Tatung TWN 5213 CU tablet nbsp Oberon V5 RISC emulator on GNURoot Debian on Android on an Alcatel 9015B tablet with keyboard and mouse connected by Bluetooth Glossary editA2 Formerly Active Object System AOS in 2002 5 renamed Bluebottle in 2005 due to rumored copyright issues renamed A2 in 2008 ALO ARM Linux Oberon in LNO family and for ARM CPU AOS see A2 entry above BB BlackBox Component Builder Component Pascal IDE from Oberon Microsystems Bluebottle see A2 entry above CP Component Pascal A dialect in the Oberon family most similar to Oberon 2 ETHO Oberon as developed at Swiss Federal Institute of Technology in Zurich Eidgenossische Technische Hochschule ETH Fox The compiler for Active Oberon appearing in AOS see A2 entry above 38 LEO Linux ETH Oberon ETHO 2 4 3 for Linux x86 LNO Linux Native Oberon NO Native Oberon Runs on bare hardware rather than on another operating system OLR Oberon Linux Revival A version of NO which uses Linux as a HAL and runs on x86 ARM and MIPS OP2 The Portable Oberon 2 Compiler OP2 was developed to port Oberon onto commercially available platforms 39 PACO scope PArallel COmpiler Appears in A2 see entry above Compiles each scope in an independent thread RISC5 the central processing unit CPU of Project Oberon 2013 based on Wirth s RISC architecture 40 Not to be confused with RISC V UnixAOS Unix based AOS see A2 entry above WinAOS Windows based AOS see A2 entry above See also editA2 operating system Oberon programming language Oberon 2 programming languageReferences edit Kulka Irena Oberon Welcome to Oberon ETH Archived from the original on 6 January 2017 Retrieved 27 November 2017 ETH License a b Wirth Niklaus Gutknecht Jurg 1988 The Oberon System Report Number 88 PDF Report Wirth Niklaus The Programming Language Oberon Software Practice and Experience 18 7 671 690 Jul 1988 a b c d Muller Pieter Johannes 2002 The active object system design and multiprocessor implementation PDF PhD Swiss Federal Institute of Technology Zurich ETH Zurich a b c M Reiser and N Wirth Programming in Oberon Addison Wesley ACM Press 1992 ISBN 0 201 56543 9 Out of print a b c d e f N Wirth and J Gutknecht Project Oberon The Design of an Operating System and Compiler Addison Wesley ACM Press 1992 ISBN 0 201 54428 8 Out of print Online version of the second edition 2013 a b c d Reiser Martin The Oberon System User Guide and Programmer s Manual Out of print Addison Wesley ACM Press 1991 ISBN 0 201 54422 9 A R Disteli Oberon for PC on an MS DOS base Technical Report 203 der ETH Zurich November 1993 Reprint J Supcik HP Oberon Technical Report 212 of the ETH Zurich November 1993 Reprint M Franz MacOberon Reference Manual Technical Report 142 der ETH Zurich November 1993 Reprint J Templ Design and implementation of SPARC Oberon Structured Programming 12 197 205 1991 M Brandis R Crelier M Franz J Templ The Oberon System Family Software Practice and Experience Vol 25 12 1331 1366 December 1995 Also Technical Report 174 of the ETH Zurich R Gerike Wider den Schnickschnack Oberon System Teil 1 Anwendersicht c t 1994 2 p 180 Teil 2 Technische Einblicke c t 1994 3 p 240 German language a b c H Marais Oberon System 3 Dr Dobb s Journal October 1994 pages 42 50 Pountain Dick May 1993 Oberon A Glimpse at the Future Byte Vol 18 no 5 p 111ff via Archive org Pountain Dick March 1991 Modula s Children Part II Oberon Byte Vol 16 no 3 pp 135 142 via Archive org Pountain Dick January 1995 The Oberon F System PDF Byte Vol 20 no 1 p 227f via Vintage Apple Borner T March 1999 Betriebssysteme Native Oberon fur den PC Chip in German p 131ff Reed Paul 21 December 2013 Oberon Project Oberon 2013 Edition Retrieved 13 February 2021 Wirth Niklaus 20 February 2014 Niklaus Wirth Birthday Symposium ETH Zurich Retrieved 13 February 2021 a b De Wachter Peter 18 August 2020 Oberon RISC Emulator GitHub Retrieved 13 February 2021 a b Schierl Michael 19 January 2021 Project Oberon emulator in JavaScript and Java GitHub Retrieved 13 February 2021 a b Greim Markus 14 August 2016 Port of the Oberon RISC Emulator to Ultibo GitHub Retrieved 13 February 2021 a b Project Oberon emulator in Go GitHub 18 September 2021 Retrieved 13 February 2021 de Jong Roel P 19 October 2018 Oberon Workstation Reactive Instruments Retrieved 13 February 2021 Wirth Niklaus Designing a System from Scratch Structured Programming 1989 Vol 10 pp 10 18 a b Szyperski Clemens A Write An extensible text editor for the Oberon system Swiss Federal Institute of Technology in Zurich 1991 Report 151 Using the mouse and the keyboard https web archive org web 20171225160628 http www ethoberon ethz ch ethoberon tutorial Mouse contents html Franz Michael 2000 Oberon The Overlooked Jewel In Boszormeny Laszlo Gutknecht Jurg Pomberger Gustav eds The School Niklaus Wirth The Art of Simplicity Morgan Kaufmann Publishers pp 41 53 CiteSeerX 10 1 1 90 7173 ISBN 1 55860 723 4 Wirth Niklaus 2015 How to use the Oberon System PDF Retrieved 24 November 2016 Andre Fischer amp Hannes Marais The Oberon Companion A Guide to Using and Programming Oberon System 3 vdf Hochschulverlag AG 1997 ISBN 978 3728124937 out of print but see notes in Getting Started section of the Oberon Wikibook a b Matthias Peter Oberon Linux Revival Retrieved 31 August 2016 Zeller Emil Johann 2002 Fine grained integration of Oberon into Windows using pluggable objects PDF Franz Michael 1 March 1994 Code Generation On the Fly A Key to Portable Software Zurich Verlag der Fachvereine Hochschulverlag AG an der ETH Zurich ISBN 978 3728121158 stailaOS ETHZ Project Page Archived 2011 10 04 at the Wayback Machine Archives of the Oberon Website Fox Tool Archived from the original on 6 February 2018 Retrieved 19 March 2021 Crelier Regis Separate Compilation and Module Extension ETH Zurich Retrieved 18 November 2018 Wirth Niklaus FPGA related Work ETH Zurich Retrieved 12 September 2016 External links edit nbsp Wikibooks has a book on the topic of Oberon Official website old ETH Oberon homepage dead since Jan 2020 redirect to Archive org archived version Oberon article on WikiWikiWeb Genealogy and History of the Oberon System version at archive org Oberon Bibliography Oberon compilers Install ETH Oberon using QEMU BlueBottle AOS A2 An evolution of Native Oberon with support for Multiprocessor systems with Active Objects kind of threads running on separate processors if available and a zooming user interface available as of 4 March 2020 update at ETH Zurich s redmine instance Native Oberon Home Page redirected to Archive org May 2016 this site has broken URLs in the links to the ftp Server files were moved from ftp ftp inf ethz ch pub ETHOberon to ftp ftp ethoberon ethz ch on 10 March 2022 a mirror of that server is still available at GWDG Native Oberon Hardware Compatibility redirected to archive org ETH PC Native Oberon Usage Notes Lukas Mathis Blog about Oberon A nice trace back to the history of user interfaces and Oberon Oberon V4 main page at Johannes Kepler University Linz Oberon V4 Sources Collected sources for different V4 implementations at SourceForge and Oberon V4 for Linux more information in the corresponding wiki http www projectoberon com Project Oberon Experimental Oberon WinOberon aka Plugin Oberon Version 2 6 as provided by Emil Zeller to Alexander Illjin around 2010 Oberon System 3 Tutorial by Andre Fischer 1997 archived version Retrieved from https en wikipedia org w index php title Oberon operating system amp oldid 1182746327, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.