Autor: Alfonso Santacreu
Fecha: 20-04-01

Introducción

Un PC de por sí es como cualquier otro microcomputador, no basta con encenderlo si en su memoria  no existe un programa que realice alguna acción o que permite al usuario proponer la ejecución de aplicaciones. Los componentes básicos que integran un computador son:

  • Microprocesador o Unidad Central de Procesos (CPU): aunque coloquialmente CPU se aplique a la “caja” que alberga las tripas de nuestro querido PC en realidad CPU está más próximo de ser sinónimo de procesador. El procesador, como ya habrá podido deducirse sobradamente, es el corazón del sistema, integrado por la ALU (o Unidad Aritmético – Lógica) y Unidad de Control se encarga de procesar los datos solicitados por el sistema y de gestionar los recursos del mismo respectivamente.

  • Memoria: es el dispositivo físico que permite el almacenamiento de los datos a procesar.

  • Unidades de entrada: dispositivos que permiten la adquisición de datos por parte de la computadora.

  • Unidades de salida: dispositivos que transmiten al usuario el estado y los resultados a las peticiones solicitadas mediante las unidades de entrada. También se puede hablar de unidades mixtas de entrada / salida.

Cuando encendemos un PC existe todo un protocolo que regula el encendido de los diversos elementos que lo componen y que se encuentran integrados en las categorías enumeradas. Para tal menester existe en el PC un dispositivo dedicado denominado BIOS (Basic Input Output System) y que es el sistema responsable de la puesta en marcha del equipo realizando un test de comprobación del buen funcionamiento de las unidades que es capaz de reconocer, la configuración básica hardware se almacena en una pequeña memoria de 64 bytes de tipo CMOS (Complementary Metal Oxide Semiconductor), la BIOS alberga el sistema básico de gestión y comunicación entre los diversos recursos y dispositivos que integran un PC. Los datos albergados en las CMOS de las BIOS actuales conocen dos estados en función de su dependencia o independencia de alimentación eléctrica para su mantenimiento en caso de que el equipo se desconecte. Por una lado existe una configuración por defecto que en los chips más modernos y seguros reside en una PROM (Programable Read Only Memory) garantizando su existencia aún cuando no existe alimentación eléctrica y que es inmune a los intentos lógicos de borrado (físicamente siempre puede destruirse); por otro lado tenemos la memoria CMOS donde se almacenan las variaciones de la configuración por defecto que sí es susceptible de perderse en caso de desconexión, en este caso los sistemas más seguros (y caros)  conmutaran automáticamente a los parámetros por defecto almacenados en la PROM. Tradicionalmente no existía alternativa doméstica a este sistema redundante profesional (sólo para grandes necesidades en materia de seguridad) no obstante hoy existe la posibilidad de subsanar estas catástrofes antaño irresolubles para el informático medio, si bien el grueso de las opciones de compra se compone de placas madre cuyas BIOS se encuentran plenamente almacenadas en una CMOS tipo EEPROM que sí requiere de una alimentación constante (dada la necesidad de actualización del reloj) y que permite ser reprogramada para hipotéticas actualizaciones (requiriendo de la extracción del módulo para su reprogramación o sustitución) o en los casos más cómodos son memorias tipos FLASH pueden modificarse con un software adecuado (lo que también tiene como contrapartida el posible acceso con fines destructivos y que requiere para una total seguridad de algún tipo de memoria de respaldo no reescribible e independiente de la alimentación, combinación ésta última algo más cara y difícil de conseguir). La posibilidad de reprogramar o regenerar el contenido de la CMOS ya no es una utopía para el usuario medio que ha dejado de verse obligado a renovar, cuando menos, la placa al completo en los casos en que el contenido de su CMOS se perdía por completo por el motivo que fuera.

Retomando las funciones de la BIOS debemos describir que su actividad se inicia con el arranque del PC, por defecto el microprocesador de un sistema compatible IBM PC apunta al encenderse a la última dirección de la memoria superior que apunta a su vez a la primera instrucción de la BIOS, esta instrucción es la que inicia la secuencia de arranque descrita en la BIOS y que sigue la configuración establecida por la CMOS, si en algún punto de esta secuencia se produjera algún error el arranque del sistema se detendría y no se pasaría al siguiente punto que es precisamente el que nos ocupa: el arranque del sistema operativo.

