# Oberon (sistema operacional)

O Oberon System é um sistema operacional modular, de usuário único, para somente um processador, multitarefas escrito na linguagem de programação Oberon. Ele foi desenvolvido originalmente no fim da década de 1980 no ETH Zurich. O Sistema Oberon tem uma interface de texto do usuário visual (TUI) ao invés de uma interface de linha de comando (CLI) convencional. Esse TUI foi muito inovador naquele momento e influenciou o design do editor de texto Acme para o sistema operacional Plan 9 from Bell Labs.
O sistema também evoluiu se tornando o sistema A2 com suporte a multiprocessos, capaz de multiprocessamento simétrico (previamente chamado Active Object System (AOS), e depois Bluebottle), com uma zooming user interface (ZUI).

## História

O sistema operacional Oberon se originou como parte da estação de trabalho Ceres basada no NS32032. Ele foi escrito quase que inteiramente (e na versão de 2013 interinamente é valido) na linguagem de programação Oberon O sistema básico foi projetado e implementado por Niklaus Wirth e Jürg Gutknecht e o seu design e implementação foram documentados em completo em seu livro "Project Oberon". A interface do usuário e a referencia do programador são encontradas no livro de Martin Reiser "The Oberon System". O Sistema Oberon foi mais tarde expandido e portado para outras plataformas de hardware por um time na ETH Zurich e houve um reconhecimeto em revistas populares. Wirth e Gutknecht (apesar de ativos como professores de ciência da computação) referem a si mesmos como 'programadores de meio período' no livro Project Oberon. No fim de 2013, poucos meses antes do aniversário de 80 anos, Wirth publicou uma segunda edição do Projeto Oberon. Ele detalha implementar o Sistema Oberon usando uma CPU reduced instruction set computer (RISC) que ele mesmo havia projetado realizada numa placa com um field-programmable gate array (FPGA) Xilinx. Ela foi apresentada num simpósio organizado para o seu aniversário de 80 anos no ETH Zurich. Enquanto isso, vários emuladores para essa versão foram implementados.
De acordo com Josef Templ, um ex membro do grupo de desenvolvimento no Swiss Federal Institute of Technology in Zurich e mais tarde membro do Institut für Systemsoftware do Johannes Kepler University Linz, onde uma versão forkada (V4) foi mantida, a genealogia de diferentes versões do Sistema Oberon é essa:
| Ano | Nome | Nome | Observação |
| 1985 | | | Inicio do projeto Oberon |
| 1987 | V1 | V1 | Uso interno no ETHZ; apenas recursos simples de edição de textos |
| 1991 | V2 | | Modelo de texto extensível em um editor especial chamado Write suportando essas extenções |
| 1991 | | System 3 | Extensões de Kernel suportando persistência de objetos e bibliotecas de objetos suportando embedding de objetos e linking de objetos; Gadgets, Script (editor de texto), Illustrate (graphics editor) |
| 1992 | | | Publicação da Trilogia Oberon: "Project Oberon", "The Oberon System", e "Programming in Oberon" |
| 1992 | V4 | | Funções do Write integradas no editor de texto padrão |
| | | Rel. 1.4 | Desktops |
| 1993 | | Rel. 1.5 | Modelo de documento genérico |
| 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 renomeado ETH-Oberon |
| 2002 | | AOS | Active Object System, também Active Oberon System, mais tarde renomeado Bluebottle, e então A2 |
| 2013 | PO 2013 - V5 | PO 2013 - V5 | Reimplementação do Sistema Oberon original em FPGA |

## Versões e disponibilidade
### Native Oberon

O Native Oberon é um Sistema Oberon que roda diretamente no hardware. PC-Native Oberon é uma versão que roda em hardware PC IA-32. O Native Oberon tem poucos requisitos de hardware: um Pentium de 133 MHz, HD de 100MB, placa gráfica VESA 2 com resolução mínima de 1024x768 pixels, opcionalmente uma placa de rede 3Com. O sistema básico roda a partir de um disquete, e mais software pode ser instalado a partir da rede. A instalação complete inclui GUI Gadgets. É escrito complemente na linguagem Oberon. A versão disponível mais recente é a 2.3.7. Datada de 5 de janeiro de 2003 e as vezes rotulada como um Update/Alpha, especialmente no servidor FTP do ETHZ. Versões posteriores foram incorporadas no AOS/BlueBottle/A2.

## Project Oberon 2013

Em 2013, Wirth e Paul Reed completaram uma reimplementação do Sistema Oberon para o Digilent Xilinx Spartan 3 FPGA Starter Board. O trabalho inclui uma revisão do "Project Oberon", identificado como Project Oberon (New Edition 2013). Em 2015, Reed colaborou com Victor Yurkovsky para criar o OberonStation, um computador baseado num Xilinx Spartan 3 projetado especificamente para rodar Oberon. O sistema dês de então foi portado para um FPGA Xilinx Spartan 6 Pepino development board por Saanlima Electronics, e um Xilinx Artix 7-based Digilent Nexys A7-100 FPGA Trainer board by CFB Software. Peter de Wachter implementou um emulador para ele, e que também foi portado para Java e JavaScript por Michael Schierl, rodando em um navegador moderno, e portado para o Free Pascal/Ultibo por Markus Greim e para Go. Andreas Pirklbauer mantêm uma versão experimental e extensões para o Project Oberon 2013 no GitHub.

## Galeria

* Oberon em um tablet Tatung TWN-5213 CU.
* Oberon V5 RISC emulator on GNURoot Debian on Android on an Alcatel 9015B tablet with keyboard and mouse connected by Bluetooth.

## Glossário

* A2 – Formerly Active Object System (AOS) in 2002, 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: Eidgenössische Technische Hochschule (ETH).
* Fox – The compiler for Active Oberon, appearing in AOS (see A2 entry above).
* 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.
* 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. Not to be confused with RISC-V.
* UnixAOS – Unix-based AOS, see A2 entry above.
* WinAOS – Windows-based AOS, see A2 entry above.