Apple DOS - Apple DOS

Apple DOS
Apple DOS.png
Ordinateur Apple exécutant un programme Hello World
Développeur ordinateur Apple
Écrit en Assemblée
Famille d'OS Apple DOS
État de fonctionnement Abandonné
Modèle source Source fermée
Première version 1978 ; il y a 43 ans ( 1978 )
Dernière version 3.3 / 1980 ; il y a 41 ans ( 1980 )
Type de noyau Noyau monolithique
Licence Contrat de licence de logiciel Apple

Apple DOS est la famille de systèmes d'exploitation de disque pour la série de micro - ordinateurs Apple II de fin 1978 à début 1983. Il a été remplacé par ProDOS en 1983. Apple DOS a trois versions principales : DOS 3.1, DOS 3.2 et DOS 3.3 ; chacune de ces trois versions a été suivie d'une seconde version mineure de "correction de bogues", mais ce n'est que dans le cas d'Apple DOS 3.2 que cette version mineure a reçu son propre numéro de version, Apple DOS 3.2.1. La version la plus connue et la plus utilisée est Apple DOS 3.3 dans les versions 1980 et 1983. Avant la sortie d'Apple DOS 3.1, les utilisateurs d'Apple devaient s'appuyer sur des cassettes audio pour le stockage et la récupération des données.

Historique des versions

Lorsque Apple Computer a introduit l' Apple II en avril 1977, le nouvel ordinateur n'avait pas de lecteur de disque ou de système d'exploitation de disque (DOS). Bien que le co-fondateur d'Apple, Steve Wozniak, ait conçu le contrôleur Disk II à la fin de l'année et pensait qu'il aurait pu écrire un DOS, son co-fondateur Steve Jobs a décidé d'externaliser la tâche. L'entreprise a envisagé d'utiliser le CP/M de Digital Research , mais Wozniak a cherché un système d'exploitation plus facile à utiliser. Le 10 avril 1978, Apple a signé un contrat de 13 000 $ avec Shepardson Microsystems pour écrire un DOS et le livrer dans les 35 jours. Apple a fourni des spécifications détaillées, et le premier employé d'Apple, Randy Wigginton, a travaillé en étroite collaboration avec Paul Laughton de Shepardson alors que ce dernier a écrit le système d'exploitation avec des cartes perforées et un mini - ordinateur .

Il n'y avait pas d'Apple DOS 1 ou 2. Les versions 0.1 à 2.8 étaient des révisions énumérées en série pendant le développement, qui auraient tout aussi bien pu être appelées builds 1 à 28. Apple DOS 3.0, une édition renommée de la version 2.8, n'a jamais été publiée en raison de bogues . Apple n'a publié aucune documentation officielle jusqu'à la version 3.2.

Apple DOS 3.1 a été rendu public en juin 1978, un peu plus d'un an après l'introduction de l'Apple II, devenant ainsi le premier système d'exploitation sur disque pour n'importe quel ordinateur Apple. Une version de correction de bogues est arrivée plus tard, résolvant un problème au moyen de son MASTER CREATEutilitaire, qui a été utilisé pour créer des disques maîtres (démarrables) Apple DOS : la INITcommande intégrée a créé des disques qui ne pouvaient être démarrés que sur des machines avec au moins la même quantité de la mémoire comme celui qui les avait créés. MASTER CREATEinclut une version auto-déplaçable de DOS qui démarre sur Apple avec n'importe quelle configuration de mémoire.

Apple DOS 3.2 a été publié en 1979 pour refléter les changements dans les méthodes de démarrage de l'ordinateur qui ont été intégrés au successeur de l'Apple II, l'Apple II Plus. Le nouveau micrologiciel comprenait une fonction de démarrage automatique qui trouvait automatiquement un contrôleur de disque et démarrait à partir de celui-ci lorsque le système était mis sous tension, ce qui lui a valu le nom de "Autostart ROM ". DOS 3.2.1 a ensuite été publié en juillet 1979 avec quelques corrections de bogues mineurs.

