sábado, 21 de enero de 2012

InterNET: Red de Redes. III Un mundo conectado

En el principio fue Unix,
padre de todos los sistemas:
¡Gloria a Unix!

Y luego fue la red,
donde no existe
principio o final,
pues en la red todo es
parte de La Red.

Y la noche se encarnó
y dio vida
a dos criaturas del mal:
una nombrada PC,
abominable engendro,
mas acaso aun no tan terrible
como aquella que sus adoradores,
esclavos y sirvientes
conocen como Mac.

Y así fue el principio de esta historia.

Un PC con MS-DOS y Windows conectado en una red no está pensado para ser utilizado por varios usuarios. De hecho, la licencia generalmente se refiere al pagador como el "único" con derecho a utilizar dicho sistema. Mejor suerte corren los usuarios de Windows NT o OS/2, ya que estos sistemas sí permiten gestionar distintos usuarios: de nuevo, la licencia establece cuántas personas tienen derecho a usar el sistema. La pega es que estos dos sistemas se utilizan en máquinas más caras que los PC que pronto se comienzan a denominar (en España al menos) clónicos.

A mediados de los años 90, el precio de los PC cae en picado. Cada vez hay más fabricante y la competencia es lo suficientemente feroz para que durante años se vaya reduciendo el precio de las máquinas. Son los años de publicación del malhadado Windows 95, la ruina de Apple, la expansión de AMD... y la red.

Tim Berners-Lee y Robert Cailliau publican su nuevo invento, la World Wide Web, allá por el año 1992. Aunque ellos la crean en el CERN, los industriales europeos no acaban de encontrarle utilidad, así que deciden llevarla a USA, donde sí es acogida con entusiasmo. Por el camino, deciden crear el W3C, para garantizar la gratuidad y accesibilidad de la web. La expansión de la web es pareja a la difusión de los computadores, tanto servidores especializados como computadores personales.

Al mismo tiempo Linux crece como futuro núcleo para el Sistema Operativo de GNU: en 1993 aparece la primera distribución, aunque hay que esperar al año 1994 para tener la versión 1.0 de Linux. De forma paralela, surge el proyecto Apache, que se consolida como el servidor web más ampliamente usado a partir de 1996.

El uso conjunto de GNU/Linux y Apache permite disponer de servidores web muy potentes con un coste relativamente bajo. Esto, naturalmente, facilita la extensión de la Web: no sólo es sencillo interconectar redes, sino que las distintas organizaciones pueden disponer de sus propios servidores.

Mientras, en el mundo de la computación personal, Adobe abandona a Apple para centrarse en Windows, mientras que Autodesk contrae una especie de matrimonio indisoluble con Microsoft. Si Apple se tambaleaba, estos movimientos acaban por sepultarla.

En cuanto a GNU/Linux, nunca tuvo gran acogida en los computadores personales. Ciertamente, GNU/Linux debió esperar al nuevo siglo para consolidarse con interfaces sencillas y abundante software para cualquier tarea; sin embargo, la industria lo acogió con entusiasmo. El estancamiento de GNU/Linux en el mundo doméstico palpable aun hoy es más curioso a medida que se va extendiendo por todo tipo de empresas y organismos.

Es importante señalar que la mayor parte de los elementos que propiciaron la llamada Web 2.0 (lo que incluye Blogs, webs como Facebook, etc.) son software libre. El impacto del software no libre es muy reducido, y se limita a herramientas abiertas pero con licencias no completamente libres: el lenguaje de programación Java es un buen ejemplo de software no completamente libre. Los usuarios de ADSL o cable puede que tengan un Windows o un Mac en su portátil, pero si usan un router para conectarse con su compañía telefónica, éste generalmente usará GNU/Linux. Las granjas de servidores de Google usan una versión de GNU/Linux propia, mientras que películas como Avatar se pueden realizar gracias a máquinas equipadas con GNU/Linux.

