stringtranslate.com

Géneros (sistema operativo)

Genera es un sistema operativo comercial y un entorno de desarrollo integrado para máquinas Lisp creado por Symbolics . Es esencialmente una bifurcación de un sistema operativo anterior que se originó en las máquinas Lisp del Laboratorio de IA del Instituto Tecnológico de Massachusetts (MIT) que Symbolics había utilizado en común con Lisp Machines , Inc. (LMI) y Texas Instruments (TI). Symbolics también vendió Genera como Open Genera , que ejecuta Genera en computadoras basadas en un procesador Alpha de Digital Equipment Corporation (DEC) que usa Tru64 UNIX . En 2021, se lanzó una nueva versión como Portable Genera que se ejecuta en Tru64 UNIX en Alpha, Linux en x86-64 y Arm64 Linux , y macOS en x86-64 y Arm64 ( Apple Silicon M Series ). Se publica y se licencia como software propietario .

Genera es un ejemplo de un sistema operativo orientado a objetos basado en el lenguaje de programación Lisp .

Genera admite el desarrollo incremental e interactivo de software complejo utilizando una combinación de estilos de programación con amplio soporte para programación orientada a objetos .

El sistema operativo de la máquina Lisp del MIT

El sistema operativo Lisp Machine fue escrito en Lisp Machine Lisp . Era una estación de trabajo de un solo usuario dirigida inicialmente a desarrolladores de software para proyectos de inteligencia artificial (IA). [1] El sistema tenía una gran pantalla de mapa de bits , un mouse, un teclado, una interfaz de red , una unidad de disco y ranuras para expansión. El sistema operativo soportaba este hardware y proporcionaba (entre otros):

Este ya era un sistema operativo y un entorno de desarrollo completos basados ​​en Lisp para un solo usuario.

El sistema operativo de la máquina MIT Lisp se desarrolló desde mediados de los años 1970 hasta principios de los años 1980.

En 2006, el código fuente de este sistema operativo de máquina Lisp del MIT se publicó como software gratuito y de código abierto . [2]

Sistema operativo genérico

Symbolics desarrolló nuevas máquinas Lisp y publicó el sistema operativo con el nombre de Genera . La última versión es la 8.5. Symbolics Genera se desarrolló a principios de los años 1980 y principios de los 1990. En los últimos años, el desarrollo implicó principalmente parches, con muy pocas funciones nuevas.

Symbolics desarrolló Genera basándose en esta base del sistema operativo de la máquina MIT Lisp. Vende el sistema operativo y el software en capas . Parte del software en capas se ha integrado en Genera en versiones posteriores. Symbolics mejoró el software del sistema operativo de la máquina MIT Lisp original y lo amplió. El sistema operativo Genera sólo estaba disponible para máquinas Symbolics Lisp y la máquina virtual Open Genera .

Symbolics Genera tiene muchas características y es compatible con todas las versiones de diversos hardware que Symbolics construyó a lo largo de su vida. Su código fuente tiene más de un millón de líneas; el número depende de la versión y de la cantidad de software instalado. Symbolics Genera fue publicado en cinta magnética y CD-ROM . El lanzamiento del sistema operativo también proporcionó la mayor parte del código fuente del sistema operativo y sus aplicaciones. El usuario tiene acceso gratuito a todas las partes del sistema operativo en ejecución y puede escribir cambios y extensiones. El código fuente del sistema operativo se divide en sistemas . Estos sistemas agrupan fuentes, binarios y otros archivos. El kit de herramientas de construcción de sistemas (SCT) mantiene las dependencias, los componentes y las versiones de todos los sistemas. Un sistema tiene dos números: un número de versión mayor y otro menor. El número de versión principal cuenta el número de construcciones completas de un sistema. La versión menor cuenta la cantidad de parches para ese sistema. Un parche es un archivo que se puede cargar para solucionar problemas o proporcionar extensiones a una versión particular de un sistema.

Symbolics desarrolló una versión llamada Open Genera , que incluía una máquina virtual que permitía ejecutar Genera en estaciones de trabajo basadas en DEC Alpha, además de varias extensiones y aplicaciones de Genera que se vendían por separado (como la suite Symbolics S-Graphics ). Además, crearon un nuevo sistema operativo llamado Minima para usos integrados, en Common Lisp . La última versión es Portable Genera , que tiene la máquina virtual portada a procesadores x86-64 , Arm64 y Apple M1 , además del procesador DEC Alpha . La máquina virtual se ejecuta entonces bajo Linux y macOS , además de Tru64 UNIX .

