El sistema Oberon [3] es un sistema operativo modular, de un solo usuario, de un solo proceso y multitarea escrito en el lenguaje de programación Oberon . [4] Fue desarrollado originalmente a finales de la década de 1980 en ETH Zurich . El sistema Oberon tiene una interfaz de usuario de texto visual (TUI) no 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 e influyó en el diseño del editor de texto Acme para el sistema operativo Plan 9 de Bell Labs .
El sistema también evolucionó hasta convertirse en el A2 multiproceso y multiprocesamiento simétrico (SMP) (anteriormente Active Object System (AOS), [5] y luego Bluebottle ), con una interfaz de usuario con zoom (ZUI).
El sistema operativo Oberon se desarrolló originalmente 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 válido en su totalidad) 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 "Proyecto Oberon". [7] La referencia de la interfaz de usuario y los programadores se encuentra en el libro de Martin Reiser "The Oberon System". [8] Posteriormente, el sistema Oberon fue ampliado y portado a otras plataformas de hardware [9] [10] [11] [12] [13] por un equipo de ETH Zurich y obtuvo reconocimiento en revistas populares. [14] [15] [16] [17] [18] [19] Wirth y Gutknecht (aunque son profesores activos de informática ) se refieren a sí mismos como "programadores a tiempo parcial" en el libro Proyecto Oberon . [7] A finales de 2013, unos meses antes de cumplir 80 años, Wirth publicó una segunda edición del Proyecto Oberon. [20] Detalla la implementación del sistema Oberon utilizando una CPU de computadora con conjunto de instrucciones reducido (RISC) de su propio diseño realizada en una placa de matriz de puertas programables en campo (FPGA) Xilinx. Fue presentado en el simposio [21] organizado con motivo de 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, ex miembro del grupo de desarrolladores del Instituto Federal Suizo de Tecnología en Zurich y más tarde miembro del Institut für Systemsoftware de la Universidad Johannes Kepler de Linz , donde se mantuvo una versión bifurcada (V4), la genealogía de las diferentes versiones del Sistema Oberon es este:
Oberon tiene una interfaz de usuario de texto (TUI), que es muy diferente a una interfaz de usuario de terminal . Combina la comodidad de apuntar y hacer clic de una interfaz gráfica de usuario (GUI) con la solidez lingüística de una interfaz de línea de comandos (CLI) y está estrechamente vinculado a las convenciones de nomenclatura del lenguaje Oberon. El texto que aparece casi en cualquier lugar de la pantalla se puede editar y utilizar como entrada de comando . Los comandos se activan haciendo clic con el botón central del mouse [29] en un fragmento de texto del formulario Module.Command
(opcionalmente seguido de parámetros, que terminan en ~
). Un comando está definido por 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 el procedimiento debe escanearlos y recuperarlos explícitamente. No se producen comprobaciones ni preguntas durante la ejecución del comando. A esto a veces se le llama interfaz de usuario (UI) no modal . No se necesita nada parecido a un símbolo del sistema .
Aunque es muy diferente de una línea de comando, la TUI es muy eficiente y poderosa. [30] Un ascenso pronunciado en la curva de aprendizaje temprano hace que sea un poco difícil al principio. No se hacen preguntas: se trata de una decisión de diseño deliberada a la que hay que acostumbrarse. La mayoría de los editores preguntan al usuario al cerrar un texto modificado: este no es el caso en el Sistema Oberon. El uso de la TUI y la interfaz de programación está completamente documentado en el libro de Martin Reiser "The Oberon System". [8] Puede encontrar una breve introducción a la interfaz de usuario en la página de inicio de Niklaus Wirth . [31] Las versiones posteriores del Sistema Oberon, Oberon V4 (V4, a veces también llamado Linz-Oberon) y Oberon System 3 (o S3, a veces también llamado ETH-Oberon o Spirit of Oberon), mejoraron la interfaz básica con diferentes pero incompatibles. implementaciones para botones, menús desplegables y otros elementos activos. V4 utilizó para ese propósito un carácter de control dedicado incrustado en texto normal en contraste con el Sistema 3, que amplió el núcleo introduciendo objetos persistentes. Ambas extensiones incluyen un gran conjunto de elementos de interfaz de usuario.
Dominar la interfaz de usuario de Oberon, tanto la puramente textual como el llamado Sistema de Gadgets (en S3), no es trivial. Por lo tanto, después de instalar exitosamente Oberon System 3, se recomienda estudiar el Tutorial de André Fischer Oberon System 3. Se publicó una versión ampliada de este tutorial como libro [32] , que ahora está agotado. El libro completo está disponible en formato electrónico bajo una licencia de un solo usuario en cada versión instalada de System 3 (Windows, Linux o Native, es decir, también con el kit de herramientas Gadgets de OLR [33] ). Puede encontrar más información sobre cómo obtener su propia copia de Oberon Companion en la sección Primeros pasos del Wikilibro de Oberon.
Interfaces de usuario similares aún no han aparecido en sistemas operativos más comunes. El sistema Acme de Rob Pike para Plan 9 de Bell Labs se inspiró fuertemente en el Oberon TUI. Es difícil decidir si la interfaz de la hoja de trabajo del Taller del Programador de Macintosh influyó en la TUI de Oberon o viceversa: el Sistema Oberon se basó en el diseño de computadora anterior de Wirth, la Lilith , y tanto en el Apple Macintosh (y su precursora Lisa ) como en el Sistema Oberon ( sobre Ceres y su precursora Lilith) tienen las mismas raíces: todos se inspiraron en el Alto desarrollado en Xerox PARC .
La V1 fue la primera versión utilizable algún tiempo antes de que se publicara la Trilogía Oberon [6] [7] [8] . Un cambio importante en el modelo de texto junto con el editor llamado Write [28] dio como resultado la V2. Como se presagia en la tabla de la sección Historia anterior, hubo una bifurcación importante a principios de la década de 1990: V4 vs. System 3: el grupo alrededor de Jürg Gutknecht introdujo objetos persistentes y bibliotecas de objetos, extendiendo así el núcleo. El grupo de Hanspeter Mössenböck logró características similares introduciendo elementos activos asignados a un carácter especial, ampliando así las fuentes sin cambiar el núcleo. El Sistema 3 a veces también se llamaba Spirit of Oberon y luego pasó a llamarse ETH Oberon, mientras que V4 a veces también se llamaba Linz Oberon.
A partir de 2017, Oberon OS está disponible para varias plataformas informáticas de hardware , generalmente en versiones gratuitas y de varias fuentes, lo que resulta bastante confuso. El sistema operativo Oberon suele ser extremadamente compacto. Incluso con un compilador Oberon , una variedad de utilidades que incluyen un navegador web , redes TCP/IP y una GUI, el paquete completo se puede comprimir en un disquete de 3,5" . Hay versiones que emulan el sistema operativo Oberon en otro sistema operativo y versiones que Estos últimos se denominan Native Oberon. Hay versiones nativas para las plataformas Ceres , Intel IA-32 y ARM . En 2013, Niklaus Wirth adaptó el sistema básico como se describe en el "Proyecto Oberon" [7] . 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 que funcionalmente es mucho más similar a la versión V1 original. en Ceres que cualquiera de las versiones posteriores.
Una versión de Oberon System 3, [15] que está más integrada en el sistema operativo Microsoft Windows que otras implementaciones se denominó Plugin Oberon. [34] El complemento Oberon tenía soporte para OLE , complementos de Netscape y el formato binario llamado Oberon Module Interchange (OMI) o binarios delgados , que permitía código objeto portátil entre las arquitecturas Intel x86 , Motorola 68K y PowerPC . Los binarios delgados fueron inventados por Michael Franz a principios de los años 1990. Estaban motivados y se oponían a los binarios gordos inventados por Apple durante la transición de las arquitecturas 68k a PowerPC. [35] OMI proporcionó código portátil 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 portátil revive en el mundo Java para GraalVM y Truffle .
La versión denominada Oberon V4 (ver también Historia) se acerca más al sistema operativo original desarrollado por Wirth y Gutknecht. Originalmente se desarrolló en ETHZ, pero cuando HP Mössenböck fue al Institut für Systemsoftware de la Universidad Johannes-Kepler en Linz (JKU), el desarrollo de V4 también avanzó. Por eso, a V4 a veces también se le llama Linz-Oberon, a diferencia de ETH-Oberon. La versión más reciente de V4 y las extensiones están disponibles en JKU. Oberon V4 parece estar huérfano, casi no ha habido cambios desde 2000. Otro repositorio de V4 es Oberon V4 de Claudio Nieder, que también muestra diferencias entre las diferentes implementaciones de V4. Desde 2013, esta página se trasladó y se refleja en SourceForge. V4 está más cerca de lo que ahora se llamaría un entorno de desarrollo integrado que de un sistema operativo propio. Hubo muchas extensiones escritas para V4, que todavía están disponibles en el servidor ftp de SSW en JKU; Se puede encontrar cierta documentación en sus páginas web, normalmente se incluye más información en los paquetes y se proporciona en el formato de texto enriquecido especial de Oberon.
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 por primera vez Active Object System (AOS) en 2002. , [5] luego, debido a problemas de marcas, pasó a llamarse Bluebottle en 2005 y luego a A2 en 2008. Está disponible en ETH Zurich con la mayoría de las fuentes a través de Internet . Las versiones nativas de A2 se ejecutan en hardware IA-32 y x86-64 de uno o varios procesadores , tanto en máquinas virtuales como dentro de ellas. Anteriormente también estaba disponible para la familia de CPU StrongARM . Las versiones que se ejecutan como programas en otros sistemas operativos están disponibles en Windows (WinAos), Unix (UnixAos), Linux (LinuxAos) y macOS (DarwinAos). Puede encontrar información más detallada sobre A2 en las páginas de la Wikipedia en ruso sobre A2.
Como parte de un proyecto de investigación industrial [36], el Native Systems Group de ETH Zurich ha desarrollado un sistema operativo para aplicaciones específicas llamado stailaOS , que se basa en la última versión de Oberon OS. Está destinado a usos como análisis en tiempo real , aplicaciones financieras, planificación de recursos empresariales (ERP) basada en memoria principal, etc.
Native Oberon es un sistema Oberon que se ejecuta en hardware básico. [37] PC-Native Oberon es una versión que se ejecuta en hardware de PC IA-32 . Nunca ha existido un Oberon nativo V4, por lo que toda la información en esta sección supone implícitamente que es el Sistema 3. Oberon nativo tiene pequeños requisitos de hardware: Pentium de 133 MHz, disco duro de 100 MB, tarjeta gráfica VESA 2 con resolución mínima de 1024 x 768 píxeles, opcional Tarjeta de red 3Com . 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 de Gadgets. Está escrito íntegramente en el idioma Oberon. La última versión disponible fue la 2.3.7. Está fechado el 5 de enero de 2003 y, a veces, también está etiquetado como Update/Alpha, especialmente en el servidor ftp de ETHZ. Se incorporaron versiones posteriores en AOS/BlueBottle/A2 .
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 Oberon nativo de PC. 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 con el nombre de Oberon Linux Revival (OLR) [33] como una distribución multiplataforma que se ejecuta perfectamente en Intel x86, ARM , MIPS y RISC-V . Funciona bien en Raspberry Pi y en la computadora CHIP de bajo costo (descontinuada); con algunos ajustes (ajustar la membresía del grupo y/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 . En junio de 2017 [actualizar], OLR carece de una capa de red.
En 2013, Wirth y Paul Reed completaron una reimplementación del sistema Oberon original para la placa inicial 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, una computadora basada en Xilinx Spartan 3 diseñada específicamente para ejecutar Oberon. Desde entonces, el sistema ha sido portado a una placa de desarrollo Xilinx Spartan 6 FPGA Pepino de Saanlima Electronics, y a una placa de entrenamiento FPGA Digilent Nexys A7-100 basada en Xilinx Artix 7 de CFB Software. Peter de Wachter implementó un emulador para él, que también fue portado a Java y JavaScript por Michael Schierl, ejecutándose en navegadores modernos, y portado a Free Pascal /Ultibo por Markus Greim y to Go. [22] [23] [24] [25] Andreas Pirklbauer mantiene una versión experimental y extensiones del Proyecto Oberon 2013 en GitHub .