El contrapunto a este mundo libre lo ofrece curiosamente el usuario. Acostumbrado a las limitaciones de Windows o Mac, no suele estar preparado para usar la Red con un mínimo de seguridad. No suele tener usuarios, no administra la seguridad de su computador, no suele usar reglas de privilegios en los archivos que crea o ejecuta... Aunque los virus y el malware en general no son exclusivos de los sistemas privativos, en su incidencia es determinante que el usuario use dichos sistemas. Digamos que el problema no es sólo que el usuario abra un correo electrónico de remitente desconocido, sino que su sistema permita que un correo electrónico ejecute cualquier aplicación por el mero hecho de ser leído!

La red siempre estuvo defendida por usuarios fundamentalmente de software libre. Pero hoy son minoría. Hoy la gente que pretende que La Red no sea más que un lector de catálogos publicitarios e intercambiador de mensajes son mayoría. Y están dispuestos a entregarla. No es que no quieren luchar, es que se esfuerzan para que esto suceda.

El anterior párrafo podría ser el cierre de un primer capítulo sobre el advenimiento de La Red Social. De eso tratará el siguiente artículo del blog.

InterNET: Red de Redes. II. El imperio del PC

La computación personal a través de un terminal tonto es un poco limitada; en particular, tiene dos limitaciones importantes.

La primera limitación es que al no ser administrador del sistema, estás sujeto a la política de los dueños y administradores del mismo. Ellos deciden cómo distribuir tu tiempo, tu espacio... en suma, lo que puedes hacer.

La otra limitación es técnica. Desde tu terminal hasta el servidor dependes de una conexión siempre relativamente lenta.

IBM desarrolló el concepto de PC (Personal Computer, computador personal) a finales de los años 70. Se trataba de un computador que hacía uso de los entonces nuevos microprocesadores de Intel: baratos y pequeños, permitían crear máquinas relativamente asequibles.

De cómo IBM permitió que otros fabricasen dispositivos para su arquitectura se ha hablado mucho en otros sitios, y no lo repetiré aquí. También en muchos sitios se ha hablado de cómo de forma paralela se fraguaban los equipos Macintosh. Lo importante es que estas máquinas estaban diseñadas para funcionar de forma aislada: nada de redes, nada de compartir recursos, cada máquina traía lo que el usuario necesitaba, o al menos lo que necesitaba en opinión del fabricante.

A medida que la industria se amolda a la Ley de Moore, Microsoft cedió y decidió que era preciso permitir que sus equipos trabajasen en red. Primero intentó crear un sistema operativo nuevo, en colaboración esta vez con IBM, aunque fracasó. De ese fracaso nacieron Windows NT por el lado de Microsoft y OS/2 por parte de IBM. Sin embargo, estos productos no resultaban adecuados al usuario doméstico que compraba computadores personales, mucho más accesibles económicamente que las estaciones de trabajo para las que se desarrollaron ambos sistemas. Microsoft decidió añadir soporte para redes en sus primeros sistemas Windows basados en MS-DOS. La oportuna licencia de BSD para su implementación del sistema de red, le permitió modificarlo ligeramente para usarlo en sus sistemas. Es la era del Windows 3.11, y es, posiblemente, cuando la historia toma un giro hasta ahora decisivo.

Este modelo de computación doméstica tuvo un éxito relativo... las ventas de equipos PC (y en mucha menor medida, Macintosh) consagró un modelo de negocio en el que unos fabricantes decidían las necesidades de los usuarios y proponían sus soluciones. Los programadores informáticos pronto se inspiraron en los grandes artistas de masas, y comenzaron a considerar, como éstos, que trabajar una sola vez en una cosa y cobrar dinero por ello para siempre era una gran idea. Incluso fueron un paso más allá: las aplicaciones informáticas incluían "acuerdos de licencia" en el que los desarrolladores establecían en qué condiciones le permitían al usuario usar su programa. De hecho, la mayoría de aplicaciones no puede, legalmente, prestarse entre miembros de una familia; otros acuerdos de licencia permiten que el usuario utilice la aplicación durante un tiempo determinado, y toda una serie de abusos que los escritores y músicos no pueden más que observar con envidia.

