# IBM PC DOS

El IBM PC DOS (nombre completo: The IBM Personal Computer Disk Operating System) es un Sistema operativo de disco (DOS) obsoleto para el IBM Personal Computer y los sistemas compatibles. Fue uno de los sistemas operativos que dominó el mercado de los computadores personales entre 1985 y 1995. Manufacturado y vendido por IBM desde el año 1981 al 2000.
Tiene las mismas raíces que el MS-DOS. De hecho, el MS DOS y el PC DOS son dos variantes del mismo sistema operativo con algunas diferencias. Mientras que el PC DOS fue hecho originalmente para los computadores personales de IBM, el MS DOS apuntaba al mercado de los clones.

## Historia
### El IBM PC

El grupo de trabajo de IBM reunido para desarrollar el IBM PC decidió que los componentes críticos de la máquina, incluyendo el sistema operativo, pudieran venir de vendedores externos. Esta ruptura radical de la tradición de la compañía, de desarrollo interno, fue la decisión clave que hizo el IBM PC un estándar industrial, pero esto fue hecho por necesidad para ahorrar tiempo. Microsoft fue seleccionado para el sistema operativo. IBM quería que Microsoft conservara la propiedad de cualquier software que desarrollara, y no quería tener nada que ver en ayudar a Microsoft, con excepción de hacer sugerencias desde lejos. Según el miembro del grupo de trabajo Jack Sams, "Las razones eran internas. Teníamos un terrible problema siendo demandados por gente clamando que habíamos robado sus cosas. Podría ser horriblemente costoso para nosotros tener nuestros programadores mirando el código que perteneció a algún otro, porque entonces ellos podrían volver y decir que nosotros les robamos e hicimos todo este dinero. Habíamos perdido una serie de disputas legales en esto, así que no quisimos tener, trabajado por la gente de IBM, un producto que fuera claramente de algún otro. Fuimos a Microsoft con la proposición que queríamos que éste fuera su producto". IBM primero entró en contacto con Microsoft para ver la compañía por julio de 1980. Las negociaciones continuaron durante los meses siguientes, y el papeleo fue oficialmente firmado a principios de noviembre.

### Creación del PC DOS

Microsoft compró una licencia no exclusiva para el 86-DOS (anteriormente llamado QDOS) a Seattle Computer Products (SCP) en diciembre de 1980 por 25 000 dólares. En mayo de 1981, se contrató a Tim Paterson para portar QDOS al IBM-PC, que utilizaba el procesador Intel 8088, que era más lento y menos costoso, y que tenía su propia familia específica de periféricos. IBM observó los progresos diariamente y presentó más de 300 peticiones de cambio antes de aceptar el producto y escribir el manual de usuario para él.
En julio de 1981, un mes antes de que lanzaran el IBM PC, Microsoft compró todos los derechos del 86-DOS de SCP por 50.000 dólares. Esto cumplió los criterios principales de IBM: Parecía CP/M y era fácil adaptar los programas de 8 bits existentes de CP/M para funcionar bajo este, sobre todo gracias al comando TRANS del QDOS, que permitía traducir código fuente del Intel 8080 al lenguaje de máquina del 8086.
Microsoft licenció QDOS a IBM, y se convirtió en el PC-DOS 1.0. Esta licencia también permitió que Microsoft vendiera el DOS a otras compañías, lo cual hizo posteriormente cuando aparecieron los clones llamándolo MS DOS. El acuerdo fue espectacularmente exitoso, y SCP demandó posteriormente en los juzgados que Microsoft había encubierto su relación con IBM para comprar el sistema operativo más barato (incluso aunque Microsoft todavía estaba bajo los términos de un acuerdo de no revelación y el grado de éxito del PC no estaba previsto ampliamente). SCP recibió en última instancia un millón de dólares como acuerdo de pago.

## Estructura

