El sistema Oberon [ 3 ] es un sistema operativo modular, monousuario, monoproceso y multitarea escrito en el lenguaje de programación Oberon . [ 4 ] Fue desarrollado originalmente a finales de la década de 1980 en la ETH Zúrich . El sistema Oberon tiene una interfaz de usuario de texto visual (TUI) poco convencional en lugar de una interfaz de línea de comandos (CLI) o una interfaz gráfica de usuario (GUI) convencionales. Esta TUI fue muy innovadora en su época. Influyó en el diseño del editor de texto Acme para el sistema operativo Plan 9 de Bell Labs y guarda algunas similitudes con la "apariencia y sensación" de la interfaz de hoja de cálculo del Macintosh Programmer's Workshop .
El sistema también evolucionó hasta convertirse en el A2 (anteriormente Active Object System (AOS), [ 5 ] luego Bluebottle ), capaz de multiprocesamiento simétrico (SMP) , con una interfaz de usuario con zoom (ZUI).
Historia
El sistema operativo Oberon se originó como parte del proyecto de estación de trabajo Ceres basado en NS32032 . Fue escrito casi en su totalidad (y en la versión de 2013 es totalmente válido) en el lenguaje de programación Oberon . [ 6 ] El sistema básico fue diseñado e implementado por Niklaus Wirth y Jürg Gutknecht y su diseño e implementación están completamente documentados en su libro "Project Oberon". [ 7 ] La interfaz de usuario y la referencia para programadores se encuentran en el libro de Martin Reiser "The Oberon System". [ 8 ] El sistema Oberon fue posteriormente extendido y portado a otras plataformas de hardware [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] por un equipo en ETH Zurich y fue reconocido en revistas populares. [ 14 ] [ 15 ] [ 16 ] [ 17 ] [ 18 ] [ 19 ] Wirth y Gutknecht (aunque son profesores de informática en activo ) se refieren a sí mismos como 'programadores a tiempo parcial' en el libro Project Oberon . [ 7 ] A finales de 2013, unos meses antes de su 80 cumpleaños, Wirth publicó una segunda edición de Project Oberon. [ 20 ] En ella se detalla la implementación del sistema Oberon utilizando una CPU de conjunto de instrucciones reducido (RISC) de su propio diseño, realizada en una placa de matriz de puertas programables en campo (FPGA) de Xilinx. Fue presentada en el simposio [ 21 ] organizado para su 80 cumpleaños en ETH Zurich . Mientras tanto, se implementaron varios emuladores para esta versión. [ 22 ] [ 23 ] [ 24 ] [ 25 ] [ 26 ]
Según Josef Templ, antiguo miembro del grupo de desarrolladores del Instituto Federal Suizo de Tecnología de Zúrich y posteriormente miembro del Instituto de Software de Sistemas de la Universidad Johannes Kepler de Linz , donde se mantuvo una versión derivada (V4), la genealogía de las diferentes versiones del Sistema Oberon es la siguiente:
Interfaz de usuario
Oberon tiene una interfaz de usuario de texto (TUI), que es muy diferente de una interfaz de usuario de terminal . Combina la comodidad de apuntar y hacer clic de una interfaz gráfica de usuario (GUI) con la fuerza lingüística de una interfaz de línea de comandos (CLI) y está estrechamente ligada a las convenciones de nomenclatura del lenguaje Oberon. El texto que aparece en casi cualquier parte de la pantalla se puede editar y usar como entrada de comandos . Los comandos se activan haciendo clic con el botón central del ratón [ 29 ] en un fragmento de texto del tipo Module.Command(opcionalmente seguido de parámetros, que terminan con ~). Un comando se define mediante cualquier procedimiento que se exporte y tenga una lista de argumentos vacía. Los parámetros del comando deben definirse antes de ejecutar el clic central, y deben ser escaneados y recuperados explícitamente por el procedimiento. No se realizan comprobaciones ni preguntas durante la ejecución del comando. Esto a veces se denomina interfaz de usuario (UI) no modal .
Versiones y disponibilidad
V1 fue la primera versión utilizable algún tiempo antes de que se publicara la Trilogía de Oberón [ 6 ] [ 7 ] [ 8 ] . Un cambio importante en el modelo de texto junto con el editor llamado Write [ 28 ] dio como resultado V2. Como se anticipó en la tabla en la sección Historia anterior, hubo una bifurcación importante a principios de la década de 1990: V4 vs. Sistema 3: El grupo de Jürg Gutknecht introdujo objetos persistentes y bibliotecas de objetos extendiendo así el núcleo. El grupo de Hanspeter Mössenböck implementó características similares al introducir elementos activos mapeados a un carácter especial extendiendo así las fuentes sin cambiar el núcleo. El Sistema 3 a veces también se llamaba Spirit of Oberon y más tarde se renombró ETH Oberon, mientras que V4 a veces también se llamaba Linz Oberon. Las diferencias entre V2.2 y V4 se resumen en un documento PostScript encontrado en SourceForge que se convirtió a PDF y se subió a Wikipedia.