El sistema operativo es el primer programa (después del “micro-código” de la BIOS) que se ejecuta en un ordenador, es el responsable de administrar y gestionar los recursos del PC, sobre el se ejecutan el resto de las aplicaciones, éstas dependen del sistema para acceder a los periféricos así como a la memoria, podría definirse como el “director de orquesta”.

IBM, como responsable de la historia del PC, fue quien decidió qué sistema operativo iba a ser el elegido para gestionar los recursos de su nueva criatura, dado que desde un principio el PC contrastaba notablemente con la política general de la empresa de fabricar tan sólo grandes máquinas dadas sus características y el hecho de que su destinatario final fuese el usuario medio IBM debió pensar que si por una vez hacían una máquina pequeña el sistema operativo debía ir en consecuencia. Por aquel entonces existía un sistema denominado C/PM que cumplía los requisitos de versatilidad que IBM buscaba, amén de coincidir suficientemente en su demanda de recursos de lo que el primer IBM PC era capaz de ofrecer; al parecer IBM y Digital Research (empresa que desarrolló el CP/M) no alcanzaron un acuerdo por lo que IBM se vio obligada a buscar soluciones alternativas, fueron dos estudiantes los que les brindaron la solución (Bill Gates y su socio Paul Allen) y desarrollaron para ellos un sistema que si bien no tenía ni la estabilidad ni el rendimiento de CP/M no dejaba de ser un sistema operativo especialmente diseñado para su plataforma y que les resultó, en un principio, extremadamente barato. Este sistema se llamó MS-DOS y Microsoft la compañía que fundarían estos dos estudiantes cuando dieron a luz la primera versión (1.0) del sistema, el resto ya es historia.

Si damos un salto hacia delante en el tiempo y alcanzamos la actual situación del PC nos encontramos que pese a la masiva implantación de sistemas Windows la línea de comandos de MS-DOS sigue ejecutándose por debajo de toda la parafernalia gráfica actual. Es por ello que vamos a ver como administra MS-DOS la memoria así como cuáles son sus comandos básicos y cómo podemos optimizar el arranque del sistema.

 

 

MS-DOS y la gestión de memoria

 

            En un principio, si tomamos como partida los primeros PCs con 20 líneas de direccionamiento nos encontramos con que no podemos direccionar más que 1MB de memoria. IBM y Microsoft distribuyeron ese MB primigenio en dos zonas: memoria convencional y memoria reservada. La memoria convencional va desde los 0K hasta los 640K y los 384K restantes son la memoria superior.

-          Memoria convencional: en principio alberga en su primer KB los llamados vectores interrupción, los cuales contienen las direcciones de las diversas “interrupciones de memoria” que pueden adoptar los dispositivos del sistema y periféricos para comunicarse entre ellos y con el propio sistema operativo. El resto de la memoria convencional cumplirá con dos funciones esenciales: albergar los llamados “drivers” o “controladores” ya sean del sistema o de periféricos / funciones añadidas y almacenar el programa en ejecución. MS-DOS en su proceso de carga el núcleo del sistema (IO.SYS: Input Output System y MSDOS.SYS) así como el intérprete de comandos (COMMAND.COM). Estos programas son el corazón del sistema y coordinan el flujo de información entre el sistema y el hardware así como reciben las peticiones del usuario respectivamente. Más allá de estos controladores básicos existen muchos otros; algunos propios del sistema, algunos añadidos por nosotros mismos, que nos vana permitir ampliar la funcionalidad del PC. Todos los controladores terminan, en principio, en la convencional lo que supone que cuántos más carguemos menor será el tamaño máximo del programa que queramos ejecutar al quedar cada vez menos convencional disponible para tal menester.

-          Memoria superior: la memoria superior, 384K, es una zona de memoria “especial”. Especial porque en principio nosotros no podemos acceder a ella pero el PC sí, el sistema la emplea para copiar en ella las BIOS del propio sistema y de los distintos periféricos que tengamos instalados (léase: tarjeta gráfica, controladora de disco duro, capturadora de vídeo...). Esta memoria en apariencia inaccesible nos resultará de gran utilidad cuando veamos como trabajar con ella.

 

 

