Article de reference

86-DOS

86-DOS (connu en interne sous le nom de QDOS , pour Quick and Dirty Operating System ) est un système d'exploitation abandonné développé et commercialisé par Seattle Computer Pr...

86-DOS (connu en interne sous le nom de QDOS , pour Quick and Dirty Operating System ) est un système d'exploitation abandonné développé et commercialisé par Seattle Computer Products (SCP) pour son kit informatique basé sur Intel 8086 .

86-DOS partageait certaines de ses commandes avec d'autres systèmes d'exploitation tels que OS/8 et CP/M , ce qui facilitait le portage de programmes depuis ces derniers. Son interface de programmation était très similaire à celle de CP/M. Le système fut d'abord commercialisé sous licence, puis racheté par Microsoft et développé ultérieurement sous les noms de MS-DOS et IBM PC DOS .

Histoire

Origines

86-DOS a été créé car les ventes du kit informatique 8086 de Seattle Computer Products , présenté en juin 1979 et commercialisé en novembre , stagnaient faute de système d'exploitation. Le seul logiciel que SCP pouvait vendre avec la carte était Standalone Disk BASIC-86 de Microsoft , développé par Microsoft sur un prototype du matériel SCP . SCP souhaitait proposer la version 8086 de CP/M initialement annoncée par Digital Research pour novembre 1979, mais sa sortie fut retardée et sa date de disponibilité incertaine . Ce n'était pas la première fois que Digital Research accusait un retard dans le développement matériel ; deux ans auparavant, l'adaptation de CP/M aux nouveaux formats de disquettes et aux disques durs avait été lente. En avril 1980, SCP confia à Tim Paterson, âgé de 24 ans, le développement d'un substitut à CP/M-86 .

S'appuyant sur le manuel CP/M-80 , Paterson a conçu 86-DOS en reprenant son architecture et ses interfaces, mais en l'adaptant aux exigences du processeur 16 bits Intel 8086 , afin de faciliter (et partiellement automatiser) la traduction au niveau du code source des nombreux programmes CP/M 8 bits existants . Leur portage vers DOS ou CP/M-86 s'avérait tout aussi complexe et fut simplifié par le fait qu'Intel avait déjà publié une méthode permettant de traduire automatiquement les logiciels du processeur Intel 8080 , pour lequel CP/M avait été conçu, vers le nouveau jeu d'instructions 8086 . Parallèlement, il apporta plusieurs modifications et améliorations pour pallier ce qu'il considérait comme les lacunes de CP/M. Ce dernier mettait en cache les informations du système de fichiers en mémoire pour optimiser les performances, mais cela obligeait l'utilisateur à forcer la mise à jour d'un disque avant de le retirer ; en cas d'oubli, le disque était corrompu. Paterson opta pour une approche plus sûre, mais plus lente, consistant à mettre à jour le disque à chaque opération. La commande PIP de CP/M, qui servait à copier les fichiers, prenait en charge plusieurs noms de fichiers spéciaux faisant référence à des périphériques matériels tels que les imprimantes et les ports de communication . Paterson intégra ces noms au système d'exploitation sous forme de fichiers de périphériques afin que n'importe quel programme puisse les utiliser. Il donna à son programme de copie le nom plus intuitif de COPY . Plutôt que d'implémenter le système de fichiers de CP/M , il s'inspira du système de fichiers FAT ( File Allocation Table ) de Microsoft Standalone Disk BASIC-86 .

Au milieu des années 1980, SCP faisait la publicité de 86-DOS, au prix de 95 $US pour les propriétaires de sa carte 8086 à 1 290 $US et de 195 $US pour les autres. L’entreprise vantait la capacité du logiciel à lire le code source Zilog Z80 à partir d’une disquette CP/M et à le traduire en code source 8086, et promettait que seules des « corrections et optimisations manuelles mineures » étaient nécessaires pour produire des binaires 8086.

Intérêt d'IBM