El sistema operativo de la máquina Lisp original se desarrolló en Lisp Machine Lisp , utilizando la extensión orientada a objetos Flavors para ese Lisp. Symbolics proporcionó un sucesor de Flavours llamado New Flavours . Posteriormente Symbolics también admitió Common Lisp y Common Lisp Object System (CLOS). Luego, Symbolics Common Lisp se convirtió en el dialecto Lisp predeterminado para escribir software con Genera. El software del sistema operativo fue escrito principalmente en Lisp Machine Lisp (llamado ZetaLisp ) y Symbolics Common Lisp. Estos dialectos Lisp son proporcionados por Genera. Además, partes del software utilizaban Flavors, New Flavors y Common Lisp Object System. Algunas de las partes más antiguas del sistema operativo Genera se han reescrito en Symbolics Common Lisp y el sistema Common Lisp Object. Muchas partes de los sistemas operativos permanecieron escritas en ZetaLisp y Flavours (o New Flavours).

Interfaz de usuario

Las primeras versiones de Symbolics Genera se construyeron con el sistema de ventanas de interfaz gráfica de usuario (GUI) original del sistema operativo de la máquina Lisp. Luego, Symbolics desarrolló un sistema de ventanas radicalmente nuevo llamado Dynamic Windows con una interfaz de usuario basada en presentaciones . [3] Este sistema de ventanas se introdujo con Genera 7 en 1986. [4] Muchas de las aplicaciones de Genera han estado usando Windows dinámico para su interfaz de usuario . Finalmente, hubo un movimiento para portar partes del sistema de ventanas para ejecutarlas en otras implementaciones de Common Lisp por parte de otros proveedores como Common Lisp Interface Manager (CLIM). Han estado disponibles versiones de CLIM (entre otras) para Allegro Common Lisp , LispWorks y Macintosh Common Lisp . Está disponible una versión de código abierto ( McCLIM ).

Windows dinámico utiliza objetos escritos para todos los resultados en la pantalla. Toda la información mostrada mantiene su conexión con los objetos mostrados ( grabación de salida ). Esto funciona tanto para salida textual como gráfica. En tiempo de ejecución, las operaciones aplicables a estos objetos se calculan en función de la jerarquía de clases y las operaciones disponibles ( comandos ). Los comandos están organizados en tablas de comandos jerárquicas con parámetros escritos. Los comandos se pueden ingresar con el mouse (haciendo un uso extensivo de los acordes del mouse ), pulsando teclas y con una interfaz de línea de comandos. Todas las aplicaciones comparten una implementación de intérprete de línea de comandos, que se adapta a varios tipos de uso. Las capacidades gráficas del sistema de ventanas se basan en el modelo de gráficos PostScript .

La interfaz de usuario es principalmente monocromática ( blanco y negro ), ya que eso era lo que normalmente proporcionaba la consola de hardware. Pero existe un amplio soporte para el color, utilizando buffers de cuadros de color o servidores X Window System (X11) con soporte de color. Las actividades (aplicaciones) utilizan toda la pantalla con varios paneles, aunque las ventanas también pueden ser más pequeñas. El diseño de estas ventanas de actividades se adapta a diferentes tamaños de pantalla. Las actividades también pueden cambiar entre diferentes diseños de paneles.

Genera proporciona un menú del sistema para controlar ventanas, cambiar de aplicación y operar el sistema de ventanas. Muchas funciones de la interfaz de usuario (cambiar entre actividades, crear actividades, detener e iniciar procesos y mucho más) también se pueden controlar con comandos de teclado.

Dynamic Lisp Listener es un ejemplo de una interfaz de línea de comandos con capacidades gráficas completas y soporte para interacción basada en mouse. Acepta expresiones y comandos Lisp como entrada. La salida es sensible al mouse. El oyente Lisp puede mostrar formularios para ingresar datos para los diversos comandos integrados.

La interfaz de usuario proporciona una amplia ayuda en línea y ayuda contextual , completando opciones en varios contextos.

Documentación

Genera admite documentación en línea con hipervínculos completos. La documentación se lee con Document Examiner , uno de los primeros navegadores de hipertexto . La documentación se basa en pequeños registros de documentación reutilizables que también se pueden mostrar en varios contextos con el Editor y el Lisp Listener. La documentación está organizada en libros y secciones. Los libros también se entregaron en versiones impresas con el mismo contenido que la documentación en línea. La información de la base de datos de documentación se entrega con Genera y se puede modificar con parches incrementales.

La documentación se creó con una aplicación separada que no se envió con Genera: Symbolics Concordia . Concordia proporciona una extensión al editor Zmacs para editar registros de documentación, un editor de gráficos y una vista previa de páginas.

La documentación proporciona guías de usuario, pautas de instalación y referencias de las diversas construcciones y bibliotecas de Lisp.

El lenguaje de marcado se basa en el lenguaje de marcado Scribe y también puede ser utilizado por el desarrollador.

Genera admite la impresión en impresoras PostScript, proporciona una cola de impresión y también un intérprete PostScript (escrito en Lisp).

Características

