Referencia cruzada

Una referencia cruzada es una forma de presentar los resultados cuando consultamos varias tablas de una base de datos. Pero no quiero hablar sobre ésto sino sobre el post de Misslucifer:

Windows monarca de España, Borbón sistema operativo

Que me ha impresionado muchísimo por el curiosísimo paralelismo que explica, y que fue introducido en los comentarios de Un poco de Windows, artículo publicado en esta casa en el día de ayer.

Espero que lo disfruten, yo me lo he pasado en grande leyéndolo :-)

El bug de los conguitos

El título ya es impactante… ¿Qué es un «bug»? Pues es un fallo más o menos importante que se cuela en un programa (ya ven, los informáticos somos así de inútiles…). Cuando una aplicación hace cosas raras (falla, termina repentinamente o se bloquea) suele ser debido a los bugs. Aunque la mayoría no supone un problema grave, otras veces son causa de vulnerabilidades que pueden ser explotadas para perjudicar a un usuario.

Por ejemplo, en los antiguos servidores de páginas web (por antiguos digo de hace unos cuatro o cinco años…) cuando se pasaban muchos datos a una web dinámica el ordenador en que estuviera alojada fallaba (los más expertos sabrán que estoy hablando del famoso atauque por desbordamiento de búfer, o buffer overflow). Ésta vulnerabilidad permitía, por ejemplo, ejecutar código remotamente en un servidor público, con los problemas de seguridad que produjo en su momento.

La palabra «bug» viene del inglés «insecto», y se usa en éste contexto porque en los primeros ordenadores, aquellos vetustos gigantes, los fallos eran causados no por mala programación sino por insectos que se introducían en las válvulas y en los componentes electromecánicos y provocaban que funcionaran mal… las cosas que aprende uno… Por cierto, que en la última entrega sobre Cracking usamos un debugger, ¿se acuerda? Éste tipo de programas nos ayuda a eliminar éstos incómodos bichitos de nuestras aplicaciones :-)

conguitos.jpgPero quiero presentarles un bug muy divertido e interesante, que puede utilizarse para colgar cualquier sistema Windows 9x (las versiones 95, 98 y Me) y que impide hacer ciertas cosas en los sistemas Windows NT (la gama 2000 y el XP). Supongo que apenas nadie usa Windows 98 ya, pero si algún día tienen la oportunidad, tecleen en el explorador de Windows la ruta «C:\con\con». El sistema mostrará una pantalla azul y morderá el polvo miserablemente. Si se pierde con tanta versión y tanto Windows, puede leer éste artículo publicado ayer.

Éste error podía ser explotado con un fichero html que intentara abrir esa carpeta. De hecho hubo quien lo creo, y lo puso como página de inicio en Internet Explorer, en dos o tres equipos de un ciber. Cada vez que alguien arrancaba el navegador, el equipo se colgaba. Fantástico, ¿eh?

Si usa Windows XP, en principio está a salvo… pero éste bug dejó sus secuelas, no crea… Vaya a cualquier carpeta de su disco. Ahora intente crear un archivo o una carpeta con el nombre «con». ¿Lo consigue? No sólo pasa con «con», también puede probar con «lpt1». No parece muy posible.

Éstos son problemas clásicos de Windows que han sido explotados amplia y vilmente. ¿A qué se debe? El antiguo MS-DOS, y por tanto los primeros Windows, usan nombres internamente para identificar los dispositivos, salvando las distancias, son como los «dev» de Linux. Por ejemplo el «con» denota la consola, el «lpt1» el puerto paralelo… Cuando se teclea c:\con\con, el sistema trata de buscar un archivo «con» utilizando la consola… simplificando una historia complicada (y además de verdad), se forma un enorme lío porque nada tiene sentido para Windows y entonces aparece la pantalla azul diciendo que nos va a poner dos velas negras…