En octobre 1980, IBM développait ce qui allait devenir le premier ordinateur personnel IBM . CP/M était alors de loin le système d'exploitation le plus répandu, et IBM estimait en avoir besoin pour rester compétitif. Des représentants d'IBM se rendirent chez Digital Research et discutèrent des licences avec la responsable des licences de Digital Research, Dorothy Kildall (née McEwen), qui hésita à signer l'accord de confidentialité d'IBM . Bien que l'accord ait finalement été accepté, Digital Research refusa la proposition d'IBM de 250 000 $ US en échange de la vente d'un nombre illimité de copies, insistant sur le modèle habituel de redevances . Lors de discussions ultérieures entre IBM et Bill Gates , ce dernier mentionna l'existence de 86-DOS, et Jack Sams, représentant d'IBM, lui conseilla d'en acquérir une licence.

Création de PC DOS

En décembre 1980, Microsoft acquit une licence non exclusive pour 86-DOS auprès de Seattle Computer Products , qui utilisait le processeur Intel 8088, moins rapide et moins coûteux, et disposait de sa propre gamme de périphériques. IBM suivit quotidiennement l’évolution du projet et soumit plus de 300 demandes de modification avant d’accepter le produit et de rédiger son manuel d’utilisation.

En juillet 1981, un mois avant la sortie du PC, Microsoft acquit tous les droits sur 86-DOS auprès de SCP pour 50 000 $US. Ce système répondait aux principaux critères d'IBM : son interface était similaire à celle de CP/M et il était facile d'adapter les programmes CP/M 8 bits existants, notamment grâce à la commande TRANS qui permettait de convertir les fichiers sources des instructions 8080 en instructions 8086. Microsoft concéda une licence pour 86-DOS à IBM, donnant naissance à PC DOS 1.0. Cette licence autorisait également Microsoft à vendre DOS à d'autres entreprises, ce qu'elle fit. L'opération fut un succès retentissant, et SCP affirma par la suite devant les tribunaux que Microsoft avait dissimulé ses liens avec IBM afin d'acquérir le système d'exploitation à bas prix. SCP obtint finalement un million de dollarsUS d'indemnisation.

Litige relatif à la propriété intellectuelle

Lorsque Gary Kildall, fondateur de Digital Research , examina PC DOS et constata qu'il reproduisait l'interface de programmation de CP/M, il voulut poursuivre IBM, qui affirmait alors que PC DOS était son propre produit. Cependant, l'avocat de Digital Research estima que le droit applicable n'était pas suffisamment clair pour engager une action en justice. Néanmoins, Kildall confronta IBM et la persuada de proposer CP/M-86 avec le PC en échange d'une renonciation à toute responsabilité.

La controverse persiste quant à la similarité entre les deux systèmes. L'affirmation la plus sensationnelle est sans doute celle de Jerry Pournelle , qui prétendait que Kildall lui avait personnellement démontré que DOS contenait du code CP/M en saisissant une commande affichant son nom Cependant, Pournelle n'a jamais révélé cette commande et personne n'est venu corroborer ses dires. Un ouvrage de 2004 consacré à Kildall indique qu'il aurait utilisé un tel message chiffré pour démontrer que d'autres fabricants avaient copié CP/M, sans toutefois préciser qu'il l'ait trouvé dans DOS . En revanche, les mémoires de Kildall (source de l'ouvrage) mettent en évidence la similarité notoire de l'interface. Paterson, quant à lui, affirme que le logiciel 86-DOS est son œuvre originale et nie avoir fait référence à du code CP/M ou l'avoir utilisé de quelque manière que ce soit lors de son développement Après la parution du livre en 2004, il a porté plainte contre les auteurs et l'éditeur pour diffamation . Le tribunal a statué en jugement sommaire qu'il n'y avait pas eu de diffamation, car les affirmations du livre étaient des opinions fondées sur des recherches ou n'étaient pas prouvées fausses.

Versions

