# DOS

DOS (sigla de Disk Operating System, "Sistema Operativo de Disco" o "Sistema Operativo en Disco") fue una serie de sistemas operativos para computadoras personales (PC). Creado originalmente para computadoras de la familia IBM PC, que utilizaban los procesadores Intel 8086 y 8088, de 16 bits, siendo el primer sistema operativo popular para esta plataforma. Contaba con una interfaz de línea de comando en modo texto o alfanumérico, vía su propio intérprete de órdenes, command.com. Probablemente la más popular de sus variantes sea la perteneciente a la familia MS-DOS, de Microsoft, suministrada con buena parte de los ordenadores compatibles con IBM PC, en especial aquellos de la familia Intel, como sistema operativo independiente o nativo, hasta la versión 6.22, frecuentemente adjunto a una versión de la interfaz gráfica de Windows de 16 bits, como las 3.1x.
En las versiones nativas de Microsoft Windows, basadas en NT (y este a su vez en OS/2 2.x) (véase Windows NT, 2000, 2003, XP o Vista o Windows 7) MS-DOS desaparece como sistema operativo (propiamente dicho) y entorno base, desde el que se arrancaba el equipo y sus procesos básicos y se procedía a ejecutar y cargar la interfaz gráfica o entorno operativo de Windows. Todo vestigio del mismo queda relegado, en tales versiones, a la existencia de un simple intérprete de comandos, denominado símbolo del sistema, ejecutado como aplicación mediante cmd.exe, a partir del propio entorno gráfico (elevado ahora a la categoría de sistema).
Esto no es así en las versiones no nativas de Windows, que sí están basadas en MS-DOS, cargándose a partir del mismo. Desde los 1.0x a las versiones 3.1(1), de 16 bits, Ms Windows tuvo el planteamiento de una simple aplicación de interfaz o entorno gráfico, complementaria al propio intérprete de comandos, desde el que era ejecutado. Fue a partir de las versiones de 32 bits, de nuevo diseño y mayor potencia, basadas en Windows 95 y 98, cuando el MS-DOS comienza a ser deliberadamente camuflado por el propio entorno gráfico de Windows, durante el proceso de arranque, dando paso, por defecto, a su automática ejecución, lo que acapara la atención del usuario medio y atribuye al antiguo sistema un papel más dependiente y secundario, llegando a ser por muchos olvidado y desconocido, y paulatinamente abandonado por los desarrolladores de software y hardware, empezando por la propia Microsoft (esta opción puede desactivarse alterando la entrada BootGUI=1 por BootGUI=0, del archivo de sistema, ahora de texto, MSDOS. SYS). Sin embargo, en tales versiones, Windows no funcionaba de forma autónoma, como sistema operativo. Tanto varias de las funciones primarias o básicas del sistema como su arranque se deben aún en las versiones de 32 bits, a los distintos módulos y archivos de sistema que componían el modesto armazón del DOS, requiriendo aquellas un mínimo de los archivos básicos de este, para poder ejecutarse (tales como IO.SYS, DRVSPACE. BIN, EMM386.EXE e HIMEM. SYS).
Existen varias versiones de DOS:
* MS-DOS, de Microsoft, es el más conocido.
* PC-DOS, de IBM.
* DR-DOS, de Digital Research, que pasaría posteriormente a Novell (Novell DOS 7.0), luego a Caldera y finalmente a DeviceLogics.
* FreeDOS, es el más reciente, de licencia libre y código abierto. Puede hacer, en su versión para GNU/Linux y UNIX, de emulador de MS-DOS bajo sistemas de este tipo.
* AmigaDOS
Con la aparición de los sistemas operativos con interfaz gráfica de usuario (GUI), del tipo Windows, en especial aquellos de 32 bits, del tipo Windows 95, el DOS ha ido quedando relegado a un segundo plano, hasta verse reducido al mero intérprete de órdenes, y a las líneas de comandos (en especial en ficheros de tipo .PIF y .BAT), como ocurre en los sistemas derivados de Windows NT.

## Historia

