Genera (système d'exploitation) - Genera (operating system)

Genera
Symbolics-document-examinateur.png
Développeur Symbolique
Écrit en Zézayer
Famille OS Système d' exploitation de la machine Lisp
État de fonctionnement Discontinué
Modèle source Propriétaire , open-source
Première version 1982 ; Il y a 39 ans  ( 1982 )
Version finale Open Genera 2.0 / 1998 ; Il y a 23 ans  ( 1998 )
Disponible en Anglais
Plateformes diverses machines Symbolics Lisp ,
DEC Alpha
Type de noyau Orienté objet
Interface utilisateur par défaut Interface graphique Windows dynamique
Licence Propriétaire
Site officiel symbolics-dks .com

Genera est un système d'exploitation commercial et un environnement de développement intégré pour les machines Lisp développé par Symbolics . Il s'agit essentiellement d'un fork d'un système d'exploitation antérieur provenant des machines Lisp du Massachusetts Institute of Technology (MIT) AI Lab que Symbolics avait utilisé en commun avec Lisp Machines , Inc. (LMI) et Texas Instruments (TI). Genera est également vendu par Symbolics sous le nom d' Open Genera , qui exécute Genera sur des ordinateurs basés sur un processeur Alpha Digital Equipment Corporation (DEC) utilisant Tru64 UNIX . Il est publié et sous licence en tant que logiciel propriétaire .

Genera est un exemple de système d'exploitation orienté objet basé sur le langage de programmation Lisp .

Genera prend en charge le développement incrémentiel et interactif de logiciels complexes en utilisant un mélange de styles de programmation avec une prise en charge étendue de la programmation orientée objet .

Système d'exploitation de la machine Lisp du MIT

Le système d'exploitation Lisp Machine a été écrit en Lisp Machine Lisp . Il s'agissait d'un poste de travail mono-utilisateur initialement destiné aux développeurs de logiciels pour des projets d' intelligence artificielle (IA). Le système avait un grand écran bitmap , une souris, un clavier, une interface réseau , un lecteur de disque et des emplacements d'extension. Le système d'exploitation supportait ce matériel et fournissait (entre autres):

Il s'agissait déjà d'un système d'exploitation et d'un environnement de développement complets basés sur Lisp.

Le système d'exploitation de la machine MIT Lisp a été développé du milieu des années 1970 au début des années 1980.

En 2006, le code source de ce système d'exploitation de machine Lisp du MIT a été publié en tant que logiciel libre et open-source .

Système d'exploitation Genera

Symbolics a développé de nouvelles machines Lisp et publié le système d'exploitation sous le nom Genera . La dernière version est la 8.5. Symbolics Genera a été développé au début des années 80 et au début des années 90. Au cours des dernières années, le développement impliquait principalement des correctifs, avec très peu de nouvelles fonctions.

Symbolics a développé Genera sur la base de cette base du système d'exploitation de la machine MIT Lisp. Il vend le système d'exploitation et les logiciels en couches . Certains des logiciels en couches ont été intégrés dans Genera dans les versions ultérieures. Symbolics a amélioré le logiciel du système d'exploitation de la machine originale MIT Lisp et l'a développé. Le système d'exploitation Genera n'était disponible que pour les machines Symbolics Lisp et la machine virtuelle Open Genera .

Symbolics Genera possède de nombreuses fonctionnalités et prend en charge toutes les versions de divers matériels que Symbolics a construits au cours de sa vie. Son code source compte plus d'un million de lignes; le nombre dépend de la version et de la quantité de logiciels installés. Symbolics Genera a été publié sur bande magnétique et CD-ROM . La sortie du système d'exploitation a également fourni la plupart du code source du système d'exploitation et de ses applications. L'utilisateur a un accès gratuit à toutes les parties du système d'exploitation en cours d'exécution et peut écrire des modifications et des extensions. Le code source du système d'exploitation est divisé en systèmes . Ces systèmes regroupent des sources, des binaires et d'autres fichiers. La boîte à outils de construction de système (SCT) gère les dépendances, les composants et les versions de tous les systèmes. Un système a deux numéros: un numéro de version majeur et un numéro de version mineure. Le numéro de version majeur compte le nombre de constructions complètes d'un système. La version mineure compte le nombre de correctifs de ce système. Un correctif est un fichier qui peut être chargé pour résoudre des problèmes ou fournir des extensions à une version particulière d'un système.

Symbolics a développé une version nommée Open Genera , qui comprenait une machine virtuelle permettant d'exécuter Genera sur des postes de travail basés sur DEC Alpha, ainsi que plusieurs extensions et applications Genera vendues séparément (comme la suite Symbolics S-Graphics ). En outre, ils ont créé un nouveau système d'exploitation nommé Minima pour des utilisations intégrées, en Common Lisp .

Le système d'exploitation original de la machine Lisp a été développé en Lisp Machine Lisp , en utilisant l' extension orientée objet Flavors pour ce Lisp. Symbolics a fourni un successeur à Flavours nommé New Flavours . Plus tard, Symbolics a également pris en charge Common Lisp et le Common Lisp Object System (CLOS). Ensuite, Symbolics Common Lisp est devenu le dialecte Lisp par défaut pour l'écriture de logiciels avec Genera. Le logiciel du système d'exploitation a été principalement écrit en Lisp Machine Lisp (nommé ZetaLisp ) et Symbolics Common Lisp. Ces dialectes Lisp sont tous deux fournis par Genera. Certaines parties du logiciel utilisaient également Flavours, New Flavors et Common Lisp Object System. Certaines des parties les plus anciennes du système d'exploitation Genera ont été réécrites dans Symbolics Common Lisp et le système Common Lisp Object. De nombreuses parties des systèmes d'exploitation sont restées écrites en ZetaLisp et Flavours (ou New Flavors).

Interface utilisateur

Les premières versions de Symbolics Genera ont été construites avec le système de fenêtrage original de l' interface utilisateur graphique (GUI) du système d'exploitation de la machine Lisp. Symbolics a ensuite développé un système de fenêtrage radicalement nouveau nommé Dynamic Windows avec une interface utilisateur basée sur la présentation . Ce système de fenêtres a été introduit avec Genera 7 en 1986. De nombreuses applications de Genera utilisaient alors Dynamic Windows pour leur interface utilisateur . Finalement, il y a eu un déplacement vers des parties du portage du système de fenêtres pour fonctionner sur d'autres implémentations Common Lisp par d'autres fournisseurs comme le gestionnaire d'interface Common Lisp (CLIM). Des versions de CLIM sont disponibles (entre autres) pour Allegro Common Lisp , LispWorks et Macintosh Common Lisp . Une version open source est disponible ( McCLIM ).

Dynamic Windows utilise des objets typés pour toutes les sorties à l'écran. Toutes les informations affichées conservent leur connexion aux objets affichés ( enregistrement de sortie ). Cela fonctionne à la fois pour la sortie textuelle et graphique. Lors de l'exécution, les opérations applicables à ces objets sont calculées en fonction de la hiérarchie des classes et des opérations disponibles ( commandes ). Les commandes sont organisées en tables de commandes hiérarchiques avec des paramètres typés. Les commandes peuvent être entrées avec la souris (en utilisant largement les accords de la souris ), les frappes au clavier et avec une interface de ligne de commande. Toutes les applications partagent une implémentation d'interpréteur de ligne de commande, qui s'adapte à différents types d'utilisation. Les capacités graphiques du système de fenêtres sont basées sur le modèle graphique PostScript .

L'interface utilisateur est principalement en monochrome ( noir et blanc ) car c'était ce que la console matérielle fournissait généralement. Mais une prise en charge étendue existe pour la couleur, en utilisant des tampons de cadre de couleur ou des serveurs X Window System (X11) avec prise en charge de la couleur. Les activités (applications) utilisent tout l'écran avec plusieurs volets, bien que les fenêtres puissent également être plus petites. La disposition de ces fenêtres d'activité s'adapte à différentes tailles d'écran. Les activités peuvent également basculer entre différentes dispositions de volet.

Genera fournit un menu système pour contrôler les fenêtres, changer d'application et faire fonctionner le système de fenêtres. De nombreuses fonctionnalités de l'interface utilisateur (basculer entre les activités, créer des activités, arrêter et démarrer des processus, et bien plus encore) peuvent également être contrôlées à l'aide de commandes clavier.

Le Dynamic Lisp Listener est un exemple d'interface de ligne de commande avec des capacités graphiques complètes et une prise en charge de l'interaction basée sur la souris. Il accepte les expressions et commandes Lisp en entrée. La sortie est sensible à la souris. L'écouteur Lisp peut afficher des formulaires pour saisir des données pour les différentes commandes intégrées.

L'interface utilisateur fournit une aide en ligne complète et une aide contextuelle , ainsi que des choix dans divers contextes.

Documentation

Genera prend en charge la documentation en ligne entièrement hypertexte . La documentation est lue avec Document Examiner , un des premiers navigateurs hypertextes . La documentation est basée sur de petits enregistrements de documentation réutilisables qui peuvent également être affichés dans divers contextes avec l'éditeur et l'écouteur Lisp. La documentation est organisée en livres et en sections. Les livres ont également été fournis en version imprimée avec le même contenu que la documentation en ligne. Les informations de la base de données de documentation sont fournies avec Genera et peuvent être modifiées avec des correctifs incrémentiels.

La documentation a été créée avec une application distincte qui n'a pas été livrée avec Genera: Symbolics Concordia . Concordia fournit une extension à l' éditeur Zmacs pour l'édition des enregistrements de documentation, un éditeur graphique et un visualiseur de page.

La documentation fournit des guides d'utilisation, des instructions d'installation et des références des différentes constructions et bibliothèques Lisp.

Le langage de balisage est basé sur le langage de balisage Scribe et est également utilisable par le développeur.

Genera prend en charge l'impression sur des imprimantes PostScript, fournit une file d'attente d'impression et également un interpréteur PostScript (écrit en Lisp).

Caractéristiques

Genera prend également en charge divers protocoles réseau et applications qui les utilisent. Il a un support étendu pour TCP / IP .

Genera prend en charge les machines à un seul processeur avec plusieurs threads (appelés processus ).

Genera prend en charge plusieurs types de garbage collection (GC): GC complet, GC sur place, GC incrémentiel et GC éphémère. Le collecteur éphémère utilise uniquement la mémoire physique et utilise l' unité de gestion de mémoire pour obtenir des informations sur les pages modifiées dans la mémoire physique. Le collecteur utilise des générations et la mémoire virtuelle est divisée en zones. Les zones peuvent contenir des objets de certains types (chaînes, bitmaps, chemins, ...), et chaque zone peut utiliser différents mécanismes de gestion de la mémoire.

Genera implémente deux systèmes de fichiers : le système de fichiers FEP pour les gros fichiers et le système de fichiers Lisp Machine (LMFS) optimisé pour de nombreux petits fichiers. Ces systèmes gèrent également différentes versions de fichiers. Si un fichier est modifié, Genera conserve les anciennes versions. Genera permet également d'accéder, de lire et d'écrire sur d'autres systèmes de fichiers, locaux et distants, notamment: NFS, FTP, HFS, CD-ROM, lecteurs de bande .

Genera prend en charge le netboot.

Genera fournit un client pour la base de données d'objets Statice de Symbolics.

Genera fait un usage intensif du système de conditions (gestion des exceptions) pour gérer toutes sortes d'erreurs d'exécution et est capable de récupérer de plusieurs de ces erreurs. Par exemple, il permet de réessayer les opérations réseau si une connexion réseau a échoué; le code de l'application continuera de fonctionner. Lorsque des erreurs se produisent, les utilisateurs se voient proposer un menu de redémarrages (abandonner, réessayer, continuer les options) qui sont spécifiques à l'erreur signalée.

Genera dispose d'outils de débogage étendus.

Genera peut enregistrer des versions du système en cours d'exécution dans des mondes . Ces mondes peuvent être démarrés et contiendront ensuite toutes les données et le code enregistrés.

Langages de programmation

Symbolics a fourni plusieurs langages de programmation à utiliser avec Genera:

  • ZetaLisp , la version symbolique de Lisp Machine Lisp
  • Common Lisp en plusieurs versions: Symbolics Common Lisp, Future Common Lisp (ANSI Common Lisp), CLtL1
  • Symbolics Pascal, une version de Pascal écrite en Lisp (le source Lisp est inclus dans la distribution Genera)
  • Symbolics C, une version de C écrite en Lisp (le source Lisp est inclus dans la distribution Genera)
  • Symbolics Fortran, une version de Fortran écrite en Lisp (le source Lisp est inclus dans la distribution Genera)

Symbolics Common Lisp fournit la plupart du standard Common Lisp avec de très nombreuses extensions, dont beaucoup proviennent de ZetaLisp.

Autres langues de Symbolics

  • Symbolics Prolog , une version de Prolog écrite et intégrée en Lisp
  • Symbolics Ada , une version d'Ada écrite en Lisp

Il est remarquable que ces implémentations de langage de programmation aient hérité de certaines des fonctionnalités dynamiques du système Lisp (comme le ramasse-miettes et l'accès vérifié aux données) et pris en charge le développement logiciel incrémentiel.

Les développeurs tiers ont fourni plus de langages de programmation, tels que OPS5 , et des outils de développement, tels que Knowledge Engineering Environment (KEE) d'IntelliCorp).

Applications

Symbolics Genera est livré avec plusieurs applications. Les applications sont appelées activités . Quelques activités:

  • Zmacs , un éditeur de texte semblable à Emacs
  • Zmail, un lecteur de courrier fournissant également un calendrier
  • Navigateur de système de fichiers avec des outils de maintenance du système de fichiers
  • Écouteur Lisp avec interface de ligne de commande
  • Document Examiner pour parcourir la documentation
  • Restaurez la distribution pour installer le logiciel.
  • Distribute Systems, pour créer des distributions de logiciels
  • Jetez un œil pour examiner les informations système (processus, fenêtres, connexions réseau, ...)
  • Débogueur
  • Editeur d'espaces de noms pour accéder aux informations sur les objets du réseau (utilisateurs, ordinateurs, systèmes de fichiers, ...)
  • Converse, un client de chat
  • Terminal
  • Inspecteur, pour parcourir les structures de données Lisp
  • Notifications
  • Frame-Up, pour la conception d'interfaces utilisateur
  • Flavor Examiner, pour examiner les classes et les méthodes de l'extension orientée objet Flavour vers Lisp

Le Musée de la symbolique de Ralf Möller propose des captures d' écran de celles de ces activités.

Autres applications de Symbolics

Symbolics a vendu plusieurs applications fonctionnant sur Symbolics Genera.

  • Symbolics Concordia, une suite de production de documents
  • Symbolics Joshua, un shell système expert
  • Symbolics Macsyma , un système d'algèbre informatique
  • Symbolics NS, un outil de conception de puces
  • Symbolics Plexi, un outil de développement de réseaux neuronaux
  • Symbolics S-Graphics, une suite d'outils: S-Paint, S-Geometry, S-Dynamics, S-Render
  • Utilitaires Symbolics S: S-Record, S-Compositor, S-Colorize, S-Convert
  • Symbolics Scope, traitement d'image numérique avec un ordinateur d'image Pixar
  • Symbolics Statice, une base de données d'objets

Applications tierces

Plusieurs entreprises ont développé et vendu des applications pour Symbolics Genera. Quelques exemples:

  • Automated Reasoning Tool (ART), un shell système expert d'Inference Corporation
  • ICAD , système de CAO paramétrique 3D
  • Illustrate, éditeur graphique
  • Knowledge Engineering Environment (KEE), un shell système expert, d'IntelliCorp
  • Knowledge Craft, un shell système expert, de Carnegie Group
  • Métal, système de traduction automatique de Siemens

Points forts

  • Genera est entièrement écrit en Lisp, en utilisant ZetaLisp et Symbolics Common Lisp, y compris tout le code système de bas niveau, comme les pilotes de périphériques, le ramasse-miettes, le planificateur de processus, les piles réseau, etc.
  • Le code source est plus d'un million de lignes de Lisp, mais relativement compact, par rapport aux fonctions fournies, en raison d'une réutilisation extensive. Il est également disponible pour les utilisateurs à inspecter et à modifier.
  • Le système d'exploitation est principalement écrit dans un style orienté objet en utilisant Flavors, New Flavors et CLOS
  • Il dispose d'une documentation en ligne complète lisible avec l'examinateur de documents
  • Dynamic Windows fournit une interface utilisateur basée sur la présentation
  • L'interface utilisateur peut être utilisée localement (sur les machines Lisp et MacIvories) et à distance (en utilisant X11)
  • Des groupes de développeurs peuvent travailler ensemble dans un environnement en réseau
  • Un serveur d' espace de noms central fournit un répertoire de machines, d'utilisateurs, de services, de réseaux, de systèmes de fichiers, de bases de données, etc.
  • Il y a peu de protection contre la modification du système d'exploitation. L'ensemble du système est entièrement accessible et modifiable.

Limites

Les limites de Genera incluent:

  • Ne fonctionne que sur les machines Lisp Symbolics ou sur l'émulateur Open Genera.
  • Un seul utilisateur peut être connecté à la fois.
  • Un seul système Lisp peut fonctionner à la fois. Les données et le code sont partagés par les applications et le système d'exploitation. Cependant, plusieurs instances d'Open Genera peuvent s'exécuter sur un DEC Alpha.
  • Le développement s'est effectivement arrêté au milieu des années 90.

Communiqués

  • 1982 - Sortie 78
  • 1982 - Sortie 210
  • 1983 - Version 4.0
  • 1984 - Version 5.0
  • 1985 - Release 6.0, présente Symbolics Common Lisp, le récupérateur de mémoire d'objets éphémères et l'examinateur de documents
  • 1986 - Genera 7.0, introduction de Windows dynamique
  • 1990 - Genera 8.0, introduire CLOS
  • 1991 - Genera 8.1, introduire CLIM
  • 1992 - Générations 8.2
  • 1993 - Générations 8.3
  • 1993 - Génère ouvert 1.0
  • 1998 - Open Genera 2.0

Une version expérimentale d'Open Genera qui peut fonctionner sous Linux x86-64 existe.

Les références

Liens externes