QDOS 0.10 1980-07 Version du système d'exploitation à peu près à moitié achevée. Elle implémentait la forme originale de la dérivation par Paterson du système de fichiers FAT de Microsoft . Contrairement au système de fichiers FAT 8 bits précédent présent dans Standalone Disk BASIC-86 , cette variante prenait déjà en charge les éléments de table 12 bits, réduisait le nombre de FAT de 3 à 2, redéfinissait la sémantique de certaines valeurs de cluster réservées et modifiait l'organisation du disque, de sorte que le répertoire racine se situait désormais entre la FAT et la zone de données. Paterson a également augmenté la limite de longueur précédente de 9 à 11 caractères afin de prendre en charge les noms de fichiers de style CP/M 8.3 et les blocs de contrôle de fichiers . Cette variante utilisait cependant encore des entrées de répertoire de 16 octets et n'est donc pas compatible avec ce qui est devenu plus tard le FAT12 dans MS-DOS/PC DOS. Probablement déjà distribuée.
QDOS/86-DOS 0.11 1980-08 Correctif de bug expédition.
QDOS/86-DOS 0.2 1980-08 EDLIN ajouté. Renommé 86-DOS en août 1980.
86-DOS 0.3 15 novembre 1980Première version concédée sous licence par SCP à Microsoft.
86-DOS 0.33 1980-12 La première version a été distribuée par SCP aux OEM et à Microsoft sous le nom de 86-DOS.
86-DOS 0.34 29 décembre 1980 Version corrigée pour les OEM SCP, y compris Microsoft.
86-DOS 0.42 25 février 1981 À la demande indirecte d'IBM (via Microsoft ), la taille des entrées de répertoire est passée de 16 à 32 octets (comme sous MDOS/MIDAS ) afin de prendre en charge l'horodatage de dernière modification (2 octets) et les fichiers théoriques de plus de 16 Mo (4 octets) Ceci a permis d'implémenter la première version du système de fichiers FAT 12 bits, logiquement compatible avec ce qui deviendra plus tard le FAT12 sous MS-DOS/PC-DOS. 86-DOS conservait la possibilité de lire les volumes écrits sous les anciennes versions de 86-DOS , au moins jusqu'à MS-DOS 1.14 , tandis que MS-DOS 1.20 / PC-DOS 1.1 et les versions ultérieures ne la prenaient plus en charge.
86-DOS 0.56 23 mars 1981 Prise en charge du blocage/déblocage de disque demandé depuis le 15 janvier 1981.
86-DOS 0.60 27 mars 1981 Le fichier DOSIO.ASMtrouvé dans 86-DOS 1.00 mentionne qu'il s'agit du « système d'E/S pour 86-DOS version 0.60 et ultérieures ».
86-DOS 0.74 15 avril 1981 Fichiers de périphérique ajoutés .
86-DOS 0,75 17 avril 1981 Correction de bug.
86-DOS 0.76 23 avril 1981 Correction de bug.
86-DOS 0.80 27 avril 1981 Ajout d'appels système.
86-DOS 1.00 28 avril 1981 Appels système modifiés.
86-DOS 1.01 12 mai 1981 Correction de bug.
86-DOS 1.10 21 juillet 1981 Racheté par Microsoft et renommé MS-DOS le 27 juillet 1981, il s'agit donc de la dernière version dont les numéros de version 86-DOS et MS-DOS correspondent parfaitement. Première version connue à implémenter l'attribut « caché ».
86-DOS 1.14 1981-10/11Selon Tim Paterson, PC DOS 1.0 reflète essentiellement 86-DOS 1.14, d'autres sources trouvent une correspondance de PC DOS 1.0 avec MS-DOS/86-DOS 1.10 au 21 juillet 1981 plus probable.

Caractéristiques

Commandes

La liste suivante des commandes est prise en charge par 86-DOS.

Commandes internes

Commandes externes

EDLIN

En 1982, lorsqu'IBM demanda à Microsoft de publier une version de DOS compatible avec un disque dur , PC DOS 2.0 était une réécriture quasi complète de DOS. Ainsi, en mars 1983, il ne restait presque plus rien de 86-DOS. L'élément le plus durable de 86-DOS était son éditeur de ligne rudimentaire, EDLIN , qui demeura le seul éditeur fourni avec les versions Microsoft de DOS jusqu'à la sortie de MS-DOS 5.0 en juin 1991. Cette dernière incluait un éditeur d'interface utilisateur en mode texte appelé MS-DOS Editor , basé sur QBasic . EDLIN peut encore être utilisé sur les ordinateurs actuels grâce à un environnement DOS émulé jusqu'à Windows 10 (32 bits).

