My signature
Principia        DOS
"640K ought to be enough for anybody."
Bill Gates, 1981

Solo una barra

DOS, siglas de "Disk Operating System", surge como una interfaz de alto nivel entre el hardware y el usuario. Versiones posteriores permitirían realizar cierta administración de I/O, memoria y CPU, y convertirse en una interfaz entre el software y hardware.

Pensado inicialmente para salvar las dificultades asociadas al manejo y administración de los discos, ha ido cambiando y evolucionando hasta convertirse en un pequeño sistema operativo debidamente normalizado y ampliamente soportado.


CRONOLOGIA.

1974
Aparece el Intel 8080.

1975
Micro Instrumentation Telemetry Systems (MITS) produce la primera computadora personal: Altair, basada en el 8080, con 256 bytes de Memoria(1), y diseñada para hobbistas.

Bill Gates y Paul Allen desarrollan un intérprete BASIC para el computador. Allen se incorpora a MITS y solicita a Gates una versión del intérprete que soporte discos flexibles (floppy drives). Para realizar esto, Gates se apoya en la utilización de una Tabla de Alojamiento de Archivos (File Allocation Table, FAT) residente en memoria y que posteriormente sería la base de MS-DOS.

1978
CP/M domina el mercado de los computadores de 8 bits.

Aparece el Intel 8086, que maneja datos tanto interna como externamente a 16 bits. Tiempo después aparecería una versión más barata: el 8088, éste se comunica externamente a 8 bits.

La mayoría de los periféricos de la época se comunica a 8 bits a la vez.

1979
Tim Paterson de Seattle Computer Products desarrolla el sistema operativo 86-DOS (también llamado QDOS-- Quick and Dirty Operating System --versión a 16 bits y enteramente compatible con CP/M) para probar hardware basado en el 8086. El sistema requiere sólo 6KB de RAM y utiliza el método de la FAT.

Digital Research trabaja sobre la siguiente versión del CP/M: CP/M-86. El trabajo se encuentra atrasado en su calendario, aunque la compañía no muestra ninguna prisa por su introducción.

IBM trabaja sobre un computador personal y decide usar lo que existe en el mercado a desarrollar todo por su cuenta. Basa su diseño en los microprocesadores de Intel y encarga a Microsoft el desarrollo de un BASIC en ROM para su computador. Este último sugiere un diseño basado en un microprocesador de 16 bits.

PosteriormenteIBM deja entrever la entrega de otros lenguajes de programación compilados, pero Microsoft indica que éstos requeriría del soporte de un sistema operativo más robusto al interconstruido en BASIC. Se sugiere la utilización del CP/M-86.

1980
Reconociendo el valor de los sistemas multitareas y el futuro de UNIX, Microsoft anuncia que proveerá una versión comercial, XENIX, para equipos basados en microprocesadores de 16 bits.

IBM establece negociaciones con Digital Research, a sugerencia de Microsoft, para adquirir el CP/M-86. Este no trabaja aún y difícilmente podría cumplir con el calendario de IBM, quien se inclina por un microprocesador de 8-bits por ser más barato y contar con un mercado de aplicaciones ya establecido.

Noviembre. A pesar de que XENIX es poderoso, resulta demasiado demandante de recursos y no es compatible con CP/M, Microsoft decide que trabajará sobre su propio sistema operativo. IBM concede.

Microsoft compra el 86-DOS. Tim Paterson hace algunos cambios apresurados. Se presenta el sistema operativo e IBM detecta bugs, por lo que decide reescribir varias rutinas. Esto lo acreedor compartir los derechos sobre éste.

1981
Febrero. MS-DOS corre en el prototipo del IBM PC.

Abril. Tim Paterson se une a Microsoft.

IBM designa al sistema operativo de Microsoft como DOS. Después de su aparición la industria lo llama PC-DOS y versiones posteriores vendidas por separado por Microsoft son comercializadas como MS-DOS.

