Microhistoria, La "bellota" que originó la industria del PC

  • March 18, 2017
  • tuxotron
  • IBM PC

    IBM PC Original. Fuente Wikipedia

    A finales de los 70s, empresas como Commodore, Apple, Atari, Tandy o Digital Research, entre otras, se habían empeñado en llevar el ordenador del ámbito profesional al personal. IBM que claramente gobernaba el mercado del ordenador empresarial, se preguntaba si debería unirse a la batalla del ordenador personal y tomarse su parte del pastel.

    Éste fue precisamente el motivo de la visita de William C. Lowe, por aquel entonces manager de la Unidad de Negocio Independientes (UNI) o Independent Business Unit (IBU) de los Sistemas de Nivel Básico de IBM en Boca Ratón (Florida), a las oficinas principales de IBM en Armonk (Nueva York), para reunirse con John Opel y Frank Cary, presidente y director ejecutivo, respectivamente, de la todopoderosa IBM, éste último precisamente creador de dicha UNI, además de otras.

    En dicha reunión, se discutieron temas sobre si IBM debería de entrar en el mercado del ordenador personal o no. Hasta la fecha prácticamente todo lo que IBM había vendido, había sido fabricado por la propia empresa. Según los números de Cary, IBM necesitaría 300 personas y 4 años para construir un ordenador personal desde cero, basándose en la cultura y modelo de negocios de IBM. Lowe propuso la compra de Atari, ya que ésta ya tenía un ordenador personal en el mercado, pero en vez de ello, el comité permitió a Lowe formar un equipo de trabajo independiente, pero tendría que volver en un mes con un prototipo.

    Un mes más tarde, agosto de 1980, Lowe volvería con un prototipo que prácticamente no funcionaba, pero con un plan de negocios detallado y proponiendo la creación del ordenador usando una arquitectura abierta, componentes no propietarios y sería vendido por tiendas minoristas, todo lo contrario al modelo de negocios de IBM. Así en octubre del mismo año el proyecto fue aprobado y se crearía una nueva UNI llamada “Chess” para la creación nuevo ordenador internamente conocido como Acorn (Bellota). Este proyecto se declaró de alto secreto. IBM dio a dicho equipo 11 meses y 80 millones de dólares, e incluso unas oficinas nuevas totalmente de incógnito, en las que no les permitieron ni poner el logotipo de la propia empresa. La mayoría del equipo ejecutivo de IBM no tenía mucha fé en un proyecto para la creación de un “juguete” y que además iba en contra de la cultura del gigante azul, y si éste se convirtiera en un fracaso, IBM no quería que se la relacionara con dicho proyecto en modo alguno. El equipo de trabajo estaba compuesto por 12 ingenieros, conocido como “the Dirty Dozen” (la docena sucia). Lowe pronto promocionó y dejó el proyecto en manos de Don Estridge.

    En Julio de 1980, incluso antes de que el proyecto fuera aprobado, una pequeña empresa llamada Microsoft, que en aquellos tiempos estaban muy ocupados acabando una versión de BASIC para Atari, recibieron una enigmática llamada de IBM, nada más y nada menos. IBM, como ya hemos mencionado antes, en aquella época era el auténtico gigante de la informática que dominaba la venta de ordenadores para la empresa. Querían una reunión inmediata con ellos, de hecho Bill Gates les dijo “¿Que tal la próxima semana?”, y ellos respondieron “Estaremos en un avión en dos horas”, era IBM, podían hacer lo que quisieran. Para esa reunión de alto nivel, Bill Gates llevó a un empleado recién contratado que seguro os suena el nombre, Steve Ballmer. Bill lo contrató justamente para aprovechar su MBA en Harvard y añadir un poco de orden a la gestión de Microsoft (que en esos momentos estaba creciendo a pasos agigantados).

    Bill pensaba que IBM quería utilizar su querido BASIC de alguna forma para sus ordenadores (que en aquella época eran más bien grandes ordenadores con un coste superior a los 20.000$) . Así que allí fueron los dos con traje y corbata, bastante nerviosos listos para ver qué negocio quería realizar IBM con ellos. Antes de empezar la reunión, les obligaron a firmar un contrato de confidencialidad para no comentar nada de lo que allí se iba a hablar. Esto añadió más tensión y misterio a la situación, pero Bill lo firmó sin rechistar, era IBM. Lo primero que dijo IBM fue “este el proyecto más inusual que jamás hemos realizado” y acto seguido les enseñaron los planes sobre Acorn.

    Acorn Final Team

    Equipo final del proyecto Acorn

    No era precisamente el BASIC lo que IBM buscaba, les preguntaron directamente si tenían algún sistema operativo como el CP/M que había desarrollado un tal Gary Kildall, al que Bill conocía . Bill les dijo que ellos no eran los dueños del CP/M pero que podría hablar con Gary para llegar a un acuerdo. Lo que ocurrió después forma parte de la historia de la informática como la mayor maniobra de marketing (aderezada con un poco de picardía e incluso algunos dirán que engaño) que elevó a Microsoft hasta el actual imperio que es hoy día (de hecho, fue el gran vencedor). Aquí viene la gran doble maniobra de marketing de Microsoft. La primera fue que apenas les costó trabajo desarrollarlo ya que compraron un clon de CP/M llamado QDOS (se sospecha que era una copia del CP/M) por un precio ridículo y sobre este desarrollaron el suyo simplemente realizando algunos cambios. Y la segunda fue que en vez de venderle a IBM los derechos completos sobre este sistema operativo (lo que les hubiera reportado una gran cantidad de dinero de golpe) prefirieron obtener un pequeño beneficio por ordenador que tuviera el sistema operativo instalado. Esto era una ganga para IBM que nunca llegaron a pensar en la gran repercusión que tendría en el futuro con el auge del IBM PC y los clónicos. Finalmente desarrollaron un sistema operativo llamado PC-DOS para los ordenadores IBM y otro llamado MS-DOS (que seguro os suena) para los ordenadores clónicos. El 1 de diciembre de 1980, Microsoft recibiría uno de los primeros prototipos para que pudieran empezar a desarrollar el software sobre el mismo. Microsoft ya había empezado su desarrollo sobre un PDP-11, como hicieran cuando crearon el Basic para Altair 8800, otra historia fascinante en la la compañía de Redmon estuvo involucrada.

    Acorn fue creado principalmente para competir en el mercado doméstico o la pequeña empresa. En principio el objetivo era crear un ordenador 100% de IBM, con todos sus componentes fabricados por ellos. Ironías de la vida, Bill Gates les dijo que el éxito de Apple estaba basado justamente por tener una arquitectura abierta (el Apple II estaba diseñado y creado con todo tipo de componentes clásicos y su diseño electrónico completo venía impreso de serie en todos los manuales, qué tiempos aquellos) . Parece que IBM le hizo caso a Bill Gates y crearon una arquitectura abierta, dejando la fabricación de los diferentes componentes y placas a otras empresas. Paradojas de la vida, en los ochenta hubo un cambio de papeles en lo que arquitectura se refiere, Apple cambió de arquitectura abierta a cerrada a partir del lanzamiento de su Macintosh en 1984 (esto era una obsesión personal de Steve Jobs que chocaba frontalmente con las ideas de Steve Wozniak) e IBM que pretendían crear una arquitectura cerrada pasó a una arquitectura abierta en 1981. Cualquier fabricante ó incluso cualquier persona desde un garaje, tendría la posibilidad de crear alguna tarjeta compatible con el nuevo flamante nuevo IBM PC y hacer negocios con ella.

    Pero IBM tenía un as guardado en la manga en forma de chip, la BIOS (Basic Input/Output System). Para que toda esa arquitectura abierta al mundo pudiera funcionar sería necesario incluir un chip en la placa principal el cual iniciaba todo el hardware durante el arranque (boot) además de proveer al sistema de diferentes rutinas necesarias para el sistema operativo. Esta jugada maestra de IBM impedía que cualquiera pudiera simplemente montar un compatible IBM y hacerlo funcionar del todo, ya que sería necesario tener esa llave en forma de chip llamada BIOS para que estuviera completamente operativo. Aunque las funciones y parte del código fuente de la BIOS era público (incluso parte de él venía impreso en el manual original de los primeros IBM PC), había un ejército de abogados por encima que lo protegía de cualquier tipo de copia o plagio.

    Finalmente el IBM PC se presentó el 12 de Agosto de 1981 en el hotel Waldorf Astoria de Nueva York, donde se presentó el famoso IBM PC 5150, con sus flamantes 16KB de RAM, procesador 8080 de intel, sin unidades de disco, impresora de Epson, monitor de IBM (fabricado en Japón), donde sólo el teclado y la unidad de sistema fueron fabricados por el equipo encargado de este proyecto. Utilizaba una unidad de cinta para cargar y guardar los programas (pronto saldría otra versión con unidades de disco flexible de 5” ½) y operaba sobre un sistema operativo llamado PC-DOS, de la mano de Microsoft. Este modelo básico costaba 1565$. El modelo que todos conocemos (y que aparece como la imagen icónica del IBM PC) con dos unidades de disco flexible y un monitor b/n o fósforo verde incorporado era una versión ampliada del 5150 con 64KB de RAM orientado a escuelas que costaba el doble, alrededor de 3000$. Para negocios existía otro modelo por 4000$ con monitor color, una impresora y dos unidades de disco flexible.

    IBM PC

    IBM PC. Fuente:http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/personalcomputer/

    Después de una larga campaña de publicidad liderada por la imagen de Charles Chaplin para intentar acercarse lo máximo al público en general, IBM llegó a dominar el mercado durante varios años, llegando a ser portada de la clásica revista Time en el número publicado el 3 de enero de 1983 con el nombre de “Machine of the year”, en vez de “Man of the year” como venía siendo desde 1927.

    Anuncio de Charles Chaplin

    IBM no había creado un ordenador personal, había una nueva industria que crecería de forma estrepitosa, ya que permitiría a otras empresas a crear su propio PC compatible con el de IBM, pero faltaba una pieza clave para que la clonación fuera posible, la susodicha BIOS, ese componente vital y necesario para orquestar el hardware del PC.

    ¿Cómo puedo conseguir el código fuente completo de un programa insertado en un chip?, pues haciendo ingeniería inversa, así de fácil. Ni cortos ni perezosos, un grupo de ingenieros de la empresa que luego se llamaría Compaq, comenzó a realizar ingeniería inversa de la BIOS de IBM para poder crear su propio compatible que pudiera ejecutar los mismos programas que el original de IBM pero a la mitad de precio. La historia detrás de esta épica ingeniería inversa es realmente fascinante, llena de abogados, juicios y otros trucos legales para evitar el considerable mazazo que IBM quería asestar a Compaq por haber hackeado su flamante BIOS. Sólo os diremos que al final Compaq lo consiguió y esto provocó un efecto llamada para otras compañías las cuales comenzaron a crear sus propios clones del IBM PC, dando lugar a la gran expansión de esta nueva industria.