Formats de disque pris en charge

Le système d'exploitation 86-DOS de Seattle Computer Products prenait en charge le système de fichiers FAT12 sur une gamme de lecteurs de disquettes 8 pouces et 5,25 pouces, grâce au contrôleur de disquettes S-100 fabriqué par Cromemco , Tarbell Electronics et North Star Computers . Les cartes Cromemco et Tarbell, basées sur le contrôleur Western Digital FD1771, supportaient les lecteurs à secteurs logiciels simple face et simple densité. Une carte Tarbell double densité utilisant le FD1791 était également prise en charge. Par la suite, SCP a proposé des contrôleurs de disquettes plus performants, tels que la série Disk Master.

Contrairement aux versions ultérieures de DOS , 86-DOS n'utilisait ni l' octet d'identification FAT ni le bloc de paramètres BIOS (BPB) pour distinguer les différents formats de supports ; à la place, les lettres de lecteur étaient codées en dur lors de la compilation et associées aux différents lecteurs de disquettes, faces et densités. Ainsi, selon son type, une disquette devait être adressée par une lettre de lecteur spécifique pour être correctement reconnue. Ce concept a ensuite été émulé avec plus de flexibilité par DRIVER.SYS sous DOS 3.x et versions ultérieures.

Il existait deux variantes de format logique pour le format FAT 12 bits de 86-DOS : le format original avec des entrées de répertoire de 16 octets et le format ultérieur (depuis 86-DOS 0.42 ) avec des entrées de répertoire de 32 octets. Seul le second est logiquement compatible avec le format FAT12 connu depuis la sortie de MS-DOS et PC-DOS. MS-DOS ne peut toujours pas monter de tels volumes, car en l'absence de BPB, il récupère l'identifiant FAT dans l'entrée FAT du cluster 0 pour choisir parmi les profils de géométrie de disque prédéfinis. Dans tous les formats de volume formatés sous MS-DOS qui seraient autrement pris en charge par les deux systèmes, et généralement aussi dans tous les autres formats, cet identifiant se trouve dans le premier octet du secteur logique 1 (c'est-à-dire le deuxième secteur du volume avec l'adresse physique CHS 0/0/2 ou l' adresse LBA 1), car MS-DOS suppose un seul secteur réservé : le secteur de démarrage. Sous 86-DOS, la zone des secteurs réservés est considérablement plus grande (pistes entières), et par conséquent, l'identifiant FAT prototypique 0xFE(et 0xFF) se trouve ailleurs sur le disque, ce qui empêche MS-DOS de le récupérer, et même s'il le pouvait, le profil de disque codé en dur associé ne tiendrait pas compte de cette zone de secteurs réservés plus étendue sous 86-DOS.

Les supports de disquettes CP/M 2 étaient lisibles via RDCPM .

86-DOS n'offrait pas de support spécifique pour les disques durs , mais des solutions tierces sous forme de contrôleurs de disques durs et d'extensions de système d'E/S correspondantes pour 86-DOS étaient disponibles auprès de sociétés comme Tallgrass Technologies , rendant les disques durs accessibles de la même manière que les superdisquettes dans les limites de taille du système de fichiers FAT12.

Taille 8 pouces8 pouces8 pouces5,25 pouces5,25 pouces
Densité SDDDDDSDSD
Modulation FMMFMMFMFMFM
Capacité formatée (Ko) 250,25 616 1232 90 87,5
Cylindres (CHS) 7777774035
Secteurs physiques / voie 26881810
Nombre de têtes 11211
Charge utile en octets / secteur physique 12810241024128256
Octets / secteur logique 12810241024128256
Secteurs logiques / groupe 41121
Secteurs logiques réservés 52 (2 pistes)1154 (3 pistes)30 (3 pistes)
Nombre de FAT 22222
Entrées du répertoire racine (à 32 octets, 86-DOS 0.42 et supérieur uniquement) 64 (16 secteurs)96 (3 secteurs)128 (4 secteurs)64 (16 secteurs)64 (8 secteurs)
Entrées du répertoire racine (à 16 octets) 64??64N / A
Secteurs logiques totaux 20026161232720350
Secteurs logiques / FAT 6 ?????
Secteurs cachés 00000
Ordre logique des secteurs ?????
Cartographie sectorielle secteur+/ piste+secteur+/ piste+secteur+/ tête+/ piste+secteur+/ piste+secteur+/ piste+
Premier secteur physique 11110
Indice sectoriel DouxDouxDouxDouxDifficile (10+1)
Type de contrôleur Cromemco/Tarbell FD1771Tarbell FD1791Tarbell FD1791Cromemco FD1771NorthStar
FAT IDNon (FEh) Non (FEh) Non (FEh) Non (FEh) Non (FEh)
présence de BPBNonNonNonNonNon

