Organisation des périphériques et des volumes
Les différents périphériques que le système peut utiliser sont appelés «Devices». Lorsque ce document fait référence à un «volume», il désigne le «contenu» d'un périphérique. Un seul unité de disque (un périphérique) peut accueillir plusieurs disquettes (volumes).
Le système fait la distinction entre les périphériques structurés en blocs et ceux ne l'étant pas. Les périphériques structurés en blocs sont généralement des disques. Ils contiennent des volumes amovibles contenant chacun un répertoire et divers fichiers. En interne, un volume est organisé en zones d'entreposage de taille fixe accessibles de manière aléatoire, appelées «blocs» ; un bloc fait 512 octets. Les fichiers peuvent être de taille variable, mais un nombre entier de blocs leur est toujours attribué. Les périphériques non structurés en blocs comprennent les imprimantes, les claviers et les lignes distantes. Ils n'ont pas de structure interne et traitent des flux de caractères série. Les périphériques non structurés en blocs peuvent effectuer des entrées, des sorties ou les deux; l'interface physique avec eux peut être série ou parallèle.
Un périphérique ou un fichier peut être soit une source de données, soit un récepteur de données. La plupart des opérations de transfert de données du Filer s'appliquent aux périphériques aussi bien qu'aux fichiers. Le système et ses éléments intrinsèques font référence aux périphériques à la fois par leur nom et leur numéro. Les périphériques standard ont des noms standard et les volumes amovibles comme les disquettes ont leurs noms enregistrés dessus. Les noms et les numéros sont généralement interchangeables. Les noms de périphériques sont suivis d'un «:» (par exemple, PRINTER:) pour les distinguer des noms de fichiers et ainsi ils peuvent être préfixés aux noms de fichiers (par exemple, SYSTEM:SAVEME.TEXT). Le nom d'un périphérique contenant des volumes amovibles (comme un unité de disquette) est le nom du volume qu'il contient à un moment donné. Le numéro de ce périphérique ne change jamais.
Le nom d'un fichier de disque inclut (comme préfixe) le disque sur lequel il réside. Le système a toujours un préfixe par défaut (lorsque le système est démarré, c'est «*», le disque système) afin que l'utilisateur n'ait pas besoin de saisir le préfixe à chaque fois qu'un fichier est nécessaire. Par exemple, SYSTEM:SAVEME.TEXT et TABLES:SAVEME.TEXT désignent deux fichiers différents sur deux disques différents (les deux fichiers sont appelés SAVEME). Ceux-ci peuvent également être spécifiés sous la forme #4:SAVEME.TEXT et #5:SAVEME.TEXT. Si le préfixe par défaut a été modifié par l'utilisateur en TABLES:, la saisie de SAVEME.TEXT signifierait TABLES:SAVEME.TEXT.
Voici la liste complète des numéros et noms de périphérique prédéfinis :
Numéro de périphérique | Nom de volume | Description |
---|---|---|
1 | CONSOLE: | Écran et clavier avec écho |
2 | SYSTERM: | Écran et clavier sans écho |
3 | GRAPHIC: | Écran lorsqu'il est utilisé pour les graphiques |
4 | nom de disque: | Disque système |
5 | nom de disque: | Disque alternatif |
6 | PRINTER: | Imprimante ligne par ligne |
7 | REMIN: | Une ligne d'entrée série |
8 | REMOUT: | Une ligne de sortie série |
9..12 | nom de disque: | Unités de disque supplémentaires |
Notez que REMIN: et REMOUT: font souvent référence au même périphérique (par exemple, une ligne téléphonique avec un MODEM).
Ceci résume le traitement des périphériques par le système. La plupart des utilisations du système ne nécessitent pas plus de connaissances matérielles que celles décrites ici. De temps à autre, cependant, il peut être nécessaire d'effectuer un contrôle direct du périphérique, une modification des caractéristiques du périphérique ou une manipulation de fichiers sur disque (comme la récupération de fichiers partiellement défectueux).
Le système effectue le contrôle du périphérique via une partie de l'émulateur. Sur la plupart des implémentations, cela s'appelle le BIOS (pour Basic I/O Subsystem). Le BIOS contient des pilotes de périphériques et un sous-ensemble de celui-ci, appelé SBIOS (vous l'avez deviné : BIOS simplifié) est modifiable par les utilisateurs ayant un système adaptable. Les méthodes et suggestions de modification du SBIOS sont contenues dans le Guide d'installation. Des informations encore plus détaillées peuvent être trouvées dans le Guide d'architecture interne. Le Guide d'installation décrit également les méthodes permettant de contrôler le terminal système (CONSOLE:). La connaissance du système de CONSOLE: provient d'un fichier nommé SYSTEM.MISCINFO et d'une procédure du système d'exploitation appelée GOTOXY.SYSTEM.MISCINFO peut être modifié à l'aide d'un programme utilitaire appelé SETUP, et GOTOXY peut être réécrit et lié au système d'exploitation à l'aide de l'utilitaire LIBRARY.
L'entrée et la sortie standard du système proviennent de CONSOLE:. Un utilisateur s'assoit à la console, tape des commandes et d'autres entrées, et regarde l'écran de la console pour obtenir des prompts et d'autres informations du système. Le Filer peut communiquer avec d'autres périphériques, tout comme le programme d'un utilisateur (soit en utilisant les routines d'entrées/sorties standard d'un langage, soit en utilisant des éléments intrinsèques spéciaux du p-System pouvant être beaucoup plus efficaces).
Il est également possible de rediriger temporairement l'entrée ou la sortie d'un programme ou du système lui-même : en utilisant soit des fichiers autres que ceux standards, soit des tampons de travail dans la mémoire principale. Cette fonctionnalité permet d'utiliser des programmes comme des "filtres" de fichiers, et de piloter des programmes ou le système lui-même par des fichiers script (un outil de test utile). Reportez-vous aux commandes e(Xecute et M(onitor, ainsi qu'aux fonctions intrinsèques REDIRECT, EXCEPTION et CHAIN du UCSD.
Remarque : avant que le terme UNIT ne soit utilisé dans le système pour désigner une partie compilée séparément d'un programme, les périphériques/volumes étaient également souvent appelés unités. Ils ont essayé de rectifier la terminologie, mais certaines fonctions intrinsèques de gestion des périphériques sont toujours nommées UNITREAD, UNITWRITE,... Vous devez comprendre qu'elles font référence au contrôle des périphériques et n'ont rien à voir avec la structure du programme. Cette confusion est regrettable, mais changer les noms des fonctions intrinsèques invaliderait de nombreux programmes actuellement exécutés sur le terrain.