La historia comienza en 1981 con la compra, por parte de Microsoft, del sistema operativo QDOS (Quick Disk Operating System), que tras realizarle pocas modificaciones, se convierte en la primera versión del sistema operativo de Microsoft, denominado MS-DOS 1.0 (MicroSoft Disk Operating System).
A partir de aquí, suceden una serie de modificaciones del sistema operativo, hasta llegar a la versión 7.1, a partir de la cual MS-DOS deja de existir como tal y se convierte en una parte integrada del sistema operativo Microsoft Windows.

### Cronología de MS-DOS en todas sus versiones

En 1982, aparece la versión 1.25 que se añade soporte para disquetes de doble cara.
En 1983, el sistema comienza a tener más funcionalidad, con su versión 2.0, que añade soporte a discos duros IBM de 10 MB, y la posibilidad de lectura-escritura de disquetes de 5¼" con capacidad de 360 Kb. En la versión 2.11 del mismo año, se añaden nuevos caracteres de teclado.
En 1984, Microsoft lanzaría su versión MS-DOS 3.0, y es entonces cuando se añade soporte para discos de alta densidad de 1,2 MB y posibilidad de instalar un disco duro con un máximo de 32 MB. En ese mismo año, se añadiría en la versión 3.1 el soporte para redes Microsoft.
Tres años más tarde, en 1987, se lanza la versión 3.3 con soporte para los disquetes de 3½", y se permite utilizar discos duros mayores de 32 MB.
En 1988, Microsoft saca al mercado su versión 4.0 y con ella el soporte para especificación de memoria extendida (XMS) y la posibilidad de incluir discos duros de hasta 2 GB, cabe destacar que esta versión fue la mayor catástrofe realizada por la empresa, porque estaba llena de bugs, fallos, etcétera, que arreglaron en 1989 con el lanzamiento de la versión 4.01 que solucionaba todos estos problemas y fallos.
En 1991, uno de los avances más relevantes de la historia de MS-DOS, es el paso de la versión 4.01 a la versión 5.0, en la que DOS, es capaz ya de cargar programas en la parte de la memoria alta del sistema utilizando la memoria superior (de los 640 Kb a los 1024 Kb). En la versión 5.0 se añade el programador BASIC y el famoso editor EDIT. También se añadieron las utilidades UNDELETE (recuperación de ficheros borrados), FDISK (administración de particiones) y una utilidad para hacer funcionar los programas diseñados para versiones anteriores de MS-DOS, llamada SETVER. A finales de 1992 se resuelven unos problemas con UNDELETE y CHKDSK en la versión 5.0a.
En 1993, aparece MS-DOS 6.0 con muchas novedades, entre ellas la utilidad Doublespace que se encargaba de comprimir el disco y así tener más espacio disponible, también se incluyó un antivirus básico (MSAV), un defragmentador (DEFRAG), un administrador de memoria (MEMMAKER) y se suprimieron ciertas utilidades antiguas, que haciendo un mal uso de ellas podían destruir datos, estas utilidades eran JOIN y RECOVER, entre otras. En el mismo año sale la versión 6.2 que añade seguridad a la pérdida de datos de Doublespace, y añade un nuevo escáner de discos, SCANDISK, y soluciona problemas con DISKCOPY y SmartDrive. En la versión 6.21 aparecida en 1993, Microsoft suprime Doublespace y busca una nueva alternativa para esta utilidad.
En 1994, aparece la solución al problema de Doublespace, es la utilidad de la compañía Stac Electronics, Drivespace, la elegida para incluirse en la versión 6.22.
En 1995 aparece Microsoft Windows 95, y que con la aparición del mismo, supone apartar a MS-DOS a un plano secundario.
El sistema MS-DOS no obstante sigue siendo en 1995 una nueva versión, la 7.0, con la que se corrigen multitud de utilidades y proporciona soporte para nombres largos. Las utilidades borradas del anterior sistema operativo las podemos encontrar en el directorio del CD de windows 95 \other\oldmsdos.
En 1997 aparece Windows 95 OSR2, y con él una revisión exhaustiva del sistema DOS, añadiendo el soporte para particiones FAT32. A partir de entonces, MS-DOS deja de existir como sistema operativo.

## Versiones de DOS