Un ejemplo de las condiciones de licencia ridículas puede verse en la limitación para publicar capturas de un escritorio Windows: se permiten, pero, salvo autorización, sólo puede capturarse todo el escritorio, no parte. De nada vale que tú sólo quieras ilustrar cuál es el icono para escoger la red inalámbrica. Estas restricciones no son importantes en la práctica para la mayoría de usuarios, pero imaginaos que yo creo un manual para distribuir (bajo precio) sobre la instalación de sistemas FreeBSD y que quiero ilustrar cómo cambiar el tamaño de la partición de Windows con las herramientas de este sistema. Posiblemente, Microsoft pudiese impedir la distribución de mi libro!

Éste es el ecosistema en el que la mayoría conocimos InterNET, aunque aun falten unos años para que esta historia llegue a la web. Muchos hablan de la influencia de Windows 95, pero la principal causa está, cómo no, en la accesibilidad de la conexión telefónica. A medida que más hogares pudieron costearse ya no el equipo, más barato cada vez, sino también una conexión a través de módem, RDSI o el entonces incipiente ADSL, mayor se hizo el mercado.

Debo hacer un apunte sobre el ADSL: aunque no hace mucho Telefónica España (ahora Movistar) publicitaba la "última tecnología ADSL", lo cierto es que el ADSL es un parche desarrollado para ser utilizado en aquellos países con una cobertura a través de cable de cobre telefónico bastante importante. Así, se podía proporcionar algo parecido a lo que se suele llamar "banda ancha" a través del cable telefónico.

Pero es momento de echar la vista atrás. Mientras el PC evolucionaba y pasaba de ser una máquina raquítica y aislada a parte de redes mucho más amplias y heterogéneas, pasó algo curioso. Dicen que todo comenzó con una impresora y un personaje: Richard Stallman. Como quiera, las alertas saltaron, y los programadores al uso agrupados en torno a Stallman reaccionaron al uso: resolviendo el problema por su cuenta: ¿que el problema son las licencias de software? hagamos un sistema operativo libre de licencias, el cual denominaron GNU. Para lograrlo, crearon la licencia GPL:
"Usted puede modificar el código y redistribuirlo, mientras mantenga la misma licencia que el código original."
Con el paso de los tiempos sucedieron dos sucesos igualmente improbables si no estuviésemos hablando de comunidades universitarias: en primer lugar, un profesor de Sistemas Operativos decidió crear una versión básica de Unix que funcionase en los ya populares PC, de forma que los estudiantes pudiesen acceder al sistema para su estudio de forma mucho más asequible. El profesor Tanenbaum lo llamó Minix y lo publicó junto con un libro de su autoría. Naturalmente, usaba las convenciones habituales en el mercado de la publicación comercial, que es una forma de decir que seguía teniendo licencias restrictivas.

El segundo hecho improbable fue que un estudiante, Linus Tolvards, decidiese hacer una versión de Minix que pudiese obviar sus problemas de licencia. Pronto los participantes del proyecto GNU y otros desarrolladores se unieron a Tolvards para que su núcleo del sistema operativo, Linux, se publicase con licencia GPL.

Es importante notar que, usasen los equipos que usasen, usasen los sistemas operativos que usasen, Linux fue desarrollado desde el principio por una ingente comunidad online. En ese sentido, Linux fue una especie de hijo de la red.

Como suele suceder con frecuencia, a veces nuestros sueños nos trascienden y toman vida propia.

viernes, 20 de enero de 2012

InterNET: Red de Redes. I. Los orígenes

Entre la detención de los dueños de Megaupload o la denuncia a otras webs, la próxima votación de la llamada SOPA en USA o la ley Sinde aquí en las provincias del mundo, creo interesante recordar cómo surge InterNET y sus diversos avatares a lo largo del tiempo.

En nuestro imaginario están, por un lado, los ISP (Proveedores de Acceso a Internet, en España típicamente Telefónica, Vodafone y otros), por otro las grandes empresas que se lucran con el comercio electrónico, o las web de enlaces a contenidos casi siempre sujetos a derechos de autor, y, finalmente, nosotros, los usuarios. Normalmente imaginamos Internet como una maraña de conexiones de un punto a otro: digamos, yo arranco el computador y me conecto a, digamos, Facebook. Esta imagen de InterNET es correcta, pero muy incompleta. Pretendo que con este texto y otros que sigan, podamos hacernos una idea mejor de cómo funciona. Y para explicar como funciona, nada mejor que recordar su origen y evolución.

