Revelador | Productos informáticos de Seattle / Tim Paterson |
---|---|
Escrito en | Lenguaje ensamblador 8086 |
Familia de sistemas operativos | Dos |
Estado de funcionamiento | Histórico, sin respaldo |
Lanzamiento inicial | 1980 ( 1980 ) |
Último lanzamiento | 86-DOS 1.10 / Julio 1981 ( 1981-07 ) |
Objetivo de marketing | Microordenadores basados en S-100 con procesador 8086 |
Disponible en | Inglés |
Gestor de paquetes | N / A |
Plataformas | x86 |
Tipo de kernel | Núcleo monolítico |
Influenciado por | CP/M |
Interfaz de usuario predeterminada | Interfaz de línea de comandos ( COMMAND.COM ) |
Licencia | Propiedad |
Sucedido por | MS-DOS , IBM PC-DOS |
86-DOS (conocido internamente como QDOS , [1] por Quick and Dirty Operating System ) es un sistema operativo discontinuado desarrollado y comercializado por Seattle Computer Products (SCP) para su kit de computadora basado en Intel 8086 .
El 86-DOS compartía algunos de sus comandos con otros sistemas operativos como OS/8 y CP/M , lo que facilitaba la portabilidad de programas desde este último. Su interfaz de programación de aplicaciones era muy similar a la de CP/M. El sistema fue licenciado y luego adquirido por Microsoft y desarrollado posteriormente como MS-DOS y PC DOS . [2]
El 86-DOS se creó porque las ventas del kit informático Seattle Computer Products 8086 , presentado en junio de 1979 y enviado en noviembre, [3] estaban decayendo debido a la ausencia de un sistema operativo. El único software que SCP podía vender con la placa era el Standalone Disk BASIC-86 de Microsoft , que Microsoft había desarrollado sobre un prototipo del hardware de SCP. [3] SCP quería ofrecer la versión 8086 de CP/M que Digital Research había anunciado inicialmente para noviembre de 1979, pero se retrasó y su fecha de lanzamiento era incierta. [4] Esta no era la primera vez que Digital Research se quedaba atrás en los desarrollos de hardware; dos años antes había sido lenta en adaptar CP/M a nuevos formatos de disquete y unidades de disco duro . En abril de 1980, SCP asignó a Tim Paterson, de 24 años, el desarrollo de un sustituto para CP/M-86 . [3]
Utilizando un manual CP/M-80 como referencia, [5] Paterson modeló el 86-DOS según su arquitectura e interfaces, pero lo adaptó para cumplir con los requisitos del procesador 8086 de 16 bits de Intel , para una traducibilidad a nivel de fuente fácil (y parcialmente automatizada) de los muchos programas CP/M de 8 bits existentes; [4] trasladarlos a DOS o CP/M-86 fue casi igualmente difícil [6] y se facilitó por el hecho de que Intel ya había publicado un método que podía usarse para traducir automáticamente el software del procesador Intel 8080 , para el cual se había diseñado CP/M, al nuevo conjunto de instrucciones 8086. [4] Al mismo tiempo, realizó una serie de cambios y mejoras para abordar lo que vio como deficiencias de CP/M. CP/M almacenaba en caché la información del sistema de archivos en la memoria para mayor velocidad, pero esto requería que un usuario forzara una actualización a un disco antes de eliminarlo; si el usuario lo olvidaba, el disco se corrompería. Paterson adoptó el enfoque más seguro, pero más lento, de actualizar el disco con cada operación. El comando PIP de CP/M , que copiaba archivos, admitía varios nombres de archivo especiales que hacían referencia a dispositivos de hardware como impresoras y puertos de comunicación . Paterson incorporó estos nombres al sistema operativo como archivos de dispositivo para que cualquier programa pudiera usarlos. Le dio a su programa de copia el nombre más intuitivo COPY . En lugar de implementar el sistema de archivos de CP/M , se basó en el sistema de archivos FAT ( File Allocation Table ) de Microsoft Standalone Disk BASIC-86 . [2]
A mediados de 1980, SCP anunció el 86-DOS, cuyo precio era de 95 dólares para los propietarios de su placa 8086 de 1.290 dólares y de 195 dólares para los demás. Promocionaba la capacidad del software para leer el código fuente del Zilog Z80 desde un disco CP/M y traducirlo a código fuente del 8086, y prometía que sólo se necesitaban "pequeñas correcciones y optimizaciones manuales" para producir binarios del 8086. [7]
En octubre de 1980, IBM estaba desarrollando lo que se convertiría en el IBM Personal Computer original . CP/M era, con diferencia, el sistema operativo más popular en uso en aquel momento, e IBM consideró que necesitaba CP/M para poder competir. Los representantes de IBM visitaron Digital Research y discutieron la licencia con la representante de licencias de Digital Research, Dorothy Kildall (de soltera McEwen), que dudó en firmar el acuerdo de confidencialidad de IBM . Aunque el acuerdo de confidencialidad fue aceptado posteriormente, Digital Research no aceptó la propuesta de IBM de 250.000 dólares a cambio de tantas copias como IBM pudiera vender, insistiendo en el plan habitual basado en regalías . [8] En conversaciones posteriores entre IBM y Bill Gates , Gates mencionó la existencia de 86-DOS, y el representante de IBM, Jack Sams, le dijo que consiguiera una licencia para ello. [ cita requerida ]
En diciembre de 1980, Microsoft compró a Seattle Computer Products [9] una licencia no exclusiva para el 86-DOS por 25.000 dólares. [ cita requerida ] En mayo de 1981, contrató a Tim Paterson para adaptar el sistema al IBM PC, [3] que utilizaba el procesador Intel 8088 , más lento y económico , y tenía su propia familia específica de periféricos. IBM observaba los desarrollos a diario, [3] enviando más de 300 solicitudes de cambio antes de aceptar el producto y escribir el manual de usuario correspondiente.
En julio de 1981, un mes antes del lanzamiento del PC, Microsoft compró todos los derechos del 86-DOS a SCP por 50.000 dólares. [3] [10] [11] Cumplía los principales criterios de IBM: se parecía al CP/M, [2] y era fácil adaptar los programas CP/M de 8 bits existentes para que funcionaran con él, en particular gracias al comando TRANS que traducía los archivos fuente de las instrucciones de la máquina 8080 a las 8086. Microsoft licenció el 86-DOS a IBM, y se convirtió en PC DOS 1.0. Esta licencia también le permitió a Microsoft vender el DOS a otras empresas, lo que hizo. El acuerdo fue un éxito espectacular, y SCP más tarde alegó en los tribunales que Microsoft había ocultado su relación con IBM para comprar el sistema operativo a bajo precio. SCP finalmente recibió un pago de 1 millón de dólares.
Cuando el fundador de Digital Research, Gary Kildall, examinó el PC DOS y descubrió que duplicaba la interfaz de programación de CP/M, quiso demandar a IBM, que en ese momento afirmaba que el PC DOS era su propio producto. Sin embargo, el abogado de Digital Research no creía que la ley pertinente fuera lo suficientemente clara como para demandar. No obstante, Kildall se enfrentó a IBM y los convenció de que ofrecieran el CP/M-86 con el PC a cambio de una exención de responsabilidad.
La controversia ha continuado rodeando la similitud entre los dos sistemas. Quizás la afirmación más sensacionalista vino de Jerry Pournelle , quien dijo que Kildall personalmente le demostró que DOS contenía código CP/M ingresando un comando en DOS que mostraba el nombre de Kildall, [12] [nb 1] pero Pournelle nunca reveló el comando y nadie se ha presentado para corroborar su historia. Un libro de 2004 sobre Kildall dice que usó un mensaje encriptado para demostrar que otros fabricantes habían copiado CP/M, pero no dice que encontró el mensaje en DOS; [13] en cambio, las memorias de Kildall (una fuente para el libro) apuntaron a la conocida similitud de la interfaz. Paterson insiste en que el software 86-DOS fue su trabajo original y ha negado hacer referencia o usar de otra manera el código CP/M mientras lo escribía. [14] [15] Después de que apareció el libro de 2004, demandó a los autores y editores por difamación . [16] El tribunal dictaminó en sentencia sumaria que no había habido difamación, ya que las afirmaciones del libro eran opiniones basadas en investigaciones o no eran demostrablemente falsas. [17]
QDOS 0.10 | 1980-07 [3] | Versión del sistema operativo que se encuentra aproximadamente a la mitad de su finalización. [3] Implementó la forma original de la derivación de Paterson del sistema de archivos FAT de Microsoft . A diferencia del sistema de archivos FAT de 8 bits anterior que se encontraba en Standalone Disk BASIC-86 , esta variante ya admitía elementos de tabla de 12 bits, [18] redujo el número de FAT de 3 [19] a 2, redefinió la semántica de algunos de los valores de clúster reservados y modificó la disposición del disco, de modo que el directorio raíz ahora se encontraba entre el FAT y el área de datos. Paterson también aumentó el límite de longitud anterior de 9 caracteres a 11 caracteres para admitir nombres de archivo de estilo CP/M 8.3 y bloques de control de archivos . Sin embargo, esta variante todavía usaba entradas de directorio de 16 bytes y, por lo tanto, no es compatible con lo que luego se conocería como FAT12 en MS-DOS/PC DOS. Posiblemente ya se haya distribuido. [20] |
---|---|---|
QDOS/86-DOS 0.11 | 1980-08 | Corrección de errores [3] Envío. [3] |
QDOS/86-DOS 0.2 | 1980-08 | Se agregó EDLIN . En agosto de 1980 se le cambió el nombre a 86-DOS. [7] |
86-DOS 0.3 | 15 de noviembre de 1980 | Primera versión licenciada por SCP a Microsoft. [9] |
86-DOS 0,33 | 1980-12 | Primera versión distribuida por SCP a los OEM y a Microsoft como 86-DOS. [3] [9] |
86-DOS 0,34 [21] | 29 de diciembre de 1980 [21] | Versión limpia para OEM de SCP, incluido Microsoft. |
86-DOS 0,42 [21] | 25 de febrero de 1981 [21] | A petición indirecta de IBM (a través de Microsoft [10] ) el tamaño de las entradas de directorio cambió de 16 a 32 bytes (similar a MDOS/MIDAS ) para agregar soporte para un sello de fecha de última modificación (2 bytes) y tamaños de archivo teóricos mayores a 16 MB (4 bytes), [22] implementando así la forma más temprana del sistema de archivos FAT de 12 bits lógicamente totalmente compatible con lo que se conocería como FAT12 en MS-DOS/PC DOS más tarde. 86-DOS mantuvo la capacidad de leer volúmenes escritos bajo versiones anteriores de 86-DOS hasta MS-DOS 1.14 como mínimo, mientras que el MS-DOS 1.20 genérico / PC DOS 1.1 y superiores ya no lo soportaban. |
86-DOS 0,56 [21] | 23 de marzo de 1981 [21] | Soporte para bloqueo/desbloqueo de discos según lo solicitado desde el 15 de enero de 1981. [10] |
86-DOS 0,60 [21] | 27 de marzo de 1981 [21] | El archivo DOSIO.ASM que se encuentra en 86-DOS 1.00 menciona que es el "Sistema de E/S para 86-DOS versión 0.60 y posteriores". [23] |
86-DOS 0,74 [21] | 15 de abril de 1981 [21] | Se agregaron archivos del dispositivo . |
86-DOS 0,75 [21] | 17 de abril de 1981 [21] | Corrección de errores. |
86-DOS 0,76 [21] | 23 de abril de 1981 [21] | Corrección de errores. |
86-DOS 0,80 [21] | 27 de abril de 1981 [21] | Se agregaron llamadas del sistema. |
86-DOS 1.00 [20] [21] | 28 de abril de 1981 [21] | Llamadas al sistema modificadas. [3] [20] [23] [24] |
86-DOS 1.01 [21] | 12 de mayo de 1981 [21] | Corrección de errores. |
86-DOS 1.10 [21] | 21 de julio de 1981 [21] | Adquirido por Microsoft y renombrado como MS-DOS el 27 de julio de 1981, [10] [20] por lo tanto, es la última versión con números de versión de 86-DOS y MS-DOS realmente coincidentes. Primera versión conocida que implementó el atributo "oculto". |
86-DOS 1.14 [20] | 11 de octubre de 1981 | Según Tim Paterson, PC DOS 1.0 básicamente refleja 86-DOS 1.14, [20] otras fuentes consideran más probable una coincidencia de PC DOS 1.0 con MS-DOS/86-DOS 1.10 al 21 de julio de 1981. |
La siguiente lista de comandos es compatible con 86-DOS. [25]
En 1982, cuando IBM le pidió a Microsoft que lanzara una versión de DOS que fuera compatible con una unidad de disco duro , PC DOS 2.0 era una reescritura casi completa de DOS, por lo que en marzo de 1983, quedaba muy poco de 86-DOS. El elemento más duradero de 86-DOS fue su editor de línea primitivo, EDLIN , que siguió siendo el único editor suministrado con las versiones de Microsoft de DOS hasta el lanzamiento en junio de 1991 de MS-DOS 5.0 , que incluía un editor de interfaz de usuario basado en texto llamado MS-DOS Editor , basado en QBasic . EDLIN todavía se puede utilizar en máquinas contemporáneas, ya que existe un entorno DOS emulado hasta Windows 10 (32 bits).
El 86-DOS de Seattle Computer Products admitía el sistema de archivos FAT12 en una gama de unidades de disquete de 8 y 5,25 pulgadas en hardware controlador de disquete S-100 fabricado por Cromemco , Tarbell Electronics y North Star Computers . Las placas Western Digital FD1771 de Cromemco y Tarbell admitían unidades de sectores suaves de una sola cara y densidad simple. También se admitía una placa Tarbell de doble densidad que utilizaba el FD1791 . Más tarde, SCP ofreció controladores de disquete avanzados, como la serie Disk Master.
El 86-DOS no aprovechó el byte FAT ID [nb 2] o el bloque de parámetros BIOS (BPB), como lo hacen las versiones posteriores del DOS, para distinguir entre diferentes formatos de medios; en su lugar, se codificaron letras de unidad diferentes en el momento de la compilación para asociarlas con diferentes unidades de disquete físicas, lados y densidades. Eso significaba que, dependiendo de su tipo, un disco tenía que ser direccionado bajo una determinada letra de unidad para ser reconocido correctamente. Este concepto fue posteriormente emulado con más flexibilidad por DRIVER.SYS en el DOS 3.x y versiones posteriores.
Existían dos variantes de formato lógico del formato FAT de 12 bits de 86-DOS: el formato original con entradas de directorio de 16 bytes y el formato posterior (desde 86-DOS 0.42) con entradas de directorio de 32 bytes. Sólo el segundo es lógicamente compatible con el formato FAT12 conocido desde el lanzamiento de MS-DOS y PC DOS. MS-DOS todavía no puede montar dichos volúmenes, ya que en ausencia de un BPB recurre a recuperar el ID de FAT en la entrada FAT para el clúster 0 para elegir entre los perfiles de geometría de disco codificados de forma rígida. En todos los formatos de un volumen formateado bajo MS-DOS que de otro modo serían compatibles con ambos sistemas y, por lo general, también en todos los demás formatos, este ID se encuentra en el primer byte del sector lógico 1, es decir, el segundo sector del volumen con la dirección de sector de cabezal de cilindro físico (CHS) 0/0/2 o la dirección de direccionamiento de bloque lógico (LBA) 1, ya que MS-DOS supone un único sector reservado, el sector de arranque. En 86-DOS, el área de sectores reservados es significativamente más grande (pistas completas) y, por lo tanto, el FAT ID prototípico 0xFE
(y 0xFF
) se encuentra en otra parte del disco, lo que hace imposible que MS-DOS lo recupere, e incluso si lo hiciera, el perfil de disco codificado asociado con él no tomaría en cuenta esta región de sectores reservados más grande en 86-DOS. [nb 2]
Los disquetes CP/M 2 se podían leer a través de RDCPM.
86-DOS no ofrecía ningún soporte específico para discos fijos , pero soluciones de terceros en forma de controladores de disco duro y extensiones de sistema de E/S correspondientes para 86-DOS estaban disponibles en empresas como Tallgrass Technologies , lo que hacía que los discos duros fueran accesibles de forma similar a los superfloppies dentro de los límites de tamaño del sistema de archivos FAT12.
Tamaño | 8 pulgadas | 8 pulgadas | 8 pulgadas | 5,25 pulgadas | 5,25 pulgadas |
---|---|---|---|---|---|
Densidad | DAKOTA DEL SUR | DD | DD | DAKOTA DEL SUR | DAKOTA DEL SUR |
Modulación | FM | MFM | MFM | FM | FM |
Capacidad formateada (KB) | 250.25 [23] | 616 [23] | 1232 [23] | 90 [23] | 87.5 [23] |
Cilindros (CHS) | 77 | 77 | 77 | 40 | 35 |
Sectores físicos/pista | 26 | 8 | 8 | 18 | 10 |
Número de cabezas | 1 | 1 | 2 | 1 | 1 |
Carga útil de bytes / sector físico | 128 | 1024 | 1024 | 128 | 256 |
Bytes / sector lógico | 128 | 1024 | 1024 | 128 | 256 |
Sectores lógicos / cluster | 4 | 1 | 1 | 2 | 1 |
Sectores lógicos reservados | 52 (2 pistas) | 1 | 1 | 54 (3 pistas) | 30 (3 pistas) |
Número de FAT | 2 | 2 | 2 | 2 | 2 |
Entradas del directorio raíz (de 32 bytes, solo 86-DOS 0.42 y superior) | 64 (16 sectores) | 96 (3 sectores) | 128 (4 sectores) | 64 (16 sectores) | 64 (8 sectores) |
Entradas del directorio raíz (hasta 16 bytes) | 64 | ? | ? | 64 | — |
Sectores lógicos totales | 2002 | 616 | 1232 | 720 | 350 |
Sectores lógicos / FAT | 6? | ? | ? | ? | ? |
Sectores ocultos | 0 | 0 | 0 | 0 | 0 |
Orden del sector lógico | ? | ? | ? | ? | ? |
Mapeo sectorial | sector+/ pista+ | sector+/ pista+ | sector+/cabeza+/pista+ | sector+/ pista+ | sector+/ pista+ |
Primer sector físico | 1 | 1 | 1 | 1 | 0 |
Índice sectorial | Suave | Suave | Suave | Suave | Difícil (10+1) |
Tipo de controlador | Cromeco/Tarbell FD1771 | Tarbell FD1791 | Tarbell FD1791 | Cromeco FD1771 | Estrella del Norte |
Identificación de grasa | No (FEh) [nb 2] | No (FEh) [nb 3] | No (FEh) [nb 3] | No (FEh) [nb 3] | No (FEh) [nb 3] |
Presencia de BPB | No | No | No | No | No |
Varias versiones OEM de MS-DOS 1.2x y 2.x también admitían varios formatos de disquetes FAT12 de 8 pulgadas similares, aunque no idénticos a los admitidos por 86-DOS. [nb 2]
Formatos de disco soportados por una de las últimas versiones desarrolladas por Tim Paterson en Microsoft, MS-DOS 1.25 [21] [26] [27] [28] (marzo de 1982) para el ordenador SCP Gazelle con controlador SCP o controlador Cromemco 16FDC (por defecto, esta versión sólo soportaba las variantes compatibles con MS-DOS del 8.0 en formatos con un único sector reservado pero podía construirse para proporcionar dos letras de unidad extra para leer y escribir disquetes en el anterior SCP 86-DOS 8.0 en formatos de disco desde 0.42 también):
Tamaño | 8 pulgadas | 8 pulgadas | 8 pulgadas | 8 pulgadas | 8 pulgadas | 5,25 pulgadas | 5,25 pulgadas | 5,25 pulgadas |
---|---|---|---|---|---|---|---|---|
Densidad | DAKOTA DEL SUR | DAKOTA DEL SUR | DD | DD | DD | DAKOTA DEL SUR | DD | DD |
Modulación | FM | FM | MFM | MFM | MFM | FM | MFM | MFM |
Capacidad formateada (KB) | 250.25 (SCP) | 250,25 (MS) | 616 | 1232 (SCP) | 1232 (manuscrito) | 90 | 160 | 320 |
Cilindros (CHS) | 77 | 77 | 77 | 77 | 77 | 40 | 40 | 40 |
Sectores físicos/pista [n.° 4] | 26 | 26 | 8 | 8 | 8 | 18 | 8 | 8 |
Número de cabezas [nb 5] | 1 | 1 | 1 | 2 | 2 | 1 | 1 | 2 |
Carga útil de bytes / sector físico | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Bytes / sector lógico [nb 6] | 128 | 128 | 1024 | 1024 | 1024 | 128 | 512 | 512 |
Sectores lógicos/clúster [nb 7] | 4 | 4 | 1 | 1 | 1 | 2 | 1 | 2 |
Sectores lógicos reservados [nb 8] | 52 (2 pistas) | 1 | 1 | 1 | 1 | 54 (3 pistas) | 1 | 1 |
Número de FAT [nb 9] | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
Entradas del directorio raíz (32 bytes) [nb 10] | 64 (16 sectores) | 68 (17 sectores) | 96 (3 sectores) | 128 (4 sectores) | 192 (6 sectores) | 64 (16 sectores) | 64 (4 sectores) | 112 (7 sectores) |
Sectores lógicos totales [nb 11] | 2002 | 2002 | 616 | 1232 | 1232 | 720 | 320 | 640 |
Sectores lógicos / FAT [nb 12] | 6? | 6 | 1 | ? | 2 | 4 | 1 | 1 |
Sectores ocultos [nb 13] | 0 | 0 [número 14] | 0 | 0 | 0 | 0 | 0 | 0 |
Número total de clústeres | ? | 497 | ? | ? | 1227 | ? | 313 | 315 |
Orden del sector lógico | ? | ? | ? | ? | ? | ? | ? | ? |
Mapeo sectorial | sector+/ pista+ | sector+/ pista+ | sector+/ pista+ | sector+/cabeza+/pista+ | sector+/cabeza+/pista+ | sector+/ pista+ | sector+/ pista+ | sector+/cabeza+/pista+ |
Primer sector físico | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Índice sectorial | Suave | Suave | Suave | Suave | Suave | Suave | Suave | Suave |
Tipo de controlador | Cromeco/Tarbell FD1771 | Cromeco/Tarbell FD1771 | Tarbell FD1791 / FD1793 | Tarbell FD1791 / FD1793 | Tarbell FD1791 / FD1793 | Cromeco 4FDC FD1771 | SCP/Cromemco 16FDC | SCP/Cromemco 16FDC |
Identificación de grasa [número 2] [número 15] | FEh | FEh | FEh | FEh | FEh | FEh | FEh | Ffh |
Presencia de BPB | No | No | No | No | No | No | No | No |
En 1984, Seattle Computer Products lanzó una versión OEM de MS-DOS 2.0 para la computadora SCP S-100 con controlador de disquete SCP-500 Disk Master. Añadió compatibilidad con 5.25 en formatos FAT12 DD/1S (180 KB) y DD/2S (360 KB) y también admitió los formatos más antiguos, aunque posiblemente con algunos de los parámetros modificados en comparación con MS-DOS 1.25 . [29]
CLEAR
comando bajo 86-DOS 1.00 COMMAND.COM parece inicializar el byte FAT ID de un volumen en FEh independientemente de la unidad de disco y el formato utilizado.0x0D
en DOS 3.0 y versiones superiores.0x0F
en DOS 3.0 y versiones superiores.0x00
en DOS 2.0 y versiones superiores.0x02
en DOS 2.0 y versiones superiores.0x03
en DOS 2.0 y versiones superiores.0x05
en DOS 2.0 y versiones superiores.0x06
en DOS 2.0 y superior.0x08
en DOS 2.0 y versiones superiores.0x0B
en DOS 2.0 y versiones superiores.0x11
en DOS 3.0 y versiones superiores.0x0A
en DOS 2.0 y versiones superiores.