El PC DOS estaba formado por cuatro componentes principales:
* El sector de arranque (boot record), que se encuentra en el primer sector del disquete o de la partición del disco donde se encuentra instalado el DOS.
* El archivo IBMBIO.COM, el cual es la interfaz del DOS para llamadas al IBM BIOS, que era el BIOS de los computadores personales de IBM.
* El archivo IBMDOS.COM, el cual es propiamente la implementación del DOS, y contiene el código de las llamadas de función, (lo que hoy llamaríamos las API).
* El archivo COMMAND.COM, es el procesador de comandos, que recibe las instrucciones (comandos) escritos por el usuario y los ejecuta.
Adicionalmente hay una serie de programas ejecutables, algunos archivos de configuración, y otros.
El hermano del PC DOS, el MS DOS, tenía los archivos IO.SYS y DOS.SYS que eran los equivalentes respectivamente del IBMBIO.COM y el IBMDOS.COM.

### IBMBIO.COM

El IBMBIO.COM era el nombre de archivo del DOS-BIOS en muchos sistemas operativos DOS, y como tal, parte de PC-DOS, versiones anteriores del MS-DOS, y DR DOS 5.0 y posteriores (a excepción del DR-DOS 7.06). Sirve el mismo propósito que el IO.SYS en MS-DOS, o el DRBIOS.SYS en DR DOS 3.31 al 3.41.
El archivo residía en el sector de arranque del disco (el primer sector) y era cargado por el boot loader después de ejecutarse el POST al encender el computador.
En la secuencia del bootup del PC, es cargado en memoria el primer sector del disco de arranque y se ejecuta el código almacenado allí. Si este es el sector de arranque del DOS, este carga los primeros tres sectores del IBMBIO.COM en la memoria y transfiere el control a este. El IBMBIO.COM entonces realiza lo siguiente:
* Carga el resto de sí mismo en memoria. Para que esto trabaje, el IBMBIO.COM y su entrada en el directorio debe estar situado en posiciones físicas fijas en el disco y debe estar almacenado en los sectores consecutivos, condiciones que la utilidad SYS realiza.
* Carga el kernel del DOS. El kernel es almacenado en archivo IBMDOS.COM.
* Inicializa cada controlador de dispositivo por defecto (consola, disco, puerto serial, etcétera). A este punto, los dispositivos por defecto están disponibles.
* Llama a la rutina de inicialización del kernel del DOS.
Bajo el DR-DOS, se salta el primer paso, puesto que un sector de arranque del DR-DOS monta el sistema de archivos FAT, localiza el archivo IBMBIO.COM (o DRBIOS.SYS) en el directorio raíz y lo carga en memoria por sí mismo. No es necesario que el archivo IBMBIO.COM resida en una posición física fija o sea almacenado en sectores consecutivos. En lugar de ello, simplemente puede ser copiado al disco (sin el SYS), dado un sector de arranque de DR-DOS ya resida en el disco.

### IBMDOS.COM

El IBMDOS.COM era el nombre de archivo del kernel del PC DOS. El archivo estaba situado en el directorio raíz en el disco de sistema del sistema operativo PC-DOS. Cuando Microsoft lanzó el MS-DOS, este tenía un archivo equivalente llamado MSDOS.SYS. Posteriormente, en el sistema operativo DR-DOS había también un IBMDOS.COM.
El kernel inicializaba al sistema operativo e interpretaba el contenido del archivo CONFIG.SYS, que también debía estar situado en el directorio raíz. Un comando en el CONFIG.SYS especificaba la localización del interpretador de línea de comandos, típicamente el COMMAND.COM.

## Funciones

El PC-DOS tenía una serie de funciones que podían ser llamadas por los programas por medio de interrupciones. Había funciones para entrada por teclado, salida por pantalla, entrada y salida por consola (la cual era la combinación del teclado y la pantalla tratados en conjunto), entrada y salida por el puerto serial, manejo de memoria, manejo de archivos, manejo de directorios, manejo del disco, fecha y hora, etc.

## Comandos residentes y transitorios