Diverses versions OEM de MS-DOS 1.2x et 2.x prenaient également en charge un certain nombre de formats de disquettes FAT12 de 8 pouces similaires, bien que non identiques à ceux pris en charge par 86-DOS.

Formats de disque pris en charge par l'une des dernières versions développées par Tim Paterson chez Microsoft, MS-DOS 1.25 (mars 1982) pour l' ordinateur SCP Gazelle avec contrôleur SCP ou contrôleur Cromemco 16FDC (par défaut, cette version ne prenait en charge que les variantes compatibles MS-DOS de la version 8.0 dans les formats avec un seul secteur réservé, mais elle pouvait être configurée pour fournir deux lettres de lecteur supplémentaires afin de lire et d'écrire des disquettes dans la version précédente SCP 86-DOS 8.0 dans les formats de disque depuis la version 0.42 également) :

Taille 8 pouces8 pouces8 pouces8 pouces8 pouces5,25 pouces5,25 pouces5,25 pouces
Densité SDSDDDDDDDSDDDDD
Modulation FMFMMFMMFMMFMFMMFMMFM
Capacité formatée (Ko) 250,25 (SCP)250,25 (MS)6161232 (SCP)1232 (MS)90160320
Cylindres (CHS) 7777777777404040
Secteurs physiques / voie 26268881888
Nombre de têtes 11122112
Charge utile en octets / secteur physique 128128102410241024128512512
Octets / secteur logique 128128102410241024128512512
Secteurs logiques / cluster 44111212
Secteurs logiques réservés 52 (2 pistes)111154 (3 pistes)11
Nombre de FAT 22222222
Entrées du répertoire racine (à 32 octets) 64 (16 secteurs)68 (17 secteurs)96 (3 secteurs)128 (4 secteurs)192 (6 secteurs)64 (16 secteurs)64 (4 secteurs)112 (7 secteurs)
Nombre total de secteurs logiques 2002200261612321232720320640
Secteurs logiques / FAT 6 ?61?2411
Secteurs cachés 00 000000
Nombre total de clusters ?497??1227?313315
Ordre logique des secteurs ????????
Cartographie sectorielle secteur+/ piste+secteur+/ piste+secteur+/ piste+secteur+/ tête+/ piste+secteur+/ tête+/ piste+secteur+/ piste+secteur+/ piste+secteur+/ tête+/ piste+
Premier secteur physique 11111111
Indice sectoriel DouxDouxDouxDouxDouxDouxDouxDoux
Type de contrôleur Cromemco / Tarbell FD1771Cromemco / Tarbell FD1771Tarbell FD1791 / FD1793Tarbell FD1791 / FD1793Tarbell FD1791 / FD1793Cromemco 4FDC FD1771SCP / Cromemco 16FDCSCP / Cromemco 16FDC
ID FAT FEhFEhFEhFEhFEhFEhFEhFFh
Présence du BPBNonNonNonNonNonNonNonNon

En 1984, Seattle Computer Products a commercialisé une version OEM de MS-DOS 2.0 pour l'ordinateur SCP S-100 équipé d'un contrôleur de disquettes Disk Master SCP-500. Cette version prenait en charge les disquettes 5,25 pouces aux formats DD/1S (180 Ko) et DD/2S (360 Ko) FAT12, ainsi que les formats plus anciens, bien que certains paramètres aient pu être modifiés par rapport à MS-DOS 1.25 .