Apple DOS 3.3 a été publié en 1980. Il améliore diverses fonctions de la version 3.2, tout en permettant également d'importants gains de stockage sur disquette disponible ; les nouvelles PROM P5A/P6A dans le contrôleur de disque ont permis la lecture et l'écriture de données à une densité plus élevée, donc au lieu de 13 secteurs (3,25  Kio ), 16 secteurs (4 Kio) de données peuvent être stockés par piste de disque, augmentant la capacité de 113,75 Ko à 140 Ko par côté disque - dont 16 Ko sont utilisés par la surcharge du système de fichiers et une copie de DOS, sur un disque au format DOS 3.3, laissant 124 Ko pour les programmes et les données utilisateur. DOS 3.3 n'est cependant pas rétrocompatible ; il ne peut ni lire ni écrire sur les disques DOS 3.2. Pour résoudre ce problème, Apple Computer a publié un utilitaire appelé "MUFFIN" pour migrer les fichiers et programmes Apple DOS 3.2 vers les disques de la version 3.3. Apple n'a jamais proposé d'utilitaire pour copier dans l'autre sens. Pour migrer les fichiers Apple DOS 3.3 vers les disques de la version 3.2, quelqu'un a écrit un utilitaire "NIFFUM". Il existe également des utilitaires commerciaux (tels que Copy II Plus) qui peuvent copier des fichiers depuis et vers l'un ou l'autre format (et éventuellement ProDOS également). La version 3.3 améliore également la possibilité de basculer entre Integer BASIC et Applesoft BASIC, si l'ordinateur dispose d'une carte de langue ( extension RAM ) ou d'une carte de micrologiciel.

Détails techniques

Les disques Apple DOS 3.1 utilisent 13 secteurs de données par piste, chaque secteur faisant 256 B. Il utilise 35 pistes par côté du disque et ne peut accéder qu'à un seul côté de la disquette, à moins que l'utilisateur ne retourne la disquette . Cela donne à l'utilisateur une capacité de stockage totale de 113,75 Ko par côté, dont environ 10 Ko sont utilisés pour stocker le DOS lui-même et le répertoire du disque, laissant environ 100 Ko pour les programmes utilisateur.

