OS/8 - OS/8

OS/8
Développeur Société d'équipement numérique
État de fonctionnement Abandonné
Modèle source Source fermée
Première version 1971 ; il y a 50 ans ( 1971 )
Plateformes PDP-8
Interface utilisateur par défaut Langage de commande concis (CCL)
( interface de ligne de commande )
Licence Propriétaire
Précédé par PS/8

OS / 8 était le principal système d'exploitation utilisé sur la Digital Equipment Corporation de PDP-8 mini - ordinateur .

Avant OS/8, il existait des systèmes d'exploitation PDP-8 antérieurs :

Les autres systèmes d'exploitation DEC associés étaient : OS/78 , OS/278, OS/12. Ce dernier est une version pratiquement identique d'OS/8, et a été utilisé avec l' ordinateur PDP-12 de Digital .

Images numériques OS/8 publiées à des fins non commerciales qui peuvent être émulées via SIMH .

Aperçu

OS/8 a fourni un environnement d'exploitation simple qui était proportionné en complexité et en échelle aux ordinateurs PDP-8 sur lesquels il s'exécutait. Les E/S étaient prises en charge via une série de pilotes fournis qui utilisaient des techniques d'interrogation (pas d'interruption). Les pilotes de périphériques devaient être écrits intelligemment car ils ne pouvaient occuper qu'une ou deux pages mémoire de 128 mots de 12 bits , et devaient pouvoir s'exécuter dans n'importe quelle page du champ 0. Cela nécessitait souvent une ingéniosité considérable, comme l'utilisation de l'instruction OPR (7XXX) pour les petites constantes négatives.

L'« empreinte » résidant en mémoire d'OS/8 n'était que de 256 mots ; 128 mots en haut du champ 0 et 128 mots en haut du champ 1. Le reste du système d'exploitation (l'USR, "User Service Routines") a été permuté dans et hors de la mémoire de manière transparente (en ce qui concerne le programme de l'utilisateur) comme requis.

Le langage de commande concis