Comandos básicos

 

            Los discos de arranque a menudo son etiquetados como “discos de rescate”, esto se debe a que cuando se produce algún error grave en el sistema que impide su puesta en marcha habitual nos encontramos en una situación bastante incómoda, cuando menos, ya que no somos capaces de acceder a nuestro ordenador. Si sabemos que un PC puede arrancar desde diversos dispositivos y que cuando uno de ellos falla siempre puede buscar alternativas podemos intuir que nos estaría de menos tener un disquete que nos permitiera acceder a nuestra computadora en caso  de catástrofe, este disquete, efectivamente, puede crearse y será nuestro “disco de rescate”.

 

Nota: aunque por razones de comodidad las capturas que se incluyen a partir de aquí muestran una ventana de MS-DOS, lo ideal sería “Reiniciar el equipo en modo MS-DOS”.

 

            Echemos un vistazo a una sesión MS-DOS

 

La primera línea nos muestra “C:\>”, esto quiere decir que nos encontramos en la unidad C: y, dentro de la misma, la barra inclinada nos indica que nos encontramos en el directorio raíz. MS-DOS enumera sus unidades físicas y lógicas (aquellas que sólo existen virtualmente) empleando las letras del abecedario: A y B suelen ser las disqueteras, cuando B no existe se suele emplear como unidad destino en la copia de disquetes (explicado más adelante); C es la unidad principal, habitualmente un disco duro donde reside el sistema operativo; más allá (D, E, F...) las letras se emplean para unidades secundarias tales como discos duros o lectores de CD. Todas estas letras deben ir acompañadas de dos puntos (C: o A:) con tal de que el sistema las distinga de una simple letra que podría ser, por ejemplo, un comando. Antes de crear nuestro disco de arranque debemos conocer qué comandos vamos a necesitar. MS-DOS ofrece una serie de posibilidades para gestionar el PC, a cada una de esas posibilidades se le conoce como comando, éstos a su vez pueden ser internos o externos. Los comandos internos son aquellos que residen en el propio intérprete de comandos, como por ejemplo la orden “dir”. Si tecleamos dir en el prompt del sistema (el prompt son esas primeras letras que nos indicaban dónde nos encontramos) éste nos mostrará que archivos contienen el directorio actual:

 

         En la imagen superior podemos ver el antes y el después de la ejecución “dir”, “dir” no es un comando que resida en un fichero o archivo independiente, sino que como hemos dicho está implícito en el propio intérprete de comandos. Podemos ver como la penúltima entrada de la lista obtenida gracias a “dir” muestra la existencia del fichero “COMMAND.COM” en el directorio raíz del disco duro, además (leyendo en esa misma línea de izquierda a derecha) podemos ver su tamaño en bytes, la fecha y hora de la última modificación así como su nombre de archivo largo.

            Llegados a este punto debemos hacer un paréntesis para explicar qué son exactamente los archivos, qué los directorios así cómo sus características particulares más importantes.

 

¿Qué es un archivo?

 

            Partiendo de la base de que sabemos que los datos se almacenan en código binario debemos explicar cómo se ordenan estos ceros y unos en los distintos soportes de almacenamiento que nos podemos encontrar. Si tomamos un disco duro como ejemplo nos encontramos con varios platos metálicos sobre los cuáles se ha depositado un material ferro – magnético (óxido de hierro u otros de similar comportamiento), si pudiésemos examinar estos discos duros al microscopio (dadas las actuales cotas de densidad de bits quizás necesitemos algo más que un microscopio óptico) observaremos infinidad de circunferencias concéntricas (cilindros si hacemos la traducción literal del inglés), cada circunferencia es una pista y en cada pista hay una infinidad de partículas que en función de su sentido magnético se interpretan como uno a como cero. El sistema de lectura de un disco duro suele leer tandas de unos y ceros, el tamaño mínimo de estas tandas definen un sector. No obstante si decimos que el tamaño de un sector (clúster) puede oscilar entre los 32KB y los 512 bytes (dependiendo del sistema operativo y del tipo de formato que demos al disco duro), y si hemos sido curiosos y hemos ido trasteando con nuestro ordenador (aunque solo sepamos emplear el comando “dir”)  nos habremos percatado de que muchos, por no decir la mayoría, de los ficheros son mucho más grandes que el tamaño de uno de estos “clústers”: ¿qué quiere decir esto? Simple: un fichero esta formado por una serie de bits, estos bits pueden suponer más de un clúster y... lo que es más curioso, los clústers que componen un fichero no tiene porqué ser correlativos. Cuando un disco duro es formateado se crea lo que llamamos una FAT (File Allocation Table o Tabla de localización de ficheros). Esta tabla supone alrededor de un 10% del tamaño en bruto disponible en el disco duro y en ella el sistema almacenará una especie de listín telefónico mediante el cual puede consultar en qué posiciones físicas se encuentra un fichero, por lo tanto un fichero es (definición libre) una cierta cantidad de bits cuyas posiciones están registradas en la FAT creada por el sistema operativo en el disco duro. En MS-DOS los ficheros tienen un nombre y una extensión; el nombre puede tener ocho caracteres y la extensión tres, se encuentran separados por un punto. La extensión viene ser el “apellido” del fichero o archivo y su función principal es indicar al usuario y al sistema de qué tipo de fichero se trata. Ahora que sabemos lo que es un fichero podemos hablar de los tres tipos fundamentales de ficheros que existen: archivos, comandos o ejecutables y directorios.