Los Windows 9x estaban construidos sobre el MS-DOS, razón por la cual el fallo se hizo presente en éstas versiones. Hay un montón de nombres que, al igual que «con», provocan fallos en éstos sistemas, de modo que cuando se construyó Windows NT se corrigió. Los Windows de ésta familia (2000, XP…) no están diseñados sobre el DOS, pero sí que es necesario guardar la compatibilidad hacia atrás. Quien escribe ésto supone que para evitarse problemas decidieron «cortar por lo sano» y no permitir crear éstos ficheros con nombres especiales, ya que si ejecutáramos un programa en modo compatibilidad con Windows 95, podría fallar al confundir el teclado con una carpeta. También, podríamos crear un archivo con ese nombre reservado, que provocaría fallos al abrirlo con el MS-DOS o al portarlo a Windows anteriores… (Por cierto, ¿y si lo creamos con Linux y lo intentamos abrir?)

Lo más grave de éste fallo, conocido popularme como «el bug de los conguitos» es que cuando se descubrió, podría ejecutarse sobre algunos servidores basados en Windows y desactualizados (en realidad la mayoría de servidores usan Unix, así que eran muy pocos). Uno tecleaba por ejemplo «www.peich.com/con/con» ¡y el servidor caía! Imaginen los ratos de irrepetible diversión a los mandos del invento :-P

Hay infinidad de bugs: unos se conocen y se arreglan con facilidad. Otros, como éste problema con el «con» y los dispositivos perduran a través de los siglos como muestra de lo que sucede cuando se es medianamente chapucero o hay prisa por entregar el sistema… Otros no llegan a ésta categoría y son simples fallos de diseño, cosas que los programadores no pudieron prever y que se manifiestan en forma de problemas en ciertos contextos… Y ésto me recuerda un fallo muy antiguo sin solucionar de Internet Explorer que veremos más adelante, con el que van ustedes a hacerse algunas preguntas…

Un poco de Windows ;-)

Les voy a contar una historia que explica muchas cosas. Hace un montón de años (en 1981), una empresa llamada Microsoft desarrolló su primer sistema operativo: el MS-DOS, que fue encargado por IBM para usarse en sus ordenadores personales. Después de unos años y ciertas tretas sucias por parte de Microsoft (ya apuntaban maneras, los muchachos), ésta compañía se convertía en el centro de atención al lanzar el Windows 3.1 (antes hubo otros Windows, pero eran verdaderamente lamentables). Era sólo un entorno gráfico para el MS-DOS, como una máscara bonita para utilizarlo sin volverse loco. Por cierto, que se parecía tanto a los sistemas que incorporaban entonces los ordenadores de Apple, que éstos interpusieron una demanda a Microsoft que fue desestimada.

Yo llegué a utilizar Windows 1.0 porque en mi colegio había un equipo viejo con el invento, y tenía ésta pinta:

windows1.jpg

Años más tarde la empresa de Bill Gates lanzaba Windows 95. En la presentación se colgaba. Para mí ese momento es el símbolo de una década y de una forma de entender la informática que comienza a resquebrajarse. A Windows 95 (ya con 32 bits) lo comercializaron como Sistema Operativo, pero en realidad se sigue considerando un entorno gráfico (recuerden cómo se cargaba primero el MS-DOS y después Windows). Windows 98 fue un lavado de cara, aunque mejoró la estabilidad. Por cierto, no sé si saben que todos los Windows 95 y 98 se cuelgan irremediablemente a los 50 días de estar activos :-PSigamos. Windows Milennium Edition (Me) fue más de lo mismo. En realidad, había que llenar el hueco entre el 98 y el XP, y se inventaron éste. Aunque añadía funciones básicas como iconos más bonitos de 32 x 32 píxeles, lo cual siempre está bien. Los sistemas personales no evolucionaban gran cosa, y la informática personal Windows estaba en declive…

Pero desde 1993, Microsoft se encontraba desarrollando el Windows NT, dirigido a las empresas. Windows NT era un sistema construido desde cero, que era verdaderamente estable. Tan estable y tan bueno que su rendimiento era bajísimo, por lo que tuvieron que quitar algunas características y hacer que fuera un poco más malo aunque más rápido… qué cosas…

De Windows NT saldría el Windows 2000, más o menos al tiempo que el Me. El Windows 2000 funciona de maravilla, por cierto. De ésta familia, salió el Windows XP y saldrá el Windows Vista si los astros lo permiten.