Les premières versions d'OS/8 avaient un interpréteur de ligne de commande très rudimentaire avec très peu de commandes de base : GET, SAVE, RUN, ASSIGN, DEASSIGN et ODT . Avec la version 3, ils ont ajouté une superposition plus sophistiquée appelée CCL ( Concise Command Language ) qui implémentait beaucoup plus de commandes. Le CCL d'OS/8 a été directement calqué sur le CCL trouvé sur les systèmes PDP-10 de Digital exécutant TOPS-10 . En fait, une grande partie du système logiciel OS/8 a été délibérément conçue pour imiter, aussi étroitement que possible, l'environnement d'exploitation TOPS-10. (Le langage de commande CCL a ensuite été utilisé sur les ordinateurs PDP-11 exécutant RT-11 , RSX-11 et RSTS/E , fournissant un environnement d'exploitation utilisateur similaire sur les trois architectures : PDP-8, PDP-10 et PDP-11 .)

Le système d'exploitation de base et CCL implémentaient de nombreuses commandes plutôt sophistiquées, dont beaucoup n'existent toujours pas dans les langages de commande modernes, même pas dans les systèmes d'exploitation MS-DOS , Windows ou Unix .

Par exemple, la commande COMPILE trouvera automatiquement le bon compilateur pour un fichier source donné et démarrera le cycle de compilation/assemblage/liaison.

Les commandes ASSIGN et DEASSIGN permettaient d'utiliser des noms de périphériques logiques dans un programme au lieu de noms physiques (comme requis dans MS-DOS). Par exemple, votre programme pourrait écrire sur le périphérique FLOP:AAA.TXT, et si vous avez d'abord fait un "ASSIGN FLOP: RXA2:", alors le fichier serait créé sur le périphérique physique RXA2 (le deuxième lecteur de disquette). VAX / VMS et le système d'exploitation AmigaOS du Commodore Amiga (et d'autres systèmes d'exploitation construits autour de Tripos ) ont fait un usage considérable de cette fonctionnalité très flexible.

La commande SET était capable de définir de nombreuses options système, bien que par la méthode grossière de correction des emplacements dans le code binaire du système. L'un d'eux, une commande sous OS-78, était SET SYS OS8, et il a réactivé les commandes MONITOR qui ne faisaient pas partie de OS-78.

La commande BUILD peut reconfigurer le système d'exploitation à la volée, même en ajoutant des pilotes de périphérique , souvent sans avoir à redémarrer le système d'exploitation.

Le système d'exploitation peut démarrer à partir d'un disque dur et présenter l' invite de commande en moins d'une demi-seconde.

Le système de fichiers OS/8

OS/8 prenait en charge un système de fichiers simple et plat sur une variété de périphériques de stockage de masse , notamment :

Les noms de fichiers sur le PDP-8 ont pris la forme de FFFFFF.XX où « F » représente une majuscule , alphanumérique caractère du nom de fichier et « X » représente une majuscule, caractère alphanumérique de l'extension (type de fichier).

  • .F: Assembleur
  • .SV : core-images sauvegardées (programmes exécutables)
  • .FT : fichiers sources Fortran
  • .DA : Fichiers de données

Le contenu d'un fichier donné était stocké de manière contiguë dans une seule "étendue". PIP incluait une option pour compresser ("presser") le système de fichiers, de sorte que tout l'espace non alloué soit déplacé vers une seule étendue à la fin du disque. Cela pourrait être invoqué par la commande SQuish CCL , tout comme MUNG pourrait être utilisé pour exécuter une macro TECO .

Les volumes OS/8 avaient une taille de stockage maximale très limitée (4096 blocs de 256 mots de 12 bits) et le disque à tête mobile RK05 (2,4 Mo) dépassait cette taille : « 1,6 million de mots de stockage ». Pour cette raison, les cartouches RK05 ont été divisées en deux partitions. Par exemple, le premier RK05 sur un système s'appellerait à la fois RKA0 : (SY :) et RKB0 :. On pensait généralement que cette division signifiait « la surface supérieure » ​​et « la surface inférieure », mais c'était incorrect ; c'était en fait « les cylindres extérieurs » et « les cylindres intérieurs ».

fichiers ASCII

Les fichiers ASCII ont été stockés sous forme de 3 caractères de 8 bits par paire de mots de 12 bits : les caractères 1 et 2 à droite des mots 1 et 2, avec les bits 0-3 et 4-7 du 3e caractère stockés dans les bits les plus à gauche de la paire de mots.

  • MOT 1 : c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
  • MOT 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7 Les
    fichiers ASCII se terminent par un CTRL/Z (ASCII 232).

Format de date OS/8

OS/8 a alloué les mots de 12 bits du PDP-8 pour stocker les dates par :

  • 4 bits pour le mois
  • 5 bits pour la date qu'il contient
  • 3 bits pour l'année.

Y3B ! Cela a été reconnu lorsque COS-310 a été développé.

OS/8 CUSP (programmes utilitaires)

Les CUSP (programmes système couramment utilisés, c'est-à-dire les utilitaires) fournis avec OS/8 comprenaient :

  • BUILD (le programme pour installer un système OS/8 configuré sur le stockage de masse)
  • DIR (le programme de listage d'annuaire)
  • EDIT (Un éditeur orienté ligne)
  • MACREL (Un assembleur qui, contrairement à PAL, implémentait des macros. Écrit par Stanley Rabinowitz du Small Systems Group de DEC. Stan avait dans son bureau une image ASCII d'un poisson qui disait "MACREL EST UN POISSON")
  • FLAP (Un assembleur absolu dérivé de RALF)
  • FORTRAN -II.
  • FOTP (File-Oriented Transfer Program, une alternative au PIP)
  • PAL (L'assembleur)
  • PIP (le programme d'échange de périphériques, utilisé pour copier des fichiers)
  • PIP10 (une version de PIP utilisée pour copier des fichiers à partir de PDP-10 DECtapes)
  • RALF (Un autre assembleur relocalisant pour le FPP)
  • TECO (Text Editor and CORrector, un éditeur beaucoup plus sophistiqué). La commande MUNG a exécuté les macros TECO.
  • CCL, l' interpréteur de ligne de commande , était fourni sous forme source et pouvait être étendu par l'utilisateur.

Langages de programmation

DE BASE

Un BASIC mono-utilisateur et deux versions multi-utilisateurs du BASIC étaient disponibles en option.

Le BASIC mono-utilisateur a utilisé plusieurs superpositions pour fournir toutes les fonctionnalités du langage ; lorsque OS/8 était démarré à partir d'une DECtape, un retard très notable se produisait chaque fois que BASIC devait changer de superposition car ils devaient être lus à partir de la bande.

Les versions multi-utilisateurs de BASIC (EDU20 et EDU25) ne différaient que par la prise en charge ou non des périphériques remplaçables par bloc (DECtape ou disque). En raison de contraintes de coût, de nombreux PDP-8 avaient des lecteurs de bandes de papier perforé comme seul périphérique d'E/S de stockage de masse. EDU20 se chargeait à partir d'une bande papier et pouvait produire une sortie sur un graveur de bande papier si la machine en avait un, tandis que EDU25 comprenait la structure d'un système de fichiers, pouvait charger à partir de DECtape ou d'un disque et pouvait créer des fichiers sur DECtape ou sur disque. Les deux pourraient exécuter plusieurs programmes BASIC simultanément à l'aide d'un planificateur de tâches primitif qui alterne entre les terminaux connectés. La mémoire a toujours été très restreinte car le PDP-8 utilisait de la mémoire centrale, qui était extrêmement chère par rapport à la technologie RAM qui est arrivée quelques années plus tard. En seulement 8 Ko de mots de 12 bits, l'EDU20 pouvait prendre en charge jusqu'à 4 terminaux à la fois, bien que davantage de mémoire ait été recommandée. EDU25 nécessitait une banque de mémoire supplémentaire de 4K (pour un minimum de 12K) car le code contenait un pilote de périphérique de disque et un gestionnaire de système de fichiers. En cours d'exécution, EDU20 et EDU25 étaient des programmes autonomes qui n'utilisaient aucun appel système OS/8. Immédiatement après avoir été invoqués à partir de l'interpréteur de commandes OS/8, ils écraseraient toute la partie résidente d'OS/8 - tous les 256 mots de celui-ci. Au démarrage, EDU25 enregistre le contenu de la mémoire sur DECtape ou disque et le restaure à sa sortie. Mais EDU20 ne pouvait pas le faire car il visait des configurations matérielles sans aucun périphérique remplaçable par bloc.

FORTRAN

En plus d'un compilateur FORTRAN II disponible gratuitement , il y avait aussi un compilateur FORTRAN IV assez complet disponible à un coût supplémentaire. Ce compilateur a généré du code pour le processeur à virgule flottante FPP-8 en option, qui était essentiellement un processeur séparé, partageant uniquement la mémoire avec le processeur PDP-8. Si vous aviez installé l'option FPP-8, le code d'exécution FORTRAN le détecterait et utiliserait le FPP-8 pour exécuter le code du programme principal, et le processeur PDP-8 fonctionnerait comme un processeur d'E/S. Si vous n'aviez pas le FPP-8, le code d'exécution appellerait à la place un interpréteur FPP-8 s'exécutant sur le processeur PDP-8, de sorte que le programme fonctionnerait toujours, mais à une vitesse considérablement réduite.

Ce compilateur FORTRAN IV dans la version 1 avait le bogue intéressant que les boucles DO ne comptaient pas correctement : les boucles DO comptaient 1,2,3,5,6,7,… (sauter 4). Un correctif rapide a été publié pour résoudre ce problème.

Voir également

Les références

Liens externes