Acerca de...
El equipo
Encuestas
Política de privacidad
WinTablets

Encuesta

¿Cual crees que triunfará?

Ver Resultados

Cargando ... Cargando ...

últimas entradas importantes

Categorías

Entradas recientes

Archivos

28
Nov 2014
Hardwarei+dMicrosoft

En el ADN de Microsoft

Os voy a contar una historia sobre ciertos aspectos de los orígenes de Microsoft, algo que si no has leído historias serias de la compañía o en las que intervenga la compañía, seguro que desconoces.

Microsoft nació como una empresa para la creación de intérpretes de Basic. Hace muchos años se juntó un crío repelente llamado Bill Gates y otro chaval con los pies más en el suelo llamado Paul Allen y fundaron lo que luego se llamaría Microsoft. Según la fecha oficial, el 4 de abril de 1975.

Estamos hablando de la época del Altair 8800. Para los que no lo sepáis, el Altair 8800 es el primer microordenador que tuvo un éxito tan arrollador que se comió a la empresa creadora, otra de las típicas empresas de garaje de aquella época. Tuvo tanto éxito que la gente enviaba cheques por valor mucho más superior al precio del equipo para que me enviéis todas las extensiones que hagáis.

La empresa se vio tan desbordada que no pudo atender todos los pedidos porque en aquella época no era como ahora, que uno llama a un montador chino, le envía los esquemas y le pide la cantidad de unidades que quiere.

En esos años había que comprar los componentes electrónicos (que no siempre estaban disponibles en las cantidades necesarias), fabricar las placas electrónicas (que también se hacían por procesos manuales), y si eras de los que había pedido el kit sin montar, tenías grandes posibilidades de recibirlo unos meses después de haberlo pedido. También tenías muchas papeletas para montar un ladrillo porque la tasa de fallo de componentes electrónicos de aquellos años era bastante alta, aparte de tus propias habilidades con el soldador. Y eso si la placa estaba bien, que muchas venían defectuosas.

Si eras de los que habías pedido el ordenador montado… Bueno, también tenías las mismas papeletas para quedarte sin él, porque MITS (la empresa) no solo era incapaz de montar el número de unidades pedidas, sino que muchas de ellas salían defectuosas y había que repararlas.

Para que os hagáis una idea, el Altair 8800 era un microprocesador Intel 8080 (los padres, más bien los tatarabuelos de los actuales i7) con una serie de electrónica soldada alrededor de él. Disponía de una botonera de microinterruptores y unos cuantos LED. Nada más.

Cuando aquello se encendía, se encendía y no hacía nada. Tenías que meter el programa a mano con los microinterruptores. Cada interruptor era un bit, arriba 1, abajo 0. Luego otro para leer el byte, otro para ir a la siguiente instrucción, otro para ejecutar lo que habías tecleado… Si te equivocabas o se iba la luz o algún gracioso tocaba algún interruptor de aquellos… vuelta a empezar.

En ese ambiente de locura había un club de pirados (no me acuerdo del nombre) en el área de California que se reunían más o menos regularmente y presentaban sus inventos. Por ejemplo, allí fue donde se pudo ver por primera vez al Apple I. De hecho, entre los habituales estaban Steven Wozniac y Jobs se dejaba caer de vez en cuando.

En ese ambiente Bill Gates y Paul Allen tuvieron una idea, que era la de hacer intérpretes de Basic para todos y cada uno de esos ordenadores, y los que llegaran.

El mayor problema que tenían era el de la disponibilidad de hardware sobre el que iban a implementar el intérprete. Y os aseguro que es un problema muy pero que muy serio.

Por ejemplo, en las empresas que hacen máquinas electrónicas, muchas veces los desarrolladores del programa que irá dentro de una máquina empiezan a la vez que los que van a diseñar y construir la máquina. Por lo tanto muchas veces los programadores trabajan en vacío o con placas genéricas o con la versión anterior de la electrónica, o con emuladores, hasta que pueden acceder a los prototipos finales y es entonces cuando comienza el baile, porque muchas veces lo que has hecho no funciona ni para atrás y tienes que arreglar todos los desaguisados y cambios introducidos en la electrónica.

Bill y Allen se encontraban en la misma situación, pero peor todavía, porque para presentar su intérprete de Basic debían tener la plataforma, pero la plataforma no solo no la tenían, sino que no podían conseguirla. El propio fabricante mandaba a freír espárragos a esos dos locos adolescentes que venían a tocarles los cojones con chorradas.

Y lo que era peor: otras no existía ese prototipo ya que se había anunciado el producto pero se estaba esperando a ver la demanda del mismo antes de siquiera pasar a la fase de diseño.

Pero los dos amigos tenían acceso a un PDP-nosecuántos, supongo que de la universidad y que eran los mainframes de la época. Para haceros una idea de aquello, aunque no estoy seguro si se hacía así en los PDP o en los de la generación anterior.

Imagina que necesitas una instrucción nueva en el microprocesador. Imagina que si tuvieras esa instrucción tus programas correrían bastante más rápido y necesitarían menos espacio en memoria. Hablamos de una época en la que cada byte (aunque fuera de 12 bits) contaba y reducir un programa en diez bytes podía suponer la diferencia entre el éxito y el fracaso.

