Fiche technique | |
---|---|
Type de produit : | Système d'exploitation |
Auteur : | Microware Systems Corporation |
Date de publication : | 1979 |
Type de noyau : | Noyau monolithique |
Introduction
L'OS-9 est un système d'exploitation multi-tâche à deux niveaux, le premier niveau est en mode texte (OS-9 Level I) et le second est en environnement graphique (OS-9 Level II). Le niveau I (OS-9 Level I) du système d'exploitation OS-9 est basé sur le noyau du système d'exploitation UNIX développé par Bell Laboratories Inc. et développer à l'origine en assembleur pour le 6809 par l'entreprise Microware Systems Corporation. Comme beaucoup de système d'exploitation, OS-9 entrepose les informations sur disque dans des fichiers et les index dans des répertoires hiérarchisé.
Le système d'exploitation OS-9 est multi-utilisateur (ou multiuser en anglais) et multi-tâche. Le multi-utilisaeur signifie que plusieurs personnes peuvent utiliser le système en même temps. Le nombre d'utilisateurs est limité par le nombre de terminaux. Par exemple, les micro-ordinateurs TRS-80 Color Computer (CoCo 1, CoCo 2, CoCo 3) peut avoir sur le terminal; cela signifie que deux personnes peuvent utiliser OS-9 en même temps. Une personne sur l'ordinateur couleur et une sur le terminal. Le multi-tâche signifie que deux ou plusieurs tâches (programmes) peuvent s'exécuter en même temps. Par exemple, avec OS-9, vous pouvez imprimer des rapports et saisir des informations en même temps. La premier version date de 1979, et depuis les versions ce sont succédés, il supporta les microprocesseurs avec les architectures 6809, 68000, TRS-80, MIPS et PowerPC.
Ce qui fait le charme de ce système c'est qu'il est très compacte, moins de 20 Ko et qu'il est très bien adapté pour les systèmes embarqués. Il est stupéfiant de constater qu'il peut fonctionner de façon fluide avec toutes ses caractéristiques promises et avec une machine ayant aussi peu de puissance.
Le noyau
Au centre du système d'exploitation OS-9 se trouve un module (programme) appelé noyau. Le noyau fournit des services système de base, tels que le multi-tâche et la gestion de la mémoire. Il relie d'autres modules système et sert d'administrateur système, de superviseur et de gestionnaire de ressources. La figure suivante représente un schéma de se noyau par rapport aux éléments du CoCo 3 (Terminal pour le clavier et vidéo, T1 et T2 pour les terminaux additionnels, P pour l'imprimante, M1, M2 et M3 pour les modems,...) :
Le gestionnaire d'entrée/sortie
Bien que le noyau gère OS-9, il ne traite pas directement l'entrée et la sortie des données entre les autres modules et votre matériel informatique (imprimantes, unité de disque, terminaux,...). Au lieu de cela, le noyau transfère cette responsabilité au gestionnaire d'entrée/sortie, IOMAN. Le IOMAN dispose de trois sous-gestionnaires : un gestionnaire de caractères de fichiers, un gestionnaire de tuyau de fichiers et un gestionnaire de disque de fichiers. La responsabilité de ces gestionnaires est la suivante :
Nom | Description |
---|---|
Gestionnaire de caractères de fichiers | Ce gestionnaire permet de gérer le transfert de données entre OS-9 et les périphériques caractères (périphériques fonctionnant caractère par caractère, tels que les terminaux, les imprimantes ou les modems). Le gestionnaire de fichiers de caractères séquentiels SCF (tirant son nom du de l'anglicisme Sequential Character File) peut gérer n'importe quel nombre ou type de tels périphériques. |
Gestionnaire de tuyau de fichiers | Ce gestionnaire de gérer la communication entre les processus ou les tâches. Les tuyaux vous permettent d'utiliser la sortie d'un processus comme entrée d'un autre processus. |
Gestionnaire de disque de fichiers | Ce gestionnaire de fichiers à blocs aléatoires RBF (tirant son nom de l'anglicisme Random Block File Manager) gère le transfert de données vers et depuis des périphériques à accès aléatoire orientés blocs, tels qu'un système de lecteur de disque. |
Pilotes de périphérique
Les CC3IO, PIPER et CC3DISK sont des pilotes de périphérique. Ces fichiers contiennent du code transformant les données standard en une forme acceptable pour un périphérique particulier, qu'il s'agisse d'un terminal, d'une imprimante, d'un modem, d'un lecteur de disque, de tout autre périphérique ou d'un autre fichier. Le PIPES transfère les données entre les processus.
Descripteur de périphérique
Le terminal (Term), T1, P, M1, D0,.. sont des descripteurs de périphérique. Ces fichiers décrivent les périphériques connectés au système. Ils contiennent des données d'initialisation des périphériques ainsi que du code dirigeant OS-9 vers les adresses physiques des ports auxquels les périphériques sont connectés.
L'interpréteur de commande (shell)
Le noyau, conjointement avec IOMAN et ses gestionnaires et modules associés, constitue le système d'exploitation OS-9. Ces modules gèrent toutes les fonctions du système. Cependant, OS-9 a besoin d'instructions avant de pouvoir accomplir des tâches utiles. Les directions vers le système ont deux sources : les commandes et les applications ou les programmes de langage informatique. Avant que les commandes ne soient utiles au noyau, l'interpréteur de commande doit les interpréter. Il analyse les commandes et les convertit en code que le noyau peut comprendre. Certains programmes d'application et langages de programmation informatiques utilisent également les fonctions de l'interpréteur de commande. D'autres peuvent accéder directement au noyau et n'ont pas besoin de passer par l'interpréteur de commande.
Système de fichiers d'OS-9
L'entrée et la sortie font référence aux données que votre système informatique reçoit et aux données qu'il envoie. Le système d'exploitation OS-9 peut recevoir (entrer) des données d'un clavier, de fichiers disque, de modems et d'autres terminaux. Il peut envoyer (sortir) des données à tous ces périphériques - à l'exception du clavier - et à un écran vidéo. Le système d'exploitation OS-9 reçoit et envoie des données dans le même format, que la destination soit un fichier ou un périphérique. Il surmonte les différences entre les périphériques en définissant une norme pour eux et en utilisant des pilotes de périphérique pour rendre chaque périphérique conforme à la norme. Le résultat : un système d'entrée/sortie beaucoup plus simple et plus polyvalent.
Chemin d'entrée sortie
La base du système d'entrée/sortie unifié d'OS-9 est une organisation de chemins. Les chemins d'entrée/sortie sont en fait des liens logiciels entre les fichiers. (Rappelez-vous, OS-9 considère tous les périphériques comme des fichiers.) Les pilotes de périphériques individuels traitent les données afin qu'elles soient conformes aux exigences matérielles du périphérique concerné. Le transfert de données se fait par flux d'octets de 8 bits pouvant être bidirectionnels (lecture/écriture) ou unidirectionnel (lecture seule ou écriture seule), selon le périphérique, la façon dont vous établissez le chemin, ou les deux. Un octet est une unité de données informatiques. (Un octet peut contenir le code d'un caractère alphabétique.) Un bit est un chiffre binaire et a une valeur de 0 ou 1. Le système d'exploitation OS-9 n'exige pas que les données qu'il gère aient un format ou une signification particulier. La signification des données est déterminée par les programmes les utilisant. Certains des avantages d'un système d'entrée/sortie unifié sont les suivants :
- Les programmes fonctionnent correctement quels que soient les périphériques d'entrées/sorties sélectionnés.
- Les programmes sont très portables d'un ordinateur à un autre, même lorsque les ordinateurs ont différents types de périphériques d'entrée/sortie.
- Vous pouvez rediriger les entrées/sorties vers d'autres fichiers ou périphériques lorsque vous exécutez un programme, sans avoir à modifier le programme.
- Vous pouvez facilement créer et installer des routines de pilotes de périphériques nouvelles ou spéciales.
Répertoires de disque
Un répertoire est un lieu d'entreposage pour d'autres répertoires et fichiers. Il contient les informations sur les répertoires et les fichiers lui étant assignés afin que OS-9 puisse facilement trouver et accéder aux données qu'ils contiennent. Chaque disque a son propre système de répertoires. Par exemple, une disquette système typique, schématisée partiellement et simplement, pourrait ressembler à ceci :
Le répertoire racine de /D0 - la racine à partir duquel le reste du système de fichiers du disque se développe - contient un fichier appelé Startup et deux répertoires, SYS et CMDS. Les répertoires SYS et CMDS, à leur tour, contiennent des fichiers : SYS contient Errmsg et CMDS contient Copy, List, Dir, Del et Format. Tous ces fichiers et répertoires, et bien d'autres, sont intégrés au système OS-9. Le système d'exploitation OS-9 organise chaque zone de répertoire en enregistrements de 32 octets. Les 29 premiers octets contiennent des caractères de nom de fichier. Le premier octet du nom a son bit de signe (le bit le plus à gauche ou le plus significatif) défini. Lorsque vous supprimez un fichier, il n'est pas immédiatement détruit. Au lieu de cela, le processus de suppression définit la première position de caractère de l'enregistrement sur zéro et OS-9 ne reconnaît plus l'enregistrement. Bien que le contenu du fichier existe toujours, il ne vous est plus accessible ni à OS-9. Les créations de fichiers ultérieures écrasent les enregistrements supprimés. Les trois derniers octets d'un enregistrement constituent un nombre binaire de 24 bits étant le numéro de secteur logique pointant vers l'enregistrement de descripteur de fichier. Les secteurs logiques sont numérotés en fonction de la séquence de leur utilisation, plutôt que de leur emplacement physique sur un disque. Vous créez des répertoires à l'aide de la commande MAKDIR et pouvez les identifier par l'attribut D (répertoire). La commande MAKDIR initialise chaque répertoire avec deux entrées ayant les noms d'ensemble «.» et «..». Ces entrées contiennent respectivement les numéros de secteur logique du répertoire et de son répertoire parent. Vous ne pouvez pas utiliser les commandes COPY et LIST avec des répertoires. Utilisez à la place DSAVE et DIR. Vous ne pouvez pas supprimer directement les répertoires. Vous devez d'abord vider un répertoire de fichiers, le convertir en fichier standard, puis le supprimer. Cependant, la commande DELDIR exécute toutes ces fonctions automatiquement.
Sous-répertoire
Un sous-répertoire est un répertoire résidant dans un autre répertoire. En fait, tous les répertoires que vous créez sont des sous-répertoires, puisque tous les répertoires se branchent à partir du répertoire racine. Cependant, comme le système crée automatiquement le répertoire racine lorsque vous formatez un disque, il ne considère pas les répertoires résidant dans le répertoire racine comme des sous-répertoires. Les sous-répertoires peuvent contenir des fichiers et d'autres sous-répertoires. En effet, OS-9 catalogue les fichiers et les répertoires de la même manière que vous pourriez mettre des fichiers relatifs à un sujet particulier dans un tiroir de classeur. Avec OS-9, vous pouvez avoir autant de niveaux de répertoire que votre espace d'entreposage sur disque le permet.
Fichiers disque
Un fichier disque est un bloc logique de données. (Logique signifie que même si les données peuvent ne pas exister réellement dans un bloc contigu, OS-9 les traite comme si c'était le cas.) Un fichier peut contenir un programme, du texte, une commande, un langage de programmation informatique ou toute autre forme de code. Chaque fois que vous demandez à OS-9 d'entreposer des données sur un disque, vous devez spécifier un nom de fichier pour ce bloc de données. Vous et le système devez alors utiliser le nom de fichier pour accéder aux données. Le système entrepose tous les fichiers sous la forme d'une séquence ordonnée d'octets de 8 bits. Le fichier peut de n'importe quelle taille de 0 octet à la capacité maximale du périphérique d'entreposage et peut être étendu ou raccourci à volonté. Lorsque OS-9 crée ou ouvre un fichier, il établit un pointeur de fichier pour celui-ci. Le système d'exploitation OS-9 adresse les octets dans le fichier de la même manière qu'il adresse la mémoire, et le pointeur de fichier contient l'adresse de l'octet suivant à écrire ou à lire. Les fonctions de lecture et d'écriture de l'OS-9 mettent toujours à jour le pointeur lorsque le système transfère des données. Cette fonction de pointeur permet aux programmeurs en langage de programmation assembleur et aux programmeurs en langage de programmation de haut niveau de repositionner le pointeur de fichier. Pour développer un fichier, écrivez au-delà de la fin précédente du fichier. La lecture jusqu'au dernier octet d'un fichier entraîne le retour de la prochaine demande de lecture d'un état de fin de fichier. Le système de fichiers d'OS-9 utilise également une organisation universelle pour tous les périphériques d'entrées/sorties. Cette fonctionnalité signifie que les programmes d'application peuvent traiter chaque périphérique matériel de la même manière.
Secteurs
Les données contenues dans un fichier sont entreposées dans un ou plusieurs secteurs (unités d'entreposage sur disque). Ces secteurs de fichiers ont une disposition à la fois logique et physique. La disposition logique numérote les secteurs dans l'ordre. L'agencement peut être dans n'importe quel ordre basé sur l'emplacement réel d'un secteur sur la surface d'un disque. Par exemple, le secteur logique 1 peut être situé dans le secteur physique 10 et le secteur logique 2 dans le secteur physique 19. Chaque secteur contient 256 octets de données. Le premier secteur de chaque fichier (numéro de secteur logique 0 ou LSN 0) est appelé le descripteur de fichier. Il contient la description logique et physique du fichier. Le module de pilote de disque relie les numéros de secteur aux numéros de piste / secteur physique sur un disque. Un secteur est la plus petite unité physique d'un fichier que OS-9 peut allouer pour l'entreposage. Sur le micro-ordinateur CoCo (Color Computer), un secteur est également la plus petite unité de fichiers. (Pour augmenter l'efficacité sur certains systèmes de disques de plus grande capacité, le système d'exploitation OS-9 utilise des groupes de secteurs de taille uniforme, appelés unités d'allocation (ou clusters en anglais), comme la plus petite unité pouvant être allouée. Une unité d'allocation est toujours une puissance intégrale de deux - 2, 4, 8 et ainsi de suite.) Le système d'exploitation OS-9 utilise un ou plusieurs secteurs de chaque disque en tant que bitmap (commençant généralement à LSN 1) dans lequel chaque bit de données correspond à une unité d'allocations sur le disque. Le système définit et efface les bits pour indiquer quels unités d'allocations il utilise, quels unités d'allocation sont défectueux et quels unités d'allocations sont libres d'allocation. Le système de disquettes par défaut du CoCo (Computer Color) utilise ce format :
- Enregistrement double densité sur une simple face.
- 35 pistes par disquette
- 18 secteurs par piste.
- Un secteur par unité d'allocation
Chaque fichier OS-9 a une entrée de répertoire comprenant le nom de fichier et le numéro de secteur logique du secteur de descripteur de fichier du fichier. Le secteur de descripteur de fichier contient une description complète de son fichier, lequel comprenant : les attributs, le propriétaire, les données et temps créés, la taille, la liste de segments (description des blocs de secteur de données). À moins que la taille du fichier ne soit égale à 0, le fichier utilise un ou plusieurs secteurs/unité d'allocations pour entreposer les données. Le système regroupe les secteurs de données en un ou plusieurs blocs adjacents appelés segments.
Fichiers texte
Les fichiers texte contiennent des lignes de longueur variable de caractères ASCII. Un retour chariot (code ASCII 0D en hexadécimal ou 13 en décimal) termine chaque ligne. Les fichiers texte contiennent des données telles que le code source du programme, les fichiers de procédure, les messages et la documentation. Les programmes lisent généralement les fichiers texte de manière séquentielle. Presque toutes les langages de programmation de haut niveau (telles que BASIC09) prennent en charge les fichiers texte.
Fichiers de données à accès aléatoire
Les fichiers à accès aléatoire se composent de séquences d'enregistrements, chaque enregistrement ayant la même longueur. Un programme peut trouver l'adresse de début de n'importe quel enregistrement en multipliant le numéro d'enregistrement par le nombre d'octets utilisés pour chaque enregistrement. Cette fonction permet un accès direct à n'importe quel enregistrement. Habituellement, les langages de programmation de haut niveau vous permettent de subdiviser les enregistrements en champs. Chaque champ peut avoir une longueur et une utilisation fixes. Par exemple, le premier champ d'un enregistrement peut avoir une longueur de 25 caractères de texte, le champ suivant peut avoir une longueur de deux octets et utilisé pour contenir des nombres binaires de 16 bits, et ainsi de suite. Le système d'exploitation OS-9 ne traite pas directement les enregistrements. Il ne fournit que les fonctions de base des fichiers utilisées par les langages de programmation de haut niveau pour créer et gérer des fichiers à accès aléatoire. Les programmeurs utilisent des langages de programmation de haut niveau comme BASIC09, Pascal (OS-9 Pascal) et C (OS-9 C Compiler, CoCo-C,...) pour créer des fichiers de données à accès aléatoire. Par exemple, dans BASIC09 et Pascal, les fonctions GET, PUT et SEEK fonctionnent sur des fichiers à accès aléatoire.
Fichiers de procédures
Les fichiers de procédures sont des fichiers disque contenant des commandes. Vous pouvez les utiliser pour exécuter une série de commandes en tapant et en entrant un seul nom de commande. Votre disquette System Master contient un fichier de procédure utilisant la commande BUILD, copiant l'entrée du clavier dans un fichier ou en utilisant un programme d'édition de texte. Par exemple, supposons que vous ayez trois unités de disque de disque, /D0, /D1 et /H0. Vous pouvez créer 3 procédures très simples pour vous permettre d'accéder aux répertoires de ces disques en tapant et en entrant une simple commande à 2 caractères. Pour créer un fichier de procédure dans le répertoire de /D1, tapez :
build p1ENTER display 0cENTER dir /dENTER display 0AENTER ENTER |
La première ligne crée un fichier nommé p1 (répertoire d'impression pour l'unité de disque /D1). Lorsque vous appuyez sur ENTER, un point d'interrogation apparaît à l'écran vous indiquant que OS-9 attend une entrée. Tapez lui des lignes. Enfin, appuyez sur ENTER au début d'une ligne pour indiquer à OS-9 que l'entrée est terminée. Le système d'exploitation OS-9 ferme alors le fichier. Maintenant, pour voir le contenu de l'unité de disque /D1, tapez p1ENTER. La commande display 0C efface l'écran vidéo. La commande display 0A fait descendre le curseur d'une ligne sur l'écran. Utilise votre imagination. Presque tout ce que vous pouvez faire à partir du clavier, vous pouvez le faire avec un fichier de procédure. Cependant, rappelez-vous que OS-9 recherche uniquement dans le répertoire de données courant un fichier de procédure, à moins que vous ne fournissiez une liste complète des chemins d'accès à la procédure. De plus, le système d'exploitation OS-9 doit être capable de trouver toute commande dans le répertoire d'exécution courant ne contenant pas les commandes dont vous avez besoin, changez-la, soit à partir du clavier, soit dans le cadre de votre fichier de procédure.
Remarques
- Pour exécuter OS-9 Level II (OS-9 niveau II), vous devez disposer d'un micro-ordinateur CoCo 3 avec au moins un unité de disquettes. Votre disquette système OS-9 comprend des modules pour prendre en charge le matériel informatique couleur suivant : jusqu'à 512 Ko de RAM, uu clavier, un affichage vidéo alphanumérique, un écran graphique couleur, un unité de disquettes (un ou deux), une imprimante série, un port de communication RS-232C. Si vous connectez une interface Multi-Pak à votre micro-ordinateur et que vous utilisez l'utilitaire CONFIG de votre disquette BASIC09/CONFIG, le système d'exploitation OS-9 peut prendre en charge les périphériques suivants : jusqu'à deux cartes de communication RS-232 externes, jusqu'à deux modules modem, jusqu'à deux unités de disquettes supplémentaires.
- La version pour PowerPC (OS-9000), a été réécrite en langage de programmation C, et inclus un compilateur C (utilisable avec la commande «cc»).