A partir de 2017, el sistema operativo Oberon está disponible para varias plataformas de hardware , generalmente en versiones gratuitas y de diversas fuentes, lo cual resulta bastante confuso. El sistema operativo Oberon suele ser extremadamente compacto. Incluso con un compilador Oberon , diversas utilidades que incluyen un navegador web , redes TCP/IP y una interfaz gráfica de usuario (GUI), el paquete completo se puede comprimir en un disquete de 3,5" . Existen versiones que emulan el sistema operativo Oberon en otro sistema operativo y versiones que se ejecutan directamente en el hardware. Estas últimas se denominan Oberon nativo . Hay versiones nativas para las plataformas Ceres , Intel IA-32 y ARM . En 2013, Niklaus Wirth adaptó el sistema básico descrito en "Project Oberon" [ 7 ] a un diseño FPGA actual . Según el prefacio de la edición de 2013, todo el sistema se compila en menos de 10 segundos en una placa Spartan-3. Esta versión a veces también se denomina V5, a pesar de ser mucho más similar funcionalmente a la V1 original que se ejecuta en Ceres que cualquiera de las versiones posteriores.
Complemento Oberon y binarios slim
Una versión del Oberon System 3, [ 15 ] que está más integrada en el sistema operativo Microsoft Windows que otras implementaciones se denominó Plugin Oberon. [ 30 ] Plugin Oberon tenía soporte para OLE , Netscape Plugins y el formato binario llamado Oberon Module Interchange (OMI) o binarios delgados , que permitían código objeto portable entre arquitecturas Intel x86 , Motorola 68K y PowerPC . Los binarios delgados fueron inventados por Michael Franz a principios de la década de 1990. Estaban motivados y se oponían a los binarios pesados inventados por Apple durante la transición de las arquitecturas 68k a PowerPC. [ 31 ] OMI proporcionaba código portable basado en una versión comprimida del árbol de sintaxis abstracta. El enfoque de un árbol de sintaxis abstracta comprimido para la representación de código portable se revive en el mundo Java para GraalVM y Truffle .
Oberón V4
La versión denominada Oberon V4 (véase también Historia ) se acerca más al sistema operativo original desarrollado por Wirth y Gutknecht. Originalmente se desarrolló en la ETHZ, pero cuando HP Mössenböck se trasladó al Institut für Systemsoftware de la Universidad Johannes-Kepler de Linz (JKU) , el desarrollo de V4 también se trasladó. Por ello, a veces se denomina a V4 Linz-Oberon, en contraposición a ETH-Oberon. La versión más reciente de V4 y sus extensiones están disponibles en el enlace de la JKU «Oberon del servidor de Linz» (véanse también las notas a continuación). Oberon V4 parece estar desactualizado, ya que prácticamente no ha sufrido cambios desde el año 2000. Otro repositorio de V4 es el de Claudio Nieder, Oberon V4 , que también muestra las diferencias entre las distintas implementaciones de V4. Desde 2013, esta página se encuentra en SourceForge ( donde también se encuentra su réplica ). V4 se asemeja más a lo que hoy se denominaría un entorno de desarrollo integrado que a un sistema operativo propio. Se escribieron muchas extensiones para V4, que aún están disponibles en el directorio LinzTools del archivo zip de la antigua área de descarga ftp del servidor de SSW en JKU . Se puede encontrar documentación en sus páginas web . Los enlaces de esta página están todos rotos, pero apuntaban a archivos *.Cod en el directorio Oberon/LinzTools del servidor ftp, que se replican en el subdirectorio Oberon/Oberon/LinzTools del archivo zip mencionado anteriormente. Normalmente, los paquetes incluyen más información, que se presenta en el formato de texto enriquecido especial de Oberon. Los comandos para extraerlos de los archivos *.Cod con formato ASCII suelen estar presentes en las primeras líneas de dichos archivos.
AOS/Bluebottle/A2
Alrededor de 2010, el departamento de informática de ETH Zurich comenzó a explorar objetos activos y concurrencia para sistemas operativos, y lanzó una versión temprana de un nuevo lenguaje, Active Oberon , y un nuevo sistema operativo para él, llamado inicialmente Active Object System (AOS) en 2002, [ 5 ] luego, debido a problemas de marca registrada, renombrado Bluebottle en 2005, y luego A2 en 2008. Está disponible en ETH Zurich con la mayor parte del código fuente a través de Internet . Las versiones nativas de A2 se ejecutan en hardware IA-32 y x86-64 de uno y varios procesadores , tanto en metal desnudo como dentro de máquinas virtuales. Anteriormente también estaba disponible para la familia de CPU StrongARM . Las versiones que se ejecutan como programas bajo otros sistemas operativos están disponibles en Windows (WinAos), Unix (UnixAos), Linux (LinuxAos) y macOS (DarwinAos). Información más detallada sobre A2 se encuentra en las páginas de Wikipedia en ruso sobre A2 .