Pues buen, estás decidido a añadir una nueva instrucción al código máquina de tu mainframe. Suena kafkiano ahora, pero antes no lo era.

Cada instrucción de ensamblador era una placa electrónica. Como lo lees. Es decir, “mov r1,r2” era una placa electrónica que se insertaba en el hueco para el código de operación. Si el procesador (uno o varios bancos del tamaño de armarios roperos) tenía hueco para 256 instrucciones, tenía 256 huecos para insertar hasta 256 sendas placas, formando cada una de ellas una instrucción.

Pues bien, unos locos geniales del MIT, que usaban esos mainframes por la noche cuando las personas serias dormían, decidieron añadir una instrucción al equipo que usaban. Que usaba la universidad entera.

La diseñaron, la construyeron, la insertaron en su hueco y vieron cómo sus programas no solo corrían mucho más rápido, sino que incluso también lo hacían los que ejecutaban las personas serias durante el día.

Y se fueron a dormir, ya de madrugada, todo contentos.

Ese día muchas personas serias, sobre todo una investigadora un poco estirada, estuvieron al borde del ataque al corazón. Su ordenador, que valía un potosí, funcionaba “raro” y el programa de la investigadora, que el día de antes iba al pelo, fallaba miserablemente.

Al final alguien abrió uno de los armarios y vio una placa nueva donde antes no había ninguna. Ya os podéis imaginar la que se armó. Sobre todo la chica que había estado usando ese código de operación para guardar ahí cosas.

El resultado de aquello fue unas nuevas normas de seguridad que desvió a mucha gente hacia otras cosas (bluebox/blackbox, phreaking, microordenadores). Como siempre desde entonces, triunfó la burrocracia, porque los chavales no habían hecho nada ilegal respecto a las espeficaciones del mainframe y la tía sí, que era usar un código de operación ilegal de forma totalmente desaconsejada por todo el mundo.

Fue una de las primeras veces en las que triunfó lo políticamente correcto frente a lo realmente útil. Pero claro, una cosa la habían hecho unos melenudos malolientes sin afeitar y que estaban medio locos y lo otro una académica con la escoba metida en el culo. (Para escobas en el culo, leed a Fuckowsky).

Ignoro si retiraron la nueva instrucción que aceleraba sensiblemente aquél equipo, pero me imagino que sí, para descrédito de la universidad.

Bueno, basta ya de salirse por las ramas y de historias del abuelo Cebolleta. Estábamos con que Paul y Bill tenían acceso a un PDP. También tenían acceso a las especificaciones de los microproseadores de la época (el 8008, el 8080, el Z80, el 65xx, etc), porque era tan fácil como acercarte a las oficinas de Intel o de Motorola y pedir el libro con ellas.

Así que se repartieron el trabajo. Allen se encargaba de hacer un emulador del microprocesador en cuestión y la arquitectura a su alrededor para que corriera en más o menos tiempo real dentro del PDP, y Bill escribía el intérprete Basic y lo probaba en ese emulador.

Una vez que tenían todo eso hecho, era tiempo de visitar al fabricante con el intérprete de Basic bajo el brazo, intérprete que sólo había sido ejecutado en un emulador que seguro no se parecía al producto final.

Pues bien, Bill iba con su listado (de papel) bajo el brazo, conseguía que el fabricante le diera acceso a un prototipo y Bill, con la paciencia de Job, picaba todo el código ensamblador (en bytecode, es decir, un número detrás del otro) con los microinterruptores o los pulsadores o las tarjetas perforadas o lo que fuera, y lanzaba su programa.

¿Y sabéis qué pasaba? Pues que solía funcionar bien o aceptablemente bien, tanto, que era pasmo de ejecutivos e ingenieros que alguien, sin conocer el producto que estaban desarrollando, fuera capaz de haber creado un intérprete de Basic de la nada.

Evidentemente aquello tenía bugs, pero bugs menores, pequeños defectos que el fabricante pedía arreglar o que Bill prometía arreglar en la siguiente versión, pero que, salvo que fuera un blocker (un problema que impide que el producto se pueda usar), allí se quedaba el bug hasta el fin de los tiempos.

Esos fueron los primeros años de Microsoft con Bill y Paul, y los primeros productos. De hecho en una época tenían tantos BASIC por crear y tantos microprocesadores diferentes que probar y de los cuales hacer emuladores, que es muy posible que el dejar las cosas menores sin resolver vinieran de las prisas por abarcar la mayor cuota de mercado.

¿Sabéis que todo eso está en el ADN de Microsoft y que creo que no ha cambiando nunca? Me refiero a dejar un producto a medio acabar, no continuarlo o continuarlo a desgana, para que, cuando funciona bien, abandonarlo por otro producto a medio acabar y comenzar el ciclo.

Otra de los aspectos de su ADN es la de realizar cosas increíbles, pero dejarlas a medio terminar.

Bueno, me cansé de escribir. Otro día, más.

Por RFOG | 8 Comentarios | Enlaza esta entrada
contacto@wintablet.info tema WinTablet.info por Ángel García (Hal9000)