·         Archivos: es el nombre genérico y por lo tanto aplicable también a comandos y directorios, pero generalmente, cuando uno dice “archivo” suele estar haciendo referencia a “archivo de datos” en el sentido de que estos ficheros almacenan una información que no es susceptible de ser ejecutada sino simplemente consultado por la máquina (un programa que accede a una librería, por ejemplo) o por el propio usuario.

·         Comandos o ejecutables: son archivos que al invocarlos (tecleando su nombre y presionando ENTER / INTRO) desencadenan una acción concreta en nuestra máquina, contienen código máquina que procede de la compilación de un código fuente y en MS-DOS podemos hablar de comando internos y externos. Depende de si estos comandos se encuentran en el propio intérprete de comandos o se encuentran almacenados en un fichero independiente. Las extensiones habituales, en DOS, para estos ficheros son: .COM y .EXE (a menudo un fichero COM suele ser un controlador de algún tipo cuya ejecución implica una carga prolongada del mismo en la memoria y, por el contrario, un EXE es un ejecutable que una vez finalizada su ejecución se descarga de la memoria), aunque esto no constituye una regla sino más bien una norma general.

·         Directorios: un directorio no es más que archivo capaz de albergar otros archivos e incluso otros directorios. El símil que mejor explica esta situación es el de las cajas y los documentos. Nosotros podemos meter documentos en una caja pero a su vez podríamos meter una segunda caja dentro de la primera y dentro de esta segunda caja introducir otros documentos u otras cajas. Para llegar a una caja siempre tendríamos que pasar por todas aquellas que las contienen y hasta que no hemos llegado a ella no podemos acceder a los documentos que alberga. Pues bien, los directorios son cajas y los demás tipos de archivos (sean del tipo que sean) los documentos. Funciona exactamente igual, por ejemplo: si borramos un directorio borraremos todo lo que hay dentro del mismo incluyendo otros directorios. Esta estructura se denomina arbórea dado que se subdivide en directorios igual que las ramas de un árbol se bifurcan y dividen al ir alejándonos del tronco. Para nosotros el tronco sería el directorio “raíz” que no es más que el primer directorio, el padre de todos los archivos: “C:\”.

 

            Retomando nuestro principal objetivo, crear un disco de arranque, y ahora que sabemos lo que es un comando pasaremos a explicar qué ordenes debemos conocer para movernos con soltura:

 

Órdenes básicas de sistema

 

            Todos los comandos que enumeremos poseen un parámetro “/?” que nos muestra una guía resumida de cuál es la función de dicho comando así como la de todos sus parámetros, es por ello que no vamos a explicar absolutamente todas las posibilidades de los mismos (de lo contrario esta memoria terminaría por convertirse en un auténtico libro).

 

            Así mismo, antes de enumerarlos y explicarlos, señalaremos que los comandos que empleemos pueden ser internos o externos, al final de esta sección encontrará una lista detallada donde se especifica de qué tipo, externo o interno, es cada comando.

 

Sintaxis:

 