La première couche du système d'exploitation s'appelle RWTS, ce qui signifie « secteur de piste de lecture/écriture ». Cette couche se compose de sous - programmes pour la recherche de pistes, la lecture et l'écriture de secteurs et le formatage du disque. Une API appelée File Manager a été construite au-dessus de cela et implémente des fonctions pour ouvrir, fermer, lire, écrire, supprimer, verrouiller (c'est-à-dire protéger en écriture), déverrouiller (c'est-à-dire activer en écriture) et renommer des fichiers, et pour vérifier l'intégrité structurelle d'un fichier. Il existe également une fonction de catalogue, pour lister les fichiers sur la disquette, et une fonction "init", qui formate un disque pour une utilisation avec DOS, stocke une copie de DOS sur les trois premières pistes et stocke un programme de démarrage (généralement appelé HELLO ) qui est démarré automatiquement lorsque ce disque est démarré à partir de. En plus de l'API File Manager, les principales routines DOS sont implémentées qui se connectent à l'interpréteur BASIC de la machine et interceptent toutes les commandes du disque. Il fournit BLOAD , BSAVE et BRUN pour stocker, charger et exécuter des exécutables binaires. LOAD, RUN et SAVE sont fournis pour les programmes BASIC, et un EXEC a été fourni pour exécuter des fichiers de commandes textuels composés de commandes BASIC et DOS. Enfin, quatre types de fichiers existent, identifiés par des lettres dans un listing catalogue :

  • I – Programmes entiers BASIC (stockés dans un format compact, pas en texte brut)
  • A – Programmes Applesoft BASIC (également stockés dans un format compact et peu encombrant)
  • B – Fichiers binaires , soit des programmes exécutables en langage machine, soit des fichiers de données
  • T - Fichiers texte ASCII (ou fichiers batch non compressés en texte brut)

Il existe quatre types de fichiers supplémentaires ; "R", "S", et un "A" et "B" supplémentaires, dont aucun n'est entièrement pris en charge. DOS reconnaît ces types uniquement pour les listes de catalogue et il n'existe aucun moyen direct de manipuler ces types de fichiers. Le type "R" a trouvé une certaine utilité pour les fichiers exécutables binaires réadressables. Quelques programmes prennent en charge le type "S" en tant que fichiers de données.

Une table de vecteurs d'appels de l'ordre de $03D0–03FF 16 permet aux programmes de trouver le DOS partout où il est chargé dans la mémoire système. Par exemple, si le DOS connecté à la CLI BASIC cesse de fonctionner, il peut être réinitialisé en appelant l'emplacement $03D0 16 (976 10 ) - d'où la commande traditionnelle "3D0G" ("3D0 go") pour revenir à BASIC depuis le moniteur système .

Chargeur de démarrage

Le processus de chargement d'Apple DOS implique une série de très petits programmes, chacun faisant avancer le processus de chargement de quelques étapes avant de passer le contrôle au programme suivant de la chaîne.

  • À l'origine, la ROM Apple II ne prenait pas du tout en charge le démarrage sur disque. À la mise sous tension, il afficherait l'invite du moniteur système. Le moniteur et l'entier BASIC ont tous deux des commandes pour rediriger l'impression vers un pilote d'imprimante dans un emplacement désigné, donc la manière conventionnelle de démarrer à partir du disque consistait alors à ordonner à l'ordinateur de démarrer "l'impression" sur la carte d'interface du disque, généralement installée dans l'emplacement 6 , en utilisant la commande 6 Control-P (depuis le moniteur ML) ou PR#6 (depuis BASIC). Lorsque le moniteur ou le BASIC émettait le caractère d'invite suivant, l'ordinateur appelait les routines ROM sur la carte disque pour "imprimer" sur celle-ci, qui procéderait ensuite à la séquence de démarrage. (On pourrait utiliser la redirection d'entrée à des fins similaires.) Alternativement, à partir du moniteur ML, l'utilisateur peut taper le numéro d'emplacement, en tapant C600G pour appeler directement le code de démarrage du contrôleur.
  • Lorsque l'Apple II Plus a été introduit, il comprenait la possibilité d'analyser chaque connecteur d'extension (en descendant du connecteur 7 au connecteur 1) à la recherche d'une ROM de carte d'extension amorçable et de l'appeler automatiquement.
  • Le code de démarrage de la ROM de la carte d'extension tente de démarrer à partir du lecteur 1 du contrôleur en déplaçant le bras de lecture/écriture vers la piste zéro et en essayant de lire 256 octets à partir du secteur zéro de cette piste. (Si aucun disque lisible n'est disponible, le lecteur tourne indéfiniment jusqu'à ce qu'un disque soit fourni et que la porte du lecteur soit fermée.)
  • Le secteur zéro contient un petit programme qui demande à l'ordinateur de lire les secteurs 0 à 9 de la piste zéro en mémoire en utilisant une partie du code de démarrage de la ROM (relecture du secteur 0 dans le processus).
  • Le programme dans les secteurs 1 à 9 de la piste 0, y compris le code RWTS complet, procède ensuite au chargement des pistes 1 et 2, qui contiennent le reste du DOS. Sur un disque maître système, du code est également inclus pour déterminer la configuration de la RAM de l'ordinateur et déplacer le DOS aussi haut que possible dans la mémoire système, jusqu'à la limite de 48 Ko de la mémoire principale de l'Apple II ($BFFF 16 ).
  • Une fois que DOS est chargé en mémoire, il tente de charger et d'exécuter un programme de démarrage comme indiqué dans le code du programme DOS. Il s'agit généralement d'un programme en langage BASIC nommé HELLO (ou sous un autre nom) mais DOS peut être modifié pour exécuter d'autres types de programmes au démarrage, comme un fichier binaire exécutable. L'apparition du crochet droit ( ] ) sur l'écran indique à l'utilisateur qu'un programme de démarrage Applesoft BASIC est en cours de chargement, tandis qu'un symbole supérieur à ( > ) indique qu'un programme Integer BASIC est en cours de chargement. (Ce sont les invites pour les versions respectives de BASIC, qui sont en cours d'initialisation à ce stade.)
  • Le programme de démarrage commence alors à s'exécuter.

Prise en charge des nombres entiers BASIC et Applesoft BASIC

L'original Apple II comprenait un interpréteur BASIC en ROM connu à l'origine sous le nom d' Apple BASIC et plus tard sous le nom d' Integer BASIC . Les variables de ce langage ne peuvent gérer que des nombres entiers compris entre -32 768 et +32 767 ( valeurs binaires 16 bits ) ; les nombres à virgule flottante ne sont pas pris en charge. Apple a chargé Microsoft de développer Applesoft BASIC , capable de gérer les nombres à virgule flottante. Applesoft BASIC ne peut pas exécuter les programmes Integer BASIC, ce qui oblige certains utilisateurs à résister à la mise à niveau.

DOS 3.3 a été publié lorsque Applesoft BASIC était standard en ROM sur l'Apple II Plus, Apple l'a donc conçu pour prendre en charge le basculement entre les deux interpréteurs BASIC. L'entier BASIC est chargé dans la RAM sur la carte de langue des Apple II (le cas échéant) et en tapant FP ou INT à partir de BASIC, l'utilisateur peut basculer entre les deux versions.

Déclin

Après 1980, Apple DOS est entré dans un état de stagnation alors qu'Apple concentrait ses efforts sur le malheureux ordinateur Apple III et son système d'exploitation SOS . Deux autres versions d'Apple DOS, toutes deux toujours appelées DOS 3.3 mais avec quelques corrections de bogues et une meilleure prise en charge du nouveau modèle Apple IIe , ont été publiées au début et au milieu de 1983.

Sans correctifs tiers, Apple DOS ne peut lire que les disquettes s'exécutant dans un lecteur Disk II 5,25 pouces et ne peut accéder à aucun autre support, tel que les lecteurs de disque dur, les lecteurs RAM virtuels ou les lecteurs de disquettes 3,5 pouces. La structure des disques Apple DOS (en particulier la carte des secteurs libres, qui était limitée à une partie d'un seul secteur) est telle qu'il n'est pas possible d'avoir plus de 400 Ko disponibles à la fois par lecteur sans une réécriture majeure de presque toutes les sections du code ; c'est la principale raison pour laquelle Apple a abandonné cette itération de DOS en 1983, lorsque Apple DOS a été entièrement remplacé par ProDOS .