Agosto. El IBM PC aparece. Basado en el 8088 (4.77 MHz), con 256KB en RAM y floppy de una cara de simple densidad (160KB, sectores de 512 bytes), rutinas de entrada/salida en ROM (BIOS, Basic Input/Output System). Pensado para funcionar con el aún no liberado CP/M-86, se vende junto con el MS-DOS (PC-DOS).

MS-DOS 1.0 (PC-DOS 1.0): 4000 líneas de código ensamblador (organizado en tres archivos: IBMBIO.COM, IBMDOS.COM, COMMAND.COM. Esencialmente se trata del 86-DOS.

1982
MS-DOS 1.1 (PC-DOS 1.1): manejo de discos de doble cara, doble densidad (320KB).

1983
IBM PC/XT: 640KB en RAM, Disco duro (Hard Disk) de 10MB.

PC-DOS 1.85.- Para uso interno de IBM.

MS-DOS 2.0 (PC-DOS 2.0): 20,000 líneas de código soportado por un equipo de 4 personas. Mantiene compatibilidad con MS-DOS v1.0 pero se trata de un sistema operativo diferente.

Se libera el CP/M-86. Se sugiere un precio de $495. Las aplicaciones de CP/M no pueden portarse con facilidad.

Aparecen los primeros clones de PCs y DOS:

MS-DOS 2.05: Soporte de juegos de caracteres internacionales.

MS-DOS 2.1 (PC-DOS 2.1): Destinada a la IBM PCjr. Corrige bugs de la versión 2.0.

MS-DOS 2.11: Combinación de v2.05 y v2.1. Rechazada por IBM, vende millones de copias y es traducida a 60 idiomas. Versiones arábicas son vendidas con protección de copia en hardware (dongle).

MS-DOS 2.2: Soporta el conjunto de caracteres koreano.

MS-DOS 2.25: Soporta juegos de caracteres koreano y japonés.

1984
IBM PC/AT: Intel 80286, floppy de 1.2MB, 1MB en RAM, 20MB en HD, capacidad de red con hardware adicional.

MS-DOS 3.0 (PC-DOS 3.0): 40,000 líneas de código y un equipo de 30 personas. Incluyó muchos bugs.

MS-DOS 3.1 (PC-DOS 3.1):

AT&T DOS 3.1: difiere en el tamaño de clusters y estructuras de FAT de MS-DOS 3.10.

Epson Equity y ComputerLand DOS 3.10: usan reglas de 3.x si las particiones superan los 32680 sectores (FAT de 16 bits), bajo esto usan las reglas de 2.x (FAT de 12 bits).

MS-DOS 3.2 (PC-DOS 3.2):

Zenith DOS 3.2 y Wyse DOS 3.2: Device driver interconstruido que maneja hasta 4 particiones de 32MB en un mismo disco duro.

Wyse DOS 3.21: soporta FAT de 32 bits.

1985
IBM y Microsoft acuerdan el desarrollo de un nuevo sistema operativo de propósito general con capacidad multitarea (multitasking) que tomaría ventaja del modo protegido del 80286. Inicialmente fue denominado MS-DOS versión 5.0, posteriormente fue renombrado a CP/DOS y finalmente cambiado a OS/2.

1987
Aparece el IBM PS/2.

MS-DOS 3.3 (PC-DOS 3.3):

Wyse DOS 3.31: maneja particiones sencillas de hasta 512MB (FAT de 32 bits).

Compaq DOS 3.31: soporta FAT de 32 bits.

Las Versiones de DOS entre 3.3 y 4.0 vendidas en Gran Bretaña usan otra numeración.

1988
Digital Research ayuda a IBM a desarrollar un DOS 4.0. éste después es licenciado a Microsoft, quien lo utilizará posteriormente para OS/2.

Microsoft crea un sistema operativo de modo real multitareas al que inicialmente denomina MS-DOS versión 4.0. Fue diseñado para el 8086, por lo que sólo cuenta con 640KB para mantener a todos los procesos y sistema operativo. El 8086 carece de modo protegido por lo que los procesos pueden colisionar. Pensado para facilitar la transición de MS-DOS a OS/2, resultó poco útil y nunca fue liberado. Una versión diferente ocupó su lugar. Algunas copias se venden en Europa para aplicaciones especiales.

MS-DOS 4.0 (PC-DOS 4.0):

1991
MS-DOS 5.0:

1993
MS-DOS 6.0.

Microsoft enfrenta una demanda de pantente en sobre el uso de la tecnología empleada en la elaboración del DOUBLESPACE.

Se reportan problemas de corrupción de la FAT en discos mayores a 100MB que han sido compactados con el DOUBLESPACE.

MS-DOS 6.2:

1994
Microsoft pierde el juicio y debe pagar la demanda, regalías y hacer cambios en su sistema operativo.

MS-DOS 6.22.

1996
A finales de este año la base instalada de sistemas MS-DOS/PC-DOS se estima entre 180 y 190 millones, el incremento anual de embarques de este producto es de 3 a 4 millones y se proyecta que para el año 2000 persista una base de 5 a 10 millones de sistemas7.

1998
La empresa Caldera reporta 3 millones de copias de DR-DOS vendidas desde 1997.


OTRAS VERSIONES, PLATAFORMAS E INTERFACES.

Las versiones vendidas directamente a fabricantes presentaban algunas diferencias que las hacian incompatibles con las versiones IBM (tomadas como el standard). Estas diferencias se debían a características propias de cada equipo o facilidades adicionales que se brindaban sobre la versión standard, como ejemplo tenemos a la DEC Rainbow que incorporaba el ANSY.SYS dentro del código principal y que soportaba floppys de una cara de cuadruple densidad.

Algunos clones de este sistema operativo han sido:

Las versiones distribuidas en forma de ROM han sido para los equipos:

Además del IBM PC, MS-DOS ha sido ejecutado en otros equipos. Ya sea por medio de tarjetas de expansión, hardware o por software de emulación, este sistema operativo a corrido en equipo Apple II, Commodore Amiga 2000, Macintosh II, IBM RT PC, Atari ST y PowerPC. Igualmente, otros sistemas lo incluyen en sus capacidades: OS/2, QNX (y algunos otros UNIX), Windows 95.

Diversas interfaces gráficas han sido creadas para DOS:

LA ESTRUCTURA DE DOS Y LA VISION DEL USUARIO.

Para el usuario, DOS se compone de cuatro elementos:

El procesador de comandos se carga automáticamente junto con el sistema operativo. La configuración del ambiente se logra, durante el inicio de una sesión, con lo que se haya indicado en un archivo especial denominado CONFIG.SYS (si existe). El ambiente puede modificarse de forma limitada a nivel de comandos introducidos por teclado.

Para el desarrollo de programas, el sistema operativo incluye un intérprete de BASIC y un debuger que permite la creación y exploración de programas en ensamblador. El usuario se comunica con el sistema mediante comandos introducidos por teclado. Los comandos, incluyendo nombres de archivos ejecutables (.COM y .EXE) y archivos de comandos (.BAT), permiten la interacción con discos, directorios, archivos, operaciones de I/O y la ejecución de programas de aplicación.


LA VISION DEL SISTEMA.

Discos.

Para DOS los discos están compuestos de lados, pistas y sectores. Los sectores se agrupan en clusters y la FAT muestra como los clusters son alojados a los archivos. Para que un disco pueda ser reconocido como tal debe prepararsele ("darle formato"). El comando FORMAT prepara los discos, llamando al driver adecuado (DOS 3.0+), para establecer la estructura física que DOS reconoce, es entonces cuando se crea un volumen.

Un volumen es un floppy o partición en el disco. Cada volumen se divide en sectores lógicos, cada uno residiendo en partes de pistas físicas. Las partes son determinadas por las diversas posiciones fijas de las cabezas de lectura y escritura. Los sectores son agrupados en clusters. El número es definido cuando al disco se le da formato y debe ser potencia de 2. La FAT encadena clusters para definir el contenido de un archivo. El espacio para archivos es alojado como se necesite, con un cluster a la vez y secuencialmente.

Cada volumen se divide en:

1
Sector de arranque (boot sector).
2
Area reservada.
3
Primer copia de la FAT.
4
Segunda copia de la FAT (para integridad de datos).
5
Directorio raíz.
6
Areas de archivos.

Las áreas 1 a 5 corresponden al sistema, el área 6 al usuario.

El sector lógico 0 de cada volumen (al crearse) es llamado sector de arranque (boot sector). Este reside en la pista 0, sector 1, lado 0 de cada diskette, disco duro o inicio de partición. Contiene:

Lo anterior puede verse fácilmente con el programa depurador DEBUG.COM. En el siguiente ejemplo de carga a partir de la dirección de memoria 100h, de la unidad B (0=A, 1=B, 2=C...), a partir del sector 0, un sector. A continuación se hace un vaciado de memoria (dump) a partir de la localidad 100h en pantalla.

C:> debug
-l 100 1 0 1
-d 100
0E44:0100 EB 3C 90 4D 53 44 4F 53-35 2E 30 00 02 01 01 00   .<.MSDOS5.0.....
0E44:0110 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00   ...@............
0E44:0120 00 00 00 00 00 00 29 02-13 76 0C 4E 4F 20 4E 41   ......)..v.NO NA
0E44:0130 4D 45 20 20 20 20 46 41-54 31 32 20 20 20 FA 33   ME    FAT12   .3
0E44:0140 C0 8E D0 BC 00 7C 16 07-BB 78 00 36 C5 37 1E 56   .....|...x.6.7.V
0E44:0150 16 53 BF 3E 7C B9 0B 00-FC F3 A4 06 1F C6 45 FE   .S.>|.........E.
0E44:0160 0F 8B 0E 18 7C 88 4D F9-89 47 02 C7 07 3E 7C FB   ....|.M..G...>|.
0E44:0170 CD 13 72 79 33 C0 39 06-13 7C 74 08 8B 03 13 7C   ..ry3.9..|t....|