El interpretador de comandos para el PC-DOS y el MS-DOS corre después de que finaliza la aplicación que se está ejecutando (o después de que un programa TSR devuelve el control después de instalarse). Si después de que la aplicación finalice o devuelva el control, el interpretador de comandos residente en memoria hubiera sido sobreescrito, el PC-DOS lo recargará desde el disco de nuevo. El interpretador de comandos es almacenado usualmente en un archivo llamado COMMAND.COM.
Algunos comandos son internos y están construidos dentro del COMMAND.COM, otros están almacenados en el disco de la misma forma que los programas de aplicación. Cuando el usuario teclea una línea de texto en el prompt de comandos del sistema operativo, el COMMAND.COM parseará la línea, e intentará encontrar un nombre de comando construido internamente. Si no lo encuentra, entonces busca un archivo de programa ejecutable o un archivo batch en el disco con el nombre del comando. Si en cualquiera de los dos casos lo encuentra lo ejecuta y le pasa los parámetros que hubieran en la línea de texto escrita por el usuario. Si no se encuentra, un mensaje de error es impreso y el prompt de comando es refrescado de nuevo.
Los comandos residentes variaron levemente entre las diferentes versiones del PC-DOS. Típicamente, las funciones DIR (lista directorio), el ERASE o DEL (borra un archivo o un directorio), COPY (copia archivos), DATE (exhibe o ajusta la fecha), TIME (exhibe o ajusta la hora), CD (cambia el directorio de trabajo), MD (hacer un directorio en el disco actual), REN (renombrar un archivo o un directorio) y algunos otros, eran residentes en COMMAND.COM.
Los comandos transitorios eran, o demasiado grandes para mantenerse en el procesador de comandos, o eran usados con menos frecuencia. Tales programas utilitarios serían almacenados en el disco y cargados justo como los programas de aplicación regulares, pero eran distribuidos con el sistema operativo. Las copias de estos programas de comando utilitarios tenían que estar en un disco accesible, en la unidad de disco floppy actual o en la ruta de comandos fijada en el interpretador de comandos.

## Archivo CONFIG.SYS

El archivo CONFIG.SYS es el principal archivo de configuración del PC DOS. Contiene instrucciones de configuración y de inicialización del sistema.

## Archivos .BAT

Los archivos con la extensión .BAT son archivos de procesamiento por lotes que contienen un conjunto de comandos que son procesados como si se entraran en la línea de comandos por el usuario. Sirven para automatizar la ejecución de una serie de comandos. Algunas palabras claves adicionales son reconocidas por el interpretador de comandos COMMAND.COM para hacer a los archivos batch más útiles. Estos comandos adicionales no son útiles si están mecanografiados interactivamente en el prompt de comandos, pero permiten un procesamiento flexible en un archivo bach.

### Archivo Autoexec.bat

El archivo Autoexec.bat es un archivo de procesamiento por lotes que se encuentra en el directorio raíz del disco de arranque y se ejecuta al iniciar el computador después de que el DOS fuera cargado y el CONFIG.SYS procesado.

## Versiones
### PC DOS 1.x

Microsoft primero licenció, luego compró el 86-DOS de Seattle Computer Products (SCP), el cual fue modificado para el IBM PC por el empleado de Microsoft Bob O'Rear con asistencia de Tim Paterson de SCP y luego empleado de Microsoft. O'Rear consiguió que el 86-DOS corriera en el prototipo del IBM PC en febrero de 1981. El 86-DOS tuvo que ser convertido de los discos floppy de 8 pulgadas a los de 5,25 pulgadas, y ser integrado con el BIOS que Microsoft estaba ayudando a IBM a escribir. IBM tenía más gente escribiendo requisitos para la computadora que los que tenía Microsoft escribiendo código. O'Rear a menudo se sentía abrumado por el número de personas con las que tuvo que tratar en el Entry Level Systems facility en Boca Ratón. Al 86-DOS se le cambió el nombre por PC DOS 1.0 para su lanzamiento con el IBM PC, en agosto de 1981. Hacia finales de 1981, Paterson fue a trabajar en una mejora, que fue llamada PC DOS 1.1. Esta permitía que los datos fueran escritos en ambos lados de un disquete, doblando así la capacidad de la máquina de IBM, y fue finalizado a mediados de marzo de 1982.