ProDOS conserve le format de bas niveau à 16 secteurs de DOS 3.3 pour les disques de 5,25 pouces, mais introduit un nouveau format de haut niveau qui convient aux périphériques jusqu'à 32  Mo ; cela le rend approprié pour les disques durs de cette époque et les disquettes de 3,5 pouces. Tous les ordinateurs Apple à partir du II Plus peuvent exécuter à la fois DOS 3.3 et ProDOS, le Plus nécessitant une extension de mémoire « Language Card » pour utiliser ProDOS ; les modèles e et ultérieurs ont un matériel de carte de langue intégré et peuvent donc exécuter directement ProDOS. ProDOS inclut un logiciel pour copier des fichiers à partir de disques Apple DOS. Cependant, de nombreuses personnes qui n'avaient pas besoin des améliorations de ProDOS (et qui n'aimaient pas son empreinte mémoire beaucoup plus élevée) ont continué à utiliser Apple DOS ou l'un de ses clones bien après 1983. La convention Apple de stocker un système d'exploitation amorçable sur chaque disquette disk signifie que les logiciels commerciaux peuvent être utilisés quel que soit le système d'exploitation de l'utilisateur. Un programme appelé DOS.MASTER permet aux utilisateurs d'avoir plusieurs partitions virtuelles DOS 3.3 sur un plus grand volume ProDOS, ce qui permet l'utilisation de nombreux programmes DOS sur disquette avec un disque dur.

Peu de temps après la sortie de ProDOS, Apple a retiré à des tiers l'autorisation de redistribuer DOS 3.3, mais a accordé à une société, Syndicomm, une licence exclusive pour revendre DOS 3.3.

Les jeux commerciaux n'utilisaient généralement pas Apple DOS, mais avaient plutôt leurs propres routines de disque personnalisées à des fins de protection contre la copie ainsi que pour les performances.

Amélioration des performances

La routine RWTS de DOS peut lire ou écrire une piste en deux tours avec un entrelacement approprié. Un secteur du disque en rotation passe sous la tête de lecture/écriture pendant que la routine RWTS décode le secteur juste lu (ou encode le prochain à écrire), et si ce secteur manqué est le prochain nécessaire, DOS doit attendre presque toute une révolution du disque pour que le secteur revienne. C'est ce qu'on appelle "faire sauter un régime" et c'est un goulot d'étranglement des performances bien compris dans les systèmes de disques. Pour éviter cela, les secteurs d'un disque DOS sont disposés dans un ordre entrelacé :

0 7 e 6 d 5 c 4 b 3 a 2 9 1 8 f

Plus tard, ProDOS a organisé les secteurs dans cet ordre :

0 8 1 9 2 a 3 b 4 c 5 d 6 e 7 f

Lors de la lecture et du décodage du secteur 0, alors le secteur 8 passe, de sorte que le secteur 1, le prochain secteur susceptible d'être nécessaire, sera disponible sans attendre. Lors de la lecture du secteur 7, deux secteurs inutiles, f et 0, passent avant que le secteur 8 ne soit disponible, et lors de la lecture du secteur 15, le lecteur devra toujours attendre un tour supplémentaire pour le secteur 0 sur la même piste. Cependant, le secteur 0 réellement nécessaire dans la plupart des cas sera sur la piste immédiatement supérieure, et cette piste peut être agencée par rapport à la dernière pour laisser le temps nécessaire pour décoder le secteur qui vient d'être lu et déplacer la tête avant que le secteur 0 n'arrive. environ. En moyenne, une piste complète peut être lue en deux tours de disque.

Malheureusement, le premier gestionnaire de fichiers DOS a renversé cette efficacité en copiant les octets lus ou écrits dans un fichier un par un entre un tampon de disque et la mémoire principale, ce qui a nécessité plus de temps et a entraîné une augmentation constante du régime DOS lors de la lecture ou de l'écriture de fichiers. Des programmes sont devenus disponibles très tôt pour formater des disques avec des entrelacements de secteurs modifiés ; ces disques donnent au DOS plus de temps entre les secteurs pour copier les données, ce qui améliore le problème.

Plus tard, des programmeurs extérieurs à Apple ont réécrit les routines du gestionnaire de fichiers pour éviter de faire la copie supplémentaire pour la plupart des secteurs d'un fichier ; RWTS a reçu l'ordre de lire ou d'écrire des secteurs directement vers ou depuis la mémoire principale plutôt qu'à partir d'un tampon de disque chaque fois qu'un secteur plein devait être transféré. Un "patch" précoce pour fournir cette fonctionnalité a été publié dans Call-APPLE . Des accélérations de trois à cinq fois dans la commande LOAD étaient typiques.

Cette fonctionnalité est rapidement apparue dans des produits commerciaux, tels que Pronto-DOS, Diversi-DOS, Hyper-DOS et David-DOS, avec des fonctionnalités supplémentaires, mais elle n'a jamais été utilisée dans une version officielle Apple DOS. Une fonctionnalité similaire a cependant été utilisée par le système d'exploitation successeur d'Apple, ProDOS. Le système d'exploitation GS/OS spécifique à Apple IIGS utiliserait finalement une technique de "lecture dispersée" encore plus efficace qui lirait tout secteur passant sous la tête de lecture si cela était nécessaire pour le fichier en cours de lecture.

Sortie du code source

En 2013, plus de 35 ans après le lancement de l' Apple II , le code source Apple DOS original a été publié par le Computer History Museum sur son site Web. Il a été offert par l'auteur original, Paul Laughton.

Les références

Lectures complémentaires

  • Ça vaut le coup, Don ; Lechner, Pieter (1981), Sous Apple DOS , Logiciel de qualité, ISBN 0-912985-00-3

Liens externes