Cada cluster en la FAT indica:

Cada entrada en el directorio es de 32 bytes. Usándose:

El primer byte del nombre del archivo puede contener códigos indicando:

El byte del atributo puede indicar:

76543210 BITS DOS v2.x
--------000Acceso de lectura
--------001Acceso de escritura
--------010Acceso de lectura/escritura
Para DOS v3.x+
--------000Acceso de lectura
--------001Acceso de escritura
--------010Acceso de lectura/escritura
------X---Reservado
--000------Modo compartido-Modo de compatibilidad
--001------Modo compartido-acceso a lectura/escritura denegado
--010------Modo compartido-acceso a escritura denegado
--011------Modo compartido-acceso a lectura denegado
--100------Modo compartido-acceso completo permitido
0----------Heredado por proceso hijo (Inherited by child processes)
1----------Privado al proceso actual (Private to current process).

Archivos y Operaciones de Entrada y Salida.

Para DOS, un archivo es una cadena de bytes, no se asumen estructuras de registro o acceso. Pueden ser de datos o ejecutables, la extensión los identifica. Los archivos pueden ser accesados por File Control Block (FCB) y llamados a File Handles (>v2.0). El FCB usa un Buffer prestablecido (Disk Tranfer Area) normalmente en el segmento prefijo del programa y de 128 bytes de longitud. Los File Handles son enteros de 16 bits devueltos a la aplicación por DOS e indican en el llamado qué buffer se usará. Así, DOS usa buffers en memoria para cada operación de input/output y sólo requiere un apuntador al buffer de datos y un contador del número de bytes a leer o escribir, para hacer I/O.