Fueron varias las compañías que desarrollaron versiones del DOS, generalmente muy similares entre sí. PC-DOS y MS-DOS, por ejemplo, empezaron siendo prácticamente idénticos, aunque acabaron siendo muy distintos. Las versiones más conocidas son QDOS, PC-DOS, MS-DOS y FreeDOS, entre otras.
| Sistema operativo | Año de lanzamiento | Desarrollador |
| QDOS | 1979 | Tim Paterson |
| MS-DOS | 1981 | Microsoft |
| IBM PC DOS | 1981 | IBM & Microsoft |
| DR-DOS | 1988 | Digital Research |
| Novell DOS | 1991 | Novell |
| FreeDOS | 1994 | Jim Hall & The FreeDOS team |
| Apple DOS | 1978 | Apple |
| amigados | 1985 | amiga corporation |
Con el sistema operativo GNU/Linux es posible ejecutar copias de DOS bajo DOSEmu, una máquina virtual nativa de GNU/Linux para ejecutar programas en modo real. Hay otros muchos emuladores para diferentes versiones de UNIX, incluso para plataformas diferentes a la arquitectura de procesador x86.

## Características

El DOS carece por completo de interfaz gráfica, y no utiliza el ratón, aunque a partir de ciertas versiones solía incluir controladoras para detectarlo, inicializarlo y hacerlo funcionar bajo diversas aplicaciones de edición y de interfaz y entorno gráfico, además de diversos juegos que tendían a requerirlo (como juegos de estrategia, aventuras gráficas y Matamarcianos subjetivos, entre otros). Por sí solo es incapaz de detectar el hardware, a menos que las mencionadas controladoras incluyan en su núcleo de sistema, como residentes en memoria, el código, instrucciones y funciones necesarias. En cualquier caso, el intérprete de comandos y la mayoría de sus aplicaciones y mandatos de edición debían o podían ser fácilmente controlados manualmente, a través del teclado, ya fuera mediante comandos, o introduciendo teclas de acceso rápido para activar los distintos menús y opciones desde el editor (un buen ejemplo de esto último son el editor de texto edit.com, el menú de ayuda help.exe, o el intérprete de BASIC qbasic.exe, incluidos en las últimas versiones del MS-DOS). Tales opciones siguen, de hecho, encontrándose presentes en los Windows, en versiones muy posteriores.
El DOS no es ni multiusuario ni multitarea. No puede trabajar con más de un usuario ni en más de un proceso a la vez. En sus versiones nativas (hasta la 6.22 en el MS-DOS), no puede trabajar con particiones de disco demasiado grandes, superiores a los 2 GB, que requieren formatos y sistemas de archivos tales como el FAT32, propio de Windows de 32 bits (a partir del 98), o el NTFS, propio de Windows de tipo NT. Originalmente, por limitaciones del software, no podía manejar más de 64KB de memoria RAM. En las versiones anteriores a la 4.0, el límite, a su vez, era de 32 MB por partición, al no soportar aún el formato FAT16 (desarrollado en 1987). Poco a poco, con las mejoras en la arquitectura de los PC, llegó primero a manejar hasta 640 KB de RAM (la llamada "memoria convencional", o base), y luego hasta 1 megabyte (agregando a la memoria convencional la "memoria superior" o UMB). Más tarde, aparecieron mecanismos como la memoria expandida (EMS) y la memoria extendida (XMS), que permitían ya manejar varios megabytes.
Desde el punto de vista de los programadores, este sistema operativo permitía un control total de la computadora, libre de las capas de abstracción y medidas de seguridad a las que obligan los sistemas multiusuario y multitarea. Así, hasta la aparición del DirectX, y con el fin de aprovechar al máximo el hardware, la mayoría de videojuegos para PC funcionaban directamente bajo DOS.
La necesidad de mantener la compatibilidad con programas antiguos, hacía cada vez más difícil programar para DOS, debido a que la memoria estaba segmentada, es decir, la memoria apuntada por un puntero tenía como máximo el tamaño de un segmento de 64KB. Para superar estas limitaciones del modo real de los procesadores x86, se recurría al modo protegido de los procesadores posteriores (80386, 80486...), utilizando programas extensores que hacían funcionar programas de 32 bits sobre DOS.
Aunque este sistema operativo sea uno de los más antiguos, aún los entornos operativos Windows de 32 bits, hasta el 98, tenían como plataforma base camuflada u oculta el DOS. Su intérprete de comandos, denominado, por lo general, Command Prompt o Símbolo del Sistema, puede invocarse desde la interfaz como command.com, o, en versiones posteriores, basadas en NT, que ya no se basan ni parten de MS-DOS, mediante cmd.exe, esto pasa también en Windows ME a pesar de estar aún basado en la antigua arquitectura 9x. También existen, para sistemas actuales, emuladores como DOSBox, o entornos de código abierto como el FreeDOS, comunes ambos en GNU/Linux; ello permite recuperar la compatibilidad perdida con ciertas aplicaciones nativas para este antiguo sistema, que ya no pueden funcionar desde los nuevos Windows, basados en NT, o bajo sistemas operativos de arquitectura dispar, como los UNIX y GNU/Linux.