Infraestructura del nuevo blog

  • March 15, 2017
  • tuxotron
  • Pipeline

    Como publicamos ayer, no sólo hemos cambiado la imagen del blog, sino practicamante toda la infraestructura del mismo.

    Hace bastante tiempo que tenía en la cabeza la idea de mover el blog de Wordpress a un sitio estático por las razones que ya comentamos.

    El primer intento de migración fue usando Jekyll (la versión 3 acababa de salir), quizás el generador de sitiios web estático más popular. Éste tiene gran soporte y la plataforma esta muy bien, pero el problema es que tardaba en generar el blog unos 45 minutos. Todo esto corriendo en un sistema con Ubuntu Linux, 16Gb de RAM, SSD y un procesador Intel i7 quad core. Luego probamos Octopress, con prácticamente el mismo resultado. Ambas plataformas están escritas en Ruby. También probé otra, que no recuerdo el nombre, que estaba escrita en Python, a parte de no mejorar el rendimiento, no era tan versátil como Jekyll. Aquí el problema estaba claro, el languaje de programación. No es secreto alguno, que los lenguajes interpreatados son mucho más lentos que los compilados.

    Hugo

    Poco después descubrí Hugo, un “Jekyll”, pero escrito en Go. Inicialmente, aunque los resultados no fueron satisfactorios, Hugo era capaz de generar el sitio web en unos 25 minutos. Por lo que le seguí la pista por un tiempo, e iba probando cada versión que se liberaba, hasta que sobre la versión 0.18, Hugo era capaz de generar el sitio web en unos 6 minutos. En ese momento decidimos que era hora de hacer la migración.

    Lo siguiente era encontrar un tema que nos gustara y se adaptara al blog. Encontramos Hugo Phlat Theme, el cual nos gustó. Lo adoptamos y lo modificamos un poco a nuestro gusto.

    Generación de los ficheros .md a partir de la base de datos de Wordpress

    Ya tenemos generador y tema, hora de hacer una migración del wordpress actual y generar el contenido para que Hugo nos genere el sitio. Inicialmente probamos un exporador de Wordpress para Jekyll (recuerda que Hugo está basado en Jekyll y es capaz de entendar las entradas de Jekyll), pero el resultado no fue de mi agrado. Tuvimos problemas con ciertos caracteres en los tags, el título, etc. Empecé a modificar el código PHP, para corregir los problemas que encontraba, pero no me estaba llevando más tiempo del que deseaba pasar arreglando. Así que decidí escribir una pequeña rutina de exportación accediendo directamente a la base de datos. Para ello hice un backup de la base de datos actual de cyberhades, me cree un contenedor Docker con MySQL, restauré el backup en el contenedor y ejecuté el código de exportación y listo. En el directorio target tenía todos los ficheros .md para Hugo.

    Genración del sitio web

    Una vez hemos copiado todos los ficheros .md del directorio target al direction content/post dentro de nuestro proyecto de Hugo, todo lo que hacemos es ejecutar el comando hugo. Este genera un directorio llamado public el cual contiene todos los ficheros necesarios (HTML, Javascript y CSS). Dependiendo de la configuración de tu sistema y del número de entradas del blog y configuración del mismo, la duración puede vairar. En nuestro caso, como comenté antes tarda unos 6 minutos, actualmente tenemos más de 6.000 entradas.

    Arquitectura

    Ahora que tenemos el sitio ya generado, es hora de deplegarlo y crear un pipeline de despliegue automático, y aquí es la parte más interesante (para mi) del proyecto. En nuestro caso usamos Nginx como servidor web (Hugo dispone de su propio servidor interno), todo encapsulado en un contenedor Docker (Alpine Linux).

    El proyecto completo lo tenemos en un repositorio privado en Gitlab.com. El proceso de despliegue es el siguiente:

    • Creamos una entrada nueva o simplemente hacemos alguna modificación, hacemos un commit/push.
    • Luego tenemos un servidor Jenkins, dónde tenemos varios trabajos creados, entre ellos uno para el despliegue del blog:

      1. Recoger los cambios de gitlab.com.
      2. Generación del sitio web.

        cd $WORKSPACE
        hugo --config=config-prod.toml
        
      3. Generación de una imagen Docker con el contenido del sitio que acabamos de generar. La imagen está etiquetada con el número del build de Jenkins. Esto nos permite fácilmente hacer un rollback del blog en caso que la publicación del mismo tenga algíun problema.

        docker image build -t cyberhades/blog:$BUILD_NUMBER .
        
      4. La imagen Docker que acabamos de crear se manda a Docker Hub.

        docker push cyberhades/blog:$BUILD_NUMBER
        
      5. Jenkins se conecta al servidor (Digital Ocean)

      6. Se descarga la imagen que acabamos de subir desde Docker Hub

        docker pull cyberhades/blog:$BUILD_NUMBER
        
      7. Para el contenedor actual que corre el blog y lo borra

        docker container stop blog-container
        docker container rm blog-container
        
      8. Crea un contenedor nuevo con la imagen que nos hemos descargado

        docker container run --name blog-container --restart=always -d -p 1313:80 cyberhades/blog:$BUILD_NUMBER
        

    Todo el proceso de despligue tarda unos 17 minutos y todo está automatizado a través de un servidor privado (Ubuntu server, Intel i7 quad core, 8Gb RAM y SSD) con Jenkins.

    El blog además tiene certifcados digitales de Let´s Encrypt, por lo que el servidor está disponible por HTTP y HTTPS. Los comentarios están integrado con Disqus y el RSS lo tenemos en Feedburner.