DIR [unidad:][ruta][archivo] [/P] [/W] [/A[[:]atributos]] [/O[[:]orden]] [/S] [/B] [/L] [/V] [/4]

        [unidad:][ruta][archivo]

Variables:

 

/P            Realiza una pausa después de cada pantalla de informaci¢n.

/W          Utiliza un formato de lista ancha.

/A           Muestra archivos con atributos especificados.

  atributos   D  Directorios                R  Archivos sólo lectura

                                    H  Archivo oculto          A  Archivo modificado

                                  S  Archivo de sistema     -  Prefijo no

  /O         Ordena la lista de archivos alfabeticamente.

  Orden   N  Nombre (alfabético)     S  Tamaño (1º el más corto)

                               E  Extensión (alfabético)  D  Fecha y hora (1º el más reciente)

               G  1º Agrupar directorios  -  Prefijo para invertir el orden

              A  Por fecha del £ltimo acceso (el más reciente 1º)

  /S          Muestra los archivos del directorio especificado y todos sus subdirectorios.

  /B          Usa formato simple (sin encabezados o sumarios).

  /L          Usa minúsculas.

  /V          Modo ampliado.

  /4          Muestra el año con 4 dígitos (omitido si se utiliza /V).

 

-          dir: como ya hemos visto nos muestra el contenido del directorio en el que nos encontramos (mostrado en el rompt).

Las variables en negrita son las más habituales, no obstante la variable /O suele ser útil (hablaremos de ella en la sección “Creación de un disco de arranque”), también /W puede resultarnos útil al mostrarnos más ficheros dada la salida menos detallada  y en columnas que nos proporciona.

Este comando nos permitirá también explicar una de las posibilidades del sistema de archivos del MS-DOS, se trata de una característica habitual en un sistema operativo, se trata del uso de comodines. Los comodines que vamos a emplear se representan por los caracteres “*” y “?”. El asterisco sustituye a un nombre completo de archivo o su extensión, en cambio la interrogación solo sustituye un carácter, veamos algunos ejemplos:

En este primero podemos ver como solicitamos al sistema que nos muestre: “todos los ficheros que tengan EXE por extensión”.

 

 

      En el ejemplo de abajo podemos ver, en primer lugar: “muéstrame todos los ficheros cuyo nombre empiece por in y que tengan EXE por extensión”. Y en segundo lugar tenemos una solicitud en la que solo dudamos de uno de los caracteres del nombre y queremos que nos muestre las coincidencias sea cuales sea su extensión.

 

 

-          cls: este comando es acrónimo del anglicismo “Clear Screen” y como su nombre indica “limpia” la pantalla. Es de uso frecuente ya que clarifica y facilita la comprensión de lo que tenemos en pantalla al poder “romper” con los mensajes anteriores limpiando la pantalla.

 

-          format: su nombre lo dice todo, este comando de sistema da forma a una unidad. Es el que crea la FAT del disquete que vayamos a emplear o del último disco duro que hemos adquirido (siempre para trabajar bajo MS-DOS o Windows 9x y sucedáneos). Se trata de un comando que debemos manejar con cuidado ya que al formatear una unidad estamos borrando cualquier dato almacenado en ella perdiéndose de forma irremediable (al menos para un usuario normal que no cuente con técnicas y material avanzado de recuperación de datos).  Los comandos y archivos ejecutable a menudo admiten parámetros extra que permiten una mayor concisión en su ejecución, el comando “format” posee algunas variables que deberemos conocer al igual que su sintaxis exacta:

 

Sintaxis:

 

FORMAT unidad: [/V[:etiqueta]] [/Q] [/F:tama¤o] [/B | /S] [/C]

FORMAT unidad: [/V[:etiqueta]] [/Q] [/T:pistas /N:sectores] [/B | /S] [/C]

FORMAT unidad: [/V[:etiqueta]] [/Q] [/1] [/4] [/B | /S] [/C]

FORMAT unidad: [/Q] [/1] [/4] [/8] [/B | /S] [/C]

 

Variables de “format”:

·         /V[:etiqueta] permite establecer de antemano, en la ejecución del comando, la etiqueta que queremos dar a la unidad a formatear, la etiqueta será un nombre distintivo por el que podamos identificar rápidamente a la unidad.

·         /Q Es la variable de formateo rápido.