### Órdenes principales

* DIR: muestra un listado de archivos, que están contenidos en un directorio.
* TYPE: muestra el contenido de un archivo en pantalla.
* COPY: copia archivos en otro lugar.
* REN o RENAME: renombra archivos.
* DEL o ERASE: borra uno o varios archivos (con posibilidad de recuperarlos mediante la orden UNDELETE, presente en las últimas versiones nativas del DOS, salvo que el lugar del archivo o archivos borrados hubiese sido utilizado con posterioridad).
* MD o MKDIR: crea un nuevo directorio.
* CD o CHDIR: cambia el directorio actual por el especificado.
* RD o RMDIR: borra un directorio vacío.
* ATTRIB: permite asignar o quitar atributos de archivos (tales como +A: ya modificado, +H: oculto, +R: de solo lectura, o +S, archivo especial del sistema, o a la inversa).
* TREE: muestra gráficamente la estructura de directorios de una unidad o ruta de acceso.
* DELTREE: borra un directorio con todo su contenido, incluidos subdirectorios (apareció en las últimas versiones).
* CLS: limpia la pantalla.
* DATE: permite ver y cambiar la fecha.
* TIME: permite ver y cambiar la hora.
* LABEL: permite ver y cambiar la etiqueta de una unidad de disco o "volumen".
* HELP: ofrece ayuda sobre las distintas órdenes.
* SORT: ordena las entradas.
* FC o COMP: compara las diferencias entre el contenido de dos archivos.
* FIND: busca cadenas de texto dentro del contenido de un archivo.
* TACS: ordena todos los archivos del PC.
* EDLIN o EDIT: permite editar archivos, guardando los cambios efectuados en el sistema.
* VOL: muestra la etiqueta del volumen y el número de serie del disco.
* VERIFY: comunica a Windows si debe comprobar que los archivos se escriben de forma correcta en un disco.
* CD..: retrocede a la rama anterior.
Algunas de estas órdenes admiten el uso de parámetros, también llamados modificadores.

#### Ejemplo de salida
### Uso de modificadores

Modificadores de la orden DIR:
* dir /s: muestra el listado con el contenido de un directorio y de todos sus subdirectorios.
* dir /p: pausa el texto de salida en pantalla y espera que el usuario pulse una tecla para continuar.
* dir /w: ordena el listado a lo ancho de la pantalla.
* dir /ah: muestra los archivos ocultos del directorio actual.
* dir /as: muestra los archivos de sistema del directorio actual.
* dir /r: muestra los archivos marcados "solo lectura" del directorio actual.
* dir /on: muestra los archivos ordenados alfabéticamente.
* dir /od: muestra los archivos ordenados por fecha.el dir es un sistema cobo.
Los modificadores pueden combinarse, por ejemplo:
* dir /p /w /on

### Órdenes avanzadas

Ciertas órdenes, como COPY, pueden recibir parámetros que permiten una manipulación de archivos ciertamente avanzada, en particular el modificador /b, que efectúa una copia binaria. Por ejemplo, la secuencia: copy /b archivo1 + archivo2 + archivo3 archivo4: copiará el contenido de archivo1, archivo2 y archivo3 en un nuevo archivo, denominado archivo4.
Además, el DOS permitía escribir archivos de proceso por lotes (pequeños scripts para COMMAND.COM), cuya extensión era .BAT, que admitían órdenes como IF, GOTO y CHOICE (que pedía la entrada de un carácter entre los especificados). Así, se podían hacer menús, automatizar tareas, etcétera.

## Notas y referencias

* ↑ Desarrolló el sistema trabajando en Seattle Computer Products.