### PC DOS 2.x

Posteriormente, un grupo de programadores de Microsoft (principalmente Paul Allen, Mark Zbikowski y Aaron Reynolds)
comenzaron el trabajo en el PC DOS 2.0, la siguiente versión para el IBM PC/XT, el primer PC en almacenar los datos en un disco duro. Era un programa mucho más sofisticado que la versión 1.0, tenía 20 000 líneas de código en lenguaje ensamblador, comparado con cerca de 4.000 líneas de la primera versión. Fue oficialmente anunciado en marzo de 1983 o a fines de 1984. Luego, en marzo de 1984, se despachó el IBM PCjr. Corría el PC DOS 2.1, que soportaba la capacidad del PCjr de correr programas desde cartuchos de ROM y una arquitectura de controlador de disco ligeramente diferente.

### PC DOS 3.x

En agosto de 1984, IBM introdujo el IBM PC/AT, un computador construido alrededor del procesador 80286 de Intel. Corría sobre el PC DOS 3.0, que soportaba las unidades de disco más grandes y los disquetes de más alta densidad (1,2 MB) del nuevo computador. El PC DOS 3.1 soportaba la tarjeta adaptadora de red de IBM en el IBM PC-Network. El PC DOS 3.2 añade soporte para las unidades de disco floppy de doble densidad de 720 KiB y 3½ pulgadas, soportando el IBM PC Convertible, el primer computador de IBM en usar discos floppy de 3½ pulgadas, lanzado en abril de 1986.
En junio de 1985, IBM y Microsoft firmaron un acuerdo de desarrollo conjunto de largo plazo para compartir código de DOS especificado y crear un nuevo sistema operativo desde cero, conocido en ese entonces como Advanced DOS (DOS avanzado). El 2 de abril de 1987, el OS/2 fue anunciado como el primer producto producido bajo los términos del acuerdo.
Al mismo tiempo, IBM lanzó su siguiente generación de computadores personales, el IBM Personal System/2. El PC DOS 3.3, lanzado con la línea PS/2, agregó soporte para unidades de disco floppy de "1,44 MB" (con capacidad de 1440 KiB) de alta densidad de 3½ pulgadas, que IBM introducido en sus modelos de PS/2 basados en el 80286 y más avanzados. La mejora del DOS 3.2 a 3.3 fue escrita completamente por IBM, sin esfuerzo de desarrollo de parte de Microsoft, el cual trabajaba en el "Advanced DOS 1.0".

### PC DOS 4.x

El PC DOS 4.0, despachado en julio de 1988, fue un DOS sin éxito que presentó IBM probando ideas para su DOS 5, que estaba en desarrollo, y más tarde se convirtió en el OS/2.
Digital Research lanzó un DOS 5.0, que cogió a Microsoft por sorpresa, pero la combinación de vaporware, y alguna codificación apresurada, permitió a Microsoft evitar la competencia. Este DOS también fue el último DOS en el que IBM y Microsoft compartieron el código completo, y el DOS que fue integrado en el Virtual DOS Machine del OS/2 2.0, y posteriormente del Windows NT. El DOS en estos sistemas operativos para el computador i386 nunca progresó más allá de esto.
Bajo los términos de la división, a IBM se le permitió quedarse (y comprar los derechos) para su propio DOS, lo cual hicieron. También les permitieron quedarse con Win-OS/2 (básicamente Windows 3.10 para OS/2). Microsoft fue algo específico en cuál DOS era, puesto que los disquetes OEM fueron etiquetados "MS-DOS y herramientas adicionales", es decir dos productos. IBM lanzó su propio DOS, con un nuevo editor, y un número de utilidades que eran versiones anteriores?? completas de PC Tools. Las herramientas de Microsoft eran herramientas de Norton con características limitadas.

### PC DOS 6.1