Así que, resumiendo, hay dos familias de Windows: una, la llamada W9X (Windows 95, 98 y Me), formada por los sistemas de orientación más doméstica, que realmente nunca han sido considerados como Sistemas Operativos en el pleno sentido del término. La otra es llamada WNT (Windows NT, 2000 y XP), que surgió de la vertiente empresarial y técnica, y que es la rama más estable. Éstas ramas se unen en Windows XP, aunque empezaron a acercarse con el Me.

¿Y por qué les he contado todo ésto? Simplemente porque lo van a necesitar para entender bien el siguiente artículo :-)

Imagen | Wikipedia

Premios Pantallazo Azul de la Muerte

Tengo el placer de presentar los…

Premios «Pantallazo Azul de la Muerte»

Que serán concedidos periódicamente a los blogs más absurdos, frikis e insultantes que lleguen a mis sufridos ojos…

La idea surgió cuando mi cerebro fue víctima de un cuelgue al leer una entrada de un blog (llegado vía Misslucifer). Fue necesaria una infusión de tila para reiniciarme, sin que al parecer haya sufrido daños. El premio da derecho a incluir en el blog premiado la imagen oficial del mismo:

Premio Pantallazo Azul de la Muerte

Sabiendo las connotaciones claramente negativas del mismo, dudo mucho que ningún «agraciado» decida lucirlo, pero en cualquier caso es un símbolo de nivel, reputación y madurez en el complicado trabajo de provocar la risa sin intentarlo. No todo blog ridículo recibirá éste bello galardón, pues éste está reservado para los casos sangrantes.

Y el agraciado en ésta edición es…

El blog BMagik, por ésta entrada en la que se leen frases como:

Gracias al conocimiento de las lenguas antiguas que, en su mayoría derivan del Elengoa, es decir, de la Lengua Celeste, se ha podido saber, entre otras muchas cosas, que el origen de la mayoría de la Humanidad, exceptuando a los de raza negra, es descendiente de estirpes humanas extraterrenas.

Más o menos es como decir «A través del análisis de orina de un canario hemos deducido que el origen del hombre se encuentra en jaulas de titanio procedentes de andrómeda» (creo que me quedo corto). Pero se queda en poca cosa, cuando uno más adelante lee:

El embarazo de María pudo ser una fecundación in vitro, cosa que hoy en día la ciencia es capaz de hacer.

También Jesucristo pudo ser criogenizado en su sepulcro durante tres días para luego ser devuelto a la actividad… hay tantas cosas que no sabemos… ¿Fue Julio César víctima de un francotirador? Las hay más delirantes, en concreto:

No estamos hablando del Nostrático, sino del Elengoa, un lenguaje del que aun queda un fósil viviente: el euskera.

No traten de buscar el «Elengoa» en la enciclopedia, no van a encontrarlo. Y para rematar la jugada…

Estamos hartos de que se nos trate como locos o como unos ingenuos estúpidos que creen en marcianitos y en conspiraciones paranoicas […] A Einstein se le consideró un loco hasta que sus colegas de oficio les dio por tomarle en serio.

Lo han dicho ellos y no yo. No sé si a Einstein se le tomó por loco o no, lo que es seguro es que la comunidad científica suele aceptar algo como cierto cuando se aportan pruebas y experimentos, lo cual ellos no han hecho… En el momento no pude con tanta estupidez junta y no me resistí a dejar un comentario… la respuesta, la de siempre: que el conocimiento y las opiniones son libres, que tampoco están fundamentadas otras creencias… y que me fuera a perder el tiempo a otro sitio.

Sin embargo, si uno lee el artículo, lo que en él se presenta se parece más a una teoría científica que a una religión, y ahí es precisamente donde se convierte en censurable y criticable. Yo puedo pensar lo que quiera, pero lo que no puedo hacer es decir que la arqueología está anticuada y que el humano salió del apéndice espaguetil de un monstruo volador y presentarlo como algo científicamente comprobable o aceptable… Por cierto, que (supongo que para provocar una sana carcajada) en blog está subtitulado como «la magia del conocimiento»

No es que no se les tome en serio porque la ciencia sea inmovilista, sino porque sus tesis carecen de sentido. Al menos es mi forma de verlo, ¿cuál es la suya?