La historia de InterNET corre paralela a la historia de Unix. Por un lado, hay que recordar que, por entonces, en los años 60 y 70, la computación era un recurso brutalmente caro. Por otro lado, está la parte de la historia más conocida: en plena Guerra Fría, el ejército de USA se interesó por un sistema de comunicaciones en red que garantizase que la pérdida de algún nodo de la red no implicase el colapso de las comunicaciones. De ahí se derivó un protocolo de comunicaciones con el nombre de la Agencia que lo había encargado: Arpa, y que dio lugar a una red con el descriptivo nombre de Arpanet.

Suele maximizarse la importancia de Arpanet en el desarrollo de Internet, pero eso es sólo una excusa para mantener la mitología de que los avances militares antes o después redundan en la sociedad civil... y es que, aunque no se pueda negar que eso sea cierto en algunas ocasiones, no lo es más que, en el mejor de los casos, sea un extraordinario rodeo.

En los años 70, a medida que se iba comprobando las ventajas de la interconexión de equipos informáticos, se trató de establecer la forma en la que interconectar equipos a largas distancias. Dicen de la época que era bastante desalentador ver la atmósfera de desconfianza en las reuniones entre los directivos de las grandes empresas de telecomunicaciones (telefonía, sobre todo) y los informáticos universitarios: aquéllos señores orondos en caros trajes, éstos barbudos más o menos desaliñados... como era de esperar, las cosas no fueron muy bien.

No era la desconfianza el único problema: en Europa se apostaba por un protocolo de comunicaciones más semejante al sistema telefónico tradicional: estableces una línea (en este contexto, una ruta entre nodos) y por ella mandas los paquetes de forma sucesiva; en cambio, en América los investigadores universitarios apostaban por los protocolos TCP/IP. Estos protocolos eran muy sencillos de implementar, aunque con muchos problemas, de seguridad y coherencia al principio y ahora vemos el último gran escollo cuando se tenga que cambiar del protocolo IPv4 al IPv6. Puede decirse que gran parte de la historia de los servicios ofrecidos a través de InterNET es consecuencia directa de las limitaciones de TCP/IP.

Cuando he hablado antes de la imagen mental de InterNET, he dado a entender que InterNET era una red que permite la interconexión de computadores. Y he dicho que eso es falso, o al menos, una imagen muy incompleta. InterNET es un sistema de interconexión de redes, no de computadores. Mediante TCP/IP conectamos una red con otra, que a su vez nos permite acceder a otras. No importa en qué consiste una red: puede ser un equipo conectado a través de un módem, puede ser una red doméstica, o una red universitaria con cientos de equipos. Incluso pueden crearse redes locales con equipos que se interconectan a través de InterNET. Es en parte por eso que suelo poner NET en mayúsculas, para enfatizar que lo que InterNET permite conectar son redes completas, no computadores individuales. Y no importa cómo se conectan entre sí los distintos equipos de cada red individual: una red puede usar IPX, otra por ejemplo X25, etc.

Ante el bloqueo de las negociaciones antes mencionadas, muchos universitarios decidieron interconectar las universidades por su cuenta, a través del operador telefónico: para ello se desarrollaron los módems. Si bien fueron las universidades de USA las primeras en conectarse (y ahora podemos decir mejor) con InterNET, las europeas no tardaron mucho en seguirlas.

Es común asociar InterNET con las páginas y sitios web. Sin embargo, estos constituyen una parte de los servicios que se ofrecen a través de InterNET. De hecho, hay que esperar casi 20 años desde que se interconectan las primeras universidades americanas hasta que Tim Berners-Lee inventa web. Retrocedamos otra vez para encontrarnos con el gran protagonista hasta ahora ausente: Unix.