El PC DOS permaneció como una versión del MS DOS hasta 1993. IBM y Microsoft se separaron - MS DOS 6 fue lanzado en marzo y el PC DOS 6.1 (desarrollado por separado) lo siguió en junio. El QBasic fue eliminado y el MS DOS Editor fue reemplazado por E.

### PC DOS 6.3

El PC DOS 6.3 siguió en diciembre. El PC DOS 6.30 también fue usado en el OS/2 para el Power PC.
La división final vino después del DOS 6.30. Se nota que el 6.30 tiene las mejoras que tuvo el 6.20, y que comenzando con el 6.22 y Windows 3.11, el sistema operativo preferido cambió del OS/2 a Windows NT.

### PC DOS 7.0

El PC DOS 7.0 fue lanzado en noviembre de 1994. El lenguaje de programación REXX fue añadido, al igual que un soporte para un nuevo formato de disco floppy, el XDF, que extiende el estándar de disco floppy de 1,44 MB a 1.86 MB.
El DOS 7.0 de IBM, el último lanzamiento antes de que Boca Ratón cerrara, incluía características SAA (como el REXX, vista IPF para la ayuda, y unpack2 - todo viniendo del OS/2), junto con la remoción de la versión incorrecta del DOS de la mayoría, pero no todas, las utilidades.

### PC DOS 2000

El PC DOS 2000 - lanzado en Austin en 1998 - es básicamente un slipstream del 7.0 con el año 2k y otro arreglos aplicados. Para las aplicaciones, el PC DOS 2000 se reportaba como "IBM PC DOS 7.00, revisión 1", en contraste con el PC DOS 7.0 original, que se reportaba como la revisión 0. IBM continúa utilizando el código del PC DOS para compilar los discos de arranque de DOS para sus servidores.
El lanzamiento al por menor más reciente fue el PC DOS 2000, que encontró su nicho en el mercado de programas empotrados y otros lados. Fue basado en el PC DOS 7.0, y corrigió cuestiones con el problema del año 2000. El mercadeo del PC DOS 2000 incluyó la frase "incluye el PC DOS 7.0".
Los productos ThinkPad actualmente tienen una copia de la última versión del PC DOS en su partición de rescate y recuperación.

### PC DOS 7.1

Desde 2003, hay también una versión OEM del PC DOS que tiene activada el LBA/FAT32, reportándose a sí misma a las aplicaciones como "IBM PC DOS 7.10". No debe ser confundida con el OEM DR-DOS 7.04 y superiores, que también se reportan como "IBM DOS 7.10" para propósitos de compatibilidad.

## Después de Microsoft

El PC DOS seguía siendo un cambio de marca de la versión del MS-DOS hasta 1993. IBM y Microsoft se separaron - El MS-DOS 6 fue lanzado en marzo, y el PC DOS 6.1 (desarrollado separadamente) lo siguió en junio. El QBasic fue retirado y el MS-DOS Editor fue reemplazado con E. El PC DOS 6.3 siguió en diciembre.
El PC DOS 7.0 fue lanzado en noviembre de 1994. El lenguaje de programación REXX fue agregado, así como el soporte para un nuevo formato de disco floppy, XDF, que extendió un disco floppy estándar de 1440 KiB a 1860 KiB.
El lanzamiento al por menor más reciente fue el PC DOS 2000, que encontró su nicho en el mercado de programas empotrados y otros lados. Fue basado en el PC DOS 7.0, y corrigió cuestiones con el problema del año 2000. El mercadeo del PC DOS 2000 incluyó la frase "incluye el PC DOS 7.0".
Los productos ThinkPad actualmente tienen una copia de la última versión del PC DOS en su partición de rescate y recuperación.
Desde 2003, hay también una versión OEM del PC DOS que tiene activada el LBA/FAT32, reportándose a sí misma a las aplicaciones como "IBM PC DOS 7.10". No debe ser confundida con el OEM DR-DOS 7.04 y superiores, que también se reportan como "IBM DOS 7.10" para propósitos de compatibilidad.