·         /S Además de formatear transfiere el sistema a la unidad permitiéndonos arrancar con ella nuestro ordenador (con esto ya tendríamos un disco de arranque básico).

·         /T y /N están en desuso, se empleaban con dispositivos de almacenamiento cuyas capacidades y especificaciones ya no están entre los comercializados.

-          vol: nos permite ver la etiqueta, si la tiene, de una unidad, por ejemplo “vol c:”

-          sys: transfiere el sistema a la unidad que pongamos a continuación, p. Ej.: “sys a:”, otra manera de crear un disco de arranque o de restaurar el de una unidad que tenga dañado el sistema de arranque.

-          cd: nos permite cambiar el directorio activo de una unidad, ejemplos:

 

 

-         md: crea un directorio, este comando también puede invocarse mediante la ejecución de “mkdir”, anotar que este “segundo nombre” viene de los sistemas UNIX donde el comando para crear directorios se llamó desde un principio “mkdir”. Ejemplo: “mkdir casa” -> Nos crearía un directorio dentro del directorio en el que nos encontremos a la hora de ejecutarlo, el nombre de este directorio sería “casa”.

-           rd: en la imagen superior hemos adelantado dos nuevos comando “rd” y “deletree” con el objetivo de crear una captura más ilustrativa en cuánto a la creación y borrado de directorios. En particular “rd” borra el directorio especificado (podemos ver la sintaxis en la captura) siempre y cuando esté vacío.

-         del:  nos permite borrar un fichero. Bastaría con teclear “del [nombre del fichero]. Para sacarle partido a este comando es necesario dominar bien el uso de los comodines.

-         deltree:  este comando exige un mínimo de disciplina a la hora de emplearlo ya que borra el directorio esté o no vacío, incluyendo todos los subdirectorios que “cuelguen” del mismo (recordemos que trabajamos en una estructura “arbórea”). En la captura podemos comprobar que este comando nos solicita la confirmación explícita del borrado de un directorio advirtiéndonos de que también desaparecerán sus subdirectorios.

    type: este comando nos muestra por pantalla el contenido de un archivo, resulta útil para visualizar en pantalla documentos que no superen, o la menos no sean mucho más largos, de las 40 líneas de texto que permite el DOS. Ejemplo uso: “type nombres.txt” à nos mostraría el contenido de un documento de texto (.TXT). Si queremos visualizar documentos que superen a las cuarenta líneas que nos permite el modo texto de DOS deberemos redireccionar la salida de este comando, aunque el redireccionamiento se explica con detalle más adelante ya adelantamos que se realizaría de la siguiente manera: “type nombres.txt |more”. El sufijo “|more” es lo que deberemos añadir para que se produzca una pausa que nos permita leer el documento sin que las primeras lineas sean engullidas por le borde superior de la pantalla. Insistimos que esto se verá con más detalle en apartados posteriores.

    copy: realiza la copia de un fichero al destino que nosotros escojamos.

  

Sintaxis:

 

COPY [/A | /B] origen [/A | /B] [+ origen [/A | /B] [+ ...]] [destino [/A | /B]] [/V] [/Y | /-Y]

 

Variables:

 

origen                    Especifica el archivo o los archivos que se van a copiar.

  /A                         Indica un archivo de texto ASCII.

  /B                         Indica un archivo binario.

  destino                Especifica el directorio y/o nombre del nuevo archivo.

  /V                         Comprueba que los nuevos archivos se escriban correctamente.

  /Y                         Omite la solicitud de confirmaci¢n cuando se sobrescribe

               un archivo de destino existente.

/-Y                          Activa la solicitud de confirmaci¢n cuando se sobrescribe un archivo de destino existente.

 