En los años 70 y 80, la red telefónica sólo permitía conexiones muy lentas. Básicamente, se podías mandar correos electrónicos y enviar o recibir ficheros. Sin embargo, Unix pronto incorpora el protocolo TCP/IP en su propio núcleo. Eso, entre muchas otras cosas permite que un equipo doméstico pueda acceder a un computador central en otra ubicación. Y no sólo eso: permite compartir recursos: sea una impresora, un dispositivo de disco... Nacen dos conceptos fundamentales para la informática actual: el concepto de compartir recursos, y la computación personal.

Un estudiante o cualquier otra persona podía entonces costearse una cuenta en un sistema Unix. Con un simple terminal que constaba de un pequeño monitor y un teclado (con un ratón en el mejor de los casos) y un módem, podía conectarse a un sistema Unix, identificarse en él y utilizar los recursos de dicho sistema.

Fijaos en cualquier dirección de internet al azar: veis que las páginas se organizan en carpetas, de forma muy similar a como lo hacemos en nuestros discos... sin embargo, la barra para separar las carpetas de su contenido es la de dividir ('/'), no la habitual de los sistemas Microsoft ('\'): no es casualidad que los contenidos de un sitio web se organicen usando el mismo separador que en Unix!

Como aun así, una cuenta era relativamente cara y la capacidad de las líneas telefónicas era muy reducida, se organizaron un buen montón de formas de maximizar lo que se podía hacer con las redes: pronto se organizaron listas de correo para poder crear pequeñas comunidades online y con ellas surgieron los primeros protocolos de comunicación: en particular, la netiquette. Si veis ahora algún listado de normas de comportamiento, veréis que el desperdicio del ancho de banda era una preocupación frecuente.

A medida que las empresas y otras organizaciones fueron haciendo un uso cada vez mayor de la interconexión con InterNET, también comenzaron a aparecer los primeros usuarios más interesados en explotar las debilidades de los demás que en el uso más o menos responsable de los primeros universitarios. Tanto Unix como InterNET se habían creado con la vista puesta en facilitar la vida de los usuarios, con lo que la súbita aparición de la necesidad de seguridad fue todo un desafío. Ésta fue la segunda pata de los tres grandes problemas que arrastró InterNET casi desde su origen.

Antes de finalizar este primer contacto con InterNET, he de mencionar un suceso que cambió todo para bien o para mal: FreeBSD. La parte de la historia que le toca está relacionada con los problemas de propiedad que encierra esta historia, y que son el tercer gran problema, junto con la debilidad de TCP/IP y la seguridad.

Los ingenieros que crearon Unix, TCP/IP y gran parte del software que usamos no tenían la propiedad del software entre sus preocupaciones. Creaban software con frecuencia utilizando retazos de software que otros habían desarrollado antes, con el único ánimo de crear aquella aplicación que necesitasen. Con frecuencia, las Universidades no se metían en ese comportamiento, pero las grandes empresas fueron otra historia.

Muchas grandes empresas (y muchos desarrolladores, sería ingenuo suponer que todos eran una camada de hippys anarquistas) consideraban importante mantener la propiedad del software: bien porque lo veían como una ventaja competitiva -secreto industrial- o una fuente de aprovechamiento económico -venta de licencias- o por cualquier motivo que se le metiese al ejecutivo de turno entre ceja y ceja. El resultado era un código cerrado muchas veces ajustado a máquinas concretas -no utilizable por tanto en otras distintas-. FreeBSD fue en su momento un proyecto para crear una especie de Unix pero adaptada a los entonces recientes procesadores Intel, manteniendo además el código abierto. Quizás los responsables de FreeBSD fueron muy lejos, creando una licencia (llamada "tipo BSD") demasiado abierta... tanto que permitía que cualquiera hiciese modificaciones de su código y publicase el resultado... ¡con cualquier otra licencia!!

Microsoft fue el primero en aprovecharse de esta debilidad: creó su propia implementación -no del todo compatible- y la publicó con una licencia restrictiva. Así, la maraña legal que hasta entonces sólo sacudía a los sistemas Unix entró con fuerza en los aun incipientes PC de IBM. La lentitud con la que se desplegaron los nuevos servicios tuvo buena parte de su origen en la lucha por mantener la propiedad de InterNET por parte de algunas corporaciones.