Son 8 los File Handles por defecto, estos se incrementan mediante el CONFIG.SYS. Cuando se usa un File Handle internamente se crea un FCB que es usado únicamente por DOS. Existen 5 File Handles preasignados:

HandleDispositivo estándarNombre del dispositivo
0inputCON
1outputCON
2errorCON
3auxiliarAUX(serial port I/O)
4printerPRT(parallel port output)

Los Device Drivers son programas que controlan la entrada y salida, manejan la comunicación entre el sistema operativo y los dispositivos de hardware. Cinco device drivers residentes controlan los dispositivos standard, estos están contenidos en el IBMBIO.COM (IO.SYS) y que forman al DOS BIOS. Los device drivers permiten usar dispositivos de dos tipos: de carácter (si maneja un byte a la vez) y de bloque (si trabaja con paquetes de bytes). Para DOS, los device drivers son tratados como archivos.

Un device driver se compone de: Device Header, Strategy Routine, Interrupt routine. El header mantiene un apuntador al siguiente device driver y apunta a las rutinas. La strategy manteniene un apuntador a las estructuras de datos mantenidas por MS-DOS y la interrupt realiza las operaciones de I/O.

Nuevos dispositivos o reemplazos pueden instalarse via el comando DEVICE (DOS 2.0+) en el CONFIG.SYS ia nivel boot.