Podemos entender el funcionamiento básico del comando copy con un simple ejemplo:

 

 

            Merece la pena destacar el funcionamiento del comando cuando lo ejecutamos con la opción /V, esta opción nos aporta una seguridad extra a la hora de escribir los datos en el destino ya que verifica que estos se correspondan con el origen. Puede resultarnos útil si dudamos de la fiabilidad del dispositivo al que estamos copiando la información y queremos cerciorarnos de que ésta se duplica sin incidencias.

     xcopy: el funcionamiento de xcopy es idéntico al del anterior copy. Sin embargo nos ofrece dos nuevos e interesantes añadidos. Por un lado xcopy copiará toda la información que pueda a la memoria RAM (cuanta más RAM disponible mayor será la cantidad leída del origen especificado), posteriormente procederá a volcar la información de la memoria RAM al destino. Esto contrasta con copy que pese a emplear la RAM tiene prefijado un tamaño de buffer (podríamos realizar una definición aproximada de buffer diciendo que es una memoria intermediaria en procesos de lectura y escritura), el tamaño destinado a este buffer suele ser de unos pocos kilobytes con lo que el comando copy alterna continuamente entre el origen y el destino realizando más accesos a memoria que su homólogo en funciones copy. Resultado: xcopy es notablemente más rápido a la hora de copiar grandes cantidades de información, además del motivo expuesto también influye, en versiones 9x, el hecho de que este comando este programado para funcionar en 32bits aprovechando plenamente plataformas 386 y superiores, mientras que copy sigue siendo un, obsoleto, comando a 16 bits.

-         mem: nos muestra el estado de memoria, veremos la utilidad de este comando con más detalle en la sección “Creación de un disco de arranque”. Por el momento señalar que la opción /c nos muestra un informe detallado que nos resultará de gran utilidad, así mismo debemos combinar este parámetro con /p para que la salida por pantalla realice una pausa que nos permita leer toda la información mostrada.

    chkdsk: nos muestra el estado de un dispositivo de almacenamiento como pueda ser un disco duro o una disquetera. No funciona con CD-ROMs ni con unidades de red.

    fc: compara dos ficheros, estos pueden ser de tipo ASCII o de cualquier otro tipo, por defecto, al comparar dos ficheros ASCII, el comando nos mostrará las líneas que no sean iguales, si lo deseamos podemos solicitarle mediante el empleo del parámetro /B una comparación binaria de ambos. La sintaxis es: “fc [archivo1][archivo2] [parámetros].

    diskcopy: sirve para duplicar un disquete, actualmente solo se duplican discos  de 3½” para los que basta con teclear: “diskcopy a: a:” o “diskcopy a: b:” y seguir las instrucciones por pantalla. Si tenemos una sola disquetera no tendremos ningún problema pese a que “b:” no exista ya que el sistema lo interpretará como la propia disquetera “a:”.

    find: busca una cadena de caracteres en el fichero de texto que especifiquemos, por ejemplo: “find hercules mitos.txt”. Además podemos añadir diferentes parámetros: /V muestra las líneas no coincidentes en la búsqueda, /C nos dice el número de líneas coincidentes o /N para numerar las líneas, por citar los más empleados.

    attrib: los ficheros en MS-DOS poseen unas características especiales denominadas “atributos”, estos atributos condicionan la naturaleza de un fichero de igual manera que lo hacía su extensión. Los cuatro atributos existentes en DOS son:

  • A: atributo de archivo modificado.

  • R: atributo de fichero de sólo lectura.

  • H: atributo de fichero oculto

  • S: atributo de archivo de sistema

    Para ver los atributos de un fichero podemos teclear “attrib [nombre fichero]” o bien “attrib” para ver los atributos de todos los ficheros que contiene el directorio donde nos encontremos. Para modificar los atributos de un fichero emplearemos la sentencia: “attrib +/-a,s,h,r [nombre fichero]”, por ejemplo: “attrib +a +s bombilla.exe” suponiendo que queramos que bombilla.exe sea un fichero modificado (+a) de sistema (+s).

Es preciso señalar que si un fichero posee simultáneamente los atributos S, H y R no podremos modificarlos si no se modifican los tres a la vez.

    sort: ordena por pantalla las líneas que componen un archivo ASCII, si por ejemplo tecleamos “sort listin.txt” obtendremos por pantalla las líneas que componen el fichero listin.txt ordenadas alfanuméricamente en función de su primer carácter. Los dos parámetros que podemos emplear son: /R para invertir la ordenación y /+n donde n es la columna que servirá para ordenar la salida.

Estos son los comandos básicos que debemos conocer para defendernos medianamente bien con MS-DOS, existen muchos más y aún quedan por ver algunas utilidades que se han excluido de la sección comandos al no tratarse, en el sentido estricto, de comandos.