stringtranslate.com

Oberón (sistema operativo)

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).

Historia

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:

Interfaz de usuario

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 .

Versiones y disponibilidad

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.

El subsistema Oberon en A2 en un XO-1.5 .

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.

Complemento Oberon ybinarios delgados

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 .

Oberón V4

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.

AOS/Botella Azul/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 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.

stailaOS

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.

Oberón nativo

El instalador de Oberon0 que se ejecuta en QEMU en Debian Wheezy. La presentación de la tabla de particiones ilustra la comprensibilidad del sistema en general.

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 .

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 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 , OLR carece de una capa de red.

Proyecto Oberón 2013

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 .

Galería

Glosario

Ver también

Referencias

  1. ^ Kulka, Irena. "Oberon: Bienvenido a Oberon". ETH . Archivado desde el original el 6 de enero de 2017 . Consultado el 27 de noviembre de 2017 .
  2. ^ Licencia ETH
  3. ^ ab Wirth, Niklaus ; Gutknecht, Jürg (1988). El sistema Oberon: Informe número 88 (PDF) (Reporte).
  4. ^ Wirth, Niklaus: el lenguaje de programación Oberon. Software: práctica y experiencia, 18:7, 671-690, julio de 1988
  5. ^ abcd Müller, Pieter Johannes (2002). El diseño del sistema de objetos activos y la implementación multiprocesador (PDF) (Doctor). Instituto Federal Suizo de Tecnología de Zúrich ( ETH Zurich ).
  6. ^ abc M. Reiser y N. Wirth: Programación en Oberon Addison-Wesley/ACM Press (1992) ISBN 0-201-56543-9 . Agotado. 
  7. ^ abcdef N. Wirth y J. Gutknecht: Proyecto Oberon: el diseño de un sistema operativo y compilador Addison-Wesley/ACM Press (1992) ISBN 0-201-54428-8 . Agotado. Versión online de la segunda edición (2013). 
  8. ^ abcd Reiser, Martin: "El sistema Oberon - Guía del usuario y manual del programador" - Agotado - Addison-Wesley/ACM Press (1991) ISBN 0-201-54422-9 
  9. ^ AR Disteli, Oberon para PC sobre una base MS-DOS, Informe técnico n.º 203 der ETH Zurich , noviembre de 1993, reimpresión.
  10. ^ J. Supcik, HP-Oberon, Informe técnico nº 212 de ETH Zurich , noviembre de 1993, reimpresión.
  11. ^ M. Franz, Manual de referencia de MacOberon, Informe técnico n.° 142 der ETH Zurich , noviembre de 1993, reimpresión.
  12. ^ J. Templ, Diseño e implementación de SPARC-Oberon. Programación estructurada, 12, 197–205 (1991).
  13. ^ M. Brandis, R. Crelier, M. Franz, J. Templ, La familia del sistema Oberon. Práctica y experiencia de software, vol. 25(12), 1331–1366, diciembre de 1995. También: Informe técnico 174 de la ETH Zurich .
  14. ^ R. Gerike, Schnickschnack más amplio. 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).
  15. ^ abc H. Marais, Oberon System 3, Dr. Dobb's Journal, octubre de 1994, páginas 42-50.
  16. ^ Pountain, Dick (mayo de 1993). "Oberon: un vistazo al futuro". Byte . vol. 18, núm. 5. pág. 111 y siguientes - a través de Archive.org.
  17. ^ Pountain, Dick (marzo de 1991). "Los hijos de Modula, Parte II: Oberon". Byte . vol. 16, núm. 3. págs. 135-142 - a través de Archive.org.
  18. ^ Pountain, Dick (enero de 1995). "El sistema Oberon/F" (PDF) . Byte . vol. 20, núm. 1. pág. 227f - vía Vintage Apple.
  19. ^ Börner, T. (marzo de 1999). "Betriebssysteme: Oberon nativo para PC". Chip (en alemán). pag. 131 y sigs.
  20. ^ Reed, Paul (21 de diciembre de 2013). "[Oberon] Proyecto Oberon, edición 2013" . Consultado el 13 de febrero de 2021 .
  21. ^ Wirth, Niklaus (20 de febrero de 2014). Simposio de cumpleaños de Niklaus Wirth. ETH Zúrich . Consultado el 13 de febrero de 2021 .
  22. ^ ab De Wachter, Peter (18 de agosto de 2020). "Emulador Oberon RISC". GitHub . Consultado el 13 de febrero de 2021 .
  23. ^ ab Schierl, Michael (19 de enero de 2021). "Emulador del Proyecto Oberon en JavaScript y Java". GitHub . Consultado el 13 de febrero de 2021 .
  24. ^ ab Greim, Markus (14 de agosto de 2016). "Puerto del emulador Oberon RISC a [Ultibo]". GitHub . Consultado el 13 de febrero de 2021 .
  25. ^ ab "Emulador del Proyecto Oberon en Go". GitHub . 18 de septiembre de 2021 . Consultado el 13 de febrero de 2021 .
  26. ^ de Jong, Roel P. (19 de octubre de 2018). "Estación de trabajo Oberon". Instrumentos reactivos . Consultado el 13 de febrero de 2021 .
  27. ^ Wirth, Niklaus. Diseñando un sistema desde cero. Programación estructurada (1989) vol. 10, págs. 10-18.
  28. ^ ab Szyperski, Clemens A., Write: un editor de texto extensible para el sistema Oberon. Instituto Federal Suizo de Tecnología en Zurich (1991). Informe 151.
  29. ^ Usando el mouse y el teclado https://web.archive.org/web/20171225160628/http://www.ethoberon.ethz.ch/ethoberon/tutorial/Mouse.contents.html
  30. ^ Franz, Michael (2000). "Oberon: la joya pasada por alto". En Böszörmény, Lászlo; Gutknecht, Jürg ; Pomberger, Gustav (eds.). La escuela Niklaus Wirth: el arte de la simplicidad . Editores Morgan Kaufmann. págs. 41–53. CiteSeerX 10.1.1.90.7173 . ISBN  1-55860-723-4.
  31. ^ Wirth, Niklaus (2015). "Cómo utilizar el Sistema Oberon" (PDF) . Consultado el 24 de noviembre de 2016 .
  32. ^ André Fischer y Hannes Marais: el compañero de Oberon. Una guía para el uso y programación del sistema Oberon 3. vdf Hochschulverlag AG (1997). ISBN 978-3728124937 , agotado, pero consulte las notas en la sección Introducción del Wikilibro de Oberon. 
  33. ^ ab Matías, Pedro. "Renacimiento de Oberon Linux" . Consultado el 31 de agosto de 2016 .
  34. ^ Zeller, Emil Johann (2002). "Integración detallada de Oberon en Windows mediante objetos conectables" (PDF) .
  35. ^ 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.
  36. ^ Página del proyecto stailaOS (ETHZ) Archivada el 4 de octubre de 2011 en Wayback Machine.
  37. ^ Archivos del sitio web de Oberon.
  38. ^ "Herramienta Fox". Archivado desde el original el 6 de febrero de 2018 . Consultado el 19 de marzo de 2021 .
  39. ^ Crelier, Régis. "Compilación separada y extensión de módulo". ETH Zúrich . Consultado el 18 de noviembre de 2018 .
  40. ^ Wirth, Niklaus . "Trabajo relacionado con FPGA". ETH Zúrich . Consultado el 12 de septiembre de 2016 .

Enlaces externos