Un filtro es un programa que procesa datos de entrada para poder producir una salida a algún archivo o dispositivo. Se tienen tres filtros: SORT, FIND, MORE.

En DOS, las salidas pueden ser redirigidas (usando <, >, <<, y >>), y los comandos entubarse (usando el pipe, |).


Memoria y Ejecución de Programas.

Para MS-DOS la memoria se organiza en:

Al ejecutarse un programa, la función EXEC causa que DOS aloje memoria, escriba el segmento prefijo, carge el nuevo programa y transfiera su control a éste. El programa llamador es el PROGRAMA PADRE, el programa llamado es el PROGRAMA HIJO. El hijo hereda los File Handles del que lo llama.

Jerárquicamente, el llamado de rutinas y devolución de datos está establecido de la siguiente forma:

Hardware <--> BIOS <--> DOS <--> Programa

Para la comunicación con el sistema los programas utilizan System Calls. Estos se dividen en interrupciones y funciones. El COMMAND.COM posee una parte residente, de inicialización, y transitoria. La parte residente maneja errores, interrupción de teclado y código para cargar la parte transitoria. La parte de inicialización se activa cuando se comienza a cargar un programa y procesa el AUTOEXEC.BAT . La parte transitoria tiene el procesador de archivos de comandos y los comandos internos. Controla la ejecución de comandos externos. Un archivo .COM consiste de código, datos, y área de pila. No es relocalizable, debe ser menor a 64KB y carga más rápido que un .EXE. Un archivo .EXE es relocalizable y posee un encabezado para ello. Separa datos de código.


Referencias.

  1. Operating Systems, Harvey M. Deitel, Addison-Wesley, 2nd Edition, 1990, USA. ISBN 0-201-50939-3.
  2. Programmer's Technical Reference for MSDOS and the IBM PC, Shareware version, 12/16/88, Dave Williams.
  3. Microsoft MS-DOS ver 5.0 Getting Started, Microsoft Corporation, 1991.
  4. Microsoft MS-DOS ver 5.0 User's Guide and Reference, Microsoft Corporation, 1991.
  5. DOS 5 a su alcance, Herbert Schildt, McGraw-Hill, 1992.
  6. Microsoft MS-DOS 6.0 Manual del Usuario, Microsoft Corporation, 1993.
  7. Computers. Technology 1997 Analysis & Forecast; Spectrum, The Institute of Electrical and Electronic Engineers, Inc.; January 1997, pp. 49-54, U.S.A.

Este texto puede ser copiado y reproducido libremente mientras su contenido no sea alterado, se cite la fuente y referencias. M. en C. Eduardo René Rodríguez Avila. © Todos los derechos reservados.
Last update: .