Genera también admite varios protocolos de red y aplicaciones que los utilizan. Tiene un amplio soporte para TCP/IP .

Genera admite máquinas de un procesador con varios subprocesos (llamados procesos ).

Genera admite varios tipos diferentes de recolección de basura (GC): GC completa, GC in situ, GC incremental y GC efímera. El recopilador efímero usa solo memoria física y usa la unidad de administración de memoria para obtener información sobre las páginas modificadas en la memoria física. El recopilador utiliza generaciones y la memoria virtual se divide en áreas. Las áreas pueden contener objetos de ciertos tipos (cadenas, mapas de bits, nombres de rutas, ...) y cada área puede utilizar diferentes mecanismos de administración de memoria.

Genera implementa dos sistemas de archivos : el sistema de archivos FEP para archivos grandes y el sistema de archivos Lisp Machine (LMFS) optimizado para muchos archivos pequeños. Estos sistemas también mantienen diferentes versiones de archivos. Si se modifica un archivo, Genera aún conserva las versiones anteriores. Genera también proporciona acceso, puede leer y escribir en otros sistemas de archivos, locales y remotos, incluidos: NFS, FTP, HFS, CD-ROM y unidades de cinta .

Genera admite el arranque en red.

Genera proporciona un cliente para la base de datos de objetos Statice de Symbolics.

Genera hace un uso extensivo del sistema de condiciones (manejo de excepciones) para manejar todo tipo de errores de tiempo de ejecución y es capaz de recuperarse de muchos de estos errores. Por ejemplo, permite reintentar las operaciones de red si una conexión de red falla; el código de la aplicación seguirá ejecutándose. Cuando se producen errores, a los usuarios se les presenta un menú de reinicios (opciones de cancelar, reintentar, continuar) que son específicos del error señalado.

Genera tiene amplias herramientas de depuración.

Genera puede guardar versiones del sistema en ejecución en mundos . Estos mundos se pueden iniciar y luego contendrán todos los datos y códigos guardados.

Lenguajes de programación

Symbolics proporcionó varios lenguajes de programación para usar con Genera:

Symbolics Common Lisp proporciona la mayor parte del estándar Common Lisp con muchas extensiones, muchas de ellas provenientes de ZetaLisp.

Otros idiomas de Simbólicos

Es notable que estas implementaciones de lenguajes de programación heredaron algunas de las características dinámicas del sistema Lisp (como la recolección de basura y el acceso verificado a los datos) y respaldaron el desarrollo incremental de software.

Los desarrolladores externos proporcionaron más lenguajes de programación, como OPS5 , y herramientas de desarrollo, como Knowledge Engineering Environment (KEE) de IntelliCorp).

Aplicaciones

Symbolics Genera viene con varias aplicaciones. Las aplicaciones se llaman actividades . Algunas de las actividades:

Otras aplicaciones de Symbolics

Symbolics vendió varias aplicaciones que se ejecutan en Symbolics Genera.

Aplicaciones de terceros

Varias empresas desarrollaron y vendieron aplicaciones para Symbolics Genera. Algunos ejemplos:

Reflejos

Límites

Los límites de Genera incluyen:

Lanzamientos

Se ha lanzado una versión estable de Open Genera que puede ejecutarse en Linux x86-64 o arm64 y Apple M1 MacOS . [5]

Existe una versión pirateada de Open Genera que puede ejecutarse en Linux x86-64 . [6] [7]

Referencias

  1. ^ Greenblatt, Richard D.; Caballero, Thomas F.; Holloway, John T.; Luna, David A. (1980). "Una máquina Lisp". Actas del quinto taller sobre arquitectura informática para procesamiento no numérico . Asociación de Maquinaria de Computación - Grupo de interés especial en recuperación de información: 137–138. doi :10.1145/800083.802703. S2CID  10081363.
  2. ^ "Retrocomputación: máquinas MIT CADR Lisp". Unlambda.com . Consultado el 1 de diciembre de 2018 .
  3. ^ Ciccarelli, Eugene C. (1 de agosto de 1984). "Interfaz de usuario basada en presentaciones". DSpace@MIT. hdl :1721.1/6946.
  4. ^ "Folleto de Genera 7" (PDF) . Ahorradores de bits .
  5. ^ Palter, Gary (17 de febrero de 2021). "¡Y ahí está!". gorjeo . Consultado el 9 de enero de 2022 .
  6. ^ Wiegley, John (23 de octubre de 2007). "La máquina Symbolics Lisp en Linux". Abogado. Archivado desde el original el 30 de junio de 2017 . Consultado el 22 de noviembre de 2011 .
  7. ^ Collison, Patrick (abril de 2008). "Máquinas ceceo". Archivado desde el original el 27 de agosto de 2009 . Consultado el 31 de agosto de 2009 .

enlaces externos