Nuevo cambio de look y nueva plataforma

  • March 14, 2017
  • tuxotron
  • Una vez más, hemos decidido que no sólo era hora de actualizar el diseño del blog, sino también de plataforma. Desde los comienzos del blog, hace ya casi diez años, Wordpress ha sido la plataforma elegida. Wordpress, en nuestro caso, siempre ha hecho su trabajo de forma decente. La administración del mismo es muy sencilla, es flexible y hoy en día es la plataforma más usada en la blogosfera, e incluso corporaciones. Todo esto es posible a una gran comunidad de usuarios que se dedica a crear de plugins, temas, etc.

    Por varias razones, hemos decidido cambiar Wordpress por la generación de un sitio estático. Realmente la principal razón del cambio es la seguridad y el mantenimiento. Los sitios con Wordpress, gracias a su cuota de mercado se han convertido en objetivos muy golosos. Además de los problemas de seguridad de la plataforma en sí, tenemos los plugins y los temas escritos por terceros, que son grandes focos de infección. PHP no queda libre de pecado, y últimamente se están encontrando problemas de seguridad en librerías comunes de dicho lenguage que afectan a Wordpress y por último la base de datos (MySQL y MariaDB), que también han estado en el ojo del huracán recientemente:

    https://threatpost.com/critical-mysql-vulnerabilities-can-lead-to-server-compromise/121738/ https://www.bleepingcomputer.com/news/security/database-ransom-attacks-have-now-hit-mysql-servers/

    En fin, son demasiadas cosas que mantener y si eres paranoico sobre la seguridad tendrías que tomar medidas adicionales:

    Varias entradas en El lado del mal O esta recientemente publicada en elhacker.net

    De esta forma la administración del blog ya requiere más dedicación.

    En Cyberhades actualmente somos Cybercaronte y yo (Tuxotron) los que publicamos y sólo hacemos eso, publicar (de forma poco frecuente actualmente) entradas nuevas y listo. No necesitamos administración de ususarios, plugins, temas, etc. Y mucho menos tener cada mañana que acceder al blog para asegurarnos que tenemos la última versión de la plataforma, plugins y tema.

    Esta nueva versión del blog funciona de forma totalmente estática. No hay nada de ejecución de código en el lado del servidor, no hay base de datos, ni nada especial. Páginas puramente en HTML + Javascript. Con lo que los riesgos de seguridad han bajado de forma abismal y el rendimiento se ha disparado descaradamente.

    En próximos artículos os daremos los detalles técnicos que como está montado el blog y también sobre la migración. Todos los enlaces deberían de ser los mismos y tenemos habilitados los protocolos http y https. Lo único que nos queda pendiente es incluir el logo.

    Si encuentras algún problema, por favor comunícanoslo vía twitter @cyberhadesblog, por email: cyberhades(arroba)cyberhades(punto)com o déjanos un comentario.

    Un abrazo y gracias por seguir ahí con nosotros!