stailaOS
Como parte de un proyecto de investigación industrial [ 32 ], el Grupo de Sistemas Nativos de la ETH Zúrich ha desarrollado un sistema operativo específico para aplicaciones llamado stailaOS , basado en la última versión del sistema operativo Oberon. Está diseñado para usos como análisis en tiempo real , aplicaciones financieras, planificación de recursos empresariales (ERP) basada en memoria principal , etc.
Oberón nativo

Native Oberon es un sistema Oberon que se ejecuta en hardware desnudo. [ 33 ] PC-Native Oberon es una versión que se ejecuta en hardware de PC IA-32 . Nunca ha habido un V4 Native Oberon, por lo que toda la información en esta sección asume implícitamente que es el Sistema 3. Native Oberon tiene requisitos de hardware bajos: Pentium de 133 MHz, disco duro de 100 MB, tarjeta gráfica VESA 2 con una resolución mínima de 1024x768 píxeles, tarjeta de red 3Com opcional . El sistema básico se ejecuta desde un disquete HD, y se puede instalar más software a través de una red. La instalación completa incluye la GUI Gadgets. Está escrita completamente en el lenguaje Oberon. La última versión disponible fue la 2.3.7. Tiene fecha del 5 de enero de 2003 y a veces también está etiquetada como Update/Alpha, especialmente en el servidor ftp de ETHZ. Las versiones posteriores se incorporaron en AOS/BlueBottle/A2 .
LNO
Una versión llamada Linux Native Oberon (LNO) utiliza Linux como capa de abstracción de hardware (HAL). Su objetivo es ser lo más compatible posible con PC-Native Oberon. Otras versiones del sistema Oberon, sin Native en el nombre, tenían interfaces parcialmente modificadas de módulos de bajo nivel. En 2015, Peter Matthias revitalizó LNO bajo el nombre Oberon Linux Revival (OLR) [ 34 ] como una distribución multiplataforma que se ejecuta sin problemas en Intel x86, ARM , MIPS y RISC-V . Funciona bien en la Raspberry Pi y en la computadora CHIP de bajo costo (descontinuada) ; con algunos ajustes (modificando la pertenencia a grupos o los permisos en algunos dispositivos) funciona bien en Tiny Core Linux . OLR interactúa con el kernel de Linux mediante llamadas directas al sistema . A partir de junio de 2017 , OLR carece de una capa de red.
CARÁCTER DISTINTIVO
ETHOS fue una versión experimental orientada a objetos del Sistema Oberon creada por Clemens Szyperski para su tesis doctoral [ 35 ].
Proyecto Oberón 2013
En 2013, Wirth y Paul Reed completaron una reimplementación del sistema Oberon original para la placa de desarrollo FPGA Digilent Xilinx Spartan 3. El trabajo incluye una revisión del "Proyecto Oberon" [ 7 ] , identificado como "Proyecto Oberon (Nueva edición 2013)".
En 2015, Reed colaboró con Victor Yurkovsky para crear OberonStation, un ordenador basado en Xilinx Spartan 3 diseñado específicamente para ejecutar Oberon.
Posteriormente, el sistema fue adaptado a una placa de desarrollo Xilinx Spartan 6 FPGA Pepino por Saanlima Electronics, y a una placa de entrenamiento Digilent Nexys A7-100 FPGA basada en Xilinx Artix 7 por CFB Software.
Peter de Wachter implementó un emulador para ello, que posteriormente fue adaptado a Java y JavaScript por Michael Schierl, y que ahora funciona en navegadores modernos.
Galería
Oberon en una tableta Tatung TWN-5213 CU.
Emulador Oberon V5 RISC en GNURoot Debian en Android en una tableta Alcatel 9015B con teclado y ratón conectados por Bluetooth .
Glosario
- A2 – Anteriormente Active Object System (AOS) en 2002, [ 5 ] renombrado Bluebottle en 2005 debido a supuestos problemas de derechos de autor, renombrado A2 en 2008.
- ALO – ARM Linux Oberon; pertenece a la familia LNO y está diseñado para procesadores ARM.
- AOS – véase la entrada A2 más arriba.
- BB – BlackBox Component Builder . IDE de componentes Pascal de Oberon Microsystems .
- Bluebottle – véase la entrada A2 más arriba.
- CP – Componente Pascal . Un dialecto de la familia Oberon muy similar a Oberon-2.
- ETHO – Oberon desarrollado en el Instituto Federal Suizo de Tecnología en Zurich: Eidgenössische Technische Hochschule (ETH).
- Fox – El compilador para Active Oberon , que aparece en AOS (ver la entrada A2 más arriba). [ 36 ]
- LEO – Linux ETH Oberon. ETHO 2.4.3 para Linux x86.
- LNO – Oberon nativo de Linux.
- NO – Oberon nativo. Se ejecuta directamente sobre el hardware en lugar de sobre otro sistema operativo.
- OLR – Oberon Linux Revival. Una versión de NO que utiliza Linux como HAL y se ejecuta en x86 , ARM y MIPS .
- OP2 – El compilador portátil Oberon-2. OP2 se desarrolló para portar Oberon a plataformas disponibles comercialmente. [ 37 ]
- PACO – (ámbito) Compilador paralelo. Aparece en A2 (ver entrada anterior). Compila cada ámbito en un hilo independiente.
- PIO - Programación en Oberon .
- RISC5: la unidad central de procesamiento (CPU) del Proyecto Oberon 2013 basada en la arquitectura RISC de Wirth . [ 38 ] No confundir con RISC-V .
- UnixAOS – Sistema operativo asociado basado en Unix, véase la entrada A2 más arriba.
- WinAOS – Sistema operativo asociado basado en Windows, véase la entrada A2 más arriba.
Véase también
- Libro de Oberón en Wikibook
- A2 (sistema operativo)
- Oberón (lenguaje de programación)
- Lenguaje de programación Oberon-2
Referencias
- ↑ Kulka, Irena. "Oberon: Bienvenido a Oberon" . ETH . Archivado del original el 6 de enero de 2017. Consultado el 27 de noviembre de 2017 .
- ↑ Licencia ETH
- ^ Wirth , Niklaus ; Gutknecht, Jürg (1988). El sistema Oberon: Informe número 88 (PDF) (Reporte).
- ↑ Wirth, Niklaus: El lenguaje de programación Oberon. Software - Practice and Experience, 18:7, 671-690, julio de 1988.
- 1 2 3 4 Muller, Pieter Johannes (2002). El diseño del sistema de objetos activos y la implementación multiprocesador (PDF) (PhD). Instituto Federal Suizo de Tecnología, Zúrich ( ETH Zúrich ).
- 1 2 3 M. Reiser y N. Wirth: Programación en Oberon Archivado el 16 de abril de 2016 en Wayback Machine Addison-Wesley/ACM Press (1992) ISBN 0-201-56543-9Agotado.
- 1 2 3 4 5 6 N. Wirth y J. Gutknecht: Proyecto Oberon: El diseño de un sistema operativo y un compilador Addison-Wesley/ACM Press (1992) ISBN 0-201-54428-8Agotado. Versión en línea de la segunda edición (2013) .
- 1 2 3 Reiser, Martin: "El sistema Oberon: Guía del usuario y manual del programador" - Agotado - Addison-Wesley/ACM Press (1991) ISBN 0-201-54422-9
- ↑ AR Disteli, Oberon para PC sobre una base MS-DOS, Informe técnico n.º 203 de la ETH Zúrich , noviembre de 1993, reimpresión .
- ↑ J. Supcik, HP-Oberon, Informe técnico n.º 212 de la ETH Zúrich , noviembre de 1993, reimpresión .
- ↑ M. Franz, Manual de referencia de MacOberon, Informe técnico n.º 142 de la ETH Zúrich , noviembre de 1993, reimpresión .
- ↑ J. Templ, Diseño e implementación de SPARC-Oberon. Structured Programming, 12, 197–205 (1991).
- ↑ M. Brandis, R. Crelier, M. Franz, J. Templ, La familia de sistemas Oberon. Software-Practice and Experience, Vol. 25(12), 1331–1366, diciembre de 1995. También: Informe técnico 174 de la ETH Zurich .
- ↑ R. Gerike, Wider den Schnickschnack. Sistema Oberon, Parte 1: Anwendersicht. c't 1994 (2) p. 180, Parte 2: Technische Einblicke. c't 1994 (3), pág. 240 (idioma alemán).
- 1 2 3 H. Marais, Oberon System 3, Dr. Dobb's Journal, octubre de 1994, páginas 42-50 .
- ↑ Pountain, Dick (mayo de 1993). "Oberon: Un vistazo al futuro" . Byte . Vol. 18, n.º 5, págs. 111 y siguientes – vía Archive.org.
- ↑ Pountain, Dick (marzo de 1991). "Los hijos de Modula, parte II: Oberón" . Byte . Vol. 16, n.º 3, págs. 135-142 , vía Archive.org.
- ↑ Pountain, Dick (enero de 1995). "El sistema Oberon/F" (PDF) . Byte . Vol. 20, n.º 1. pág. 227 y siguientes – vía Vintage Apple.
- ^ Börner, T. (marzo de 1999). "Betriebssysteme: Oberon nativo para PC". Chip (en alemán). pag. 131 y sigs.
- ↑ Reed, Paul (21 de diciembre de 2013). " [ Oberon ] Proyecto Oberon, edición de 2013" . Recuperado el 13 de febrero de 2021 .
- ↑ Wirth, Niklaus (20 de febrero de 2014). Simposio de cumpleaños de Niklaus Wirth . ETH Zurich . Recuperado el 13 de febrero de 2021 .
- ↑ De Wachter, Peter (18 de agosto de 2020). "Oberon RISC Emulator" . GitHub . Consultado el 13 de febrero de 2021 .
- ↑ Schierl, Michael (19 de enero de 2021). "Emulador del proyecto Oberon en JavaScript y Java" . GitHub . Recuperado el 13 de febrero de 2021 .
- ↑ Greim, Markus (14 de agosto de 2016). "Port of the Oberon RISC Emulator to [ Ultibo ] " . GitHub . Consultado el 13 de febrero de 2021 .
- ↑ "Emulador de Project Oberon en Go" . GitHub . 18 de septiembre de 2021. Consultado el 13 de febrero de 2021 .
- ↑ de Jong, Roel P. (19 de octubre de 2018). "Oberon Workstation" . Reactive Instruments . Recuperado el 13 de febrero de 2021 .
- ↑ Wirth, Niklaus. Diseño de un sistema desde cero. Programación estructurada (1989) Vol. 10, pp. 10–18.
- 1 2 Szyperski, Clemens A., Write: Un editor de texto extensible para el sistema Oberon. Instituto Federal Suizo de Tecnología en Zúrich (1991). Informe 151 .
- ↑ Uso del ratón y el teclado https://web.archive.org/web/20171225160628/http://www.ethoberon.ethz.ch/ethoberon/tutorial/Mouse.contents.html
- ↑ Zeller, Emil Johann (2002). "Integración detallada de Oberon en Windows mediante objetos conectables" (PDF) .
- ^ Franz, Michael (1 de marzo de 1994). Generación de código sobre la marcha: una clave para el software portátil . Zúrich: Verlag der Fachvereine Hochschulverlag AG an der ETH Zurich. ISBN 978-3728121158.
- ↑ Página del proyecto stailaOS (ETHZ) archivada el 4 de octubre de 2011 en Wayback Machine
- ↑ Archivos del sitio web de Oberon.
- ↑ Matthias, Peter. "Oberon Linux Revival" . Consultado el 31 de agosto de 2016 .
- ↑ Szyperski, Clemens (1992). Insight ETHOS: Sobre la orientación a objetos en sistemas operativos (Tesis doctoral). Zúrich, Suiza: ETH Zúrich . ISBN 3-7281-1948-2.Colección electrónica de ETHZ .
- ↑ "Herramienta Fox" . Archivado del original el 6 de febrero de 2018. Consultado el 19 de marzo de 2021 .
- ↑ Crelier, Régis. "Compilación separada y extensión de módulos" . ETH Zurich . Consultado el 18 de noviembre de 2018 .
- ↑ Wirth, Niklaus . "Trabajo relacionado con FPGA" . ETH Zurich . Consultado el 12 de septiembre de 2016 .
Enlaces externos
- Sitio web oficial , antigua página de inicio de ETH Oberon, inactiva desde enero de 2020, redirige aArchive.org:versión archivada
- Artículo sobre Oberón en WikiWikiWeb
- Genealogía e historia del sistema Oberon (versión en archive.org)
- Bibliografía de Oberón
- Compiladores Oberon.
- Instala ETH Oberon usando QEMU.
- BlueBottle/AOS/A2: Una evolución de Native Oberon con soporte para sistemas multiprocesador con objetos activos (una especie de subprocesos que se ejecutan en procesadores separados, si están disponibles) y una interfaz de usuario con zoom disponible desde el 4 de marzo de 2020. en la instancia de redmine de ETH Zurich .
- La página de inicio nativa de Oberon fue redirigida a Archive.org (mayo de 2016: este sitio tiene URL rotas en los enlaces al servidor ftp; los archivos se movieron de ftp://ftp.inf.ethz.ch/pub/ETHOberon/ a ftp://ftp.ethoberon.ethz.ch/ , el 10 de marzo de 2022 todavía hay una copia de ese servidor disponible en GWDG ).
- Compatibilidad nativa con hardware Oberon redirigida a archive.org
- Notas de uso de Oberon nativo para PC de ETH
- El blog de Lukas Mathis sobre Oberon: Un interesante repaso a la historia de las interfaces de usuario y de Oberon.
- Página principal de Oberon V4 en la Universidad Johannes Kepler de Linz.
- Fuentes de Oberon V4: Se han recopilado fuentes para diferentes implementaciones de V4 en SourceForge y Oberon V4 para Linux; encontrará más información en la wiki correspondiente .
- https://www.projectoberon.net/, Proyecto Oberón.
- Oberón experimental
- WinOberon, también conocido como Plugin Oberon, versión 2.6, proporcionado por Emil Zeller a Alexander Illjin alrededor del año 2010.
- Tutorial del Sistema Oberon 3 por André Fischer (1997), versión archivada
- Sistemas operativos de software libre
- Sistemas operativos orientados a objetos
- Software de 1987