Desarrollar una nueva implementación núcleo de la pila para el protocolo tcp/ip que rinda tan bien como las implementaciones existentes no es una tarea fácil. La decisión de no portar una de las implementaciones existentes se tomó en un tiempo en que había cierta incertidumbre al respecto de si las implementaciones existentes serían lastradas con copyrights restrictivos por el precedente sentado por U.S.L. y en que había un gran entusiasmo por hacerlo diferente y quizás incluso mejor de lo que se había hecho.
El voluntario original para liderar el desarrollo del núcleo del código
de red fue Ross Biro,
biro@yggdrasil.com
. Ross produjo una implementación simple e
incompleta pero aprovechable en su mayor parte de rutinas que fueron
completadas con un controlador de Ethernet para la interfaz de red WD-8003.
Esto era suficiente para tener a mucha gente probando y experimentando
con el software y algunas personas incluso intentaron conectar máquinas
con esta configuración a conexiones reales en Internet. La presión dentro
de la comunidad de Linux conduciendo el desarrollo de la implementación
de la red estaba creciendo y, al final, el coste de una combinación de
cierta presión aplicada sobre Ross y sus propios compromisos personales
le sobrecargaron y se descolgó del puesto de desarrollador jefe. Los
esfuerzos de Ross por iniciar el proyecto y la aceptación de la
responsabilidad de producir realmente algo útil en tan controvertidas
circunstancias fue lo que catalizó todo el trabajo futuro y por lo tanto
supone un componente esencial en el éxito del producto actual.
Orest Zborowski,
obz@Kodak.COM
, produjo la interfaz original de programación
de sockets BSD para el núcleo de Linux. Fue un gran paso adelante ya que
permitió portar a Linux muchas de las aplicaciones de red existentes sin
modificaciones serias.
Por aquel momento, Laurence Culhane,
loz@holmes.demon.co.uk
desarrolló los primeros controladores de dispositivo para la implementación del
protocolo SLIP en Linux. Esto permitió a mucha gente que no tenía acceso a
redes Ethernet experimentar con el nuevo software de red. De nuevo, hubo gente
que cogió este controlador y lo puso en servicio para conectarse a Internet.
Esto dio a mucha gente una idea de las posibilidades que podrían hacerse
realidad si Linux tuviera un soporte total de red y creciera el número de
usuarios usando y experimentando de forma activa el software de red que
existía.
Una de las personas que también había estado trabajando activamente en la
tarea de construir la implementación de red era Fred vam Kempen,
waltje@uwalt.nl.mugnet.org
. Después de un periodo de
incertidumbre tras la renuncia de Ross al cargo de desarrollador jefe,
Fred ofreció su tiempo y esfuerzos y aceptó el papel esencialmente sin
oposición. Fred tenía planes ambiciosos sobre la dirección que quería
que siguiese el software de red de Linux y orientó el progreso hacia esos
objetivos. Fred desarrolló varias versiones del código de red llamado el
núcleo de código NET-2 (el código NET era el de Ross) que mucha
gente pudo usar de manera más útil. Fred puso formalmente algunas
innovaciones en la agenda de desarrollo, como la interfaz dinámica de
dispositivo, la implementación del protocolo Amateur Radio AX.25 y
una interfaz de red diseñada más modularmente. El código NET-2 de
Fred fue usado por un gran número de entusiastas, que crecía
continuamente según se iba corriendo la voz de que el software
funcionaba. El software de red en esos momentos aún estaba constituido
por un gran número de parches a la versión estándar del núcleo y no
estaba incluido en la versión normal. El NET-FAQ y el subsecuente
NET-2-HOWTO describían el por entonces relativamente complejo
procedimiento de ponerlo todo en marcha. Fred se concentraba en
desarrollar innovaciones frente a las implementaciones estándar de red y
eso estaba llevando tiempo. La comunidad de usuarios estaba
impacientándose por algo que funcionase eficazmente y satisficiera al 80%
de usuarios y, como con Ross, la presión sobre Fred como desarrollador en
jefe creció.
Alan Cox,
iialan@www.uk.linux.org
propuso una solución al problema
diseñada para resolver la situación. Propuso que él podría coger el
código NET-2 de Fred para quitar fallos, haciéndolo eficaz y estable
para que satisficiera al impaciente usuario de base al tiempo que
retiraba esa presión de Fred permitiéndole continuar con su trabajo. Alan
se puso a ello, obteniendo buenos resultados y su primera versión del
código de red de Linux fue llamada it/Net-2D(ebugged)/. El código
funcionaba bien en muchas configuraciones típicas y el usuario de base
estaba feliz. Alan puso claramente sus propias ideas y habilidad para
contribuir al proyecto y como consecuencia comenzaron a aparecer muchas
discusiones relativas a la dirección del código NET-2. Esto
desarrolló dos tendencias distintas dentro de la comunidad de red de
Linux, una que tenía la filosofía «hazlo funcionar primero, y luego hazlo
mejor» y la otra «hazlo mejor primero». Linus terminó arbitrando y
ofreciendo su apoyo a los esfuerzos de desarrollo de Alan e incluyó el
código de Alan en la distribución estándar de las fuentes del núcleo.
Esto puso a Fred en una posición difícil. Cualquier desarrollo
continuado podría debilitar la gran base de usuarios usando y probando
activamente el código y eso significaría que los progresos serían lentos
y difíciles. Fred continuó trabajando un tiempo y a la larga acabó
dejándolo y Alan se convirtió en el nuevo jefe del esfuerzo de desarrollo
de red para Linux.
Donald Becker,
becker@cesdis.gsfc.nasa.gov
reveló pronto su talento para
los aspectos de bajo nivel de las redes y produjo un amplio abanico de
controladores de red. Casi todos los incluidos en los núcleos actuales
fueron desarrollados por él. Hay más gente que ha hecho contribuciones
significativas, pero el trabajo de Donald es prolífico y eso le garantiza
una mención especial.
Alan continuó refinando el código NET-2-Debugged durante un tiempo
mientras trabajaba en solucionar algunos de los problemas que quedaban
sin mirar en la lista PORHACER
. Por la época en que al código fuente
1.3.*
del núcleo les estaban creciendo los dientes, el código de red
había migrado a la entrega NET-3 que es en la que las versiones
actuales están basadas. Alan trabajó en muchos aspectos diferentes del
código de red y con la asistencia de mucha otra gente con talento de la
comunidad de red de Linux hizo crecer el código en todas direcciones.
Alan produjo dispositivos de red dinámicos y las primeras
implementaciones de los estándares AX.25 e IPX. Alan ha continuado
jugueteando con el código, estructurándolo y mejorándolo lentamente hasta
el estado en que se encuentra hoy día.
Michael Callahan,
callahan@maths.ox.ac.uk
y Al Longyear
longyear@netcom.com
aportaron la implementación del protocolo PPP, lo cual fue crítico para
incrementar el número de gente que usaba activamente Linux para trabajar
en red.
Jonathon Naylor,
sn@cs.nott.ac.uk
ha contribuido mejorando significativamente
el código de AX.25 de Alan, añadiendo los protocolos NetRom y Rose. La
implementación de AX.25/NetRom/Rose es en sí misma bastante
significativa, porque ningún otro sistema operativo puede enorgullecerse
de trabajar de forma nativa con estos protocolos aparte de Linux.
Por supuesto, ha habido centenares de otras personas que han hecho contribuciones significativas al desarrollo del software de red de Linux. A algunas de estas personas las encontrará más adelante en la sección de tecnologías específicas; otras personas han contribuido con módulos, controladores, correcciones de errores, sugerencias, informes de pruebas y apoyo moral. En cada caso, cada uno puede decir que ha puesto su granito de arena y que ofreció lo que pudo. El código de red del núcleo de Linux es un excelente ejemplo de los resultados que se pueden obtener del anárquico estilo de desarrollo de Linux. Si aún no se ha sorprendido, lo hará pronto. El desarrollo no se ha detenido.
Hay varios sitios en los que puede encontrar información acerca de la implementación de red de Linux.
Tiene a su disposición un montón de asesores. Podrá encontrar un listado
en la LinuxPorts Consultants Database,
http://www.linuxports.com
Alan Cox, quien en estos momentos se encarga de mantener el código de red del
núcleo de Linux tiene una página WWW con los últimos titulares y eventos
de interés relativos al estado de desarrollo de las funcionalidades presentes y
futuras en cuanto al código de red linux en:
www.uk.linux.org
.
Otro buen sitio es un libro escrito por Olaf Kirch titulado la Guía para
Administradores de Redes
. Es parte del Proyecto de Documentación de Linux
http://www.linuxdoc.org
y puede leerlo de forma interactiva en su
versión HTML
http://metalab.unc.edu/LDP/LDP/nag/nag.html
, u obtenerlo en varios
formatos mediante FTP (y en castellano) desde el archivo del proyecto LuCAS
ftp://lucas.hispalinux.es/pub/LuCAS/Manuales-LuCAS/GARL
. El libro
de Olaf es bastante extenso y procura una buena iniciación de alto nivel a la
configuración de redes en Linux.
Hay un grupo de noticias en la jerarquía de noticias de Linux dedicado a
las redes y a materias relacionadas:
comp.os.linux.networking
Hay una lista de correo a la que se puede suscribir, donde hacer preguntas relacionadas al trabajo en redes con Linux. Para suscribirse debe mandar un mensaje:
A: majordomo@vger.rutgers.edu
Asunto: cualquier cosa
Mensaje:
subscribe linux-net
En las diferentes redes de IRC suele haber canales #linux
en los
que suele haber gente que responde preguntas sobre linux y redes.
Por favor, cuando vaya a informar de cualquier problema, recuerde incluir
todos los detalles que pueda relevantes al respecto. Debería informar,
específicamente, de las versiones de los programas que esté usando, sobre
todo la versión del núcleo, la versión de herramientas como pppd
o
dip
y la naturaleza exacta del problema que está experimentando.
Esto significa tomar nota de la sintaxis exacta de cualquier mensaje de
error que reciba y de cualquier orden que esté ejecutando.
Si está buscando información básica de aprendizaje sobre redes tcp/ip en general, entonces le recomiendo que eche un vistazo a los siguientes documentos:
este documento está tanto en versión texto
ftp://athos.rutgers.edu/runet/tcp-ip-intro.doc
como en
versión PostScript
ftp://athos.rutgers.edu/runet/tcp-ip-intro.ps
.
este documento está tanto en versión
texto
ftp://athos.rutgers.edu/runet/tcp-ip-admin.doc
como en
versión PostScript
ftp://athos.rutgers.edu/runet/tcp-ip-admin.ps
.
Si busca información algo más detallada sobre redes tcp/ip entonces le recomiendo:
Internetworking with TCP/IP, Volume 1: principles, protocols and architecture, de Douglas E. Comer, ISBN 0-13-227836-7, Prentice Hall publications, Tercera edición, 1995.
Si quiere aprender a escribir aplicaciones de red en entornos compatibles Unix entonces también le recomiendo:
Unix Network Programming, by W. Richard Stevens, ISBN 0-13-949876-1, Prentice Hall publications, 1990.
También debería probar el grupo de noticias
comp.protocols.tcp-ip
.
Otra fuente importante de información técnica específica relativa a la
Internet y al conjunto de protocolos tcp/ip son los RFC. RFC es un
acrónimo de Request For Comments y es el medio estándar de enviar y
documentar los protocolos estándar de Internet. Hay muchos sitios de
donde tomar los RFC. Muchos de estos sitios son de FTP y otros
proporcionan acceso por World Wide Web con un buscador asociado que le
permite buscar palabras clave en la base de datos de RFC.
Un posible lugar donde encontrar lo RFC es la base de datos de Nexor
http://pubweb.nexor.co.uk/public/rfc/index/rfc.html
.