Redes de FreeDOS - Instalaci¢n de controlador NDIS

Informaci¢n general

    (Imagen: Informaci¢n general de la arquitectura de NDIS)
  Los controladores basados en la "Network Driver Interface Specification"
  (NDIS) son los predeterminados en el mundo de Windows. La versi¢n m s
  reciente es NDIS 6, que se utiliza en Windows Vista. Windows 98 utiliza
  NDIS 5, Windows 95 lleg¢ con NDIS 3.1. En DOS usted tiene que utilizar
  la NDIS2 controlador en modo real.

Donde encontrarlos

  Lo m s probable es que existe un controlador NDIS para su tarjeta de red.
  Busque un directorio llamado "NDIS2" en los archivos de instalaci¢n de
  tarjetas. Si usted no puede encontrar un controlador, echar un vistazo a
  este sitio (ver: http://drivesnapshot.de/en/makebootdisk.htm). El final
  del nombre del controlador tiene que ser *. DOS, as¡ que, por ejemplo,
  el conductor de la 3Com 3C574 PC-Card se llama "EL3C574.DOS".

C¢mo funcionan

  En el lenguaje de la arquitectura NDIS estos controladores son llamados
  "Media Access Control" (MAC) controladores.
  El controlador MAC es s¢lo un componente de la arquitectura NDIS como se
  puede ver en la figura anterior. De acuerdo con la documentaci¢n
  NDIS 2.1 (v‚ase: http://www.ndis.com/faq/ndis201.txt) NDIS parece
  funcionar as¡:
    * Comandos en FDCONFIG.SYS (FreeDOS) o CONFIG.SYS (otra DOS) se cargan
      los controladores de protocolo administrador PROTMAN.DOS, el
      controlador de MAC y el controlador de protocolo. Esto se puede
      hacer por las l¡neas para cada uno de estos controladores o
      iniciando el controlador "Sistema de archivos instalable Helper",
      que se carga por el "DEVICEHIGH = Ifshlp.sys" y se inicia el
      Administrador de protocolos, el MAC y los controladores de protocolo
      de acuerdo al PROTOCOL.INI.
    * El Administrador de protocolos lee la configuraci¢n de PROTOCOL.INI
      y los pone a disposici¢n para el controlador y el protocolo
      controlador MAC que se cargan despu‚s de ‚l.
    * El controlador MAC y la carga controlador de protocolo y configurar
      themselve acuerdo con esa informaci¢n. Se identifican con el
      Administrador de protocolos.
    * Antes el controlador MAC y el controlador de protocolo se pueden
      comunicar, tienen que ser unidas entre s¡, de modo que puedan
      acceder a unos al otro "puntos de entrada" (puertos de
      comunicaci¢n). Este proceso de vinculaci¢n es controlada por el
      Administrador de protocolos basados en la informaci¢n en
      PROTOCOL.INI.
    * La secuencia de uni¢n puede ser desencadenada por NET.EXE o
      NETBIND.COM (que se puede hacer en archivo AUTOEXEC.BAT).
    * El Administrador de protocolos (PROTMAN.DOS) luego inicia el
      residente en memoria (Terminate and Stay Resident - TSR) programa
      PROTMAN.EXE para ejecutar el comando bind y controlar el orden
      correcto de controladores.
    * Despu‚s de que la uni¢n ocurre, el MAC y el controlador de
      protocolo se comunican directamente entre s¡. El Administrador de
      protocolos no est  involucrado en este proceso de comunicaci¢n por
      m s tiempo, por lo que NETBIND.COM libera la mayor parte de la
      memoria previamente reservada por el Administrador de protocolos.
  La configuraci¢n de NDIS bajo DOS ha cambiado a trav‚s del tiempo con
  diferentes versiones del paquete. Algunos consejos sobre las diferencias
  se pueden encontrar aqu¡ (ver: www.yale.edu/pclt/WINWORLD/NDIS.HTM).
  En este documento, estoy asumiendo que utilizamos los archivos NDIS
  enviados con MS client 3.0.
  Como esta secci¢n se trata de obtener las aplicaciones TCP/IP basados en
  controlador de paquetes en marcha y funcionando con DOS no vamos a entrar
  en detalles acerca de MS client aqu¡, esto ya est  explicado en otra
  parte.

Archivos adicionales necesarios

  ¨C¢mo podemos utilizar el controlador NDIS2 MAC que viene con nuesta
  targeta de red con interfaz de red TCP/IP? Como hemos aprendido de la
  descripci¢n anterior, necesitamos algunos archivos m s. Estos son:
    * El Director de protocolo ("PROTMAN.DOS" y "PROTMAN.EXE")
    * La utilidad de vinculaci¢n ("NETBIND.COM")
  Estos archivos son parte del cliente MS 3.0 que se puede descargar aqu¡:
    ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-1.EXE
    ftp://ftp.microsoft.com/bussys/Clients/MSCLIENT/DSK3-2.EXE
  Los tres archivos mencionados son parte de "DSK3-1.EXE". Utilice la
  utilidad "EXPAMD.EXE" incluida en el primer disco para descomprimir estos
  archivos.
    * Copia DSK3-1.EXE a un directorio como C:\MSCLIENT1. Evite una ruta
      larga si lo hace en Windows. El software de 16 bits no se ejecurar , si
      la ruta es demasiado larga.
    * Ejecutar DSK3-1.EXE para descomprimir su contenido.
    * Descomprimir PROTMAN.DO_ y PROTMAN.EX_.

  EXPAND PROTMAN.DO_ -r
  EXPAND PROTMAN.EX_ -r

    * NETBIND.COM ya est  sin comprimir. Ahora usted puede cajer y utilizar
      los tres archivos.
  Lea el archivo LICENSE.TXT antes de empezar a usar los archivos. El
  software es gratuito para uso interno. Ni la distribuci¢n ni la
  modificaci¢n est  permitido.

EL conversor/shim

  La £ltima pieza que necesitamos es el "Controlados de paquetes para NDIS
  Converter". Obtener el ampliamente utilizado "DIS_PKT9.DOS" (Versi¢n 9,
  ver: ftp://ftp.cc.umanitoba.ca/software/pc_network/dis_pkt9.zip) o
  alternativamente la relativamente nueva (Versi¢n 11) "DIS_PKT.DOS" (Ver:
  http://danlan.com/pdr_shim/odipkt/odipkt.zip). No hay diferencias en el uso
  y manejo. Ambas fueron escritas por el profesor Joe R. Doupnik (Utah State
  University) y Dan Lanciani (Universidad de Harvard). El derecho de autor
  tiene el ya hist¢rico FTP Software, Inc., que se public¢ por suerte este
  controlador como de dominio p£blico, libre para el uso, la distribuci¢n, el
  cambio y con c¢digo fuente.

Configuraci¢n de controladores NDIS

  Como ya he dicho, esto es s¢lo una m¡nima instalaci¢n del cliente MS 3.0.
  El £nico prop¢sito es utilizar aplicaciones basadas en paquetes de
  controladores TCP/IP. Con este f¡n:
    Copie los cuatro archivos
      PROTMAN.DOS
      PROTMAN.EXE
      NETBIND.COM
      DIS_PKT.DOS
  en un directorio, por ejemplo C:\NET
  Copie tambi‚n el controlador MAC de la interfaz de la tarjeta de red, por
  ejemplo:
      EL3C574.DOS
  en este directorio.
  Ahora tenemos que crear el archivo de configuraci¢n necesarios para la
  arquitectura NDIS. Crear un archivo con el nombre PROTOCOL.INI en el
  interior del directorio C:\NET. Para nuestra configuraci¢n m¡nima que s¢lo
  necesita las siguientes l¡neas:
      --- PROTOCOL.INI ---
      [protman]
      DriverName=PROTMAN$
      [EL3C574]
      DriverName=EL3C574$
      [PKTDRV]
      drivername=PKTDRV$
      bindings=EL3C574
      intvec=0x60
      chainvec=0x68
  Explicaci¢n de los par metros:
  Al igual que otros archivos *.INI, PROTOCOL.INI se estructura en con
  nombres de secci¢n entre corchetes y nombres de los elementos con los
  valores que se les asignan.
    [protman]
    DriverName=PROTMAN$
  La primera secci¢n [protman] define el administrador de protocolos. Como se
  describe anteriormente, el director de Protocolo se carga como Driver
  PROTMAN.DOS que es llamado "PROTMAN $" aqu¡. La secci¢n y la l¡nea son
  obligatorios.
    [EL3C574]
    DriverName=EL3C574$
  La secci¢n [EL3C574] define la interfaz de tarjeta de red. Por defecto, la
  secci¢n en s¡ lleva el nombre de la tarjeta - esto es £til, si tienes m s
  de una tarjeta de red y utilizas diferentes secciones para diferentes
  tarjetas. As¡ el nombre de secci¢n es el primer valor para cambiar aqu¡.
  Ser¡a una buena idea ponerle el nombre de su propia tarjeta de red. Pero
  usted puede tambi‚n cambiar el nombre de la secci¢n de "tarjeta de red",
  "NIC" o incluso "baked_beans" - como usted quiera, siempre y cuando tambi‚n
  cambie todas las otras l¡neas en PROTOCOL.INI que apunta a esa secci¢n.
  La siguiente l¡nea de esta secci¢n es "DriverName = EL3C574 $". Define el
  controlador para la tarjeta de interfaz de red. En nuestro ejemplo, esto
  es EL3C574.DOS, que se llama "EL3C574$" aqu¡. Sin duda alguna que va a
  utilizar una tarjeta de red diferente a la mencionada en el ejemplo. As¡
  que usted tendr  que cambiar esta l¡nea. Usted encuentra el nombre
  correcto del controlador en un archivo de texto llamado "PROTOCOL.INI"
  que debe formar parte de los archivos del controlador NDIS que se
  suministran con la tarjeta.
  Tambi‚n es posible a¤adir m s l¡neas a esta secci¢n, por lo que puede
  definir los ajustes especiales para su tarjeta de red. Consulte la
  "PROTOCOL.INI" suministrado con el controlador NDIS para m s informaci¢n.
  Pero en muchos casos la l¡nea con el drivername deber¡a ser suficiente.
    [PKTDRV]
    drivername=PKTDRV$
    bindings=EL3C574
    intvec=0x60
    chainvec=0x68
  La siguiente secci¢n "[PKTDRV]" define nuestro Dirver de paquetes para
  NDIS Converter, que es "DIS_PKT.DOS" o "DIS_PKT9.DOS". Ambos son
  llamados por el nombre de "PKTDRV$".
  Es importante que el convertidor se unir  al controlador de la tarjeta de
  red. Esto se hace mediante la siguiente l¡nea "bindings=EL3C574". Tenga
  en cuenta que este nombre no incluye "$" carta - que hace referencia al
  nombre de la secci¢n que define el Driver, no el propio Dirver. As¡ que
  si hubiera llamado esta secci¢n "[baked_beans]" como se sugiri¢
  anteriormente, usted tendr¡a que escribir "bindings=baked_beans" aqu¡;-).
  El elemento "intvec" especifica el vector de interrupci¢n de software
  utilizado por la interfaz de controlador de paquetes. Como ya se ha
  explicado, este debe ser el valor hexadecimal 0x60 por defecto.
ÿ El elemento "chainvec" tambi‚n se define una interrupci¢n de software
  disponible. Su funci¢n sigue siendo un misterio para m¡. Seg£n paquetes
  inventor del conductor (ver: http://groups.google.de/group/comp.protocols.
  tcp-ip.ibmpc/msg/17b6041f7a3cde7c?dmode=source) FTP, la adici¢n de una
  interrupci¢n de la cadena de vectores puede mejorar la velocidad de
  procesamiento de paquetes y fiabilidad. Los usuarios vieron "un aumento
  de 10 veces en el rendimiento" (ver: http://groups.google.de/group/
  comp.protocols.nfs/msg/9b0c2e0d6aa47b32?dmode=source). Para evitar errores
  en EMM386, algunas recomendaciones (ver: http://groups.google.de/group/
  bit.listserv.banyan-l/msg/aa961def5901f506?dmode=source) para establecer
  una interrupci¢n que aumenta el vector mediante decimal 8. As¡ que si el
  intvec es 0x60 (es decimal 96), entonces el chainvec debe ser decimal
  104 (96 + 8) que es 0x68 hexadecimal. Esto tambi‚n se describe (ver:
  http://groups.google.de/group/comp.protocols.tcp-ip.ibmpc/msg/
  64f2b6060ff2b438?dmode=source) por uno de los autores de DIS_PKT.DOS, Dan
  Lanciani. Por favor, escriba si descubres m s.
  Estos son todos los ajustes en PROTOCOL.INI necesarios para nuestro
  prop¢sito. Un £ltimo consejo: Si se tiene en cuenta el cambio de algunos
  de estos valores en cada arranque, por ejemplo, por las opciones
  presentadas por un men£ de arranque de DOS, puede encontrar freeware
  "Inifile" de Horst Schaeffer £til (ver:
  http://www.horstmuc.de/wbat32.htm).

Instalaci¢n

  Lo £ltimo que queda por hacer ahora es cargar los controladores en el
  arranque. As¡ que cambiar los archivos del sistema para contener las
  siguientes l¡neas:
    --- FDCONFIG.SYS (FreeDOS) ---
    --- or CONFIG.SYS (MS DOS/other DOS) ---
    DEVICEHIGH=C:\NET\PROTMAN.DOS /I:C:\NET
    DEVICEHIGH=C:\NET\EL3C574.DOS
    DEVICEHIGH=C:\NET\DIS_PKT.DOS
  El par metro "/I" dice el Director de Protocolo de la ubicaci¢n de
  PROTOCOL.INI. Esto no es necesario si ambos est n en el mismo directorio.
    --- AUTOEXEC.BAT ---
    C:\NET\NETBIND.COM
  Tenga en cuenta que NETBIND.COM no se puede cargar alto y s¢lo debe ser
  ejecutada desde AUTOEXEC.BAT. Si intenta cargarlo como un Driver, se
  abortar  con el mensaje de "run-time error R6009 - not enough space for
  environment".

Reiniciar

  Eso es todo. Reinicie el sistema y utilizar una aplicaci¢n de TCP/IP
  simple como ping para probar si todo funciona.
  ÿ (Imagen: mensajes de arranque de NDIS)

  Copyright © 2007 Ulrich Hansen, Mainz (Germany), modificado en 2010
  by W.Spiegl. Actualizado en 2014 por Lorenzo del Toro
  Para m s informaci¢n consulte aqu¡.

  Se concede permiso para copiar, distribuir y/o modificar este documento
  en los t‚rminos de la licencia de documentaci¢n libre GNU, versi¢n 1.1 o
  cualquier versi¢n posterior publicada por la Free Software Foundation.
  Una copia de la licencia est  incluida en la secci¢n titulada
  "GNU Free Documentation License"