=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-

        .{{-~&     ________________________________
       {{}{{{{    /                                \
      {{{}  ÖÖ  o0  Ssii... la E-zine Argentina...  |
     {`}{\__=  °  \________________________________/
    {{{_/ l_,...___
   {/  ~    ._.... )=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  / ^  o ) o)   / / · s$s -  Numero 2 / 8 de Marzo del 2000 /  - s$s  · ·
 / / \`-'`-'   |||=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
{ (   }    {
`.`. j    {               ███████▓░        ███▓░           █████▓░
  `,`-, . l               ███▓░                           ███▓███▓░
    f^' \ /}              ███▓░            ███▓░          ███▓███▓░
    t    Y }              ███▓░            ███▓░         █████████▓░
     Y    \l              ███████▓░  ██▓░  ███▓░  ██▓░   ███▓░ ███▓░
      \    \
       `.   \    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        !`,  \   · · · · · · · · · Magazine - Underground · · · · · · · ·
        l /   }  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
        l/   /
        /  ,'
      /  /!
    / ,' l
   (. \l. `_.
     \ \_`~~'
      `''

   []OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO[]
   //                                                                 \\
   \\                           DISPONIBLE EN:                        //
   //          http://314u.none.com.ar (HEADQUARTER OFICIAL)          \\
   \\                                                                 //
   ||.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.||
   \\                                                                 //
   //                         E-MAIL OFICIAL:                         \\
   \\                       [email protected]                       //
   //                                                                 \\
   ||.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.||
   \\                                                                 //
   //    EDITOR:                                                      \\
   \\                                                                 //
   //    Mr. Nuk3m <[email protected]>                                 \\
   \\                                                                 //
   //    Miembros del CIA TEAM:                                       \\
   \\                                                                 //
   //    Colaboradores:                                               \\
   \\                                                                 //
   []OoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoOoO[]


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!                                                                     !!
!!  Todos los contenidos de esta revista son SOLAMENTE EDUCATIVOS,     !!
!!  NINGUNO PRETENDE INCITAR AL CRIMEN O A LA ILEGALIDAD. Cualquier    !!
!!  uso erroneo de esta informacion no es responsabilidad mia.         !!
!!  Asimismo, no me hago responsable de las informaciones u opiniones  !!
!!  de nuestros colaboradores, lectores e informadores. La e-zine es   !!
!!  100% libre de cualquier tipo de censura pudiendo asi publicar todo !!
!!  aquellos temas que se consideren de interes y de utilidad.         !!
!!                                                                     !!
!!  Nota Nuk3m: Los acentos han sido suprimidos a proposito debido a   !!
!!  que los caracteres pueden verse mal dependiendo del editor que     !!
!!  utilices. Se recomienda usar el Edit de MS-DOS ya que el texto ha  !!
!!  sido optimizado con ese editor. Muchas Gracias, Mr. Nuk3m.         !!
!!                                                                     !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=

Saludos desde este e-zine a:

-= La lista Under 2000 (de Neomenia)
-= La lista Aprendiendo
-= A la e-zine DZone (http://dzone.com.ar) de Donatien.
-= A la Lista DZone :)
-= y a todos nuestros/as lectores/ras.

Distribuidores oficiales del e-zine:

-= http://314u.none.com.ar

Nota Nuk3m: Se buscan distribuidores.. escribir a [email protected].

En esta e-zine se trataran temas relacionados con:

-= Seguridad informatica
-= Hacking
-= Phreacking
-= Cracking
-= Virii
-= Carding
-= IRC
-= Programacion
-= Etc, etc., etc... (todo lo que este relacionado con temas "under")

Esta e-zine esta abierta a aceptar las colaboraciones externas de los
lectores, asi que si tenes algun texto por ahi y no sabes donde enviarlo,
aca sera bienvenido. A partir de ahora las colaboraciones se haran
imprescindibles, no lo penses dos veces y manda tu articulo.

Si queres colaborar con el e-zine, mandame tu articulo en formato TXT
comprimido, a [email protected] y que en lo posible cumpla con las
siguientes caracteristicas:

-= Estar escrito como maximo a 78 columnas.
-= Que sea en un archivo .TXT en un .Zip.
-= Que no contega acentos, ni caracteres 8-bit, salvo nuestra querida eñe.

Y ya esta. Yo creo que son faciles de cumplir no? :)

Algunos de los textos que aqui se ponen, han sido copiados de webs u otros
sitios pero siempre se respeta el contenido original de los autores y se
pone la fuente de donde han salido. Si algun texto es tuyo y no queres que
figure en este e-zine, decimelo y lo sacare de la edicion.

No todos los articulos son de otras revistas, tambien hay producciones
propias y si a veces hay articulos de otras e-zines es porque no he
recibido ninguna colaboracion hasta el momento.

  =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  |                                                                    0
  0            -= CIA =- 1999-2000,  Derechos Reservados               |
  |                                                                    0
  0   -=#( COMENZAMOS CON EL NUMERO 2 DE CIA, QUE LO DISFRUTES. )#=-   |
  |                                                                    0
  0-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

        Titulo                                  Autor           Tema
        ~~~~~~                                  ~~~~~           ~~~~
00. Indice .................................... Mr. Nuk3m ..... Que sera ?
01. Editorial ................................. CIA-Team ...... Editorial
02. Noticias .................................. Mr. Nuk3m ..... Actualidad
03. Descubriendo Linux Red Hat 5.0 (parte 2) .. Mr. Nuk3m ..... Linux
04. Texto 109 del LoCo ........................ ELoCo ......... Personaje
05. Mail del lector ........................... CIA-Team ...... Lectores
06. Consejos para una pagina o un sitio web ... Mr. Nuk3m ..... HTML
07. Numeros de serie .......................... Mr. Nuk3m ..... Cracking
08. Codigos de paises ......................... Mr. Nuk3m ..... WWW
09. Me conecte a Internet ..................... Mr. Nuk3m ..... Hacking
10. Publicidad, Links recomendados, etc ....... Mr. Nuk3m ..... Publicidad
11. BBS, sinonimo de la comunicacion .......... Mr. Nuk3m ..... Bbsing
12. KEVIN MITNICK: El "Hacker" mas famoso de
                   la red ..................... Mr. Nuk3m ..... Entrevista
13. Glosario de Terminos Tecnicos ............. Mr. Nuk3m ..... Info
14. ¿ Miedo a los articulos o fiaca ? ......... Mr. Nuk3m ..... Articulos
15. Manifiesto de un hacker novato ............ Silicon Dragon  Recopilacion
16. Llave PGP ................................. CIA-Team ...... PGP
17. Despedida ................................. CIA-Team ...... Despedida

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
01 ) Editorial
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

 Hola a todos (y a todas ;-)) !, despues de casi un mes de haber
 publicado el primer numero de la e-zine, tratando el tema de Linux en
 su mayoria, y otros temas por supuesto, aca estamos de vuelta con el
 numero 2 de C.I.A Magazine. En este numero 2 de la revista inauguramos
 una nueva seccion: Publicidad, Links recomendados, etc. Como bien dice
 el titulo de la seccion, en ella se van a poner avisos de publicidad,
 ya sean de web sites, FTP's, BBS's, Links interesantes y recomendados,
 y todo aquellos que los lectores quieran publicar en la e-zine que
 bien podria ser las direcciones de sus sitios o paginas personales, o
 sus sitios preferidos, o algo que crean que valga la pena publicar
 para que los demas lectores se enteren.

 Hago esta E-zine para Argentina ya que no encuentro muchas y que a su
 vez esten actualizadas. Y una vez más, les digo que necesito su ayuda,
 que necesito su colaboración, sus artículos, su apoyo... y ganas para
 que este e-zine salga adelante :)

 Si tenes cualquier pregunta o problema, aca estoy para ayudarte en
 todo lo que pueda. Pero no me preguntes sobre cosas muy avanzadas o
 algo extrañas, porque no domino mucho el tema en absoluto. Podes
 utilizar la dirección de la revista para cualquiera de estas cosas:
 [email protected]

 Por cierto, necesito distribuidores para alojar el e-zine en todo tipo
 de medio de comunicación. Por favor, si tenes una página Web
 distribuila, si conoces un BBS o un FTP subila para que esté al
 alcance de todos...

 Se Necesitan Colaboradores, y gente que este dispuesta a formar parte
 del CIA Team. Les cuento que el CIA Team va a estrar formado por menos
 de 10 personas, asi que aquellos que se sientan capaces de llevar una
 seccion de la revista como una seccion de Hack, Crack, Phreack o lo
 que sepa hacer que me escriba asi queda confirmado como editor de la
 revista.

 Bueno, termino esta editorial diciendoles que disfruten, aprovechen
 este numero y que les sirva de algo. Espero que mas adelante podamos
 "usar" el e-zine como un punto de encuentro que nos permita conocer
 gente interesante y juntos ir descubriendo este Mundo Subterraneo.

                                                        |\/|r. |\|uk3m
                                                        [email protected]


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
02 ) Noticias
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 Nota Nuk3m: No se si la info que sigue a continuacion les sirva de
             algo, pero es lo unico con que se me ocurrio rellenar esta
             seccion.

-= 1 =- El buscador HispaVista vende su mayoria al ISP frances
Libertysurf.

 HispaVista, uno de los buscadores españoles mas utilizados, ha vendido
 su mayoria accionarial al ISP frances LibertySurf, dominado por la
 empresa de Internet Europa@web, propiedad de Bernard Arnault,
 presidente, a su vez, del grupo LVMH (Louis Vuitton). Asi lo revelaron
 el viernes 3, a ultima hora, mediante nota de prensa, los propietarios
 de HispaVista, encabezados los hermanos donostiarras Elosegui. La
 cifra de la operacion no fue hecha publica, si bien el boletin Arroba
 Euskadi, que dirige el periodista Jose A. del Moral, la situo en 35
 millones de dolares (6.000 millones de pesetas).

 "Se trata del primer ciberpelotazo de la historia de Euskadi",
 escribio el reportero. "Jon, Unai y Paul Elosegui recibiran una
 participacion del 0,23 % de la compañia gala y 1.300 millones de
 pesetas en efectivo, y seguiran gestionando la empresa, ademas de
 mantener el 49 % de su capital". HispaVista, que figura en la ultima
 encuesta de la AIMC como uno de los diez primeros sitios web visitados
 en España, inicio en noviembre una ronda de financiacion.

 LibertySurf inscribe la operacion en la proxima salida a Bolsa

 Segun revelo este sitio web, "hemos tenido ofertas de entidades de
 capital riesgo, banca, corporaciones, culminando este proceso con
 LibertySurf, que fue el mejor postor". "La entrada de LibertySurf en
 HispaVista representa la incorporacion de un socio estable que aporta
 un know-how en el sector de las telecomunicaciones y el reconocimiento
 a nivel internacional", comento Paul Elosegui. Por su parte,
 LibertySurf, uno de los proveedores lideres de acceso gratuito en
 Francia, hizo coincidir el anuncio de la adquisicion junto a la
 noticia de su proxima salida a Bolsa.

 Pierre Besnainou, chief executive de LibertySurf manifesto en Paris
 que "los ingresos de la compañia vendran de cuatro fuentes
 principales: comercio electronico, publicidad, telecomunicaciones y
 conexiones a Internet. Nuestro siguiente paso tiene tres objetivos:
 atraer nuevos usuarios, fidelizarlos e incrementar beneficios".
 HispaVista asegura que su audiencia asciende a 13,4 millones de
 paginas visitadas al mes, con un crecimiento medio mensual del 30 %.
 Entre sus servicios gratuitos, destacan el alojamiento de paginas web
 en Galeon, el correo, la bolsa de empleo, con 3500 ofertas de empleo
 activas y la informacion bursatil.

-= 2 =- El candidato Bush se manifiesta contrario a la division de
Microsoft.

 El candidato republicano George W. Bush manifesto el viernes 3, en
 Nueva York que se opone a que Microsoft sea dividido en diferentes
 empresas, tal y como se especula que sucedera si el Gobierno
 norteamericano gana el caso anti-monopolio. En la actualidad, el juez
 Thomas Penfield Jackson sopecha si Microsoft, con sus agresivas
 practicas comerciales, violo la Ley Sherman Anti trust.

 "Estoy en contra de que se rompa Microsoft. Seguro que existe una
 solucion mejor que partir una compañia exitosa que emplea a mucha
 gente", dijo el politico conservador. En todo caso, la decision del
 juez se espera para las proximas semanas, muchos meses antes de que el
 candidato Bush pudiera alcanzar la Casa Blanca.

-= 3 =- Un estudio de Stanford habla sobre los adictoas al sexo por
Internet.

 Un estudio realizado por psicologos de las universidades de Starford y
 Duquesne revela que unos 200.000 internautas norteamericanos son
 adictos a las paginas web y chat pornograficos, empleando en ello una
 media de once horas a la semana. "Debemos preocuparnos por estas
 personas porque estan comenzando a desarrollar problemas mentales que
 pueden ser muy graves", dice el estudio, una de cuyas reseñas se
 publica en El Mundo.

 Al Cooper, uno de los autores del analisis, indica que "las personas
 que reconocian visitar con frecuencia los portales pornograficos
 tenian mas problemas para relacionarse con individuos de otro sexo que
 los internautas que usaban ocasionalmente estas direcciones o que
 aquellos que no las visitaban jamas".

 El mencionado diario recuerda que otro estudio realizado en España
 revelo que "la propia Red es una de las nuevas adicciones creadas por
 el estilo de vida de las grandes ciudades" (...) "Internet propicia la
 aparicion de personas adictas al juego, al sexo, a la comida o a las
 compras".

-= 4 =- La industria discografica, preocupada por las perdidas por
pirateo.

 La industria musical empieza a reconocer publicamente las cuantiosas
 perdidas que causan las copias ilegales de canciones por Internet. Jay
 Berman, presidente de la poderosa organizacion internacional IFPI,
 dijo el viernes 3 en Londres que "el pirateo esta costando anualmente
 al sector 4.500 millones de dolares, en una industria que mueve 38.000
 millones".

 "Para los artistas, Internet representa una gran oportunidad para
 llegar a las audiencias que buscan, pero al mismo tiempo, ellos
 quieren cobrar por su trabajo". La solucion que propone este directivo
 es que los gobiernos endurezcan las leyes del copyright. La industria
 musical estima que en la actualidad existen mas de un millon de
 canciones no autorizadas en Internet, y la cifra aumenta dia a dia.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
03 ) Descubriendo Linux Red Hat 5.0 (PARTE 2)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                   Descubriendo Linux Red Hat 5.0 (PARTE 2)
                   ------------ ----- --- --- --- ---------
                                By Mr. Nuk3m
                                -- --- -----

Hola a todos los que estan leyendo esto, yo soy Mr. Nuk3m y esta es la
segunda entrega de este manual del sistema operativo Linux Red Hat 5.0.
Disculpen las faltas de ortografia pero no voy a poner acentos, salvo
las eñes para que todos puedan leer este texto; ya sean usuarios de
Windows o Linux :) Me reservo los derechos de autor de este manual por
lo que si quieren hacer modificaciones, avisen primero. Este texto es
de libre distribucion, siempre y cuando aparezcan estas lineas y mi
nombre, Mr. Nuk3m.

A continuacion, como siempre, un indice para que puedas buscar lo que
te interesa saber de Linux Red Hat 5.0:

 Contenido

  Introduccion (lo esta leyendo)

  8. Utilidades Adicionales
     8.1  Utilidades de monitoreo
          8.1.1  date: Muestra la fecha y hora actuales
          8.1.2  who: Lista los usuarios logueados actualmente
          8.1.3  ps: Listado de los procesos
          8.1.4  free: Sumario de la utilizacion de la memoria
          8.1.5  top: Actividad del procesador
          8.1.6  df: Muestra el espacio libre en los sistemas de archivos
          8.1.7  du: Uso del disco
     8.2  Utilidades para trabajar con texto
          8.2.1  cat: Mostrar archivos
          8.2.2  head: Muestra el comienzo de un archivo
          8.2.3  tail: Muestra el final de un archivo
          8.2.4  ascii-xfr: Convierte archivos de texto
          8.2.5  more: Filtro para visualizacion de texto por pantalla
     8.3  Utilidades para agrupar y comprimir archivos
          8.3.1  gzip y bzip2: Compresion de archivos
          8.3.2  tar: Agrupa archivos
     8.4  Utilidades de ayuda
          8.4.1  man: Informacion de los comandos y utilidades
     8.5  Otras utilidades
          8.5.1  passwd: Cambiando el password
  9. Instalacion de software adicional
     9.1  Software distribuido con codigo fuente
          9.1.1  La distribucion
          9.1.2  La configuracion
          9.1.3  La compilacion
          9.1.4  El directorio /usr/local
          9.1.5  La instalacion
     9.2  El sistema de paquetes RPM
          9.2.1  Convenciones en los nombres de los paquetes
          9.2.2  La base de datos RPM
          9.2.3  Modos de operacion de rpm
     9.3  Utilizacion de librerias
          9.3.1  Directorios de las librerias
          9.3.2  Instalacion de librerias.
  10. Montando sistemas de archivos
    10.1  Sistemas de archivos y particiones
    10.2  Sintaxis del comando mount
    10.3  Montando sistemas de archivos
          10.3.1  Tipos de sistemas de archivos
    10.4  Desmontando sistemas de archivos
    10.5  El archivo /etc/fstab
          10.5.1  Campos de cada entrada
          10.5.2  Uso del archivo fstab
          10.5.3  Permitiendo montar sistemas de archivos a usuarios normales
  11. El kernel y los modulos
    11.1  ¿Que es el kernel?
    11.2  La interaccion
          11.2.1  Las librerias del sistema
          11.2.2  Las utilidades del sistema
    11.3  ¿Que son los modulos?
    11.4  Personalizando el kernel
          11.4.1  Eligiendo la configuracion adecuada
          11.4.2  Compilando el kernel
          11.4.3  Compilando los modulos
          11.4.4  Instalando los modulos
          11.4.5  Instalando el nuevo kernel
          11.4.6  Cargando y decargando los modulos
          11.4.7  Las dependencias entre los modulos
          11.4.8  Una carga de modulos mas inteligente
    11.5  Actualizando nuestro kernel
          11.5.1  Obteniendo el kernel
          11.5.2  Instalando las fuentes del kernel
  12. Aspectos avanzados de la shell
    12.1  Programas de la shell (scripts)
    12.2  Variables de la shell
          12.2.1  Exportando variables de la shell
          12.2.2  Variables automaticas de la shell
          12.2.3  Variables estandar de la shell
    12.3  El camino de busqueda (path)
    12.4  Caracteres especiales - "Quoting"
    12.5  Estado de salida de los comandos
    12.6  Los argumentos
    12.7  Estructuras de control
          12.7.1  Condicionales simples
          12.7.2  El condicional if
          12.7.3  Los loops condicionales while y until
          12.7.4  La sentencia for
          12.7.5  La sentencia case
    12.8  Evaluacion de condiciones - Test
    12.9  Evaluacion de expresiones - Expr


CAPITULO 8

UTILIDADES ADICIONALES

8.1 UTILIDADES DE MONITOREO

El S.O. Linux nos provee de un conjunto de utilidades que nos permiten
monitorear nuestro sistema, desde enterarnos de la fecha actual hasta un
sumario del uso de la memoria.

8.1.1 date: MUESTRA LA FECHA Y LA HORA ACTUAL

# date
Sat May 29 23:54:23 ART 1999

El comando date tambien se utiliza para setear la fecha y la hora del
sistema, pero esto solo puede hacerlo el superusuario.

8.1.2 who: LISTA LOS USUARIOS LOGUEADOS ACTUALMENTE

El comando who muestra una lista de las personas que estan usando
actualmente el sistema.

# who
tony     tty1   May 29 23:23
root     tty2   May 29 20:15

8.1.3 ps: LISTADO DE PROCESOS

El comando ps muestra una lista de los procesos que se encuentran
corriendo en el sistema. Usualmente este comando es utilizado por los
programadores y los administradores del sistema para ver que es lo que
esta sucediendo en el sistema. Los usuarios utilizan ps para averiguar
el PID (process identification number) de los procesos errantes para
poder matarlos.

Si ejecutamos ps, veremos una lista formada por los procesos que
nosotros estamos ejecutando, pero no veremos los procesos de otros
usuarios. Vemos un ejemplo en la figura 8.1.

En el listado que aparece como salida del comando ps vemos el PID, la
terminal que lo controla, el estado del proceso, el tiempo de ejecucion
y el comando que invoco al proceso. Los PIDs se asignan secuencialmente
a medida que cada proceso comienza y ciclan otra vez hacia 1 cuando
alcanzan 32767. Si un proceso se esta ejecutando en "background",
podemos monitorearlo con el comando ps.

 # ps
   PID TTY STAT  TIME COMMAND
   491   1 S    0:00 /bin/login -- tony
   492   1 S    0:00 -bash
   503   1 S    0:00 sh /usr/X11R6/bin/startx
   504   1 S    0:00 xinit /home/tony/.xinitrx --
   508   1 S    0:02 wmaker
   509   1 S    0:06 kfm
   512   1 S    0:00 mount.app
   513   1 S    0:00 asclock -shape
   514   1 S    0:00 wmmixer -w
   515   1 S    0:00 wmmom
   516   1 S    0:00 wmmom -s
   521   1 S    0:23 emacs -fn 9x15
   525  p5 S    0:00 /bin/bash
   572  p6 R    0:00 ps

              Figura 8.1: Listando los procesos.

Si ejecutamos ps aux veremos todos los procesos que se estan ejecutando
en el sistema. Cada proceso tendra especificado el usuario dueño del
mismo.

8.1.4 free: SUMARIO DE LA UTILIZACION DE LA MEMORIA

El comando free muestra la cantidad de memoria fisica utilizada y
libre, la utilizacion del espacio "swap", la cantidad de memoria
compartida y la utilizacion de los "buffers". La opcion -b muestra la
cantidades en bytes, la opcion -k en kilobytes (es la predeterminada) y
la opcion -m en megabytes. Vemos la salida de este comando en la figura
8.2.

 # free
            total       used       free     shared    buffers    cached
 Mem:       95696      70068      25628      39672       6840     28760
 -/+ buffers/cache:    34468      61228
 Swap:      40156          0      40156

              Figura 8.2: Visualizando la informacion de la memoria
                          utilizada en el sistema.

8.1.5 top: ACTIVIDAD DEL PROCESADOR

El comando top provee una vision en tiempo real de la actividad del
procesador. Nos muestra una lista de los procesos que utilizan el CPU
de manera intensiva y provee una interfase interactiva para la
manipulacion de los procesos. El comando top puede mostrar el listado
de los procesos ordenados por el uso de CPU, utilizacion de memoria o
tiempo de ejecucion.

8.1.6 df: MUESTRA EL ESPACIO LIBRE EN LOS SISTEMAS DE ARCHIVOS

El comando df (disk free) muestra el espacio disponible en cada sistema
de archivos actualmente montado. La unidad utilizada es un bloque de
1K, pero podemos modificar esto invocando a df con la opcion -h (human)
para que muestre la informacion del espacio disponible en un formato
mas accesible. Vemos un ejemplo en la figura 8.3.

 # df
 Filesystem         1024-blocks  Used Available Capacity Mounted on
 /dev/hda3            1701926 1306039   307932     81%   /
 /dev/hda2             305064  200456   104608     66%   /mnt/win95
 /dev/hda1            2096450 1510124   586326     72%   /mnt/nt
 /dev/hdc1            2108544 1620352   488192     77%   /mnt/akenaton
 # df -h
 Filesystem            Size  Used  Avail  Capacity Mounted on
 /dev/hda3             1.6G  1.2G   301M     81%   /
 /dev/hda2             298M  196M   102M     66%   /mnt/win95
 /dev/hda1             2.0G  1.4G   573M     72%   /mnt/nt
 /dev/hdc1             2.0G  1.5G   477M     77%   /mnt/akenaton

           Figura 8.3: Visualizando el espacio disponible en los
                       sistemas de archivos.

8.1.7 du: USO DEL DISCO

El comando du (disk usage) nos sirve para averiguar cuanto espacio
estan ocupando nuestros archivos. Cuando es invocado sin argumentos, du
nos devuelve una lista con los subdirectorios del directorio actual y
el espacio ocupado por cada uno de ellos. Vemos un ejemplo en la figura
8.4a.

 # pwd
 /home/tony/docs/linux
 # du
 1446 ./images
 137 ./xtras
 2114 .

        a. Visualizando el espacio ocupado por cada subdirectorio.

Es usual querer saber cuanto espacio esta ocupando un directorio junto
con todos sus subdirectorios. Para ello podemos utilizar el comando du
con la opcion -s y como argumento el directorio en cuestion. Esta
opcion realiza un sumario de espacio ocupado por cada argumento pasado
al comando. Si no pusieramos la opcion -s el comando nos daria como
salida un listado de los subdirectorios que se encuentran en ese
directorio y el espacio que ocupan los mismos. Vemos un ejemplo de esto
en las figuras 8.4b y c.

 # du -s Desktop
 14 Desktop

        b. Visualizando el espacio ocupado por un subdirectorio

 # du Desktop
 2 Desktop/Trash
 8 Desktop/Templates
 2 Desktop/Autostart
 14 Desktop

        c. Visualizando el espacio ocupado por los subdirectorios de un
           directorio.

         Figura 8.4: Visualizando el espacio ocupado por los archivos.

8.2 UTILIDADES PARA TRABAJAR CON TEXTO

8.2.1 cat: MOSTRAR ARCHIVOS

El uso estandar de este comando es el de mostrar archivos en nuestra
terminal. Ademas el comando cat se puede utilizar para concatenar
archivos. Ejemplos en las figuras 8.5a y b.

 # cat /etc/printcap
 ##PRINTTOOL3## LOCAL cdj550 300x300 a4 {} DeskJet550 Default 1 1
 hp|lp:\
 :sd=/var/spool/lpd/hp:\
 :mx#0:\
 :sh:\
 :lp=/dev/lp0:\
 :if=8/var/spool/lpd/filter:

          a. Utilizando cat para ver el contenido de un archivo.

 # cat mess[123] > message
 # cat message
 Contenido del mensaje 1
 .....
 Contenido del mensaje 2
 .....
 Contenido del mensaje 3
 .....

          b. Utilizando cat para concatenar archivos.

Otro uso muy comun de cat es en la creacion de archivos de texto con
muy pocas lineas. A veces necesitamos crear archivos con muy pocas
lineas de textos y no se justifica cargar un editor de texto para
hacerlo. Si ejecutamos cat sin argumentos, el comando leera caracteres
de la entrada estandar hasta encontrar un caracter de fin de archivo
(Ctrl+D). Ejemplo en la figura 8.5c.

 # cat > /etc/motd
 Se recuerda a todos los usuarios que el espacio de disco que tiene
 asignado es como maximo 4MB.
 ^D

          c. Utilizando cat para crear archivos.

8.2.2 head: MUESTRA EL COMIENZO DE UN ARCHIVO

Hay ocasiones en las que queremos saber cual es el contenido de un
archivo, pero no queremos visualizarlo todo, ya sea por que es muy
grande y porque tardariamos mucho tiempo o porque se visualiza tan
rapido que lo unico que vemos es una serie de flashs de caracteres en
la pantalla. El comando head nos permite visualizar las primeras lienas
de un archivo (10 por defecto). Usando la opcion -n <N> podemos
visualizar las primeras N lineas del archivo. Vemos un ejemplo en la
figura 8.6.

 # head -n 5 .x11amp/config
 [x11amp]
 allow_multiple_instances=FALSE
 always_show_cb=TRUE
 convert_underscore=TRUE
 conert_%20=TRUE

               Figura 8.6: Mostrando el comienzo de un archivo.

8.2.3 tail: MUESTRA EL FINAL DE UN ARCHIVO

El comando tail funciona de la misma forma que head, con la diferencia
de que muestra las ultimas lienas de un archivo en vez de las primeras.
Tambien visualiza 10 lineas por defecto, y soporta la opcion -n <N>
para visualizar las N ultimas lineas del archivo. Veamos un ejemplo en
la figura 8.7.

 # tail -n 5 /var/log/dmesg
  hdc: [PTBL] [523/128/63] hdc1
  NTFS version 990102
  VFS: Mounted root (ext2 filesystem) readonly.
  Freeing unused kernel memory: 48k freed
  Adding Swap: 40156k swap-space (priority -1)

               Figura 8.7: Mostrando en final de un archivo.

8.2.4 ascii-xfr: CONVIERTE ARCHIVOS DE TEXTO.

Linux se diferencia de otros S.O. en el tratamiento de los archivos de
texto, mas especificamente en el formato del fin de linea. MS-DOS,
Windows 95/98 y NT identifican el fin de linea con 2 caracteres: LF
(Line Feed) y CR (Carriage Return), avance de linea y retorno de carro
respectivamente. Linux, en cambio identifica el fin de linea con un
solo caracter LF (Line Feed).

Por esto, un problema tipico es el de la transferencia de archivos de
un sistema Linux hacia otro que entiende el fin de linea con 2
caracteres. Por ejemplo, si llevamos un archivo de texto de un sistema
Linux a un sistema Windows y visualizamos su contenido, veremos que se
encuentra todo el texto sobre una unica linea. Esto es porque no habia
carateres de retorno de carro en el archivo y por lo tanto Windows no
encontro ningun final de linea. Si en cambio, traemos un archivo de
texto de Windows hacia Linux, tendremos un caracter de retorno de carro
de mas por cada linea.

La solucion a esto claramente no puede ser la edicion manual del
archivo en cuestion, cosa que se puede volver inmediatamente tediosa y
tiene asociada una alta probabilidad de error. La utilidad ascii-xfr es
un filtro de archivos de texto que se ocupa de realizar estas
traducciones de formatos de archivos de texto ASCII. Esta utilidad
tiene dos modos de operacion:

 * Envio: En este modo se transmite el caracter de fin de linea como
          CR-LF. Se invoca con la opcion -s (Send).

 * Recepcion: Se elimina de cada fin de linea el caracter de CR. Se
              invoca con la opcion -r (Receive).

Esta utilidad es invocada comunmente como un filtro, ya que lee de la
entrada estandar (al recibir) y escribe en la salida estandar (al
enviar), pero puede ser utilizada conjuntamente con redireccion de la
entrada o la salida para lograr otros resultados.

El siguiente comando crea una copia de un archivo del archivo de texto
ascii-linux.txt en formato de Linux a ascii-win.txt en formato de texto
de Windows; una vez ejecutado este comando, se creara el archivo
ascii-win.txt y podra ser utilizado como un archivo de texto normal
sobre Windows.

 ==> ascii-xfr -s ascii-linux.txt > ascii-win.txt

El siguiente comando nos sirve para crear una copia en formato de texto
Linux de un archivo de texto creado en Windows.

 ==> cat ascii-win.txt | ascii-xfr -r ascii-linux.txt

8.2.5 more: FILTRO PARA VISUALIZACION DE TEXTO POR PANTALLA

El comando more es un filtro para ver un texto pagina por pagina. Es
utilizado normalmente para visualizar los contenidos de un archivo muy
grande. Tambien se utiliza en conjuncion con otros comandos para poder
ver la salida de los mismos pagina por pagina. Ejemplos:

 ==> more /var/log/dmseg

Este comando nos muestra el contenido del archivo de "log" que se escribe
al iniciarce el sistema y contiene los mensajes que el kernel emite al
iniciarse.

 ==> ls -l | more

Este es un comando tipico de los usuarios de Linux. Sirve para listar
los contenidos de un directorio en formato largo, y poder ver el
listado pagina por pagina. En este caso more se detendra cuando una
pantalla se llene y esperara que apretemos "SPACE" para pasar a la
siguiente pagina. Si apretamos "b" (back), volvemos a la pagina
anterior y si orpimimos "q" (quit) interrupiremos inmediatamente la
visualizacion.

8.3 UTILIDADES PARA AGRUPAR Y COMPRIMIR ARCHIVOS

8.3.1 gzip y bzip2: COMPRESION DE ARCHIVOS

Hay dos utilidades de compresion sin perdida que comunmente son
provistas con las distribuciones de Linux: gzip y bzip2. El primero
utiliza el algoritmo de compresion "Lempel-Ziv" mientras que el segundo
utiliza una tecnica llamada "ordenamiento de bloques". Existen otras
utilidades de compresion como lo son pack y compress, pero hoy en dia
son consideradas obsoletas y las dos primeras son las que mas se
utilizan.

El modo de uso es en ambas utilidades igual, por lo que ilustraremos
con ejemplos indistintamente. Tambien haremos unas pruebas para mostra
cual de las dos utilidades es mas eficiente.

Estas utilidades reciben una lista de argumentos (que deben ser
archivos) y comprimen cada uno de ellos sobreescribiendo los archivos
originales y agregando como sufijo al nombre del archivo la extension
gz. Veamos un ejemplo en la figura 8.8a.

 # ls -l
 -rw-r--r--   1 tony   users       7559 May 12 04:31 commands.htm
 -rw-r--r--   1 tony   users       3817 May 12 04:31 krabber-2.html
 -rw-r--r--   1 tony   users       2880 May 12 04:31 vi.htm
 # gzip commands.htm krabber-2.html vi htm
 # ls -l
 -rw-r--r--   1 tony   users       2050 May 12 04:31 commands.htm.gz
 -rw-r--r--   1 tony   users       1746 May 12 04:31 krabber-2.html.gz
 -rw-r--r--   1 tony   users       1102 May 12 04:31 vi.htm.gz
 # gzip -d *.gz
 # ls -l
 -rw-r--r--   1 tony   users       7559 May 12 04:31 commands.htm
 -rw-r--r--   1 tony   users       3817 May 12 04:31 krabber-2.html
 -rw-r--r--   1 tony   users       2880 May 12 04:31 vi.htm

           a. Utilizando gzip para comprimir varios archivos

 # ls -l netscape
 -r-xr-xr-x   1 root   root      12078064 Oct 13  1998 netscape
 # gzip netscape
 # ls -l netscape.gz
 -r-xr-xr-x   1 root   root       5138529 Oct 13  1998 netscape.gz
 # gzip -d netscape.gz
 # bzip2 netscape
 # ls -l netscape.bz2
 -r-xr-xr-x   1 root   root       4739906 Oct 13  1998 netscape.bz2
 # bzip2 -d netscape.bz2
 # ls -l netscape
 -r-xr-xr-x   1 root   root      12078064 Oct 13  1998 netscape

           b. Testeando al eficiencia de ambas utilidades.

        Figura 8.8: Utilizando gzip y bzip2 para comprimir archivos.

Como vemos en el ejemplo, tanto gzip como bzip2 son invocados con la
opcion -d (decompress) para descomprimir un archivo comprimido. Asi el
archivo recupera su tamaño y nombre original.

En la figura 8.8b vemos una comparacion entre ambas utilidades de
compresion. Se tomo el archivo ejecutable del Netscape Communicator 4.5
como objeto de prueba. El archivo, sin comprimir, ocupa exactamente
12078064 bytes. Al comprimir con gzip obtuvimos un archivo con un
tamaño de 5138529 bytes, lo que implica un grado de compresion del 57.4
%. Al comprimirlo con bzip2 obtuvimos un archivo de 4739906 bytes lo
que implica un grado de compresion del 60.76%. En este caso comprimio
mejor bzip2. En general bzip2 realiza mejores compresiones que gzip
pero con el costo de tardar un poco mas. Hoy, esta ganando terreno la
utilizacion del bzip2.

En el ejemplo anterior, vimos los grados de compresion que alcanzaron
ambas utilizadades. Estos grados son muy buenos teniendo en cuenta que
el archivo objeto de la prueba era un archivo binario. En general, se
logran mejores compresiones sobre los archivos de texto, por ejemplo:
fuentes de algun programa. Luego en la seccion que trata sobre la
utilidad tar veremos un ejemplo de esto, comprimiendo las fuentes del
kernel de Linux.

8.3.2 tar: AGRUPAR ARCHIVOS

Las utildades gzip y bzip2 son muy buenas comprimiendo grandes
archivos, pero no pueden hacer mucho sobre archivos pequeños. Primero,
los archivos pequeños son pequeños, valga la redundancia, y
comprimirlos no nos trae mucho beneficio. Pero el problema, es que
existe una dificultad tecnica que tenemos que entender. En Linux, el
espacio en disco es reservado de a bloques de 1 Kilobyte, en los
sistemas de archivos de otros Unix se reserva espacio en "clusteres" de
2, 4 o hasta 8 bloques de 512 bytes. Esto significa que si creamos un
archivo que solo contiene un caracter, en Linux ocupara 1 Kilobyte y en
otros Unix puede ocupar de 1 a 4 Kilobytes.

La implicancia directa de esto es que no nos trae ningun beneficio
comprimir un archivo de, por ejemplo 512 bytes ya que por mas que
comprimido ocupe menos espacio, seguira almacenado en un bloque de 1
kilobyte.

Otra dificultad con los archivos pequeños, es que, em general, se tiene
muchisimos de ellos. Si tenemos unos pocos archivos de 1K no tendremos
problemas, pero tener 5.000 o 10.000 archivos de ese tamaño pueden
hacernos perder espacio rapidamente.

La utilidad tar soluciona esto y otros problemas. Esta utilidad fue
originalmente desarrollada como un programa para escribir archivos de
cintas magneticas, su nombre es "Tape archiver". Las cintas se tratan
como un gran archivo secuencial y tar fue diseñado para empaquetar
conjuntos de archivos en un gran archivo para ser almacenado en cinta.
Todavia se continua utilizando tar para realizar backups en cinta
magnetica, pero tambien es muy util para archivar grandes conjuntos de
archivos en un unico archivo llamado "tar-archive".

Tar puede ahorrar espacio ya que almacena archivos en un gran archivo
sin la limitacion de un tamaño de cluster fijo. Los archivos se colocan
uno despues del otro separados por un encabezado. Un grupo de archivos
pequeños dentro de un tar-archive puede ser facilmente comprimido
utilizando las utilidades gzip o bzip2.

Los compresores se utilizan como complemento de la utilidad tar para
comprimir un arbol de directorios recursivamente. Primero se agrupan
todos los archivos y directorios a comprimir en un tar-archive y luego
este es comprimido con la ayuda de un compresor, ya sea gzip o bzip2.
En la figura 8.9a vemos como se utiliza tar en conjunto con un
compresor para crear un archivo comprimido que contenga toda la
informacion del subdirectorio en cuestion, en este caso las fuentes del
kernel de Linux, version 2.2.5. Elegimos las fuentes del kernel como
archivo objeto porque son muchismos archivos de texto y con una
estructura de directorios y subdirectorios muy compleja. Asi vemos que
con un par de comandos almacenamos toda la estructura de subdirectorios
en un unico archivo y luego lo comprimimos para que ocupe poco espacio.

 # du -hs linux-2.2.5
 51M linux-2.2.5
 # tar -c linux-2.2.5 | gzip > linux-2.2.5.tar.gz
 # du -hs linux-2.2.5.tar.gz
 13M linux-2.2.5.tar.gz

    a. Comprimiendo un arbol de directorios.

 # gzip -dc linux-2.2.5.tar.gz | tar -xf -
 # du -hs linux-2.2.5
 51M linux-2.2.5

    b. Descomprimiendo un arbol de directorios.

  Figura 8.9: Comrpimiendo y descomprimiendo un arbol de directorios.

El comando utilizado es tar -c ya que la opcion -c (create) hace que el
comando tar cree un nuevo tar-archive y como no se especifica un
archivo de salida (opcion -f nombre) tar envia la salida a la salida
estandar. La cañeria creada permite que el comando gzip obtenga la
salida de tar y comprima enviando el resultado a la salida estandar la
cual es redireccionada al archivo linux-2.2.5.tar.gz. Tambien vemos que
el directorio, junto con todos sus subdirectorios y archivos ocupa 51
Megabytes. Una vez agrupado y comprimido el tamaño del archivo es de
solo 13 Megabytes, lo que implica un grado de compresion del 74.5%.

En la figura 8.9b mostramos como se puede descomprimir el archivo
linux-2.2.5.tar.gz.

El comando es otra vez una cañeria, pero esta vez en sentido inverso.
Se utiliza el comando gzip con la opcion -d para que descomprima y la
opcion -c para que envie el resultado a la salida estandar. Luego
utilizamos el comando tar para desagrupar los archivos y necesitamos
agregrales las opciones -x (extract) para que extraiga los archivos y
-f para indicarle que es un tar-archive. Ademas debemos agregarle el
simbolo "-" para indicarle que lea de la entrada estandar y asi pueda
recibir la salida del compresor. Luego realizamos un chequeo y vemos
que se encuentra el directorio linux-2.2.5 y que su tamaño es
nuevamente 51 Megabytes.

8.4 UTILIDADES DE AYUDA

8.4.1 man: INFORMACION DE LOS COMANDOS Y UTILIDADES

Los sistemas de la familia Unix, tiene un sistema de ayuda "on-line"
para los comandos y utilidades del sistema muy completo y practico que
es llamado "Man-Pages" (manuales).

La utilidad man es un programa que formatea (de darle forma) y visuliza
los manuales de los comandos y utilidades del sistema.

Esta utilidad se invoca con un argumento que debe ser un comando o
utilidad valida del sistema o cualquier programa que hayamos instalado
que posea manuales instalados. El siguiente comando nos mostrara el
manual del comando ls.

 ==> man ls

Dentro del entorno de la utilidad man hay varios comandos que es util
conocer:

 1- Avanzar: Avanzamos por las paginas del manual utilizando la barra
             espaciadora o "space".

 2- Retrocerder: Retrocedemos una pagina del manual utilizando la tecla
                 "b" (back).

 3- Salir: Salimos del manual con la tecla "q" (quit).

8.5 OTRAS UTILIDADES

8.5.1 passwd: CAMBIANDO EL PASSWORD

El comando passwd se utiliza para cambiar el "password" del usuario.
Algunas personas cambian su password periodicamente para mantener la
seguridad. El comando passwd primero nos obliga a ingresar el password
actual y si es valido nos pregunta dos veces el nuevo password, para
verificar que no nos hayamos equivocado. Ninguno de los passwords es
mostrado en la pantalla por cuestiones de privacidad y seguridad.

El superusuario (root) puede setear el password de cualquier usuario,
pero los usuarios ordinarios solo pueden cambiar sus propios passwords.

En algunos sistemas los passwords se "vencen", es decir que duran un
cierto tiempo. El sistema nos obligara a cambiar nuestro password la
proxima vez que iniciemos una sesion pasado el periodo de vencimiento.


CAPITULO 9

INSTALACION DE SOFTWARE ADICIONAL

Una vez instalado el sistema Linux, estamos en condiciones de utilizar
una gran cantidad de utilidades y programas que vienen como parte del
mismo. La gran mayoria del software que viene con las distribuciones de
Linux, es actualizado permanentemente, ya sea porque se perfecciona o
porque se le agregan nuevas caracteristicas. Ademas, hoy en Internet,
podemos conseguir una infinidad de programas adicionales de distintas
areas. Para poder instalar con exito cada uno de los programas que
conseguimos es necesario que conozcamos algunos detalles importantes.

Existen una gran cantidad de sitios en Internet, donde es posible
conseguir las ultimas versiones de los programas y utilidades mas
conocidas en el sistema Linux. En el apendice A se listan las
direcciones de los sitios mas importantes, los que no tenemos que dejar
de visitar.

9.1 SOFTWARE DISTRIBUIDO CON CODIGO FUENTE

El software para Linux o Unix, en general es distribuido con el codigo
fuente, ya que existen una gran cantidad de plataformas Unix con
distintas caracteristicas. Seria inviable que el autor del software
compile y genere una version ejecutable binaria del programa para cada
plataforma y la publique para que podamos disponer de ella. Para evitar
esto, cada version de la familia Unix posee un sistema de compilacion y
generacion de ejecutables como parte del sistema. Asi teniendo el
codigo fuente del programa, podemos compilar y generar una version
ejecutable del mismo, sobre nuestra plataforma y con todas las
caracteristicas de nuestro sistema, de forma casi transparente. La
obvia desventaja de esta aproximacion es el tiempo extra que tenemos
que invertir compilando los programas, sobre todo si los mismos son muy
grandes.

El echo de contar con el codigo fuente de los programas (usualmente C,
C++), nos da la posibilidad de poder modificar los mismos y adaptarlos
a nuestras necesidades particulares. Asi podemos modificar el codigo
fuente y volver a compilar el ejecutable, tantas veces como queramos.

Una complicacion adicional surge al encontrarse con el codigo fuente de
los programas: los mismos pueden necesitar utilizar librerias para
poder compilarlos. La seccion 9.3 se ocupa de explicar como podemos
instalar nuevas librerias en nuestro sistema.

9.1.1 LA DISTRIBUCION

La mayoria del software que podemos conseguir en Internet se encuentra
agrupado y comprimido con los formatos tar y gzip o bzip2
respectivamente.

Antes de realizar la instalacion es necesario descomprimir y desagrupar
los contenidos. Vamos a ver un ejemplo con el programa cdda2wav que es
una utilidad para copiar cd's de audio a formato de archivo de sonido
de onda (wav). El archivo de la distribucion es cdda2wav-1.0c.tar.gz.
El comando para descomprimir y desagrupar el contenido del archivo
puede ser:

 ==> tar -zxvf cdda2wav-1.0c.tar.gz

  o el equivalente

 ==> gzip -dc cdda2wav-1.0c.tar.gz | tar -xvf -

   NOTA: Si el formato es .tar.bz2 no es posible utilizar la primera
         forma del comando. Es necesario invocar un comando de la forma
         del segundo, reemplazando el descompresor gzip por el bzip2.

Luego de haber descomprimido y desagrupado las fuentes, en general,
obtendremos un directorio con los contenidos del archivo. En la figura
9.1 vemos el contenido del directorio obtenido.

 # cd cdda2wav-1.0c
 # ls
 Fronted               byteorder.h         md5c.h             scsilib
 GLP                   cdda2mp3            md5c.c             semshm.c
 HOWTOUSE              cdda2mp3.new        missing            semshm.h
 HPUX-Notes            cdd2wav.1           mkinstalldrs       setuid.c
 Makefile.am           cdd2wav.c           mycdrom.h          setuid.h
 Makefile.in           cdd2wav.h           mytype.h           sndconfig.c
 NEWS                  cdda_links          pitchplay          sndconfig.h
 OtherProgs            config.guess        raw.c              sun.c
 README                config.h            raw.h              sun.h
 README.2_0_33         config.sub          readmult           toc.c
 README.GoldstarR580B  configure           resample.c         toc.h
 README.INSTALL        configure.in        resample.h         tracknames.pl
 README.paranoia       global.h            ringbuff.c         tracknames.txt
 THANKS                install-sh          ringbuff.h         wav.c
 TODO                  interface.c         scan_scsi.linux    wav.h
 aclocal.m4            interface.h         scsi_cmds.c
 add_wav               lowlevel.h          scsi_cmds.h

    Figura 9.1: El contenido tipico de una distribucion de codigo fuente.

Es usual que los desarrolladores del software agregen en la
distribucion archivos INSTALL o README que son muy utiles al momento de
compilar e instalar, ya que especifican las instrucciones de
compilacion e instalacion que debemos seguir para poder instalar el
programa con exito.

A continuacion, vamos a explicar el proceso de compilacion e
instalacion mas comunmente utilizados. ES NECESARIO ACLARAR QUE NO TODO
EL SOFTWARE QUE PODEMOS CONSEGUIR SIGUE ESTAS CARCTERISTICAS. SIEMPRE
DEBEMOS REMITIRNOS, COMO PRIMER MEDIDA, A LAS INSTRUCCIONES RESPECTIVAS
DE CADA PROGRAMA.

9.1.2 LA CONFIGURACION

Como paso previo a la compilacion, debemos iniciar un proceso de
configuracion del software. El mismo escaneara nuestro sistema en busca
de los requerimientos del programa para ver si los mismos se encuentran
instalados o no, y para determinar otros parametros necesarios a la
hora de compilar.

Para iniciar este proceso de configuracion, debemos ejecutar el
comando:

 ==> ./configure

Dentro del directorio del programa. Seguiran una serie de mensajes de
estado y configuracion, los cuales terminaran en la generacion de los
archivos Makefile que son requisitos imprescindibles a la hora de
compilar. La salida de esta etapa son estos archivos que contienen las
instrucciones para que el compilador pueda trabajar.

  NOTA: Si en esta etapa el proceso de configuracion se detiene con un
        mensaje de error, es posible que nos este faltando una libreria
        o algo necesario para la configuracion del programa. Anotar
        precisamente el error y luego referirse a los archivos INSTALL
        o README respectivos a cada programa con el fin de determinar
        la causa del error.

9.1.3 LA COMPILACION

La compilacion es el proceso por el cual el texto fuente de un programa
es traducido al formato binario (leguaje entendido por la maquina) para
que la misma este en condiciones de ejecutarlo. Es una tarea automatica
(por lo menos desde el punto de vista del usuario). En general,
ejecutando el comando

  ==> make

(construir) daremos comienzo a la tarea de compilar el programa. Este
comando indica al compilador que comience su tarea, y el mismo, en base
a las instrucciones de los archivos Makefile generados en la etapa
anterior, ira construyendo los distintos componentes del programa, para
finalizar su tarea, vinculando los componentes generados en uno o mas
ejecutables que forman parte del programa. Estos ejecutables seran
guardados en el directorio donde tenemos el codigo fuente del programa.
Como paso restante, queda instalar los ejecutables y documentacion
(usualmente provista con el codigo fuente - no es necesario compilar)
en el directorio correspondiente, para asi poder comenzar a utilizar el
programa en nuestro sistema.

9.1.4 EL DIRECTORIO /usr/local

El directorio /usr/local usualmente es el lugar en la jerarquia de
archivos donde se instala el software adicional, es decir aquel
software que no haya sido provisto inicialmente con la distribucion del
S.O. Linux instalada.

La mayoria del software posee como destino de instalacion
predeterminado este directorio, por lo que el programa se instalara en
ese lugar. Este directorio posee una serie de subdirectorios que lo
forman, los mismos son (lista no exhaustiva):

 * /usr/local/bin: Es el directorio donde se guardan los ejecutables.

 * /usr/local/lib: Es el directorio donde se instalan las librerias.

 * /usr/local/man: Es el directorio donde los programas instalan sus
                   man-pages.

 * /usr/local/doc: Es el directorio donde se almacena la documentacion
                   adicional. Usualmente paginas Html.

 * /usr/local/include: Es el directorio donde se guardan los encabezados
                       de las librerias. Este directorio es escaneado por
                       los programas de configuracion, para ver si se
                       ecuentran disponibles ciertas librerias.

 * /usr/local/games: En este directorio se instalan los programas de
                     entretenimiento.

 * /usr/local/share: Este directorio es tomado como directorio destino de
                     ciertos programas que tienen informacion extra y la
                     necesitan para poder trabajar.

Adicionalmente, hay programas que son muy grandes que reservan un
directorio para ellos con su nombre dentro del directorio /usr/local.
Por ejemplo: Netscape Communicator /usr/local/netscape, KDE (Kommon
Desktop Environment) /usr/local/kde.

9.1.5 LA INSTALACION

El ultimo paso a realizar es la instalacion. Para ello ejecutamos el
siguiente comando:

 ==> make install

Este comando iniciara un proceso de instalacion que se ocupa de copiar
todos los archivos necesarios a el/los directorios destino
especificados. Seguiran una serie de mensajes y luego se dara por
finalizada la instalacion.

  NOTA: Es necesario estar en una sesion con permisos de superusuario
        para poder ejecutar este comando, ya que si no tenemos permiso
        de escritura en el directorio destino, el proceso de
        instalacion abortara con un error. Para esto, podemos iniciar
        una sesion con el usuario root, o ejecutar directamente el
        comando su (superuser), el cual nos pedira la contraseña del
        superusuario y si es correcta, iniciaremos una sesion con
        permisos de superusuario. Una vez finalizada la instalacion,
        podemos retornar a la sesion anterior con el comando exit.

Es posible que cada programa necesite que realicemos ciertas
configuraciones adicionales para hacer que el programa funcione.
Usualmente debemos seguir una serie de instrucciones que son
especificadas en la documentacion del programa. Las configuraciones
tipicas que debemos realizar son edicion del camino de busqueda,
creacion y exportacion de variables de entorno, etc. Todos estos temas
seran tratados en capitulos posteriores.

9.2 EL SISTEMA DE PAQUETES RPM

RPM (RedHat Package Manager) es un sistema de manejo de paquetes de
software muy potente, que puede ser utilizado para construir, instalar,
consultar, verificar, actualizar y desinstalar paquetes de software
individuales. Un paquete consiste de dos partes fundamentales: el
software en si y un encabezamiento que contiene la informacion del
paquete (nombre, version, dependencias, etc).

RPM le otorga al administrador al habilidad de poder actualizar
componentes individuales o sistemas enteros conservando la
configuracion del sistema o paquete, consultar la base de datos de
paquetes para averiguar la locacion de los archivos, paquetes o
informacion relacionada.

RPM es el sistema de manejo de paquetes de Red Hat, pero esto no
significa que solo pueda ser usado en una distribucion Red Hat. Se
desarrollo pensando en ser un sistema de paquetes abiertos, es decir,
para poder ser utilizado en cualquier distribucion. Actualmente, Red
Hat recomienda a otros distribuidores de Linux a usarlo en sus
distribuciones. Hoy, podemos considerar que es el sistema de manejo de
paquetes mas utilizado en la comunidad Linux.

9.2.1 CONVENCIONES EN LOS NOMBRES DE LOS PAQUETES

Un paquete de software RPM construido correctamente tiene la
caracteristica de que su nombre (package.rpm) identifica la siguiente
informacion: el nombre del paquete, su version, la ultima revision de
compilacion y la arquitectura para la cual fue construido. En general
los paquetes son distribuidos en archivos con extension .rpm.

Veamos un ejemplo con el paquete XFree86-3.3.1-14.i386.rpm. El nombre
del paquete es XFree86 y es el sistema grafico de ventanas que se
utiliza en Linux. Su version es la 3.3.1 y es revision 14 de esa
version. La plataforma para la cual fue construido es la Intel 80386 o
superiores. Como vemos, el nombre del archivo mediante el cual se
distribuye el paquete nos puede brindar mucha informacion del mismo.

Es mas, aun, la informacion que posee un paquete internamente. Aunque
el estudio de la estructura interna de un paquete RPM esta, claramente,
fuera del ambito de este manual, podemos destacar que en un paquete
internamente tiene:

 * Archivos ejecutables.
 * Archivos de configuracion.
 * Archivos de documentacion (HTML, man-pages, etc).
 * Archivos miscelaneos relacionados directamente con el paquete.
 * Un registro de los lugares donde se deben instalar los archivos.
 * Un registro de todos los paquetes requeridos (dependencias).

9.2.2 LA BASE DE DATOS DE RPM.

El sistema de manejo de paquetes RPM mantiene una base de datos, local
al sistema, donde se mantienen los datos de todos los paquetes
instalados en el sistema.

Una vez instalado un paquete exitosamente, toda la informacion del
paquete se registra en la base de datos.

9.2.3 MODOS DE OPERACION DE RPM

Todas las operaciones del sistema de manejo de paquetes se realizan con
el programa rpm. El mismo tiene varios modos de operacion, donde cada
uno de ellos posee opciones especiales.

 NOTA: Sobre el sistema de ventanas X-Windows existen varias
       herramientas graficas de manejo de paquetes, que son muy faciles
       de utilizar y muy comodas. Algunas de ellas son: kpackage (para
       el Windows Manager KDE), X Package Management Tool (es provisto
       con las herramientas estandar de la distribucion Red Hat).

Los 4 modos mas importantes de la operacion son:

Modo de Instalacion:

 ==> rpm -i [install-options] <package>

 Este comando instala un nuevo paquete. El siguiente comando actualiza
 un paquete de version mas nueva que la anterior.

 ==> rpm -U [install-options] <package>

 Las opciones de instalacion mas importantes son:

  * --replacefiles: reemplaza todos los archivos, por mas que sean de
                    otros paquetes.

  * --allfiles: instala o actualiza todos los archivos, por mas que no
                exista.

  * --nodeps: no realiza un chequeo de dependencias sobre el paquete a
              instalar.

Modo de consulta:

La forma general de un comando de consulta es:

 ==> rpm -q [query-options]

 Las opciones de consulta mas importantes son:

 * <package-name>: consulta el paquete con ese nombre. Notar que no es
                   el nombre del archivos, sino el nombre del paquete.

 * -a: consulta todos los paquetes.

 * -l: lista los archivos que contiene un paquete.

 * -R: lista las dependencias del paquete.

 * -p <package-file>: consulta un archivo .rpm que no esta instalado.

 * -i: muestra la informacion del paquete: nombre, version, etc.

Modo de verificacion:

El modo de verificacion nos permite comparar la informacion de los
archivos instalados como parte de un paquete con la informacion de los
archivos sacada del paquete original que es guardada en la base de
datos de RPM. Incluyendo otras cosas, el modo de verificacion, compara
el tamaño de los archivos, permisos, tipos, dueños y grupos de cada
archivo. Cualquier discrepancia se muestra en pantalla.

El comando de verificacion es de la siguiente forma:

 ==> rpm -V [verify-options]

 Las opciones de especificacion de paquetes son iguales a las de
 consulta.

Modo desinstalacion

La forma del comando de desisnstalacion es la siguiente:

 ==> rpm -e <package-name>

 Pueden ser especificadas opciones adicionales:

 * --nodeps: no realizar un chequeo de las dependencias. Si algun
             paquete instalado necesita del paquete que estamos
             desinstalando, se borrara igual.

 * --allmatches: remueve todas las versiones del paquete especificado.

9.3 UTILIACION DE LIBRERIAS

Con el objetivo de hacer que los programas sean mas pequeños, los
mismos se desarrollan utilizando el concepto de "librerias
compartidas". Las librerias son colecciones de modulos ya
desarrollados, para ser utilizados en el desarrollo de nuevos
programas. Estas colecciones, de alguna forma, son factorizadas, es
decir se proveen una sola vez y cualquier numero de programas pueden
utilizar su funcionalidad.

 NOTA: O sea, que si tenemos muchos programas que utilizan un mismo
       archivo en comun para funcionar, no es necesario que haya una
       copia del mismo para cada programa que lo utilice. Sino que que
       todos los programas que utilicen ese archivo pueden usar un solo
       archivo que se comparte con el resto de los programas que lo
       utilicen tambien.

En el S.O. Linux, el concepto de librerias compartidas es muy utilizado
por los programadores a la hora de desarrollar el software. A la hora
de instalar un nuevo programa, podemos encontrarnos con la necesidad de
instalar previamente algun conjunto de librerias. Primero veremos
cuales son los lugares donde se encuentran las librerias en nuestro
sistema y luego veremos como se pueden instalar librerias adicionales.

9.3.1 DIRECTORIOS DE LAS LIBRERIAS

Las librerias, en el S.O. Linux, se encuentran distribuidas en varios
lugares. A diferencia de otros S.O., que mantiene todas las librerias
en un lugar centralizado (con las desventajas que esto trae), Linux las
distribuye de acuerdo a unas convenciones muy simples. Los directorios
comunmente utilizados son los siguientes:

 /lib: Son las librerias necesarias para poder ejecutar los programas
       que se encuentran en los directorios /bin y /sbin.

 /usr/lib: Son las librerias que necesitamos para poder ejecutar los
           programas que se encuentran en /usr/bin y /usr/sbin.

 /usr/X11R6/lib o /usr/X11/lib: Son librerias que utiliza el sistema de
                                ventanas X-Windows y los programas que
                                funcionan con el mismo. Usualmente son
                                librerias graficas.

 /usr/local/lib: Este es el directorio que usamos comunmente para
                 instalar las librerias adicionales que nosotros
                 instalamos como parte de algun programa.

9.3.2 INSTALACION DE LIBRERIAS

Las librerias en Linux, en general, son provistas con su codigo fuente,
por las mismas razones que el software es distribuido asi.

El proceso necesario para instalar una determinada libreria puede
variar considerablemente. Hoy, la tendencia es a seguir el mismo
procedimiento que con el software. Es decir que tenemos que seguir los
mismos pasos de "configuracion", "compilacion" e "instalacion"
descriptos en la seccion 9.1. Si la libreria, necesita que sigamos
algun otro proceso de instalacion, deberemos referirnos a su
documentacion y seguir las instrucciones de instalacion que usualmente
son provistas como parte de la distribucion del software.

Una vez realizada la instalacion de la libreria, nos resta realizar un
paso adicional para que puedan ser utilizadas en el sistema. El S.O.
mantiene un "vinculador de tiempo de ejecucion (run time linker)" que
mantiene una base de datos de las librerias disponibles para los
programas. Cuando un programa necesita utilizar una libreria, entra en
juego este vinculador y realiza la "vinculacion" entre el mismo y la
libreria, para que el primero la pueda utilizar. Cuando agregamos una
libreria al sistema, debemos asegurarnos que el vinculador se "entere
de su existencia".

EL ARCHIVO /etc/ld.so.conf

Este archivo mantiene una lista de los directorios donde tenemos
librerias instaladas en el sistema. El contenido de un archivo de estos
es mostrado en la figura 9.2.

 # cat /etc/ld.so.conf
 /usr/i486-linux-libc5/lib
 /usr/X11R6/lib
 /usr/local/lib
 /usr/local/kde/lib

         Figura 9.2: Un archivo /etc/ld.so.conf.

Este archivo mantiene los directorios que son escaneados por el
vinculador de tiempo de ejecucion en busca de librerias instaladas en
el sistema. Normalmente, el vinculador esta configurado para actualizar
la informacion de las librerias cada vez que se inicia el sistema. Por
lo tanto, se puede pensar que para que el vinculador encuentre nuestra
libreria, solo es necesario agregar el directorio donde se instalo la
misma y luego reiniciar el sistema. Ese razonamiento no es erroneo,
pero no es muy practico que digamos.

Linux es un sistema que esta diseñado para evitar ser reiniciado, salvo
situaciones extremas, a diferencia de otros S.O. que necesitan ser
reiniciados por cosas minusculas. Es inaceptable tener que reiniciar el
sistema porque se agrego una libreria al sistema, sobre todo teniendo
en cuenta que Linux es "multiusuario" y si tenemos usuarios conectados
tendremos que desconectarlos del sistema para poder reiniciar, o sin ir
mas lejos pensemos en un sistema que actua como servidor de WWW y que
esta atendiendo pedidos y se lo reinicia sin previo aviso.

Para evitar reiniciar el sistema cada vez que instalamos un nuevo
programa o libreria, Linux posee un comando que le indica al vinculador
de tiempo de ejecucion que refresque la informacion de las librerias
escaneando los directorios nuevamente. Una vez que hayamos editado el
archivo /etc/ld.so.conf, debemos ejecutar el siguiente comando:

 ==> ldconfig

el mismo refrescara las librerias que el vinculador considerara de ahi
en adelante. A partir de eso podemos comenzar a utilizar el programa ya
que el vinculador encontrara al libreria en el momento que el programa
la solicite.

Tanto la ejecucion de este comando como la edicion del archivo
/etc/ld.so.conf se deben hacer con privilegios de superusuario ya que
un usuario ordinario NO DEBE TENER PERMISO para escribir el archivo
/etc/ld.so.conf y el comando ldconfig usualmente no se encuentra
disponible para ser ejecutado por un usuario comun.


CAPITULO 10

MONTANDO SISTEMAS DE ARCHIVOS

Como vimos en capitulos anteriores, todos los archivos en un sistema
Linux se acomodan en un gran arbol: la jerarquia de archivos tiene a
"/" como raiz. Estos archivos pueden estar distribuidos en distintos
dispositivos

Antes de poder utilizar un sistema de archivos, debemos "montarlo"
sobre la jerarquia de archivos. Para ello necesitaremos conocer el
dispositivo a montar y tener disponible un punto de montaje (un
directorio). El comando mount nos sirve para agregar un sistema de
archivos a la jerarquia de archivos. De forma opuesta, el comando
unmount, eliminara la asociacion creada con el comando mount.

10.1 SISTEMAS DE ARCHIVOS Y PARTICIONES

Un sistema de archivos es una coleccion de archivos o directorios en
algun dispositivo, con algun tipo o formato de almacenamiento. Discos
de poca capacidad (por ejemplo: discos flexibles) solo poseen un
sistema de archivos, en cambio los discos grandes pueden tener varias
regiones (particiones), cada una con su sistema de archivos propio.

Existen varias motivaciones por las cuales se trata de particionar los
discos. En el comienzo de Unix, particionar los discos era necesario
porque las estructuras del kernel para mantener los datos de los
archivos y sistemas de archivos no podian direccionar todo el espacio
de almacenamiento disponible. En los sistemas Unix modernos (incluyendo
a Linux) un archivo, potencialmente, puede tener como maximo 2
Gigabytes y un sistema de archivos puede ser tan largo como un Terabyte
(1.000.000 Megabytes). Ningun disco, hoy, puede alcanzar esas
capacidades, por lo que la decision de particionar el disco es
opcional.

Una de las razones por las cuales es adecuado particionar es la
modularidad. Las particiones nos permiten controlar la cantidad de
espacio que asignamos a una dada actividad o tipo de uso de un sistema
de archivos: es usual crear una particion aparte para el directorio
/tmp otra para el directorio /home donde se encuentran los datos de los
usuarios, etc. Las particiones nos otorgan la posibilidad de realizar
un control mas fino sobre las tareas de backup. Los archivos de
solo-lectura y los temporales en general no se tienen en cuenta al
realizar un backup. Manteniendolos en particiones separadas
solucionamos este problema, ya que la tarea de backup toma todo o nada
de la informacion de una particion.

Un caso particular de particionamiento del disco disco lo encontramos
en la particion utilizada para realizar el intercambio de datos cuando
no queda memoria disponible (swap). Linux trata el espacio swap como
una particion separada del sistema de archivos principal. La particion
de swap esta organizada de forma contigua para poder ser accedida
eficientemente, por lo que requiere una estructura distinta a la
utilizada en el sistema de archivos principal. Esta es la causa por la
cual el espacio de intercambio se mantiene en una particion especial.

10.2 SINTAXIS DEL COMANDO MOUNT

La forma estandar del comando mount es la siguiente:

 ==> mount -t type device dir

Un comando de este tipo le comunica al kernel que monte el sistema de
archivos de tipo "type" que se encuentra en el dispositivo "device"
sobre el directorio "dir". Los contenidos del directorio "dir" (si
existen) se vuelven invisibles, mientras el sistema de archivos se
mantenga montado.

La mayoria de los dispositivos se indican por un nombre de archivo, por
ejemplo: /dev/hdb (la unidad IDE esclava-primaria), /dev/hda1 (la
primera particion de la unidad de disco IDE master-primaria),
/dev/cdrom (la unidad CD-ROM) o /dev/fd0 (la primera unidad de disco
flexibles del sistema).

Los programas mount y unmount mantienen una lista de los sistemas de
archivos actualmente montados en el archivo /etc/mtab. Si se ejecuta el
comando mount sin argumentos, la informacion contenida en ese archivo
es mostrada como salida.

10.3 MONTANDO SISTEMAS DE ARCHIVOS

Para poder montar distintos sistemas de archivos debemos conocer: el
dispositivo donde se encuentra el sistema de archivos, el tipo del
sistema de archivos y el punto de montaje. Ademas de esto debemos tener
los permisos de superusuario o tener permiso de montaje de usuario
ordinario (esto se explica en la seccion 10.5.3).

Una vez que conocemos toda esa informacion podemos utilizar el comando
mount para montar el sistema de archivos en la jerarquia. Un tema muy
delicado es el de los tipos de sistemas de archivos, ya que existen una
gran variedad de sistemas de archivos, cada uno con su formato propio.
Linux es capaz de manipular una gran cantidad de sistemas de archivos
eficientemente, pero un item que usualmente confunde a los usuarios es
el hecho de que para poder montar sistemas de archivos de un
determinado tipo es necesario tener compilado el kernel con el soporte
para ese tipo de sistema de archivos. En un capitulo posterior veremos
como hacer para agregar al kernel el soporte para distintos sistemas de
archivos. Por ahora supondremos que el kernel es capaz de entender
cualquier sistema de archivos disponible.

10.3.1 TIPOS DE SISTEMAS DE ARCHIVOS

SISTEMAS DE ARCHIVOS FAT

Si queremos accedera a archivos de particiones que contienen sistemas
de archivos basados en FAT, debemos utilizar el tipo "msdos". En este
caso los nombres de los archivos repetaran el formato de MS-DOS
(windows 3.x), o sea nombres de 8 caracteres con extension de 3.

Podemos utilizar el tipo "vfat" para montar sistemas de archivos de
Windows 95/98. Los kernels de versiones 2.0.x no soportan las
extensiones de Microsoft para nombres largos, por lo que veremos los
archivos con el formato de nombres de MS-DOS. A estos kernels es
posible aplicarles un patch, disponible gratuitamente en Internet, para
poder ver los nombres largos. Por suerte los kernels 2.2.x ya tiene ese
soporte integrado por lo que no debemos realizar ninguna tarea
adicional.

El siguiente comando montara el sistema de archivos de Windows 95 que
se encuentra en la particion 2 del primer disco de la maquina, en el
directorio /mnt/win95.

 ==> mount -t vfat /dev/hda2 /mnt/win95

Es posible montar discos flexibles de cualquiera de estos dos tipos. En
general el dispositivo de la disquetera es /dev/fd0 o /dev/floppy. El
siguiente comando nos muestra como podemos montar un diskette MS-DOS.

 ==> mount -t msdos /dev/fd0 /mnt/floppy

SISTEMAS DE ARCHIVOS NTFS

Anteriormente, dijimos que un sistema Linux puede coexistir con Windows
NT en una maquina. Aicionalmente, podemos montar un sistema de archivos
NTFS (el sistema de archivos de Windows NT) como parte de nuestra
jerarquia. Para ello podemos utilizar el siguiente comando:

 ==> mount -t ntfs /dev/hda1 /nt

 NOTA: El soporte de NTFS del kernel (2.2.5) permite leer corectamente
       informacion, pero el soporte para escritura se encuentra en una
       etapa experimental y es muy peligroso activarlo, ya que podemos
       romper la estructura del sistema de archivos NTFS y volverlo
       inutilizable. Se recomienda montar estos sistemas de archivos
       como solo lectura.

MONTANDO CD-ROM'S (SISTEMA DE ARCHIVOS ISO9600)

El sistema de archivos estandar utilizado en los cd-rom que contiene
datos es el ISO9600, conocido previamente como "High Sierra Filesystem"
(hsfs), por lo que en otros Unix es conocido de tal forma.

Como el medio de almacenamiento de cd-rom es inherentemente de solo
lectura, los cd-rom seran siempre montados como solo lectura. El
comando para montar un cd-rom puede ser:

 ==> mount -t iso9600 /dev/cdrom /mnt/cdrom

10.4 DESMONTANDO SISTEMAS DE ARCHIVOS

Una vez que trabajamos con el sistema de archivos y ya no lo
necesitamos podemos desmontarlo. Hay sistemas de archivos que se montan
automaticamente al iniciarse y permanecen montados hasta que el sistema
se baja. Mas adelante veremos como se pueden configurar los sistemas de
archivos para que se comporten de esta manera.

Los medios removibles (discos flexibles, cd-rom's, etc) y en ocasiones
discos y particiones son montados temporariamente para leer o escribir
informacion y luego son desmontados.

El comando umount (unmount) nos permite desmontar un sistema de
archivos. La informacion necesaria para desmontar un sistema de
archivos puede ser el dispositivo o alternativamente el directorio
donde esta montado. Por lo tanto podemos desmontar el cd-rom que
montamos en la seccion anterior con cualquiera de los siguientes
comandos:

 ==> umount /dev/cdrom

 ==> umount /mnt/cdrom

 Observaciones:

 * Un sistema de archivos no puede ser desmontado si se encuentra
   "ocupado", esto es, por ejemplo, cuando existen archivos del mismo
   que se encuentran abiertos o cuando algun proceso tiene como
   directorio de trabajo algun directorio del sistema de archivos. El
   comando fuser nos sirve para averiguar que usuarios, y que procesos,
   estan utilizando un determinado archivo o sistema de archivos.
   Adicionalmente nos permite matar estos procesos, para poder
   desmontar el sistema de archivos.

 * Cuando un sistema de archivos se encuentra montado, cierta
   informacion vital de la locacion de los archivos en ese sistema de
   archivos, se mantiene en memoria con el kernel. Si removemos el
   medio fisico sin realizar el umount puede suceder que la informacion
   que se encuentra en memoria se pierda, y el estado del sistema de
   archivos quede inconsistente. El proposito de la operacion umount es
   volcar toda la informacion del sistema de archivos, que se encuentra
   en memoria, al medio fisico, para que todo quede en un estado
   consistente.

10.5 EL ARCHIVO /etc/fstab

El archivo /etc/fstab (file system table) es uno de los archivos mas
importantes en lo que concierne a la administracion del sistema. El
mismo contiene lineas describiendo que dispositivos son usualmente
montados, con que opciones y donde se montan los mismos. Contiene,
ademas, la informacion de los sistemas de archivos que deben ser
montados automaticamente al iniciarse el sistema.

Es tarea del adminsitrador del sistema editar y mantener este archivo.
Cada sistema de archivos se escribe en una linea separada. Cada linea
contiene varios campos y estos son separados por tabs o espacios. Como
ejemplo, vemos un archivo fstab en la figura 10.1.

 # Device or NFS         Mount Point            Type     Options

 /dev/hda3               /                      ext2     defaults             1 1
 /dev/hda2               /mnt/win95             vfat     defaults             0 0
 /dev/hda4               swap                   swap     defaults             0 0
 /dev/fd0                /mnt/floppy            vfat     user,noauto          0 0
 /dev/hdb                /mnt/cdrom             iso9600  ro,user,noauto,noide 0 0
 none                    /proc                  proc     defaults             0 0
 /dev/hda1               /mnt/nt                ntfs     unmask=022,ro        0 0

          Figura 10.1: Un archivo /etc/fstab con informacion de los
                       sistemas de archivos.

10.5.1 CAMPOS DE CADA ENTRADA

Device or NFS: Especifica el dispositivo donde se encuentra el sistema
               de archivos. En caso de ser un sistema de archivos en
               red (NFS), no se especifica un dispositivo, sino que
               debemos poner el nombre del host, del directorio que se
               encuentra compartido.

Mount Point: Punto de montaje. Es el directorio que forma parte de la
             jerarquia, donde queremos montar el sistema de archivos.
             Notemos que estos directorios solo pueden ser
             especificados con rutas absolutas. En caso de ser una
             particion swap, el punto de montaje es nulo y se
             especifica con swap o none.

Type: Es el tipo de sistema de archivos que se encuentra en el
      dispositivo. Puede ser: msdos, vfat, ext2, minix, iso9600, swap,
      etc. El kernel debe tener compilado el soporte para cada sistema
      de archivos que especificamos.

Options: Este campo es una serie de opciones separadas por comas. Cada
         opcion tiene un comportamiento determinado y las opciones
         varian de acuerdo al tipo de sistema de archivos. Explicaremos
         las mas comunmente utilizadas:

         rw,ro: La primera (read/write) monta el sistema de archivos en
                 modo lectura/escritura. La segunda ro (read-only)
                 especifica que se montara como solo lectura.

         auto,noauto: Especifican si el sistema de archivos se montara
                      al iniciar el sistema o no.

         user,nouser: Especifican si el sistema de archivos puede ser
                      montado por el usuario ordinario o no.

         defaults: Especificamos que tome las opciones predeterminadas,
                   entre otras: rw,auto,nouser.

10.5.2 USO DEL ARCHIVO FSTAB

Este archivo, usualmente es utilizado en tres formas:

 1- El comando mount -a (all), usualmente ejecutado en los scripts de
    inicio del sistema, monta todos los sistemas de archivos
    especificados en el archivo /etc/fstab, salvo las que tengan la
    opcion noauto. En general los medios removibles (discos flexibles,
    cd-rom's, discos ZIP, etc.) son especificados con la opcion noauto.

 2- Cuando montamos un sistema de archivos que se encuantra
    especificado en el archivo /etc/fstab, basta con especificar el
    dispositivo a montar o el punto de montaje. El comando mount
    buscara el resto de la informacion en el archivo. Por ejemplo,
    suponiendo que nuestro archivo fstab es el de la figura 10.1 y
    queremos montar el cd-rom, podemos ingresar cualquiera de los
    siguientes comandos:

     ==> mount /dev/cdrom

     ==> mount /mnt/cdrom

 3- Para definir que sistema de archivos pueden ser montados por
    usuarios ordinarios. Ver seccion siguiente.

10.5.3 PERMITIENDO MONTAR SISTEMAS DE ARCHIVOS A UN USUARIO ORDINARIO

El comando mount debe ser utilizado solo por el administrador del
sistema (root). Asi podemos tener seguridad en el sistema. No queremos
que los usuarios ordinarios puedan montar y desmontar a gusto nuestros
sistemas de archivos, pero seria una restriccion muy grande que los
usuarios comunes no puedan montar, por ejemplo, un diskette. Para
solucionar esto, sin comprometer la seguridad del sistema, el
adminstrador especifica en el archivo /etc/fstab cuales son los
sistemas de archivos que un usuario puede montar, utilizando la opcion
user. El usuario puede, luego, montar el sistema de archivos, pero
limitado al tipo, punto de montaje y opciones especificadas por el
adminstrador en el archivo /etc/fstab.


CAPITULO 11

EL KERNEL Y LOS MODULOS

11.1 ¿QUE ES EL KERNEL?

El kernel es el organizador principal del S.O. Linux. El kernel
planifica la ejecucion de los procesos y se asegura de que cada uno de
ellos obtenga una tajada "justa" de tiempo de procesador; realiza todo
el manejo de memoria necesario para que los procesos puedan trabajar;
provee una interfaz agradable y portable para que los procesos y
programas de usuario puedan interactuar con el hardware; maneja todo lo
respectivo a almacenamiento de datos en discos; realiza la supervision
de las transmisiones de datos entre la memoria y los dispositivos
perifericos y debe servir todos los pedidos de acceso a hardware de los
procesos.

El kernel es la porcion del S.O. Linux que se encuentra residente en
memoria. Comparado a muchos S.O. de "mainframes", el kernel de Linux
provee una funcionalidad relativamente pequeña (aunque aumentando dia a
dia). De todas formas, comparado a otros S.O. de microcomputadoras,
como lo puede ser MS-DOS, Windows 95, etc., el kernel de Linux tiene un
gran repertorio de servicios.

El kernel nunca realiza alguna tarea directamente para el usuario; los
servicios basicos del kernel son provistos mediante utilidades que
establecen la interfase entre el usuario y el kernel.

El kernel de Linux se ocupa, principalmente, de las siguientes tareas:

 Manejo de memoria: El subsistema de manejo de memoria es una de las
                    partes mas importantes del S.O. Desde los primeros
                    dias de la computacion, ha habido una necesidad de
                    tener mas memoria de la disponible fisicamente en
                    un sistema. Se han desarrollado varias estrategias
                    para sobrepasar esta limitacion, y la mas exitosa
                    de todas, sin dudas, ha sido la memoria virtual. La
                    memoria virtual hace parecer que el sistema tiene
                    mas memoria que la fisica usando almacenamiento en
                    disco para ampliar la misma. La ventaja de esto es
                    que podemos ejecutar mas procesos que los que
                    quepan en memoria en un instante dado de manera muy
                    eficeinte.

 Procesos: Un proceso es un programa de computadora en accion, una
           entidad dinamica, su estado cambia constantemente a medida
           que es ejecutado. El kernel tiene la responsabilidad de
           comenzar los procesos, planificar su ejecucion de manera
           justa, enviarlos a espacio de intercambio (swap) cuando no
           hay mas memoria disponible y traerlos nuevamente a memoria
           cuando se libere espacio para que puedan seguir
           ejecutandose, otorgarles recursos y servir sus pedidos de
           interaccion con los dispositivos.

 Mecanismo de intercomunicacion entre procesos: Los procesos se
     comunican entre si y con el kernel para coordinar y sincronizar
     sus actividades. Linux soporta un numero de Mecanismos de
     Comunicacion entre Procesos (Inter-Process Communications - IPC),
     las señales y las cañerias son dos de ellos. A su vez. Linux posee
     otro mecanismo muy potente de comunicacion entre procesos que son
     los sockets, este mecanismo es muy importante para la
     implementacion de los protocolos de red utilizados en varios
     sistemas. Adicionalmente, se tiene colas de mensajes, semaforos y
     memoria compartida.

 Manejadores de dispositivos (device drivers): Uno de los objetos
     principales de un S.O. es ocultar a los usuarios las
     peculiaridades especificas del hardware sobre el cual se ejecuta.
     El CPU (Central Processing Unit) no es el unico dispositivo de
     hardware "inteligente" en una computadora. Cada dispositivo posee
     su controladora en hardware que conoce perfectamente las
     caracteristicas del mismo y puede manejar su operacion
     satisfactoriamente. El software que maneja y controla una
     controladora de hardware se conoce como manejador de dispositivo
     (device driver). El kernel de Linux posee una gran cantidad de
     manejadores de dsipositivos y les encarga a ellos el tratamiento
     de bajo nivel de los dispositivos, pero siempre supervisando su
     tarea.

 Sistemas de archivos: La habilidad de manejar los sistemas de archivos
     en necesaria para poder almacenar y recuperar informacion de los
     medios de almacenamiento. En el pasado, cada sistema manejaba su
     propio sistema de archivos. Una de las potencialidades de Linux es
     el soporte que tiene para una gran variedad de sistemas de
     archivos distintos. Esta caracteristica hace de Linux un sistema
     altamente flexible y hace posible que coexista con otros S.O.

 Redes: El trabajo en red y Linux son casi sinonimos. En sentido real,
        Linux es un producto de Internet o la World Wide Web (WWW).
        Linux posee soporte nativo para varios protocolos de red, como
        lo son TCP/IP, AppleTalk, etc.

El kernel, internemente, esta dividido en modulos que se ocupan cada
uno de una tarea en especial. Una sobre-simplificacion de la estructura
del kernel, se muestra en la figura 11.1.

                         /--------------------\
                        | Programas de usuario |\
                         \--------------------/  |
                            \---|---|---|-------/
                                |   |   |                    PROGRAMAS
 # # # # # # # # # # # # # # # #|# #|# #|# # # # # # # # # # # # # # # # # # # # #
                                |   |   |                     KERNEL
      _________________________\|/_\|/_\|/___________________________________
     |      .            Interfaz de llamdas al sistema                      |
      °°°°°°|°°°°°°°°°°°°°°°°°°°°|°°°°°°°°°°°°°°°°°°°|°°°°°°°°°°°°°°°°°|°°°°°
      _____\|/_____        _____\|/______       ____\|/_______     ___\|/__________
     | Manejo de   |      | Manejador de |     | Manejador de |   | Servicios de   |
     | sistemas de |      |  memoria     |     |  Procesos    |   | red abstractos |
     | archivos    |       °°°°°°°°°°°°°°       °°°°°°°°°°°°°°    |  (sockets)     |
     | virtuales   |                                               °°°°°°°|°°°°°°°°
      °°°°°°|°°°°°°                                                      \|/
           \|/                                                    |°°°°°°°°°°°°°°°°°|
     |°°°°°°°°°°°°°|                                              | Manejadores del |
     | Varios      |                                              |protocolo TCP/IP |
     | manejadores |                                              |_________________|
     | de sistemas |______________                                        |
     | de archivos |              °\                                     \|/
      °°°°|°°°°°°°°                 |                             |°°°°°°°°°°°°°°°°|
         \|/                       \|/                            | Manejador de   |
     |°°°°°°°°°°°°°|     |°°°°°°°°°°°°°°°°°°°°°|                  | tarjeta de red |
     | Manejador   |     | Manejador de        |                  |  Ethernet      |
     | de discos   |     | Unidad de diskettes |                   °°°°°°°|°°°°°°°°
     | rigidos IDE |     |                     |                          |
      °°°°|°°°°°°°°       °°°°°°°°°°|°°°°°°°°°°                           |
          |                         |                                     |               KERNEL
 # # # # #|# # # # # # # # # # # # #|# # # # # # # # # # # # # # # # # # #|# # # # # # # # # # # #
          |                         |                                     |               HARDWARE
         \|/                       \|/                                    |
  |°°°°°°°°°°°°°°°°°°|     |°°°°°°°°°°°°°°°°°°°°°|                       \|/
  | Disco Rigido IDE |     | Unidad de diskettes |                 |°°°°°°°°°°°°°°°°°°|
  |__________________|     |_____________________|                 | Tarjeta Ethernet |
                                                                    °°°°°°°°°°°°°°°°°°

                Figura 11.1: Partes importantes del kernel.

11.2 LA INTERACCION

Como dijimos anteriormente, en Linux, a diferencia de otros Unix, ni el
programador ni el usuario interactuan directamente con el kernel.
Existen dos mecanismos que son utilizados para interactuar con el S.O.
Ambos terminan ejecutando "llamadas al sistema" (system calls) que son
funciones que el kernel provee como servicios, y cada una de ellas
tiene un rol predeterminado, por ejemplo: abrir un archivo, iniciar un
proceso, mandar un mensaje a otro proceso, etc. Si la comunicacion
usuario-sistema operativo se realizara mediante llamadas al sistema,
seria todo muy engorroso y tedioso, ya que las mismas implementan
funciones de muy bajo nivel. Para, por ejemplo, listar los contenidos
de un directorio tendriamos que ejecutar una gran cantidad de llamadas
al sistema explicitamente, lo que es inviable para un usuario.

Las librerias del sistema y los programas de usuario nos brindan una
interfase mas amigable para poder comunicarnos con el sistema.

11.2.1 LAS LIBRERIAS DEL SISTEMA

Las librerias del sistema definen un conjunto de funciones mediante las
cuales las aplicaciones pueden interactuar con el kernel y que
implementan la mayoria de la funcionalidad del S.O. que no necesita los
privilegios que posee el codigo del kernel.

La interfaz del S.O., visibles a las aplicaciones, no es mantenida
directamente por el kernel, sino que las aplicaciones hacen llamadas a
las librerias del sistema que luego llaman a los servicios del S.O. si
es necesario.

Las librerias del sistema proveen muchos tipos de funcionalidad. En el
nivel mas simple, permiten a las aplicaciones realizar pedidos de
servicios al kernel. Las librerias pueden, tambien, proveer versiones
mas complejas de las llamadas al sistema. Por ejemplo: las funciones de
libreria del lenguaje C de manejo de archivos, estan todas
implementadas en las librerias del sistema, permitiendo asi un control
mas avanzado de entrada-salida de archivos que aquel que el kernel
provee. Las librerias del sistema tambien contiene rutinas que no
corresponden a las llamadas al sistema como lo pueden ser algoritmos de
ordenamiento, funciones matematicas, etc.

11.2.2 LAS UTILIDADES DEL SISTEMA

Las utilidades del sistema o programas del usuario, son programas que
realizan tareas individuales y especializadas. Algunas utilidades del
sistema se invocan una unica vez para inicializar y configurar algun
aspecto del sistema, otras; conocidas como "demonios", se ejecutan
permanentemente en "background" y manejan tareas de conexiones de red,
actualizacion de "archivos de log", aceptacion de pedidos de inicio de
sesion, etc.

No todas las utilidades del sistema sirven para adminsitrar puntos
claves del sistema. El entorno del S.O. Linux contiene un gran numero
de utilidades estandar para realizar tareas simples, de todos los dias,
como son listar directorios, mostrar el contenido de un archivo, etc.
Por mas que estas utilidades no realicen tareas del S.O. en si son una
parte muy importante del S.O. Linux.

11.3 ¿QUE SON LOS MODULOS?

El kernel de Linux es un "kernel monolitico". Esto quiere decir que es
un unico y largo programa donde todos los componentes funcionales del
mismo tiene acceso a todas las estructuras de datos internas y sus
rutinas. Esta caracteristica evidencia una falta de modularidad en el
diseño del kernel. Por ejemplo, si queremos agregar un dispositivo al
sistema, digamos una tarjeta de red, y el manejador de dispositivo no
se encuentra compilado en el kernel, tendremos que volver a compilar
"TODO" el kernel, que, como veremos mas adelante, es un proceso que
consume mucho tiempo.

Para evitar estas situaciones se aplica una estrategia parecida al uso
de librerias compartidas por los programas de usuario en tiempo de
ejecucion. Una gran cantidad de funcionalidad del kernel puede ser
compilada como "modulos" y el kernel puede cargar y descargar los
mismos a medida que los necesita. El kernel no necesita saber que
modulos van a ser cargados, los mismos son verdaderamente componentes
independientes.

Los modulos se cargan bajo demanda, es decir cuando son necesitados
para satisfacer el pedido del algun proceso, y se ejecutan en modo
privilegiado como todo el codigo del kernel de Linux, y, como
consecuencia tienen acceso completo a las capacidades del hardware de
la maquina donde se ejecutan.

Teoricamente, no existe ninguna restriccion en las tareas que un modulo
debe realizar; tipicamente, un modulo puede implementar un manejador de
dispositivo, un sistema de archivos o un protocolo de red.

Existen muchas razones por las cuales es conveniente la utilizacion de
modulos del kernel.

El codigo de Linux es gratis, por lo tanto cualquier persona que quiera
desarrollar un nuevo manejador de dispositivos puede insertarlo en el
kernel, compilarlo y reconstruir el kernel, instalarlo y reiniciar el
sistema con la nueva funcionalidad, pero esta tarea se puede volver
altamente tediosa ya que cada vez que la persona modifique el manejador
de dispositivo debera reconstruir e instalar el kernel para poder
testearlo. Si se utilizan modulos, se puede compilar solamente el
modulo y ser insertado y eliminado del kernel sin necesidad, siquiera,
de reiniciar el sistema !! :)

Finalmente, los modulos del kernel permiten al sistema Linux ser
configurado con un kernel minimo estandar sin ningun manejador extra
formando parte del mismo. Cualquier modulo que el usuario necesite
puede ser cargado explicitamente al iniciarse el sistema o cargado
automaticamente por el sistema al realizarse una demanda y descargado
cuando el sistema detecte que ya no se necesita.

11.4 PERSONALIZANDO EL KERNEL

Una de las caracteristicas mas importantes del S.O. Linux es su
flexibilidad, ya que es posible que podamos "poner a punto" el kernel y
hacerlo a la medida de nuestro sistema, algo es totalmente imposible en
otros S.O. comerciales.

El hecho de que el S.O. Linux se distribuye con su codigo fuente
completo, hace que podamos elegir que queremos que forme parte del
kernel y que queremos dejar afuera. Por ejemplo: Linux posee una gran
cantidad de manejadores de dispositivos SCSI, pero si nosotros no
poseemos ningun dispositivo de este tipo, entonces podemos hacer que el
codigo de estos manejadores no se compile ni se incluya en la
construccion del kernel, obteniendo asi un kernel mas pequeño que
ocupara menos memoria. Ya que, como dijimos antes, el kernel es la
parte del S.O. que se encuentra residente en memoria, es importante
reducir el tamaño del mismo para liberar mas memoria para los procesos.
Gracias a esta caracteristica, Linux exige mucha menor cantidad de
memoria para trabajar que otros S.O. Por esto es totalmente viable
configurar un kernel minimo, para trabajar, por ejemplo, en una maquina
Intel 80386 con 2 Mb de memoria Ram.

La personalizacion del kernel es una tarea que exige que tengamos un
alto grado de conocimiento de las caracteristicas del hardware y de los
servicios que necesitamos que funcionen en nuestro sistema. Un punto
clave en la personalizacion del kernel es la configuracion del mismo.

11.4.1 ELIGIENDO LA CONFIGURACION ADECUADA

   NOTA: Suponiendo que tenemos las fuentes del kernel instaladas
         correctamente, las mismas se encontraran en el directorio
         /usr/src/linux y todos los comandos que se muestran en la
         discusion que sigue deben ser ejecutados en ese directorio,
         salvo que se indique lo contrario. En la seccion 11.5.2 se dan
         las instrucciones para realizar la instalacion de las fuentes
         del kernel, ya sea porque no se encuentran instaladas o porque
         queremos instalar una nueva version.

Cuando configuramos el kernel, estamos eligiendo los servicios que
queremos que formen parte del mismo. Existen varias formas de realizar
esta configuracion. Las mismas son:

make config Solo necesita que tengamos corriendo la shell bash. Ejecuta
             un script que nos va realizando una serie de preguntas. Se
             vuelve un proceso tedioso y no tenemos forma de volver
             atras en caso de un error.

make menuconfig Es una interfaz basada en menues de configuracion.
                 Tenemos un menu principal que se divide en sub-menus
                 de acuerdo a una serie de items. Es mucho mas comodo
                 de utilizar y no requiere interfaz grafica.

make xconfig Solo para aquellos que puedan ejecutar el sistema X
              Windows. Es una interfaz basada en ventanas y botones. Es
              mucho mas comoda para trabajar.

En base a las caracteriticas de nuestro sistema, debemos elegir una
herramienta de configuracion de las tres enumeradas anteriormente y asi
comenzar la configuracion.

ELECCIONES DE LAS OPCIONES

Sin importar de que herramienta usemos para configurar el kernel,
tendremos que seleccionar una opcion para cada item del kernel. Cada
item posee una opcion "y" (yes) y otra "n" (no). Algunas poseen una
opcion "m" (module) que significa que se compilara ese item pero no
directamente dentro del kernel, sino como un modulo independiente.

A continuacion describiremos las opciones basicas a tener en cuenta al
momento de compilar el kernel. Esta lista, obviamente, es no exhaustiva
y no prentende ser una guia precisa de la configuracion de un kernel,
sino que trata de ser una ayuda para un novato a la hora de configurar
un kernel.

CODE MATURITY LEVEL OPTIONS: El S.O. Linux se encuentra en constante
evolucion. Por lo tanto siempre existen caracteristicas que se
encuentran en un estado experimental. Lo que quiere decir que algunas
cosas no se encuentran totalmente testeadas y pueden ser peligrosas
para el sistema. Podemos elegir que el configurador nos deje o no
agregar caracteristicas experimentales al kernel. En general, las
caracteristicas experimentales son utilizadas por desarrolladores y se
recomienda que los usuarios novatos las dejen de lado.

PROCCESOR TYPE AND FEATURES: Aqui configuramos el tipo de procesador de
nuestro sistema. Otro item importante es si deseamos emulacion de
instrucciones matematicas; maquinas superiores a 486 SX poseen
coprocesador matematico en hardware, por lo que si tenemos una maquinas
de estas debemos contestar que no.

LOADABLE MODULE SUPPORT: Aqui especificamos si queremos soporte para
modulos en nuestro kernel. Si vamos a compilar algun servicio como
modulo es indispensable responder "y" a la pregunta Enable lodable
module support ?.

GENERAL SETUP: En esta opcion elegimos parametros generales de nuestro
sistema. Elegimos si queremos soporte para trabajar en red, soporte
para dispositivos PCI, soporte para puertos paralelos (indispensable
para instalar una impresora, o cualquier dispositivo que utilice el
puerto paralelo) y otro items avanzados como lo son Advanced Power
Management (para computadoras portatiles), mecanismos de comunicacion
entre procesos y soporte para distintos formatos de archivos
ejecutables.

PLUG AND PLAY SUPPORT: Si tenemos algun dispositivo periferico que sea
compatible con la norma Plug and Play, debemos contestar "y" al item
Plug and Play support.

BLOCK DEVICES: En esta seccion elegimos el tipo de los dispositivos de
almacenamiento de archivos que vamos a utilizar, como por ejemplo, si
queremos soporte para unidad de diskettes, para discos rigidos IDE,
CD-ROM's IDE/ATAPI, dispositivos de cinta magnetica, soporte para
discos ULTRA-DMA, y otros dispositivos de bloque avanzados. Si estamos
desorientados de que elegir se recomienda soporte para discos IDE,
diskettera normal, CD-ROM's ATAPI y dejar el resto de las opciones
predeterminadas.

NETWORKING OPTIONS: Editar solo si necesitamos soporte para trabajar en
red. Esta seccion esta llena de opciones avanzadas que en general, solo
son seteadas por un adminsitrador de red. Sin embargo, podemos optar en
algunos items. Si queremos soporte para trabajo en red, debemos
asegurarnos de que el item TCP/IP Networking este seleccionado. El
resto de las opciones podemos dejarlas en su estado predeterminado, a
no ser que sepamos lo que estamos haciendo !!! Si nececitamos
conectividad con maquinas corriendo Novell/Netware debemos seleccionar
el soporte para protocolo IPX.

SCSI SUPPORT: Solo si tenemos algun dispositivo SCSI para configurar.
En esta seccion hay una gran variedad de dispositivos para elegir.
Debemos averiguar que marca y modelo es el nuestro y que
caracteristicas posee para seleccionar el adecuado. Podemos elegir que
el manejador de dispositivos se compile como modulo si no sera
frecuentemente utilizado.

NETWORK DEVICE SUPPORT: En esta seccion seleccionamos que tipo de
interfases de red instalaremos en nuestro sistema. Hay soporte para una
gran cantidad de tarjetas Ethernet, tanto ISA, VLB o PCI. Tenemos
soporte para los dispositivos Frame Relay, FDDI, etc. Si vamos a
conectar dos maquinas mediante un cable debemos elegir PLIP (cable
paralelo) o SLIP (cable serie). Para este ultimo tambien podemos elegir
soporte para PPP (Point to Point Protocol), el cual es indispensable si
queremos realizar conexiones a Internet mediante un ISP (Internet
Service Provider) Proveedor de Servicios Internet.

CHARACTER DEVICES: Aqui seleccionamos que dispositivos de caracter
queremos utilizar. Se recomienda elegir consolas virtuales, soporte
para puertos serie estandar, soporte para impresora en puerto paralelo,
soporte para mouse (no serial) en caso de tener un mouse PS/2,
Logitech, etc.

FILESYSTEMS: Esta es una de las secciones mas importantes de la
configuracion del kernel. Aqui elegimos que tipos de sistemas de
archivos podran ser accedidos mediante nuestro kernel. Es indispensable
el soporte para ext2fs que es el sistema de archivos de Linux. Se deben
elegir FAT y VFAT para poder leer y escribir sistemas de archivos de
MS-DOS y Windows 95 respectivamente, el sistema de archivos ISO9660
para leer CD-ROM's de datos, las extensiones Joliet para CD-ROM's de
Microsoft nos permiten entender el formato de nombres largos de los
CD-ROM's que tienen este formato; el soport para NTFS nos permite leer
informacion de los sistemas de archivos de Windows NT; los demas son
sistemas de archivos raramente utilizados y, es preferible
desactivarlos, si no tenemos la necesidad de utilizarlos. El codigo
para poder entender los sistemas de archivos adicionales se suele
compilar como modulos ya que no son utilizados constantemente y podemos
aprovechar para poder reducir el tamaño del kernel.

NATIVE LANGUAGE SUPPORT: En esta seccion podemos elegir que tipo de
lenguaje nativo queremos utilizar. En general se seleccionan las
opciones Codepage 437, Codepage 850 y NLS ISO-8859-1 (Latin 1) para
nuestro pais y paises con lenguajes similares. Los demas codigos de
paginas y de caracteres se utilizan para otros lenguajes: hebreo,
turco, griego, arabe, etc.

SOUND: En esta seccion seleccionamos si queremos o no soporte para
tarjeta de sonido y en caso de ser afirmativa la respuesta elegimos
para que tipo de tarjeta queremos tener soporte. Las tarjetas mas
conocidas y utilizadas son las tarjetas Sound Blaster, Pro Audio
Spectrum, Microsoft Sound System, Ensoniq Soundscape, etc. Es necesario
aclarar que el driver de Sound Blaster es solo para tarjetas que son
100% compatibles con Sound Blaster, que no es el caso de la mayoria de
las tarjetas de sonido genericas que se venden para computadoras
personales. Existen muchisimos modelos que claman ser compatibles Sound
Blaster, pero nos engañan, ya que la compatibilidad la emulan por
software cargando un manejador de dispositivo residente (que solo
funciona con MS-DOS o Windows) que se comunica con la tarjeta. En
Linux, obviamente no podremos cargar este manejador y tampoco podremos
hacer funcionar la tarjeta con el manejador de Sound Blaster. Sin
embargo, algunas de estas tarjetas son compatibles con MAD16 y
funcionan perfectamente con este manejador. Encontramos, tambien
soporte para muchas otras tarjetas menos conocidas que las nombradas
anteriormente, y ademas soporte para poder trabajar con MIDI. Se
recomienda compilar los manejadores que necesitemos como modulos ya que
resulta muy practica y facil la instalacion y la configuracion
posterior de la tarjeta de sonido.

 NOTA: Cada item posee un cuadro de ayuda donde se explica exactamente
       para que sirve. En caso de desorientacion o desconociemiento se
       recomienda LEER la explicacion que alli se encuentra. En caso de
       dudas, dejar la opcion predeterminada.

CODIGO INTEGRADO EN EL KERNEL VS MODULOS

Cuando debemos decidir si un item debe ser compilado como parte del
kernel o como modulo independiente debemos tener en cuenta los
siguientes puntos:

 * Si el servicio va a ser utilizado infrecuentemente y su eficiencia
   no es critica para el funcionamiento del sistema, entonces nos
   conviene que se instale como modulo, ya que no ocupara memoria
   mientras no se necesite.

 * Hay servicios que es necesario que se encuentren instalados al
   iniciarse el sistema. En estos casos es conveniente que se instalen
   como parte del kernel, ya que los modulos se suelen cargar despues
   de que el sistema se inicio y consecuentemente luego de que fuera
   necesitado.

 * Cuando un servicio se compila como modulo tenemos la ventaja de que
   no ocupara espacio innecesario, pero tenemos la desventaja de que
   cuando queremos utilizar el modulo tenemos una sobrecarga. Cuando
   queremos utilizar un servicio que ha sido compilado como modulo,
   debemos cargarlo explicitamente o el mismo puede ser configurado
   para ser cargado automaticamente, pero de todas formas, el kernel
   debe realizar una serie de operaciones para vincular los modulos
   dinamicamente y cargarlos para que puedan ser utilizados. Estas
   operaciones no son necesarias cuando compilamos el servicio como
   parte del kernel.

 * Si el tamaño del kernel nos condiciona rigidamente, entonces debemos
   utilizar los modulos tanto como sea posible. Es normal configurar un
   kernel que haga uso intensivo de modulos y lograr que el tamaño del
   mismo ronde los 400 K.

11.4.2. COMPILANDO EL KERNEL

Luego de que hayamos configurado nuestro kernel pasamos a la etapa
donde construimos el mismo. Esta etapa es un proceso facil de realizar
(desde el punto de vista del usuario), pero, en contrapartida, nos
lleva mucho tiempo. Este proceso realiza la compilacion de todos los
elementos seleccionados en la etapa de configuracion. La compilacion es
un proceso que realiza un uso intensivo del procesador y el tiempo que
tardaremos en compilar el kernel depende exclusivamente de la velocidad
y potencia de nuestro procesador y de la cantidad de memoria del
sistema. Dependiendo de nuestra maquina podemos tardar desde 15 minutos
hasta 1 hora o mas todavia.

  NOTA: Si todavia no le tomaron el gustito a los modulos, prueben de
        olvidarse de compilar algo como parte del kernel y luego tener
        que volver a compilarlo completamente solo para agregar ese
        servicio.

CALCULANDO LAS DEPENDENCIAS

Las fuentes del kernel estan formadas por un gran numero de archivos y
componentes que se encuentran vinculados por relaciones de dependencia.
Estas relaciones de dependencia entre los objetos del kernel deben ser
calculadas de acuerdo a la configuracion del kernel que hayamos
elegido. El siguiente comando calculara las dependencias:

 ==> make dep

LIMPIANDO LO VIEJO

Si no es la primera vez que utilizamos las fuentes del kernel para
compilarlo, debemos tener en cuenta que existen archivos compilados del
kernel anterior y es indispensable eliminarlos antes de comenzar el
proceso de construccion. El siguiente comando se ocupara de limpiar
todos los archivos innecesarios:

 ==> make clean

CONSTRUYENDO EL KERNEL

Para compilar los kernels 2.2.x debemos asegurarnos de tener instalada
la version 2.7.2 del compilador de C/C++ gcc, o alguna mas nueva. Para
averiguar esto podemos ejecutar el siguiente comando:

 ==> gcc --version

 Para construir el kernel debemos ejecutar

 ==> make zImage

Este es proceso que tarda mas tiempo y genera una imagen comprimida del
kernel. Una vez que este proceso termina el kernel se encuentra listo
para ser instalado. En caso de haber seleccionado demasiados servicios
para que sean compilados como parte del kernel, el proceso de
construccion se abortara quejandose de esto. Para contrarrestar esto
podemos probar con el siguiente comando:

 ==> make bzImage

Si el proceso se sigue quejando, entonces debemos eleminar alguno de
los servicios elegidos o seleccionarlos para que se compilen como
modulos, y luego volver a calcular las dependencias, limpiar los
archivos y comenzar de nuevo la construccion.

11.4.3 COMPILANDO LOS MODULOS

Si en la etapa de configuracion seleccionamos algun item para que sea
compilado como modulo, entonces debemos ejecutar el siguiente comando:

 ==> make modules

Este comando realiza la compilacion de los modulos que seleccionamos en
la etapa de configuracion.

11.4.4 INSTALANDO LOS MODULOS

En lo que respecta a los modulos, nos resta instalarlos. Los modulos
son normalmente instalados en el directorio /lib/modules. En este
directorio encontraremos un subdirectorio por cada version kernel para
la que hayamos instalado modulos anteriormente.

Ejecutando el siguiente comando, instalaremos los modulos en ese
directorio bajo el subdirectorio correspondiente a la version del
kernel que estemos ejecutando.

 ==> make modules_install

11.4.5 INSTALANDO EL NUEVO KERNEL

Una vez que tenemos nuestro kernel compilado debemos instalarlo para
que el sistema comience a trabajar con el mismo. La mayoria de los
usuarios de Linux utilizan el programa LILO (LInux LOader) para
instalar el kernel. LILO es un programa facil de utilizar, aunque el
archivo de configuracion /etc/lilo.conf suele confundir un poco a los
usuarios novatos. El archivo de configuracion debe parecerse al que se
muestra en la figura 11.2.

 # cat /etc/lilo.conf
 boot=/dev/hda
 map=/boot/map
 install=/boot/boot.b
 image=/boot/vmlinuz
         label=linux
         root=/dev/hda1
         read-only

        Figura 11.2: Un archivo de configuracion del programa LILO.

 Tres puntos importantes a tener en cuenta:

 1. La linea image=...: Aqui le indicamos a LILO la ruta donde se
                        encuentra la imagen comprimida del kernel.

 2. La linea label=...: Esta opcion le indica al programa que estiqueta
                        usar para ese kernel. La etiqueta es util en
                        caso de tener mas de un S.O. en la misma
                        maquina, ya que LILO nos permite iniciar
                        cualquiera de ellos eligiendo la respectiva
                        etiqueta.

 3. La linea root=...: Con esta opcion le indicamos a LILO cual es la
                       particion raiz de nuestro sistema.

Debemos configurar estas opciones en el archivo de configuraciones,
guardarlo y luego copiar la imagen comprimida del kernel que se
encuentra en el dirctorio /usr/src/linux/arch/i386/boot bajo el nombre
zImage o bzImage, segun hayamos elegido al construirlo, a el lugar que
le fue indicado a LILO en el archivo de configuracion.

Luego debemos ejecutar lilo (o /sbin/lilo si la shell no lo encuentra).
Esto hara que LILO lea el archivo de configuracion e instale el nuevo
kernel bajo las opciones especificadas.

Para poder trabajar con el nuevo kernel, resta reiniciar el sistema. La
instalacion de un nuevo kernel es uno de los unicos motivos por los
cuales es necesario reiniciar el sistema, ya que no nos queda otra
opcion.

En general podremos reiniciar el sistema ejecutando el comando:

 ==> reboot

  o equivalentamente

 ==> init 6

11.4.6 CARGANDO Y DESCARGANDO LOS MODULOS

Una vez que iniciamos el sistema con el nuevo kernel y verificamos que
todo funciona correctamente, podemos comenzar a probar los modulos
seleccionados y compilados anteriormente.

Los comandos referidos a la manipulacion de modulos son los siguientes:

 * lsmod (list modules): Muestra una lista de los modulos cargados
                         actualmente.

 * isnmod (insert module): Carga un modulo en memoria como parte del
 kernel.

 * rmmod (remove module): Elimina un modulo cargado en memoria.

Inicialmente, no se encuentra cargado ningun modulo en memoria. Por lo
tanto, al ejecutar lsmod obtendremos una lista vacia:

 # lsmod
 Module             Size     Used by

En la figura 11.3 se muestra el contenido de los directorios que
contienen los modulos en un sistema.

Ilustraremos la carga y descarga de los modulos con el modulo minix que
nos permite montar sistemas de archivos del S.O. Minix. Veamos que pasa
si queremos montar un diskette con sistema de archivo minix sin tener
el modulo cargado:

 # mount -t minix /dev/fd0 /mnt/floppy
 mount: fs type minix not supported by kernel

El comando mount nos indica que hay un error, ya que el sistema de
archivos Minix no se encuentra soportado por el kernel. Para poder
montar el sistema de archivos de Minix debemos cargar el modulo minix.
Para cargar el mismo ejecutamos el comando insmod y luego verifiamos
que haya sido cargado:

 # insmod minix
 # lsmod
 Module             Size     Used by
 minix             22568      0  (unused)

Una vez que tenemos el modulo caragado como parte del kernel podemos
montar tranquilamente el diskette. Notemos que el modulo esta cargado
pero nadie lo esta utilizando. Veamos como montar el diskette:

 # mount -t minix /dev/fd0 /mnt/floppy lsmod
 Module             Size     Used by
 minix             22568      1

Como vemos, ahora el modulo esta siendo usado por 1 servicio ya que al
montar el diskette el modulo se utiliza hasta que el mismo se desmonte.
Una vez que ya no necesitamos utilizar el diskette lo desmontamos y
luego verificamos que el modulo ya no esta siendo utilizado:

 # rmmod minix
 # lsmod
 Module             Size     Used by

11.4.7 LAS DEPENDENCIAS ENTRE LOS MODULOS

Asi como los distintos componentes que forman parte del kernel poseen
dependencias, los modulos tambien se vinculan por relaciones de
dependencia. En el caso del ejemplo anterior del modulo minix vimos que
el mismo no depende de ningun otro modulo, por lo que podemos cargarlo
directamente y comenzar a utilizarlo. No todos los modulos poseen esta
caracteristica y, como consecuencia, puede no ser tan facil cargarlos.

 # pwd
 /lib/modules/2.2.5
 #ls *
 modules.dep

 block:
 loop.o

 fs:
 minix.o     msdos.o

 misc:
 ad1848.o    af_spx.o    ipx.o    mad16.o    sb.o    uart401.o

 net:
 8390.o      bsd_comp.o    dummy.o    ne.o    ppp_deflate.o

             Figura 11.3: Una serie de modulos instalados

Suponiendo el mismo conjunto de modulos de la figura 11.3 queremos
instalar otro modulo.

Uno de los items que seleccionamos para que sea compilado como modulo
en la etapa de configuracion es el manejador de dispositivo de una
placa de red compatible NE2000. Una vez que examinamos el subdirectorio
net encontramos el modulo ne y lo instalamos con el comando insmod de
la siguiente forma:

 # insmod ne
 /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_open
 /lib/modules/2.2.5/net/ne.o: unresolved symbol ethdev_init
 /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_interrupt
 /lib/modules/2.2.5/net/ne.o: unresolved symbol NS8390_init
 /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_close

¿ Que paso ?

La respuesta es la siguiente: el modulo no puede resolver ciertos
simbolos. Esto quiere decir que depende de algun otro modulo. Por lo
tanto antes de cargar el modulo "ne" debemos cargar los modulos de los
cuales depende. Pero... ¿ cuales son los modulos de los que depende ?.
En este caso, una detallada examinacion de los mensajes de error del
comando insmod pueden hacernos sospechar que el numero 8390 que por ahi
anda dando vueltas implica que el modulo 8390, que se encuentra en el
mismo directorio que ne, es necesario para poder cargarlo. Por lo
tanto, probamos:

 # insmod 8390
 # insmod ne

Efectivamente esto funciono, y lo podemos verificar con el comando
lsmod. En la tabla que nos muestra este comando vemos que el modulo
8390 es utilizado por el modulo ne.

 # lsmod
 Module             Size     Used by
 ne                 5980      1
 8390               5940      0  [ne]

Esta aproximacion, claramente, no es practica. Un modulo puede depender
de varios y podemos tener situaciones donde las dependencias entre
modulos son transitivas, es decir, que un modulo M3 depende de otro
modulo M2 y este, a su vez, depende de otro modulo M1. Asi vemos que
las cosas se complican; si no contamos con una herramienta que realice
automaticamente estas tareas de resolusion de dependencias, la carga y
descarga de modulos se vuelve una tarea bastante complicada.

Por suerte, existen dos utilidades que nos resuelven estos problemas
ideseables.

11.4.8 UNA CARGA MAS INTELIGENTE

El programa depmod es una utilidad que sirve para calcular
automaticamente las dependencias entre los modulos. Puede ser utilizado
de varias formas, pero la mas comun de ellas es la siguiente:

 ==> depmod -a

Este comando ejecutara depmod con la opcion -a (all) y asi calculara
todas las dependencias entre los modulos. Este comando es ejecutado,
usualmente, como parte del inicio del sistema.

Una vez que se calculan las dependencias entre los modulos, podemos
cargar los modulos sin saber que dependencias tienen, ya que el sistema
se ocupara de cargar los modulos necesarios (de acuerdo a las
dependencias) de forma totalmente transparente al usuario. Para poder
realizar la carga de los modulos de esta forma, debemos utilizar el
comando modprobe.

Veamos un ejemplo de esta estrategia:

Queremos cargar el modulo mad16, que sabemos es el manejador de
dispositivo de un tarjeta de sonido. Supongamos que la misma esta
configurada para trabajar en el puerto 0x530, utiliza la interrupcion
(IRQ) 10 y el acceso directo a memoria (DMA) 1. Por supuesto, no
tenemos las mas minima idea de que modulos es necesario cargar para que
mad16 funcione correctamente. No hay problema, ejecutando los
siguientes comandos todo se hara de forma automatica y transparente.

 # lsmod
 Module             Size     Used by
 # depmod -a
 # modprobe mad16 io=0x530 irq=10 dma=1
 # lsmod
 Module             Size     Used by
 mad16              6548      0  (unused)
 uart401            5572      0  [mad16]
 ad1848            15088      0  [mad16]

Como vemos, al comenzar no tenemos ningun modulo cargado. Antes de
cargar el modulo mad16 realizamos el calculo de las relaciones de
dependecia entre los modulos. Luego cargamos el modulo mad16. Notemos
que este modulo (como muchos de los que implementan manejadores de
dispositivos de placas de sonido) necesitan parametros adicionales para
poder ser cargados. En este caso son necesarios el puerto de
entrada/salida, la interrupcion y el acceso directo a memoria que
utiliza la misma. Luego de cargar el modulo, realizamos un listado de
los modulos que se encuentran cargados y descubrimos que el modulo
mad16 posee dos dependencias: uart401 y ad1848. Estos modulos fueron
cargados automaticamente para poder cargar el modulo mad16.

Para descargar el modulo y todas sus dependencias (que no se encuentren
en uso) podamos ejecutar modprobe -r:

 # modprobe -r mad16
 # lsmod
 Module             Size     Used by

11.5 ACTUALIZANDO NUESTRO KERNEL

Una de las grandes ventajas del S.O. Linux es su desarrollo. El kernel
del sistema se encuentra en constante actualizacion y desarrollo, a tal
punto que podemos disponer de una nueva version del mismo cada, mas o
menos, una o dos semanas. Comparemos esto con la frecuencia de
actualizacion de otros S.O., si es que tiene actualizacion :)

Es importante actualizar nuestro kernel ya que a medida que los kernels
evolucionan se corrigen muchos "bugs", son capaces de trabajar con
nuevos dispositivos, se agrega soporte para otros sistemas de archivos,
pueden mejorar el manejo de puntos claves (memoria, procesos, etc.),
pueden ser mas rapidos y mas estables, etc.

11.5.1 OBTENIENDO EL KERNEL

Existen varias formas de obtener las fuentes del kernel. Una de ellas
es mediante Internet ya que existen varios sitios donde se publican las
mismas. Ver al apendice A para obtener las direcciones de los sitios.
Existen, tambien varias distribuciones en CD-ROM's que traen las
fuentes de los kernels.

Un punto importante a tener en cuenta al momento de conseguir las
fuentes del kernel es la version de las mismas.

VERSIONES DEL KERNEL

Las fuentes del kernel poseen un sistema de numeracion muy simple.
Cualquier version par de las fuentes representa un kernel estable, por
ejemplo 2.0 o 2.2. Una version impar representa un kernel en estado
experimental o en desarrollo (las famosas versiones "beta"), por
ejemplo 2.1.

A su vez sobre cada version se publican varios "releases", es decir
subversiones de los mismos. Asi podemos tener versiones como 2.0.32,
2.1.125, 2.2.5, etc. En general, existen un gran numero de releases
betas antes de publicar la siguiente version estable. Por ejemplo,
antes de que se publicara la version 2.2 del kernel se realizaron mas
de 130 releases del kernel 2.1. Podemos ver el grado de testeo y
correccion de los kernels antes de ser denominados "estables" y por lo
tanto ser considerados confiables y aceptables. La politica de los
desarrolladores de Linux es testear intensivamente los kernels antes de
publicar una nueva version estable, por lo que podemos estar seguros de
que si la version es par es "realmente estable". Comparemos esto con
las estrategias de desarrollo de otros S.O.

11.5.2 INSTALANDO LAS FUENTES DEL KERNEL

Las fuentes del kernel son provistas en un archivo agrupado y
comprimido con el formato tar y gzip o alternativamente bzip2. Si la
version es, digamos, 2.2.1, entonces el archivo se llamara
linux-2.2.1.tar.gz o linux-2.2.1.tar.bz2. Estas fuentes deben ser
instaladas dentro del directorio /usr/src.

Como es posible que tengamos en ese mismo diretorio las fuentes de
kernels de versiones anteriores, es recomendable realizar un par de
cosas antes de descomprimir las nuevas fuentes. Supongamos que dentro
del directorio /usr/src tenemos instaladas las fuentes del kernel
2.1.125 y queremos instalar las fuentes del nuevo kernel 2.2.5. El
contenido del directorio /usr/src es el siguiente:

 # pwd
 /usr/src
 # ls -l
 lrwxrwxrwx    1 root     root        11 May 5 23:58 linux -> linux-2.1.125
 drwxr-xr-x   15 root     root      1024 May 5 23:50 linux-2.1.125
 -rw-r--r--    1 root     root  13721493 May 9 22:17 linux-2.2.5.tar.gz

Las fuentes del kernel actuales deben encontrarse en el directorio
linux. Es conveniente que se realice un directorio para cada version de
las fuentes y crear un link simbolico linux que apunte al directorio
respectivo. En este caso el link apunta al directorio linux-2.1.125 ya
que es la unica version que tenemos.

Si descomprimimos las nuevas fuentes en este momento tendremos un
problema: En general, estos archivos comprimidos viene armados para que
al descomprimirlos se instalen en el directorio linux, pero como
nosotros tenemos el link simbolico apuntando al directorio
linux-2.1.125, al descomprimir las fuentes, estas se instalaran en este
ultimo directorio y sobrescribiran las fuentes del kernel 2.1.125. Para
evitar esto, debemos eliminar el link simbolico antes de descomprimir
las nuevas fuentes. En la figura 11.4 vemos como hacer para instalar
correctamente las fuentes del kernel y conservar las anteriores.

 # rm linux
 # ls -l
 drwxr-xr-x  15 root    root      1024 May 5 23:50 linux-2.1.125
 -rw-r--r--   1 root    root  13721493 May 9 22:17 linux-2.2.5.tar.gz
 # tar -zxvf linux-2.2.5.tar.gz
 # ls -l
 drwxr-xr-x  15 root    root      1024 May 9 22:30 linux-2.1.125
 drwxr-xr-x  15 root    root      1024 May 5 23:50 linux-2.2.5
 -rw-r--r--   1 root    root  13721493 May 9 22:17 linux-2.2.5.tar.gz
 # mv linux linux-2.2.5
 # ls -l
 drwxr-xr-x  15 root    root      1024 May 5 23:50 linux-2.1.125
 drwxr-xr-x  15 root    root      1024 May 9 22:32 linux-2.2.5
 -rw-r--r--   1 root    root  13721493 May 9 22:17 linux-2.2.5.tar.gz
 # ln -s linux-2.2.5 linux
 # ls -l
 lrwxrwxrwx   1 root    root         9 May 9 23:33 linux -> linux-2.2.5
 drwxr-xr-x  15 root    root      1024 May 5 23:50 linux-2.1.125
 drwxr-xr-x  15 root    root      1024 May 9 22:32 linux-2.2.5
 -rw-r--r--   1 root    root  13721493 May 9 22:17 linux-2.2.5.tar.gz

      Figura 11.4: Descomprimiendo las fuentes del nuevo kernel.

Para completar la instalacion del nuevo kernel debemos realizar un paso
adicional para asegurarnos de que no tenemos ningun vinculo incorrecto.
Debemos cambiar el directorio /usr/src/linux y ejecutar el siguiente
comando:

 ==> make mrproper

Ahora si tenemos las fuentes del kernel correctamente instaladas.


CAPITULO 12

ASPECTOS AVANZADOS DE LA SHELL

Ya hemos discutido la utilizacion de la shell en el capitulo 6 y la
hemos utilizado interactivamente de manera intensiva. Los usuarios
utilizan la shell, en su gran mayoria, interactivamente de las
siguientes formas:

 * Ingresando comandos simples (ls).

 * Utilizando las facilidades de generacion de nombres de archivos (ls
   *.tex).

 * Especificando redireccion de la entrada y/o salida (ls > iofile).

 * Construyendo cañerias (ls | wc -l).

Estas tecnicas son potentes y extremadamente utiles, pero solo son una
pequeña parte de las capacidades de la shell.

Elegir una shell interactiva es en realidad una cuestion de gusto.
Muchos usuarios prefieren la shell "C" para uso interactivo. La misma
fue la primera shell que implemento una lista historica de los comandos
para poder ser reutilizados facilmente sin tener que tipearlos
nuevamente. Tambien fue la primer shell que implemeto el control de
procesos, es decir, como poder manipular procesos que se ejecutan en
background. Elegir una shell para escribir un scripts es una tarea
mucho mas facil. Si las necesidades del usuario son modestas y se
conocen las capacidades de la shell de "C", entonces es conveniente
utilizarla, pero la mayoria de los usuarios, hoy, prefieren utilizar la
shell de "Bourne" para escribir scripts.

La shell de "Bourne" (sh) es la unica shell que se encuentra en todos
los sistemas Unix, incluido Linux, que ademas posee la shell "Bourne
Again" (bash) que es totalmente compatible con la shell de Bourne y
agrega caracteristicas importantes y utiles de la shell de "Korn" (ksh)
y la shell de "C" (csh). La shell de Bourne Again es la shell
predeterminada de Linux.

La shell de "Bourne" fue diseñada desde un comienzo como un lenguaje de
programacion, lo que explica las capacidades de la misma como lenguaje
de programacion lo que la hace la shell mas ampliamente aceptada como
lenguaje de programacion de scripts.

Este capitulo no intenta desarrollar completamente las capacidades de
la shell de Bourne como lenguaje de programacion, sino que pretende ser
una introduccion a la programacion de scripts, tarea no indispensable
para un usuario ordinario, pero que puede hacer que muchas de las
tareas a realizar en el sistema sean mas faciles y practicas.
Analizaremos tambien los aspectos de la shell que forman el entorno del
usuario, como lo son: variables de entorno, variables de shell, el
camino de busqueda (path), etc.

12.1 PROGRAMAS DE SHELL (SRIPTS)

Un script es cualquier comando o secuencia de comandos de Linux
almacenados en un archivo de texto. Usualmente el termino de script se
utiliza cuando el archivo solo contiene una simple secuencia de
comandos; el termino programa de shell identifica un archivo que
contiene una estructura de comandos mas compleja.

Un usuario puede ejecutar un programa de shell o un script directamente
ingresando el nombre del archivo en la linea de comandos. Los programas
de la shell se tratan de la misma forma que cualquier otro ejecutable.
Por supuesto, debemos tener permiso de ejecucion sobre el archivo que
contiene el script y ademas la shell debe poder encontrar el archivo
dentro del camino de busqueda (path).

12.2 VARIABLES DE LA SHELL

Como en cualquier lenguaje de programacion, las variables de la shell
se utilizan para almacenar valores para luego poder ser utilizados. El
termino variable sugiere que el valor de la misma puede cambiar durante
el flujo de ejecucion.

Las variables de la shell solo pueden guardar cadenas de texto
(strings). Los numeros, en las variables de la shell, son almacenados
como cadenas de caracteres.

Para asignar valores a las variables utilizamos el comando de
asignacion (=). El valor almacenado en una variable se denota como
$var, donde var es la variable en cuestion. Siempre que usemos el
nombre de la variable, este denotara el nombre de la variable y no su
valor, a diferencia de la mayoria de los lenguajes de programacion.
Veamos un ejemplo de esto en la figura 12.1.

 # Boca = campeon
 bash: Boca: command not found
 # River=campeon
 # echo River
 River
 # echo $River
 campeon
 # echo $Boca

 # River=Capo
 # echo $River
 Capo

       Figura 12.1: Seteando y consultando variables de la shell.

En esta figura vemos varias cosas interesantes ( Je, je ademas de que
la shell no conoce a Boca y si a River :):

 * Debemos ser cuidadosos al utilizar el comando de asignacion, ya que
   la shell nos obliga a ponerlo inmediatamente depues del nombre de la
   variable, ya que sino la primer palabra es interpretada como un
   comando y, cuando la shell intenta ejecutarlo no lo encuentra.

 * El comando echo visualiza una linea de texto en la salida estandar.
   Cuando ejecutamos el primer comando echo, vemos que la linea de
   texto ingresada ("River") es visualizada en pantalla. Cuando
   utilizamos el simbolo $ antes del nombre de la variable River, la
   shell reemplaza $River por el valor de la variable, es decir la
   cadena "campeon". Esta cadena es la que es pasada como argumento al
   comando y el mismo la visualiza en pantalla.

 * Es muy importante comprender que la manipulacion de las vatiables y
   sus valores la realiza la shell y no el comando echo.

 * Una variable pierde su valor anterior si es asignada de nuevo.

 * Una variable que no ha sido asignada tiene la cadena nula o vacia.

Cuando queremos asignar a una variable una cadena de caracteres que
contiene espacios debemos encerrar toda la cadena entre comillas. Vemos
un ejemplo en la figura 12.2.

 # Boca=No existe
 bash: existe: command not found
 # Boca="No existe"
 # echo $Boca
 No existe
 #

   Figura 12.2: Utilizando comillas para asignar cadenas a las
   variables.

12.2.1 EXPORTANDO VARIABLES DE LA SHELL

Las variables de la shell que creamos son locales a la shell activa a
no ser que sean exportadas explicitamente. El comando export nos sirve
para exportar variables. Con el siguiente comando podemos exportar la
variable var:

 ==> export var

Si ejecutamos export sin argumentos obtendremos una lista de las
variables exportadas.

Este comando solo lista las variables exportadas de la shell actual.

Una variable exportada permanece en ese estado hasta que la shell en la
que fue marcada para exportacion sea terminada.

12.2.2 VARIABLES AUTOMATICAS DE LA SHELL

Las siguientes variables son seteadas automaticamente por la shell:

 $? Contiene el valor de salida retornado por el ultimo comando
 ejecutado.

 $$ Contiene el PID de la shell actual.

 $! Contiene el PID del ultimo proceso que se invoco en background.

 $# Contiene el numero de parametros que fueron pasados a la shell.

 $* Contiene la lista de argumentos actual.

Estas variables pueden ser utilizadas como todas las demas. Por ejemplo
podemos utilizar la variable $$ para ver el numero de proceso de la
shell actual.

 # ps
   PID TTY STAT  TIME COMMAND
   443   1 S    0:00 /bin/login -- tony
   451   1 S    0:00 -bash
   462   1 S    0:00 sh /usr/X11R6/bin/startx
   463   1 S    0:00 xinit /home/tony/.xinitrc --
   467   1 S    0:02 wmaker
   490   1 S    0:57 emacs -fn 9x15
   541  p7 S    0:00 /bin/bash
   594  p7 R    0:00 ps
 # echo $$
 541

12.2.3 VARIABLES ESTANDAR DE LA SHELL

El significado de una gran cantidad de variables ha sido estandarizado
con el paso del tiempo. Esta variables son como todas las demas, pero
tiene un significado convencional que debemos entender. Estas variables
son llamdas usualmente variables de entorno.

Podemos producir un listado de las variables actualmente asignadas con
el comando set.

Veamos un listado de ejemplo en la figura 12.3.

 # set
 BASH=/bin/bash
 BASH_VERSION=1.14.7(1)
 COLUMNS=104
 DISPLAY=:0
 ENV=/home/tony/.bashrc
 EUID=500
 HISTFILE=/home/tony/.bash_history
 HISTFILESIZE=1000
 HISTSIZE=1000
 HOME=/home/tony
 HOSTNAME=tonyx
 HOSTTYPE=i386
 IFS=

 LD_LIBRARY_PATH=/usr/local/qt/lib
 LINES=24
 LOGNAME=tony
 MAIL=/var/spool/mail/tony
 MAILCHECK=60
 MANPATH=/usr/local/qt/man:/usr/man:/usr/local/man
 OLDPWD=/home/tony/docs/linux
 OSTYPE=Linux
 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:.
 PPID=490
 PS1=#
 PS2=>
 PS4=+
 PWD=/home/tony/docs/linux
 SHELL=/bin/bash
 TERM=dumb
 UID=500
 USER=tony
 USERNAME=tony

             Figura 12.3: Listado de variables de entorno.

La mayoria de estas variables se crean durante el proceso de inicio de
sesion (login) y son una parte muy importante de la funcionalidad del
sistema. Algunas de las variables que forman parte de la lista de la
figura 12.3 son utilizadas por uno o dos programas particulares y no
son de interes general. Vamos a detallar el significdo de las variables
que tienen una importancia vital para nuestro dialogo con Linux y para
que el trabajo de los programas y utilidades se desarrolle
exitosamente.

 $HOME Contiene el nombre del directorio home del usuario. Se setea al
        iniciarse la sesion y es utilizada por los programas que
        necesitan acceder a archivos almacenados en nuestra parte del
        sistema de archivos, por ejemplo, los programas que lee o
        escriben los archivos de configuracion e inicializacion
        llamados dot files, ya que comienzan con un punto y son ocultos
        (.Xdefaults .bash.profile .xinitrc, etc.).

 $PATH Contiene la cadena de busqueda que la shell utiliza cuando busca
        los comandos a ejecutar.

 $IFS Contiene los separadores internos entre campos (Internal Field
       Separators), que son usualmente espacios, tabulador y nueva
       linea. Los separadores de campos separan las palabras de los
       comandos. La linea en blanco que se encuentra despues de IFS es
       parte del valor de la variable.


 $LOGNAME $USER $USERNAME Es el nombre de usuario (login). Se usan
                           alternativamente.

 $MAIL o $MAILPATH Se utilizan si queremos ser notificados de la
                    llegada de nuevo correo electronico.

 $MAILCHECK Es el intervalo, en segundos, entre chequeos de nuevo mail.

 $SHELL Es el nombre de la shell de inicio. Es utilizada por programas
         que invocan a shells interactivas para utilizar sin necesidad
         de salir del programa. Un ejemplo es emacs.

 $PS1 Es la cadena que la shell utiliza como prompt primario.

 $PS2 Es la cadena utilizada como prompt secundario. Es utilizado
       cuando la shell detecta que los comandos estan obviamente
       incompletos y nos piden informacion adicional. Usualmente es un
       simbolo >.

 $TERM Contiene el modelo de terminal utilizado. Algunos comandos
        necesitan conocer el tipo de terminal para poder generar una
        salida correcta.

12.3 EL CAMINO DE BUSQUEDA (PATH)

Cuando ingresamos un comando, la primera cosa que la shell hace es
buscar el programa asociado. Pero, ¿Donde es que lo busca? Muchas
instalaciones de Linux contiene cientos de directorios y consumiria
mucho tiempo buscar en todos los directorios. Para concentrar la
busqueda, la shell del sistema mantiene un camino de busqueda (PATH),
tambien conocida como cadena de busqueda.

El PATH es una lista de directorios donde la shell busca los comandos
ingresados. Los PATH's en general contiene en directorio /bin, el
directorio /usr/bin, etc., ya que en estos directorios es donde se
encuentran los comandos y utilidades estandar.

El PATH puede ser modificado para que la shell busque en directorios
adicionales, cuando ingresamos algun comando. Si la shell no encuentra
en ninguno de los directorios el comando especificado, entonces muestra
un mensaje diciendonos que no lo pudo localizar. Podemos consultar cual
es la lista de directorios que forman parte del path ejecutando:

 ==> echo $PATH

Historicamente, se trataba de mantener los PATH's con una longuitud
pequeña, ya que forzaban a la shell a invertir mucho tiempo en las
busquedas, lo que terminaba resistiendo el tiempo de respuesta de la
shell. Hoy, tanto la shell de Bourne como la shell de C, operan de una
forma mas eficiente, manteniendo un "cache" de los comandos, es decir
que recuerda donde se encuentran los comandos y por lo tanto solo
realizan una sola vez la busqueda, no importa la cantidad de veces que
utilicemos el comando. Similarmente es recomendable mantener un tamaño
aceptable en los directorios donde almacenamos los ejecutables. Nos
lleva mucho menos tiempo realizar una busqueda en un directorio que
contiene solo unos pocos archivos que en un directorio que contiene
cientos de archivos.

En algunos sistemas Unix, incluyendo a Linux, el PATH no contiene al
directorio actual. Los usuarios acostumbrados a trabajar con MS-DOS se
sentirar desorientados cuando la shell les muestre un mensaje de error
diciendoles que no encontro un comando que se encuentra en el
directorio actual (suponiendo que el directorio actual no forma parte
del PATH). Para este problema tenemos dos soluciones:

 1. Ejecutar cada comando del directorio actual con el agregado del
    "./". Vemos un ejemplo en la figura 12.4.

     # ls -l
     total 1
     -rwxr-xr-x   1 tony   users           20 Jun  5 21:19 script1
     # cat script1
     echo Hola $USERNAME
     # script1
     bash: script1: command not found
     # ./script1
     Hola tony

     Figura 12.4: Ejecutando un comando que se encuentra en el
                  directorio actual.

 2. Agregar el directorio "." a nuestro PATH. Asi no importa en que
    directorio estemos, siempre se incluira el mismo como parte del
    PATH y la shell encontrara los comandos.

12.4 CARACTERES ESPECIALES - "QUOTING"

Desafortunadamente, muchos de los caracteres especiales utilizados por
la shell (¡, ?, -, etc.) son utilizados por otros programas. El
problema es que no hay tantos simbolos disponibles y siempre pueden
aparecer conflictos. Cuando ejecutamos comandos interactivamente o
cuando ejecutamos un script, la shell es el primer programa que recibe
el texto respectivo. Si el texto de el/los comandos contiene caracteres
especiales, estos seran interpretados por la shell, realizando, la
misma, las modificaciones necesarias. Para que la shell no interprete
estos caracteres especiales, debemos utilizar secuencias de escape. Al
proceso de utilizar secuencias de escape se lo conoce como quoting.

Cuando queremos enviar simbolos especiales a los programas, debemos
utilizar secuencias de escape. Existen tres formas de especificar
secuencias de escapes:

 1. Una barra invertida (\) sirve de escape para los caracteres que la
    siguen inmediatamente.

 2. Todos los caracteres encerrados entre comillas simples (') se
    encuentran bajo una secuencia de escape.

 3. Las comillas dobles (") sirven de escape para todos los caracteres
    que se encuentren entre un par de ellas, salvo los siguientes
    caracteres:

     $ \

Veamos varios ejemplos en la figura 12.5.

 # echo $USER
 tony
 # echo '$USER'
 $USER
 # echo \$USER
 $USER
 # echo "$HOME"
 /home/tony
 # echo "ls | wc -l"
 ls | wc -l

       Figura 12.5: Ejemplos de la utilizacion de caracteres y
                    secuencias de escape.

12.5 ESTADO DE SALIDA DE LOS COMANDOS

Cada comando que ejecutamos retorna un codigo que representa el estado
de salida del comando. Cuando un comando se ejecuta exitosamente,
retorna un codigo de salida que es cero (zero exit status). Por
convencion, si un programa encuentra problemas serios en su ejecucion,
retorna un codigo de estado de salida que es distinto de cero (non-zero
exit status).

Ejemplo: Si ingresamos el siguiente comando:

 ==> ls -l /dev/hda

El comando retornara un codigo igual a 0, ya que el archivo que
representa al primer disco rigido de la maquina existe. Sin embargo, si
ingresamos el comando:

 ==> ls -l /dev/hdz

El comando retornara un codigo distinto de 0, ya que el archivo de
dispositivo especificado no existe y el comando ls encontrara el error.

La variable de entorno $? contiene el codigo de estado de salida del
ultimo comando ejecutado y podemos consultarla en caso de querer
averiguar el codigo de estado de salida de los comandos. Vemos un
ejemplo de esto en la figura 12.6.

 # ls -l /dev/hda
 brw-rw----   1 root     disk     3,    0 Sep  7  1994 /dev/hda
 # echo $?
 0
 # ls -l /dev/hdz
 ls: /dev/hdz: No such file or directory
 # echo $?
 1

         Figura 12.6: Consultando el estado de salida de los comandos.

12.6 LOS ARGUMENTOS

En los programas de la shell, los argumentos de linea de comandos se
encuentran disponibles en una serie de variables numeradas. $1 es la
variable que contiene el primer argumento, $2 contiene el segundo
argumento, y asi siguiendo. Estas variables representan parametros
posicionales.

Existen dos variables especiales que representan informacion adicional
acerca de los argumentos:

 * $0 Representa el valor del argumento 0 que siempre es el nombre del
       programa ejecutado.

 * $# Contiene el numero de parametros ingresados en la linea de
       comandos.

El programa que muestra la figura 12.7 toma como entrada 4 argumentos y
como salida retorna los 4 argumentos en orden invertido. El programa
fue realizado utilizando estas variables que representan los
argumentos.

 # cat reverse
 if [ $# -eq 4 ]
 then
        echo $4 $3 $2 $1
 else
        echo Uso: $0 arg1 arg2 arg3 arg4
 fi
 # reverse
 Uso: $0 arg1 arg2 arg3 arg4
 # revese 12 34 56 78
 78 56 34 12
 #

     Figura 12.7: Un programa que utiliza las variables de argumentos.

12.7 ESTRUCTURAS DE CONTROL

Como cualquier otro lenguaje de programacion, el lenguaje de
programacion de la shell nos brinda la posiblidad de utilizar
estructuras de control. En el ejemplo de la figura 12.7, vimos de forma
adelantada, el condicional if.

A continuacion veremos un resumen de las estructuras de control que
provee el lenguaje de programacion de la shell.

12.7.1 CONDICIONALES SIMPLES

Los condicionales simples son operadores que nos permiten tomar
decisiones entre las ejecuciones de los distintos comandos.

El condicional mas simple es el operador &&. Cuando dos comandos son
separados por este operador, el segundo comando se ejecutaro solo si el
primero retorna un codigo de estado de salida igual a 0 (indicando una
ejecucion exitosa).

Este operador es util para indicarle a la shell que queremos ejecutar
una secuencia de comandos, pero solo si se van ejecutando exitosamente.
En caso de que alguno falle, los demas no se ejecutaran.

En el capitulo 9 vimos que para compilar e instalar un programa debemos
ejecutar una secuencia de comandos. Podemos automatizar estos procesos
ejecutando los comandos de la siguiente forma:

 ==> ./configure && make && make install

De esta forma, solo se construira el programa (make) si la
configuracion (./configure) fue exitosa y solo se instalara (make
install) si se construyo correctamente.

El operador opuesto a && es ||.

Cuando dos comandos son separados por || el segundo comando se
ejecutara solo si el primero finaliza retornando un codigo de salida
distinto de 0.

12.7.2 EL CONDICIONAL IF

Los operadores && y || son utiles para crear sentencias condicionales
muy simples. La shell tiene estructuras condicionales mas sofisticadas
como puede ser el condicional if.

La sintaxis de esta estructura es:

  if "listas de condiciones"
  then
      "listas de comandos"

  elif "listas de condiciones"

      "listas de comandos"
  else
       "listas de comandos"
  fi

12.7.3 LOS LOOPS CONDICIONALES WHILE Y UNTIL

Los loops condicionales nos permiten repetir un grupo de comandos.

La sintaxis del condicional while es la siguiente:

 while "lista de condiciones"
      do "lista de comandos"
 done

La sintaxis de until es la siguiente:

 until "lista de condiciones"
      do "lista de comandos"
 done

12.7.4 LA SENTENCIA FOR

La sentencia for nos permite ejecutar una lista de comandos
repetidamente. Esta sentencia nos exige que le ingresemos uns lista de
palabras y ejecuta la lista de comandos una vez para cada palabra. La
forma general de la sentencia es la siguiente:

 for "nombre" in "palabra1" "palabra2" ...
 do
   "lista de comandos"
 done

La sentencia for puede ser utilizada sin la palabra "in". De esta forma
la lista de palabras automaticamente sera la lista de parametros
posicionales. Vemos un ejemplo en la figura 12.8.

 # ls
 comandos    environ*     existe*    reverse*   rxvt-linux*
 # cat existe
 for archivo
 do
   if test -r $archivo
   then
      echo $archivo existe !!!
   else
      echo $archivo no existe !!!
   fi
 done
 # existe reverse comandos windows
 reverse existe !!!
 comandos existe !!!
 windows no existe !!!

   Figura 12.8: Utilizando la sentencia for con parametros posicionales.

12.7.5 LA SENTENCIA CASE

La sentencia case de la shell es una forma de elegir varios caminos de
ejecucion basandose en una comparacion por pattern matching.

Su forma general es la siguiente:

 case "word" in
     "pattern1") "lista de comandos" ;;
     "pattern2") "lista de comandos" ;;
     ...
 esac

12.8 EVALUACION DE CONDICIONES - TEST

El comando test es utilizado en los scripts para testear ciertas
condiciones y determinar, por ejemplo, si los archivos o directorios
existen, etc. Este comando, que viene integrado con la shell, puede ser
utilizado para realizar tres tipos de tests:

 1. Puede testear los archivos para averiguar ciertas caracteristicas.

 2. Puede realizar comparaciones entre cadenas.

 3. Puede realizar comparaciones numericas.

El comando indica el exito o el fracaso del test utilizando su codigo
de estado de salida. La utilizacion de los crchetes es un sinonimo del
comando test. Veamos un ejemplo de la utilizacion de test en la figura
12.9.

 # pwd
 /home/tony/linux
 # echo $HOME
 /home/tony
 # [ $HOME = 'pwd' ] || echo No estamos en casa ;(
 No estamos en casa ;(
 # cd ..
 # [ $HOME = 'pwd' ] || echo No estamos en casa ;(
 #

          Figura 12.9: Evaluando condiciones con tets.

El set completo de opciones del comando test se muestra en la tabla 12.1.

 -------------------------------------------------------------------------
                              Test de archivos

 -b archivo                 Verdadero si el archivo existe y es un archivo
                            de dispositivo de bloque.
 -c archivo                 Verdadero si el archivo existe y es un archivo
                            de dispositivo de caracter.
 -d archivo                 Verdadero si el archivo existe y si es un
                            directorio.
 -e                         Verdadero si el archivo existe.
 -f                         Verdadero si el archivo existe y es un archivo
                            ordinario.
 -L archivo                 Verdadero si el archivo existe y es un link
                            simbolico.
 -r archivo                 Verdadero si el archivo existe y es posible
                            leerlo.
 -s archivo                 Verdadero si el archivo existe y su longuitud
                            es nayor a cero.
 -w archivo                 Verdadero si el archivo existe y es posible
                            escribirlo.
 -x archivo                 Verdadero si el archivo existe y es ejecutable.
 archivo1 -nt archivo2      Verdadero si el archivo 1 es mas nuevo que el
                            archivo 2.
 archivo1 -ot archivo2      Verdadero si el archivo 1 es mas viejo que el
                            archivo 2.
 -------------------------------------------------------------------------
                         Comparaciones de cadenas

 -z string                  Verdadero si la longuitud de la cadena es 0.
 string                     Verdadero si la longuitud de la cadenas es
                            mayor a 0.
 string1 = string2          Verdadero si las dos cadenas son iguales.
 string1 != string2         Verdadero si las dos cadenas son distintas.
 ------------------------------------------------------------------------
                         Comaparaciones numericas

 -eq                        Igualdad (equal)
 -ne                        Distintos (not equal)
 -gt                        Mayor que (greater than)
 -lt                        Menor que (less than)
 -ge                        Mayor o igual que (greater or equal)
 -le                        Menor o igual que (less or equal)
 ------------------------------------------------------------------------
                           Operaciones logicas

 !                         Not (no)
 -a                        And (y)
 -o                        Or (o)
 ------------------------------------------------------------------------

                 Tabla 12.1: Opciones del comando test.

12.9 EVALUACION DE EXPRESIONES - EXPR

El comando expr es un programa simple que realiza operaciones
aritmeticas sobre enteros. La expresion a evaluar se provee en la linea
de comandos y expr produce la salida en la salida estandar.

Cada argumento de este comando deber ser un numero entero o un
operador. Como la mayoria de los argumentos son simbolos utilizados por
la shell, es necesario utilizar secuencias de escape.

Vemos ejemplos simples de la utilizacion de expr en la figura 12.10.

 # expr 2 + 4
 6
 # expr 2 * 6
 expr: syntax error
 # expr 2 \* 6
 12
 # expr 4 / 2
 2
 # expr 5 - 4
 1

         Figura 12.10: Utilizando expr para evaluar expresiones.


 Bueno hasta aca hemos llegado por hoy, espero que les haya gustado y
 les cuento lo que veremos en la tercera y ultima entrega:

 Analizamos y vemos un poco el Booteo, inicializacion y la detencion
 del sistema (cap.13), tambien veremos como instalamos y configuramos
 los dispositivos (cap.14), hablaremos tambien de la administracion del
 sistema y de su seguridad (cap.15) y por ultimo veremos el sistema de
 ventanas X WIndows (cap.16).

  Bueno, nos vemos en la ultima entraga de este manual de Linux 5.0.
  Espero que les haya gustado esta entrega y les sirva de ayuda
  tambien.

              Created By Mr. Nuk3m ( [email protected] )


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
04 ) Texto 109 del LoCo
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 Bueno no se si les interese, pero senti ganas de homenajear a un
 "Grande" del Cyber como lo es "El LoCo" con un texo que el publico
 hace tiempo. Algunos de ustedes quizas lo conozcan, lo hayan conocido
 alguna vez y otros quizas nunca habran sentido oir de el.

 Dejenme decirles que fue uno de los mas grandes SysOp's de BBS's que
 ha tenido este pais desde el año 1994 si mal no recuerdo y que hoy por
 hoy ya no esta mas en los boards (segun me informaron hace tiempo),
 pero esta en Internet y estoy seguro que le esta yendo muy bien con su
 site de chat y otras cosas.

 A continuacion un texto que llego a mis manos y que me hizo pensar y
 seguir adelante con las cosas. Espero que lo sepan apreciar y que les
 guste.

 El siguiente texto aparecio en la LocoList (lista de BBS's) 109 del 24
 de Abril de 1996... y empezaba pidiendo disculpas por el retraso de su
 lista pero a continuacion seguia el texto que esta mas abajo.

 ... ...

 Me gustaria que muchas personas lean lo que voy a poner a
 continuacion:

 Nunca dejes que alguien te tire abajo, no dejes de hacer lo que estas
 haciendo si estas haciendo algo que te gusta. Siempre va a haber
 alguien con ganas de joderte la vida despreciando lo que vos haces,
 pero nunca dejes de creer en vos mismo y segui en lo que estas
 haciendo.

 Me acuerdo cuando alguien me decia que yo no servia para hacer ansis,
 que me dedicara a otra cosa.. que no dibujara mas, nunca deje de
 hacerlo.. eso que me dijeron una vez en vez de tirarme abajo hizo que
 me esforzara mas en lo que estaba haciendo, y aca estoy. :)

 Esto es un claro ejemplo de que aunque haya personas que te quieran
 tirar abajo nunca lo van a poder hacer mientras vos tengas tu fuerza
 de voluntad. Hay otras personas, gente que te apoya, una vez pense en
 no hacer mas la LoCoList.. y saque una ultima lista, sin numero.. se
 llamaba "LOCOLAST".

 No pude creer la cantidad de gente que la usaba y se sintio defraudada
 cuando supieron que era la ultima. Muchos me dijeron que lo que hacia
 era un trabajo excelente y no entendian porque habia dejado de
 hacerlo. Esas son cosas que te hacen reaccionar y seguir adelante.
 Agradezco a todas esas personas que saben realmente que clase de
 persona soy y me apoyaron sin dejarse desviar por otras bocas.

 Si todavia seguis leyendo te repito algo muy importante: Nunca dejes
 de hacer algo porque los demas digan que lo haces mal. Podes cagarlos
 a todos, mejorando y demostrandoles que no era asi como ellos
 pensaban. Aunque digan que no servis, segui en eso que estas haciendo
 porque un dia se te va a cumplir ese sueño.

 Me pondria muy bien saber que esto que escribi haya ayudado o mejorado
 el estado de animo de alguna persona no solo en el mundo del
 Cyberespacio, tambien en la vida real.

                                                         El LoCo (23/04/96)
                                                       Alejandro Szykula


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
05 ) Mail del lector
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 Bueno parece que la gente quizas tiene un poco de miedo de escribir y
 de aparacer en la seccion pero espero que para el numero 3 ya haya
 algunos mail que publicar en esta seccion... La verdad quiero que
 sirva para hacer contactos, me envien comentarios y pregunten cosas
 que quizas pueda responder ya que no me considero un .. hacker ... y
 solo hago un E-Zine que espero les sirva a todos y que podamos
 aprender entre todos.

 Tambien quisiera decirles que las direcciones del los e-mail de los
 lectores seran tachados con xxx para evitar problemas y que los
 bombarden con mensajes no deseados.. Ok.. pero si alguien quiere que
 aparezca su direccion de e-mail pues solamente tendra que decirlo al
 enviar el e-mail.

 Escriban asi veo como anda la e-zine, que impacto tuvo y a que lugares
 reconditos de habla hispana del planeta llego la ezine. En fin,
 ESCRIBAN :)


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
06 ) Consejos para una pagina o un sitio web
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


Nota Nuk3m: Esto lo saque de algun lado y no me acuerdo de donde, asi
            que perdon a quien lo escribio, pero como no tenia firma
            cuano lo recibi, lo firme con mi nombre.

Este documento esta dedicado a ayudar en la construccion y el diseño de
paginas o sitios web de Internet. Es una guia de estilo y no un
tutorial de HTML debido a que ya existen excelentes referencias sobre
ello en varios idiomas.

Yo no soy de ninguna manera un experto en el diseño de HTML y que,
aunque la mayoria de los consejos que se encuentran aqui estan
documentados, algunos estan basados en mi opinon personal .

Tal vez estes de acuerdo con algunos de los consejos que doy y tal vez
no, puede ser que yo mismo cambie de idea y rompa mis propias reglas
pero bueno...nadie es perfecto.

Links (enlaces en las paginas)

Los links (enlaces, vinculos o como quieras llamarlos), son una parte
fundamental de las paginas, ya que proporcionan un medio de conexion a
otros documentos.

Por ejemplo:

"Mr. Nuk3m" hizo una pagina en español sobre el "Diseño de Paginas"

Nota Nuk3m: Para representar al links, ponga la palabra entre
"comillas".

Es preferible a:

"Presione aqui para ir a la pagina de Mr. Nuk3m"

Eleji una longitud adecuada para el Link.

Una sola palabra puede ser muy corta y carente de significado. Una
frase entera puede ser dificil de leer, especialmente si el texto ocupa
mas de una linea.

No cambies el color de los Links si no es necesario. Por conveniencia,
los Links no visitados son generalmente de un color mas brillante que
los que ya visitaste. Al cambiar esto, podrias darle dolor de cabeza a
los que usan monitor monocromatico (mm?? hay gente que usa monitores
monocromaticos todavia ??).

Longitud de las paginas

Diseña tus paginas mas o menos cortas y concisas.

Por regla general ninguna Pagina debiera exceder una pantalla y media
de longitud vertical, ya que si es muy larga, podria aburrir a los
usuarios. Esto se aplica en la mayoria de los casos, sin embargo si
tenes una pagina importante que requiera la atencion del lector, no la
hagas mayor de una pantalla. En cambio, si el contenido es interesante
y estas seguro que vale la pena extenderte mas, podes hacerlo pero
recorda que una pagina chica es mas facil de administrar y mantener.

Toma en cuenta a los diferentes monitores.

En los monitores tradicionales el area de exhibicion se mide en pixeles
(pixel, abreviatura inglesa de "picture element"). La medida estandar
es de 640x480 pixeles o bien 800x600 por lo que procura que la longitud
horizontal de tus paginas sean de 640 u 800 pixeles para asegurarte que
se despliegue correctamente en la mayoria de los monitores.

Uso adecuado de Graficos

Las imagenes pueden darle vida a una pagina y servir como una excelente
guia de informacion visual, recorda que una imagen dice mas que mil
palabras :)))

Limita la cantidad de graficos en el documento

Utiliza imagenes esporadicamente y solo si ayudan a explicar mejor un
tema o a mejorar el atractivo visual de tu pagina. Toma en cuenta que
cada grafico que agregues a tu documento aumenta el tiempo de espera
para el lector o el visitante de tu pagina.

Mantene el tamaño total de las imagenes lo mas bajo posible para
optimizar el tiempo de acceso a tu pagina, el tamaño de las imagenes no
debe sobrepasar los 30K. Si te es imperativo utilizar graficos de gran
tamaño, reduci el numero total de colores en ellas y procura que esten
en formato 'interlaced'.

Ayuda a los navegadores a minimizar el tiempo de espera.

Por regla general, siempre incluye descripciones ALT en tus imagenes.
Tambien es muy importante que especifiques el largo y ancho (HEIGHT and
WIDTH) de las mismas, lo que permitira que algunos navegadores las
carguen mas rapido.

Uso de Imagenes Mapa

Las Imagenes Mapa (image maps) proporcionan un medio valioso de
navegacion y contribuyen al atractivo visual de la pagina. Sin embargo
en algunos casos pueden confundir al usuario y no son soportadas por
todos los navegadores.

Delimita claramente las regiones "activas".

Las regiones activas de un Imagen Mapa son los puntos donde el usuario
puede seleccionar o "hacer click". Es muy importante que esten
perfectamente definidas y, de preferencia en forma de botones y
separadas una de la otra.

No olvides poner los mismos enlaces en texto. Esto ayuda a los usuarios
con navegadores sin graficos (el Lynx de Linux) o que para minimizar el
tiempo de espera los mantienen desactivados, ya que en cualquiera de
los dos casos es imposible saber que esa imagen es un Mapa y por lo
tanto no puede ser utilizada.

Uso adecuado del color

Utiliza colores contrastantes y "seguros".

Si tu pagina utiliza un fondo oscuro, usa un color claro para el texto
y si utiliza un fondo claro, usa un fondo oscuro para el texto. Tene
mucho cuidado con los tonos que vas a utilizar ya que pueden dificultar
enormemente la lectura del texto, especialmente si utilizas un tamaño
chico de letra.

La mayoria de los navegadores utiliza una paleta estandar de 216
colores llamada "Netscape Palette". Al utilizar alguno de ellos, te
estas asegurando de que los colores de tu pagina se van a desplegar de
igual manera en todos los navegadores y plataformas (PC, Mac, etc.)

Especifica un color de fondo.

Es importante que aunque tu pagina utilice una imagen de fondo, tambien
especifiques un color en el atributo BGCOLOR, ya que este se mostrara
en la pantalla inmediatamente y asi el usuario podra empezar a leer el
texto sin esperar. Ademas, esto ayuda a los usuarios con navegadores
que no soportan imagenes de fondo o que por comodidad las mantienen
desactivadas.

Estandariza los colores.

Si te es posible, trata de utilizar colores iguales o similares en
todas tus paginas. De esta forma se integraran mejor unas a las otras y
adquiriran un aspecto mas profesional.

Facilitar la navegacion.

Pone un encabezado al inicio de cada pagina.

Aunque el comando <H1> funciona de maravilla, el encabezado de tu
pagina no tiene que ser grande o estar resaltado, solo separado del
resto del texto.

Elige un buen titulo HTML para tu documento.

Es importante elegir un buen titulo HTML que refleje el contenido
general de tu pagina. Esto le ahorra tiempo a la gente que encuentra tu
pagina en un servicio de busqueda (como Yahoo, Altavista, etc.) ya que
estos generalmente lo toman como referencia.

No hagas referencia a los 'botones' del navegador.

Por ejemplo, nunca dejes un camino cerrado donde los usuarios tengan
que presionar el boton "back" o "atras" de su navegador para regresar a
la pagina anterior porque no puedes asumir que todos los navegadores
tengan ese boton.

Proporciona un link a tu pagina principal.

Debido a que tus lectores pueden provenir de cualquier otra pagina y no
necesariamente de la pagina principal, proporciona un link en texto,
grafico o boton a la misma de cada documento, asi estaras seguro que el
usuario la encontrara rapidamente.

Calidad de la pagina

Proba cada link y revisa su codigo HTML.

Si la gente encuentra callejones sin salida o links rotos puede perder
el interes en tu Pagina. Tambien toma en cuenta que si tu c≤digo HTML
no esta correcto, algunos navegadores podrian interpretarlo
incorrectamente o ignorarlo por lo que te recomiendo validarlo en uno
de los servicios gratuitos que puedes encontrar en una busqueda en
Yahoo de HTML Checkers.

Revisa la ortografia y la gramatica de tu pagina.

Si tenes algun programa que revise tu ortografia, por favor usalo. Si
no, que alguien mas revise el texto.

No utilices comandos especificos de ciertos navegadores.

Los comandos especificos no pueden ser interpretados por todos los
navegadores por lo que evitalos si te es posible. Un ejemplo de estos
comandos es la Marquesina del Internet Explorer, que solo puede ser
interpretado correctamente por dicho navegador y el comando <BLINK> de
Netscape, que ademas es muy molesto.

Contenido del documento

Revisa tu texto y borra lo que no sea necesario.

Por regla general, trata de que el texto de tu pagina sea conciso y sin
rodeos. Recorda que si el contenido de tu documento es interesante y la
estas actualizando constantemente, tus lectores la visitaran mas de una
vez. Un documento que no aporta nada no causa interes alguno.

Utiliza mayusculas y minusculas adecuadamente.

El ser humano no lee las palabras mas comunes ensamblando las letras
que la componen para formar una palabra reconocible, sino por su forma
general.

Si todo el texto de tu pagina se encuentra en mayusculas, podria
dificultar la lecura de la misma ya que en la mayoria de las fuentes
tipograficas todas las palabras tienen forma similar y monotona cuando
estan compuestas unicamente por letras mayusculas

Utilizacion correcta del lenguaje

Cuida tu lenguaje. Dependiendo del contenido de tu pagina es necesario
que observes el tipo de lenguaje que vas a utilizar tomando en cuenta a
quien va dirigido.

Palabras que, en mi opinion, deberian evitarse:

Si agregas una imagen que señale esto solo estas desperdiciando tiempo
y espacio, aunque si es aceptable y recomendable poner una seccion
donde le informes a tus lectores de cambios o actualizaciones futuras
que pretendas hacer en tus paginas.

Esta pagina se ve mejor con...: Como se recomienda en otras secciones,
no diseñes tus paginas teniendo en mente algun navegador especifico. Si
creas una pagina a la que solo se le pueda sacar el maximo provecho con
un navegador en particular, los usuarios que no lo utilicen se veran
frustrados. Mejor diseña una pagina a la que se le pueda sacar el mejor
provecho con todos los navegadores comunmente utilizados.

Bueno esto eso todo lo que les puedo decir. Es eso solamente, unas
pautas a tener en mente cuando vayas a diseñar tu pagina o tu sitio
web.

Mr. Nuk3m


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
07 ) Numeros de serie
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 A continuacion una pequeña lista con numeros de serie para registrar
 programas shareware. Te pueden resultar de increible utilidad.
 ¡Programas completos gratis! Por que vas a pagar por algo que quizas
 no sea lo que esperas... ??

  o---o
 | Nºs |
  °---°
   386 Max v7.0 : 240-104343 or 40090206002
   4D Runtime 2.01 : T-302092506051
   4DOS v5.00 : #/111209 code/8VS2PGCK
   4th dimension 2.0.11 : D-205200607255
   4th Right : V-302290527273
   8 Ball Deluxe : ZJLFDN5TMAJ
  o-o
 | A |
  °-°
   ABC Flowcharter v3.0 for Windows : 0601001053909501
   ABC Toolkit v1.0 for Windows : 01103158901
   ABC Toolkit v1.1 for Windows : 1001001103158901
   Above disk+ v4.0a : 506824
   Accent for Windows : 042807358902273
   Accent v2.0 final beta for Windows : 123 456 789 000 12
   ACCPAC Simply Acounting v2.0a Windows : 1021602-48016
   ACDsee v1.25b4 : name/letis #/+tHE riDDLER [uCF] 213111
   Action workflow analyst for Windows : AA200013001W1001823
   Adaptec EZ-SCSI v3.03 DOS/Win : 492848-01
   Addepth for Windows : AW-100-1-2716-52987
   Adobe acrobat distiler v1.0 for Win : DEE100R3001172-010-496
   Adobe Acrobat reader v1.0 for Windows : ARW100R3100000-500-574
   Adobe Acrobat reader v1.2 for Windows : ARM100R3100034-100-397
   Adobe Acrobat v1.0 for windows : ARW100R3100230-826
   Adobe Acrobat v2.0 for Windows : WVW200R3100221-398
   Adobe Illustrator v4.0 for Windows : ABW400R3101335-714
   Adobe Illustrator v4.01 for Windows : ABE400R3001625-858
   Adobe PhotoShop : PCA 100000100-953
   Adobe Photoshop v2.5 for Windows : PWW250R3000000-880
   Adobe Photoshop v2.5.1 for Windows : PWW250R3104501-684
   Adobe Photoshop v3.0 for Windows : PWW300R3000011-926
   Adobe Photoshop v4.0 for Windows :PWW250r3107069-312
   Adobe Premiere v1.0 for Windows : MBW100X3100970-389
   Adobe Premiere v1.1 for Windows : MBW100D3100371-512
   Adobe Premiere v4.0 for Windows : MBW400R1109394-244
   Adobe Streamline v3.0 for Windows : SBW3001110706-297
   Adobe Streamline v3.01 for Windows : SBW300S1100640-184
   Adobe wild type : FHW251R31003373
   After dark v3.0 for Windows : AD3-00670-6681 or ADW-33671-7329
   Agency database v1.12c for Windows : ADW00195
   Agfa Fotoflow : 410210021-086
   Aldus Freehand v4.0 for Windows : 05-4002-202558479
   Aldus Freehand v5.0 for Windows : 10350-0276-0089-83911
   Aldus Gallery effect v1.5 for Windows : 36-1500-040049293
   Aldus Persuasion v2.1a for Windows : 09-2101-200613117
   Aldus Persuasion v3.0b for Windows : 09-3003-202849134
   Aldus Photostyler v2.0 for Windows : 15-2000-000000000
   Aldus Photostyler v2.0a for Windows : 15-0208-202570921
   Aldus Photostyler v2.0SE for Windows : 15-0201-201632890
   Aldus/Adobe Pagemaker v4.0 : 02-3008-000036469
   Aldus/Adobe Pagemaker ENG v5.0 for Win: 03-4005-200136599
   Aldus/Adobe Pagemaker NL v5.0 for Win : 02-50C8-100094310
   Allfix v4.16 : name/Me #/A4009F0F2AC0ZB60A9EB2E4D
   Alpha five home/business ed. v1.0 Win : Z50HBEV1-1019144
   Altamira composer v1.1 PRO : 644 043 060 0036
   Altos system diagnostic v1.0SO : DIAG7K_9K00004
   Altos system ECU setup v1.1SO : A_ECU00246
   AM Workflow v3.1 : 001169
   America online v1.0 for Windows : #/69-2815-4880 pw/LARKED-MASSES
   America online v1.15 for Windows : #/48-5004-6750 pw/AMBLED-ANION
   America online v2.0 for Windows : #/79-0519-3782 pw/SWIMS-TAGGER
   America online v2.5 beta 4 : #/10-5932-0206 pw/GOBLET-MEDIAN
   Ansipaint v2.1 : name/DIR&MIR #/1216
   Anyview v1.00a for Windows : AVR-100-4201975
   Apple media tool v1.2 for Windows : AMT00-00000-2155073
   Approach v3.0 for Windows : 1F00028-01104360
   Arcserve v5.01 for Windows (10 users) : 10AS 1163609
   Arcsolo v3.02 for Windows : EVSO 1231464
   ARJ v2.41 : name/XXX #/12345
   Astound v1.5 for Windows : 3031620659
   Astound v2.0 for Windows : 3044507372
   Asymetrix 3D F/X for Windows : 2011-009713
   Asymetrix multimedia toolbook v3.0 : 0740-002379
   Authorware PRO v2.0 for Windows : 8205-2072-3071
   Authorware PRO v2.01 for Windows : 8217-4072-0086
   Autocad lite for Windows : 167-10001908
   Autodesk Animator PRO : 4930-P4-PH-1
   Autodesk Animator PRO v1.0 : 01603-010203-2520
   Autodesk Animator PRO v3.05 : 655-10000088
   Autodesk Autocad data extension : 130-10083217
   Autodesk Autocad lite for Windows : 167-10001908
   Autodesk Autocad v.R12 : 110-10061620
   Autodesk Autocad v13.0 for Windows : 70FEE2FD
   Autodesk Designer learning resources : 07301-010203-4520
   Autodesk Designer new fund. tools : 07300-010203-3310
   Autodesk Designer training guide : 07300-010203-3010
   Automanager v1.1 for Windows : 001454
   Automap PRO v1.06 for Windows : 2028038
   Automap v1.0 for Windows : W 12391
   Automenu v1.0 for kids : 501G4-UHPMH-PCG53-S
   Autoscribe v2.5 : bbs/ABC #/5804
   Autosketch v2.0 for Windows : 123-12345678
   Autosketch v2.10 beta for Windows : 190-00028490
   Autosketch v2.x for Windows : 190-00028490
   Autovision v2.0 for Windows : 5B35AE2B
   Autowinnet v1.3 for Windows : AWN348CASLT101
   Autowinnet v1.4 for Windows : AWN348INWUA102
   AVM-ISDN-IBTX v3.0 : 2001507A
  o-o
 | B |
  °-°
   Ballade v1.0 for windows : 2004100460
   Banner 3 : 507230300326
   BBS Bowl v1.5 : name/Me #/17677
   BGfax v1.30 : name/Me #/201258 pop/DFCA99E0
   Bicycle v1.3 bike 'alog on disk : WWUXPQVYP
   Bitcom v5.4c : A271113
   Bitfax v3.09c : A248258
   Bitfax/SR v4.06g and Bitcom v5.6d : A006844633
   Blackboard : name/Me bbs/ABC key/?G49(
   Blastermaster v6.x : (add to .BAT) SET SBMASTER=798-3240
   Bluewave v2.12 : name/Me #/77384318
   Bolo CD-version : 7000465510-LNK
   Bookie Bookworm: All stories : 1-900-903-2665
   Boot commander v1.27 : R302582-TTHY
   Boot'R v2.11 : name/"Your own" #/RH-004001-000
   Borland C++ v2.0 for OS/2 : BCP1420WW10180
   Borland Office v2.0 for Windows : IA332A10046950
   Bridge manager v0.33 for Windows : 373-0111-03
   Buromanager PRO v3.1 : 0E01188472020
  o-o
 | C |
  °-°
   C.B.S.O v2.6 : SYSTEM
   CA Simply accounting v3.0a for Win : 1021602-52559
   CA Simply accounting v4.0b for Win : 1020602-212703
   Calendar v3.0 enterprises : #/61001234 key/191715
   Calera wordscan v3.0 : BB3921343
   Calera wordscan v3.1 for Windows : HP3102305
   Caligari true space v1.1 for Windows : 3 10 001 026188
   Cantax for '95 v1.0 for Windows : 134-950128-0374079
   Canvas for Windows : 5035430458
   Canvas v3.52 for Windows : 485110842
   Cardshop plus for Windows : 0729
   Catdisk v7.xx : (AUTOEXEC.BAT) SET CATDISK=XYZZY
   Catdisk v8.x : name/Maroon code/G445000QIR
   CD-Quick cache v1.10 : NAME/**** KEY/****
   CD-Quick cache v1.11 : name/Me key/DF92
   CD-ROM update v0.3 beta : (CDROM.REG) name/Me bbs/XXX
   Chameleon NFS morpher v4.01 : 34649640121147 S3,D7D0
   Chameleon NFS v3.14 for Windows : 3433223117197 P3 C4ED
   Chameleon v4.x : #/34059131041712 S3 key/A224
   Chameleon NFS v4.5 : 34768840199594I3 2FA2
   Cheat master (all versions) : Crea un archivo vacio llamado "A FOREST.SIG"
   Check It v4.0 and v5.0 : 000-237032
   Checkit PRO (analyst) for Windows : A7-100163
   Checkit PRO analyst v1.0 for Windows : A7-100163
   Checkit PRO sysinfo v1.0 : A1-001725
   Checkit PRO v1.04 for Windows : A3-062402
   Checkit PRO v1.06 or 4.0+ /Windows : A4-115796
   Checkit v4.0+ : A7-100163
   Chicago beta build 177 : betaside id/101907 pw/999670C9E
   CICS v2.01 for OS/2 multi user : UN74786
   CICS v2.01 for OS/2 single user : UN74802
   Cleensweep v1.0 for Windows : 115-25C-22620
   Clinical pharmacy for Windows : 9412345
   Close up host/remote v6.0 for Windows : 31B57D-1121111
   Closeup v5.0 for Windows : IBB463-852875
   CM Viewer v3.10 : 44718494P31
   Coach & Coach Pro : 1552467
   Color view v3.10 : name/Twinhead [TWH/BDC] #/378839
   Comma net mail v2.50 for Windows : 19211134581-6
   Comment : 1897867
   Compel PE : ASYM10288
   Complete program deleter v1.4 for win : 728679
   Conference Room vx.x (IRC SERVER) : F5EA-23E8-49D2-E689
   Context v2.0 online dictionary Win : 04.4101.20
   Conversions plus for Windows : 904954-2539
   Conversions plus v2.0 for Windows : 11111111
   Conversions plus v2.53 for Windows : 983798-0308
   Cool edit v1.50 for Windows : name/You! #/BMJZCPUX
   Cool edit v1.51 for Windows : name/COOL MAN #/XJMINCLE
   Corel flow v2.0 for Windows : SW-Q023-CF-E
   Corel Gallery v2.0 for Windows : CG2-020-123456
   Corel Photopaint v5.0+ for Windows : PP5-2522-97100
   Corel Ventura 5 for Windows : CD5-123-456789
   Coreldraw v4.0 NL for Windows : CD4-114-654-454 or CD4-234-345-567
   Coreldraw v5.0 for Windows : CD5-123-456789
   Coreldraw v5.0 rev. E2 for Windows : CD5-050-118034
   Corelflow v2.0 for Windows : CF2-123-456789
   Corstream dedicated Server v1.0 : CBA 0009432
   CPU Monitor plus v2.30 for OS/2 v2.1 : CPUP-V230-512073
   Crystal Caliburn Pinball : 9525CCW102365-U1
   Crystal graphics flying fonts for Win : RB10-0140-1022
   CStar v1.0 for Windows : 4690289681360
   CU-SEEME v3.0 : SCBTK-NPJGG-PKHEG-MJDCT-TECLM
  o-o
 | D |
  °-°
   D.B. Express v1.50 for Windows : PE15003-1194
   Dabbler v1.0 for Windows : 5011380-8195
   Daceasy EIS v5.0 for Windows : EI50X101175
   Daceasy for Windows : WA1IB111835
   Dagesh v2.0 : 334 804 020 072 125
   Data access tools v2.0a for Windows : 1F00028-01104360
   Data junction v5.0 for Windows : W103100217
   Databoss "C" : 93-1207-000398
   Databoss v1.01 for Windows : 94-0202-000361
   Datacad estimator v4.2 : 5401-1092
   Datacad professional v5.05 (update) : DC50C-8298
   Datamaker v2.0 for Windows : 104010201F6
   Davinci E-mail v2.52 : 52XVD-GBEUP-6BP3A
   Daytimer organizer v1.0 for Windows : 710000000
   Dazzle plus v2.1 for Windows : DP940235
   Dazzle plus v2.1b for Windows : 1234567
   Dbase III plus : 3745331-26
   Dbase IV : KD712AA0000005
   Dbase IV for Windows : DA712A1047458
   Dbase IV v1.5 : WA711C10152190
   Dbase IV v2.0 beta 2 : KD712AA0000005
   Dbase IV v2.0 NL : WA712C50000000
   Dbase IV v2.02 : IA 712A10518133
   Dbase IV v5.0 for Windows : DA712A1047458
   DCC PRO v3.02 : 267109015
   Delrina Preform v1.0 for Windows : 2201-8201-1029
   Delrina Wincom PRO v1.1 for Windows : 37Z59J
   Demo workshop : Okware #/0AQ6M5RBRATPN8HN64K05I
   Deneba's Canvas for Win : 450059719
   Design estimator : 5055-2897
   Desqview /X network manager v1.1 : 003-V1-3616
   Desqview /X OSF/motif : 002-R1-1583
   Desqview /X v2.0 : 754-X5X-14396
   Desqview 386 & QEMM 386 : 001-32H-72414
   Desqview 386 v2.61 and QEMM 386 v7.02 : 001-32H-72414
   Desqview 386 v2.7 & QEMM 386 v7.5 : 114-22H-28256
   Desqview/X network manager v1.1 : 003-V1-3616
   Desqview/X v2.0 : 000-15X-011980
   Digigrabber : 6776-3647-1143-4455
   Disk management system v6.10 : 64232312
   Disk manager v6.03.03 Maxtor HD : 18002629867
   Disk optimizer v1.01 for Windows : 11111111
   Diskdupe PRO 3 v7.x : 200-468-710
   Disktop 4.0 : 06412
   Distinct TCP/IP v3.21 for Windows : #/AD00081094 key/78-17-DF
   Diz-it v1.3 : name/TwinHead [TWH/BDC] #/.156024
   Diz-it v1.3 PRO : name/TwinHead [TWH/BDC] #/489984
   DoKo for Omnis 5 runtime : DOKO
   Doorway v2.22 - v2.30 : name/Me #/57604
   Dr. Salomon's antivirus toolkit v6.65 : TK2285817
   Dr. Salomon's antivirus toolkit v6.68 : TK2495340
   Dr. Salomon's antivirus toolkit v6.71 : DTK3H-063095
   Draftchoice v2.15a : #/23-4234-9999 Name/SaLaManDeR
   Dream solver '95 summer edition : name/Perry McGee #/3415037668882416
   Dreamrom v1.3 : name/Me bbs/XXX #/532
   Drive Pro v1.15c : WBJK10
   Drive PRO v2.0/2.0c : LAKS11
   Drive rocket utility v1.15 : 00089549
  o-o
 | E |
  °-°
   ECCO, the PIM for Windows : 1101232620
   Eclipse fax v6.0 for Windows : 105-94452
   Eight ball deluxe II : EZ001114301
   Elastic reality for Windows : 40-9831-11111-23361
   Electronic workbench v3.0e for Win : W-00190-E99C
   Empower : name/ADMINISTRATOR pw/ADMIN
   Enforcer 2.9 : 876855327801
   Entertainment digest for Windows : 2011-0021-3271
   ESL v4.0 for OS/2 and Windows : 3091300953
   Estimator plus for Windows : 5500-9466
   Eta beta 2.1 for Windows : WD52-EB21-0023
   Evolve v6.1 for Clipper : EVC610401762
   Excalibur BBS server v0.84 for Win : 10021000002
   Excalibur BBS server v0.95 for Win : 100210000020095
   Exceed 4 v4.1 for Windows : W -059483
   EyeCandy 3.0(plugin for adobe photoshop): IIIGEBFHMJNB <>
  o-o
 | F |
  °-°
   F(g) Scholar : FG0021747120
   Falcon v3.0 : 033624
   Family treemaker v1.01 for Windows : FTW11R64747
   Fantasy land v1.20 : bbs/XXX sysop/Me #/ABCD8178
   Fantasy photo collection for DOS/Win : 37200
   Far stone cache driver v2.X : 1-10501131
   Fast fonts v3.3 for Windows : 05-U08355
   Fast mail v1.20 beta a for Windows : 1502909616
   Fauve matisse v1.24 for Windows : 1733920
   Fax for Windows v3.0 : 100401007520
   Fax-a-laugh v1.0 : GB001000
   Faxmaster v1.01 : 4304L-D00-999999L
   Faxserver v2.0 for Netware : 20FX 985466 or EV 1213767
   Fido QWK v1.25 : name/Me #/68571B8A
   Fighter wing from Merrit studios : 1PKY6T89X2A
   File force 1.0 : X-442540368699
   File magic professional v2.0 : 16-0012025
   Filecompress PRO v1.0 for Windows : 081494-001L-00P4093
   Filemaker PRO NL v2.x for Windows : 7000843902
   Filemark v2.00 beta : name/Me #/214180166571461814535
   Final v3.0 for Windows : WFNA 106311
   First aid v1.0 for Windows : 1002-0E7B
   First aid v1.2c for Windows : #/1000-A1B1 pcode: AF10112C
   Fixed asset system v9.41 : 3060461
   Flinstone cuckoo clock for Windows : 90500100-00123
   Folio viewer v3.0 for Windows : 30WVU1234567
   Foxbase 1.1 : #/FMD027877 pw/EMZXPYEI
   Fractal design painter v2.0 for Win : 0700585AQK
   Fractal design painter v3.0 for Win : PW300RAZ0002607-EANY-001
   Framebuilder for Windows : 04-0-01-01-4-0056A-916E2D
   Framemaker v2.1 : 2-01320-27
   Framemaker v4.02 for Windows : 00-0-01-01-4-00C2F-3C9DB0
   Framework 4 : 00-0-01-01-4-0059E-2E00D2
   Freehand v4.0 for Windows : 03-003-00003 or 03-921-34311
   Frontdoor v2.11 : FD001123456
   FrontDoor v2.20a Multi Line : name/Me s-input/34566 #/FFFF:8706
   FTP-Server daemon for Winsock v1.1 Win: .Va7/onRUR./Kermu
   Fusion DBL CD : 557-0251-01
  o-o
 | G |
  °-°
   Game wizard PRO v2.0b : ESD-GW-002001
   Gamma universe v1.03 for Windows : UV0103-000-43LPBSW-6548
   Geopublish graphic windows environment: 1000-0022-0278-1056
   German translation program : 45014774
   GetRight All versions: 698008401650
   Gif Converter 2.1.1 : 62-37-77-F4-DE-A8-8B-B2
   Giflink : #/GK123456445 name/Betamax
   Giflink v2.01 : name/Me #/GK546354872
   Giflite : #/GL123456689 name/Betamax
   Giflite v2.0 : name/Me #/GL868695771
   GifLite v2.10 : name/Me! #/GL210000698
   Girlfriend Teri : 240-104343
   Global war (any version) : bbs/ABC #/GQ892HIRTFG
   Goldmine for Windows : 10576345
   Graphics workshop : name/Me #/11811
   Graphics workshop v1.1j for Windows : 65535
   Graphics workshop v1.1p for Windows : name/>>>MarQuis De SoiRée<<< #26132
   Graphics workshop v6.1 : name/Okware #/13845
   Graphics workshop v6.x and v7.x : name/Me #/5923
   Graphics workshop v7.0e : name/Me #/05889
   Gravity verdict law office : GV-940606-6996-000111
   Great Plains Accounting : MANAGER pw/ACCESS
  o-o
 | H |
  °-°
   Harvard graphics v3.0 for Windows : 16-0300-DSET
   Harvard montage v1.0 for Windows : 27101 0001211
   Help development toolkit v2.5 for Win : WQT7YZW6-HDK
   Help magican PRO v3.0 for Windows : 97304.300.001
   Hi-Cross v2.6 for Windows : #/67657 lic/163240
   Hijaack graphics suite for Windows : HGJS 3 SU CH EB0GSWUT
   Hijaack PRO v2.0 and v3.0 for Windows : RYXJ595D
   Home design v1.1 for Windows : 0530140311
   Hslink DLP (for Procomm+ v2.x for Win): #/0001 code/BSB258H
   Hslink external : 00654
   Hslink v1.21 : Hslink (brand) 1134 0136ZW0
   Hslink v1.21 beta 9 : #/123 code/1E7H7P9
   Hugo plus v8.0 for Windows : #/096056 code/WIFR80 1094
   Hurricane v1.0 : 07-A17280
   Hyperware speedkit v4.91 : SNFBBSUPD
  o-o
 | I |
  °-°
   IBM Bookmanager lib reader v2.0 Win : 5799-PXY
   IBM PL/I Personal entry ver for Warp : 10H7819
   IBM PL/I Professional edition for Warp: 10H7848
   Ice Zmodem v1.02 : name/Potman '95 #/1306561065
   Ice Zmodem v6.0 beta : name/SLA #/1-49282-84275
   Idea fisher v1.0 for Windows : W12203-0512
   Idea fisher v5.0 : W04044-0080
   Image commander v1.0 for Windows : 100SPW3H07A10380
   Image IN v3.2 : 100-05DG-0ER4
   Image Q v2.2 for Windows : 901172
   Imagepal : RNAE9-40302-01417
   Imagination v2.2.24 : 00765
   Infomodeler v1.5 desktop ver for Win : 1090-003800
   Inoculan v2.5 : IL20 346002
   Inspiration v4.0a for Windows : 1633D1233H4551
   Integraa visual db builder v2.00 Win : 1205555057
   Intel LANdesk response for Windows : 400361.001
   Intellicom v2.01 beta 5 : 040994
   Intergraph's Microstation : 00088193000085
   Intermail v2.2x : 6A-000-001234
   International OCR : A46IW331561710
  o-o
 | J |
  °-°
   Jigsaw-it v1.0 for Windows : 7104401272
   Jigsoft v1.2g for Windows : 503-331
  o-o
 | K |
  °-°
   Kiwi Enveloppes 3.0 : KE301120RA
   Klik & play v1.0 for Windows : KPE10001143
  o-o
 | L |
  °-°
   Labtech notebook v7.3.0 : 27539
   Lahey fortran 77 v3.0b : B12858
   Landmark Datasafe crashproof v2.0 Win : 00213057 CU
   Landmark INI expert for Windows : 00005536X1
   Landmark Speedtest v3.0 for Windows : 01703286SFW
   Landmark Wintest v1.0 for Windows : 01860489 TH9
   Laplink v6.0 for Windows : LW6USRT-100475-600/24
   LastByte Memory Manager v2.50 : name/Me! #/9F0BF89C
   Layer III : 1234DA75901230
   Lemmings for Windows : 168255
   Liason 2.0 : 40026825185
   Light chat v1.0 : name/Me key/2482430948
   Lightning CD : LC110014980
   Lightning graphics C-version v4.0a : 004-922-C9D00
   Liquid speed v1.0.2 for 3DS : 12900388760114244102
   Locksmith v1.31 : LOCK-1000
   Logitech mouse v6.30 for DOS and Win : MBAI 008965T630
   Logitech mouse v6.43b for DOS and Win : MBAI 013904T643
   Lotus 123 for OS/2 : 1O00003-35389080
   Lotus 123 v5.0 : 2350016-38419880
   Lotus 123 v5.0 for Windows : 1F00028-01104360
   Lotus Approach v3.0 for Windows : 1F00028-01104360
   Lotus data access tools v2.0a for Win : 1F00028-01104360
   Lotus organizer v1.1 for Windows : 1Q00001-83927521
   Lotus organizer v2.0 for Windows : 1F00028-01104360
   Lotus screencam v1.1 for Windows : 2350016-0141988
   Lotus Smartsuite v3.0 for Windows : 1S10015-08473222
   Lotus VIP, visual basic type program : 1F00028-01104360
   LView Pro 1C/95 : name/Nobody number/1090-000-005821
   LWbull : name/Me bbs/XXX #/17961493
   LWmenu : name/Me bbs/XXX #/18192757
   LWuser : name/Me bbs/XXX #/18578197
   LW_mgr : name/Me bbs/XXX #/18809461
  o-o
 | M |
  °-°
   Mac 2 PC PRO plus for Windows : 123456-1234
   Macpassword 3.8.0 : NOV30195MAY261951
   Macro model for Windows : 0428-4079-2071
   Macromedia director v4.0 for Windows : DRW400-1895-9074-2077
   Magic v1.33 : 15002688
   MagnaRam for 95 : 011-18B-99630
   Mannequin v1.1 : 10012345
   Map Edit 2.2 : BJJNBKBA
   Mapple V v3 for DOS and Windows : DOS-5203-676023-1
   Marvel screen posters for Windows : MVW-92958-1201
   Master Juggler : MVW-92958-1201
   Mathcad v5.0 for Windows : P501069D00368
   Mathematica v2.1 for Windows : 2549-51771-93417-6270
   Mathematica v2.21 for Windows : 5870-34471-82354-3005
   Matlab v4.0 for Windows : 335339
   Mattise v1.5.2 : 1733767
   Mayor BBS v6.25 : NWGEEGD9J
   Mechwars v1.9g : sysop/Me bbs/XXX #/XA0N4TA4BUQB
   Media studio beta for Windows : ABETA-40490-29051
   Media studio v1.0 for Windows : NNAEA-40721-02586
   Mentor plus flite star 10/93 : 9243210
   Micro-scope v5.06 : MS-1231393
   Microfocus/370 assembler v3.1.16 : URNB0UPP/000000000
   Micrographic picture pub v5.0 for Win : NTA-NTA-01A
   Microscope v5.06 : MS-1231393
   Microsoft CD protection : 040-0613220
   Microsoft Great greetings v1.0 for Win: 32521-082-0109954
   Microsoft Money v2.01 beta for Windows: 00-105-0200-99999979
   Microsoft Money v3.5 (german) for Win : 20342-066-0023392
   Microsoft Office PRO '95 : 26716-103-0145657
   Microsoft Office PRO v4.3c for Windows: 28779-051-0101444
   Microsoft Planner for Windows : 076-051-090
   Microsoft works v3.0 NL : 16429-020-0000284
   Microstation : 00088193000085
   Microstation CAD v5.08 for DOS and Win: 6362-CURRY-FRIKA
   Microstation powerdraft CAD v5.5.0.5 : 00088193000085
   Microstation v5.00.95 (5.1) : SGBXI48AB-0500A
   Minitab v9.2 for Windows : W92006400
   Mirage raytracing engine for 3D studio: 942559
   Mirc 32 v4.52+ : D3V|L H4CK3RZ/13026-1177904
   Modem docter v5.2 : M4B00635
   Monarch for Windows : 1003818
   Moneymap financial director for Win : password/CASH
   Morphing magic : 0-672-30320-5 2
   Mortice kern sys. 3.1 DOS/Win (6users): 3041129678
   Multiedit v7.00e : ME700E111111
   Multimedia solutions : 205521
   Music magic songbook v1.0 for Windows : 932667-2198
   Music time for Windows : MV20-0-02045-8738
   My advanced label designer : 2223-87357
   My advanced maillist and addressbook : 2123-42935
   My invoices : 2643-20966
   My-T-mouse v1.30 for Windows : FT 1305766
   Mystery at the museums : 0340151
  o-o
 | N |
  °-°
   Natural v2.1.1 for Windows : NW12118855322257
   Navcis PRO v1.5 for Windows : MC-9267
   Neobook PRO v2.0b : 4711081MIQOEOB or 7753889AHULQWJ
   Neopaint v1.1 : 1312649GQISPSV
   Neopaint v2.0 : 2233445HPKTNSR or 9876543OVOWASP
   Neopaint v2.1 : 2039485HNKZNWR
   Neopaint v3.0 and v3.1 : 47110815LMPJVQ
   Neoshow PRO v1.0 : 0123456THTJNQN
   Neoshow PRO v2.0 : 2115868RUJISNV
   Neoshow PRO v2.5 : 4711081WUIJTRC
   NeoSoft phantom screensaver v1.2b : 4711081WIRJUUN
   NetBus Pro 2.0 : NAG Software, Inc./FDDB7485
   Netcom netcruiser v1.0 internet : 91629
   Netroom v3.0 : 02-R809678
   Network plus : 02-AU1-0726C-0RNR-002-20052
   Neverending disk v2.1 : NDO101841
   Norton administrator for networks : M5NA15XG10410213
   Norton textra connect v1.1 : A7881492178
   Novell DOS 7.0 personal netware v1.0 : S6-004001-001
   Novell perfect office v3.0 for Windows: 1P030XW00010110Z
   Novell personal netware (5 users) : 23660970
   Nowhere Man's Virus Creator : ARoseIsARoseIsARose
   Nupaint : 10111220
  o-o
 | O |
  °-°
   Office control-easy for Windows : 33233359
   OLX Off-line xpress for Windows : 44-4444
   Omnipage : 2804b-d00-999999
   Omnipage 2.1 : 0102E-%001705
   Omnipage PRO v5.0 for Windows : #/2804B-C000003700 pn/872-0734-020
   Omnipage PRO v5.02 for Windows : 2804A-C00-073789
   Omnis 5 runtime version : 11087165180
   Omnis 7 v3.0 for Windows : CWRS 270836 20251 / CWRS270836 20251
   Open doors v4.x - v5.x : name/Me #/0x0000E005
   Outside in v2.1g for Windows :OW218312364
   Outside view v3.2 for Windows : 18VS48-391
  o-o
 | P |
  °-°
   Pagemaker NL v5.0 for Windows : 02-50C8-100094310
   Panoramic utils v1.1 : 111-976-0001513-01
   Paper direct templ. v5.0 for Corel Win: 606771
   Paper direct templ. v5.0 for MSWord v6: 608813
   Paradox speller for Windows : CM55022999
   Paradox v4.0 for Windows : IA931A10158034
   Paradox v4.5 for Windows : IA931A10000162
   PC Anywhere v4.5 for DOS and Windows : PCDH4543IN
   PC Auto strecken berater netz (german): 0000108995
   PC Blox v2.0 : 080594
   PC Board professional v15.21 : 029617
   PC Buchhalter v1.01 (german) for Win : 8848 5060295
   PC Doktor v1.0 : 1139610360
   PC Focus v6.01 NL : 1732221
   PC Miler v1.0 for Windows : W410626
   PC Tools v2.00 for Windows : 11-50-01415
   PC/TCP Network v3.0 for DOS/Windows : #/1990-1025-7300 key/3751-6732-9871
   PC/TCP v1.1 for Windows and DOS : #/3917-3337-0007 key/3776-9499-4365
   Pckwik powerpak for DOS and Windows : 5062180192V09
   PCX-DumP v9.2 : name/Me! #/YTMAR0A14DCA0EC27
   Peachtree accounting for Windows : 9257595
   Peachtree complete accounting v8.0 : 9005635
   Peachtree v7.0 : 7807139
   Perfectview NL v6.10 : PV-PAC61-260159
   Perfectview v6.1 : PV-PAC61-NT260119
   Pharlap TNT 32 BIT DOS extender v6.0 : 27146
   Pharlap TNT 32 BIT DOS extender v7.0 : 30875
   Photo magic : PH1001LXX-04526
   PhotoShop Pro 3.04 : PWW300R3000011-926
   Photostyler v2.0 for Windows : 15-2008-201748321
   Physik v2.0 : PHYSIK+V2.0WWW94
   Picture publisher v4.0 : 0301001006108501
   Picture publisher v5.0 for Windows : NTA-NTA-01A
   Plug-in v2.0 for Windows : 136-92031109
   PMComm v2.30 32 bit for OS/2 : 4618110594
   Power management v2.02 for DOS and Win: KWW687480
   Power PPL v2.0 : fname/Me lname/XXX #/442:264:146
   Powerdrive v6.0 for Windows : U60041006398
   Practica Musica : 00215052
   Premiere v1.0 for Windows : MBW100X3100970-389
   Preprint : 11-1009-200021734
   Procomm plus : PW10091107
   Procomm plus for Windows : PW10467543
   Procomm plus v2.0 : PP20116382
   Procomm plus v2.0 for Windows : PPWU2000081467
   Procomm plus v2.11 for Windows : PPWU2100077294
   Profesional draw : 3000045840
   Project manager workbench v2.0 for Win: 120344
   PSearch v4.4a : name/GaRY D. [UCF] #/000000138
   PTT Phonebook dec. '94 CD-ROM : D2865
   PTT Phonebook sept. '94 CD-ROM : H3435
  o-o
 | Q |
  °-°
   QAPlus/FE v5.30 : 12345-6789-0
   QEMM 386 V7.0 : 103-27E-53601
   QEMM 386 v7.03 and v7.04 : 001-32H-72414
   QEMM 386 v7.5 : 010-17F-95293
   QEMM 386 v7.52 : 000-000-00009
   QEMM 386 v7.53 : 001-32H-72414
   QFront vx.xx : name/Me! bbs/G.!.$ #/01-0001
   Qmodem : name/Me #/42646
   Qmodem PRO v1.10 for Windows : 92-0069
   Qmodem PRO v1.53 : 66-3454
   QmodemPro for '95 : 123-456-789
   Quark express v3.3 with EFI : WX-12572277
   Quarterdeck InternetSuite v1.0 : 003-17J-55484
   Quatro PRO v3.1 : DA246D10323488
   Quatro PRO v5.0 for Windows : 1F945C10098127
   Quattro PRO NL v5.0 : IA945C10033381
   Query for OS/2 : 5622-118
   Quick books v1.0 : 382.71.904
   Quick books v3.0 for Windows : 1000164598
   Quick restart v1.5 for windows : 00617051QR1
   Quick time v2.0 for Windows : 040904E4
   Quickbooks v3.0 for Windows : 1000164598
  o-o
 | R |
  °-°
   R&R Report writer v6.0 for Windows : 65793
   Ragtime 3.0 : #/6601120 Production#/8739401
   Ramexam : 5432189569
   Ramexam v7.01 : 90060814060
   RAR v1.54 beta : name/!YOU! #/A9BC77E742FBCA1995
   Ray dream designer v3.x : DW-313-1-8686-4776
   Reachout remotecontrol Pro4.04 DOS/Win: 000646264
   Reachout remote control v5.0 : 1031-1100-0000-0000
   Recognita plus v1.0 for Windows : A46AW422604388
   Recognita plus v1.25 for Windows : A46IW422685241
   Recognita v1.0 for Windows : A46AW422604388
   Regognita GO-CR v2.1 : UI23C2029043
   Remote access pro v2.01 : PFB7B1EF04CDD90AAC0045
   Remote Access Pro v2.02 (250 nodes) : PF026549CB0002319A0045
   Remove it v1.0 : 10022814
   Remove It v2.0 : 20148045
   Rems property manager 500 v3.0 : 92336 1/2
   Renderman for Windows : 1114897156
   Roadtech v1.0 : A5-171754
   Rock & Bach studio v1.0 : 0247942
   Route 66 for Windows : 28424XVMH0333
   Route 66 for Windows benelux.map : 2316FSFE74625
   Rumba mainframe connect v4.0 (4 node) : 00491097
  o-o
 | S |
  °-°
   SCO Open server v4.21 : #/2BF016051 key/UQQFGHCD
   SCO Unix NFS v1.1.0 : #/ING000045 act.Key/JQQBRMYC
   Second-friend v5.0 : TR5012853
   Select time v2.0 : W894S91K4
   Semware editor prerelease : 3001005027
   Ser green screen/power saver : SKY797128
   Server dat v4.0 program manager : 301062
   Shadow login v1.2b : name/Me #/144901579
   Shez (all versions) : CDCE1357017562
   SideBar v1.0 for Windows : 000-19T-83189
   Sidekick v2.0 for Windows : 32-4644
   Simpson screensaver for Windows : KAW-64331-1262 or ZQW-33671-7329
   Sins for sirds v1.1 for Windows : 1371078
   SIO v1.45 16 port version for OS/2 : name/Joseph Urban #/10010205
   Skatteprogram 94/95 v9.11 : 62-046-123456
   Skullcheck v3.5 : (SKULLCHK.KEY) line #9/(Your name)
   Skylight v3.0 for Windows : XXX-201258-BMAX
   Smooth editor v0.99 : name/Me #/04.96.87.65.90.74
   Smooth editor v1.02 : name/Me #/09.46.88.56.99.27
   Snapgrafx v1.0 for Windows : 0901-0010-2844-6401
   Snooper v3.30 : S112-2331
   Softdesk core v7.02 unlocked : 07DCR3E 20337
   Softdesk productivity tools v7.02 : 07DPP3E 20333
   Softline pay CD : DFGD SCFE PQE EWX
   Software caroussel v6.02 and v6.03 : 30230940
   Sourcer v5.10 : B309868-YTHT or S321851-GPER
   Sourcer v6.09 : SR309518-RMYR
   Spectre VR (CD-version) : #/7WWD7JM3 network#/BWRK29R8
   Spinrite v3.1 : E0225808
   SPSS v6.1 for Windows : 945639
   Stacker v1.1 for DOS and OS/2 : SI1FH361225
   Stacker v4.0 for DOS and Windows : U40AA079658
   Stanford graphics v3.0b for Windows : 3000394
   Stardate v1.0 for Windows : LSW-83838-9710
   Star Trek for After Dark : KAW-64331-1262 or BSW-83011-2400
   Startrek screen posters : SPW-06753-8181
   Startrek:"TNG" screen saver : ZQW-33671-7329
   Storage executive v2.0 for Windows NT : 0241980001010487
   Streamliner v3.01 for Windows : SBW3001100640-184
   Streets on a disk v6.0 : ST40088
   Streetwizard v5.0 for Windows : 24451FD
   Studio 1 : 4682119240
   Stuffit Deluxe 1.01 : A 09000
   Styleline designer for MS Publisher : 28579-087-0113621
   Super queue v3.1 for Windows : 798-310-00120
   Superbase '95 v3.0 for Windows : 302010051293 or 353010020336
   Superbase v2.0 for Windows : 152010055593
   Supercharts v2.1g for Windows : OPQH93AG1YL3U4L
   Superfax v5.0 for Windows : 110957
   Superfax v5.1 for Windows : 110957
   Superjam v1.0 for Windows : 01-0426310A-000267 or 26310A-000267
   Superprint v3.10 : 400-310-00793
   Supervoice v2.0A for Windows : 001504
   Supervoice v2.0b for windows : 002846
   Suretrack project manager : 73013187
   System commander v1.28 : Y302121-GJRM
   Sytos plus v1.4x : SPED-142SYD2-A14
  o-o
 | T |
  °-°
   Take command : #/300711 code/8C7XFRNQ
   Tango PCB disk 1 : PP222X1
   Tango PCB disk 2 : PP222X2
   Tango PCB disk 3 : S140X1
   Tango PCB disk 4 : S140X2
   Tango PCB disk 5 : S140X3
   TBBS v1.2 : 2310267
   Telemate v4.12 : name/Me #/TM00F1C0155
   Telemate v4.20 : name/Me #/TM220000703
   Teles online for Windows : 900W657702504540
   Teles.com v2.72 : 9302 6618 2159 1171
   Telix v1.0/1.1x for Windows : W1902775-00945
   Telix v1.01x for Windows : W1251600-65005
   Telix v3.22 : A1058771-37419
   The reader v4.01 : name/Mine key/AAAB
   Thedraw v4.62 : A460-004945
   Timbuktu v1.01 Remote : 3120741165
   Timbuktu v1.1 for DOS and Windows : 3130078-33EC
   Timbuktu v3.1 : 067-591-117-475
   Time Organizer 2.0 : TMO-A011043-45
   Time slips v5.0 for Windows : 5.10190000638
   TKterm v0.15 : name/Me #/GCII233
   Topproducer v5.0 for Windows : IS3H-081794-CAE0019264
   Total access analyzer 2.02c /MSAccess : ST66162722
   Total access speller 1 user /MSAccess : ST42204733
   Total access statistics 1.0a /MSAccess: ST77008244
   Totally twisted screensaver for Win : BII-00670-6681
   Tradewars 2002 v2.0 : name/Me #/M4FE\C^JDH
   Trascan v5.x : 7E-08A7-81
   Treboffer v1.0 : #/622 pw/Password
   Trip maker road atlas for Windows : TMD 100 100 10782
   Tron v1.06 : name/Me! #/ST+44147
   Troubleshooter v3.51 : 570166
   True Forms 2.0 : TDA2008000217
   True type effects : TEW31-13A2B-01F0KV
   Truespace animation v1.0 for Windows : 310001026188
   Truespace v2.0 : 3 20 004 0030567
   Turbocom/2 v2.0 : 102454202
   Turbofast professional v4.2d : 23-HH845
   Twinbridge v3.3 for Windows : TBCWSYS9409U-109307
   Typestry v1.1 for Windows : 478821383
  o-o
 | U |
  °-°
   UHS Reader v3.0 : name/Me! #/177371
   UHS TSR v1.0 : name/Me! #/411321722622
   Ultra compressor II archiver, r2-3 PRO: #/2650819804 code/2423
   Ultra Paint : 51736
   Uninstaller v2.0x for Windows : I2237533
   Uninstaller v3.0 for Windows : VE18530027716
   Universal VESA VBE v5.x : 10000-0991DA6B-00001
   Unprotect/DOS 4.2a v646 : name/GaRY D. [UCF] #/00000000138
   Usurper : name/Me bbs/XXX #/541315
  o-o
 | V |
  °-°
   Value vision personal inv. mgr v2.0 : VV-W20-2551554
   Ventura publisher NL v3.0 : RWNL000029
   Versions/VB v1.1 for Windows : 110020000897
   VFast v2.0 beta protocol driver : VFC0D6F2
   Virtus VR : I20095616
   Vis PRO C/C++ for OS/2 : VPP5015436 or VPP6019281
   Vis PRO rexx gold edition for OS/2 : VPR1540827
   Visio 3 : 117-287-033446
   Visual reality for Windows : VRW02449
   Visualage team v2.0 for Windows : 17H7503
   Voice type control v2.0 for Windows : 16H9-740
   Vueprint v4.0 for Windows : 9202446
   VuePrint v4.1 : 9202444
   VuePro 32 : 8342813
   VX Rexx v2.0 for OS/2 : VXR2025401
  o-o
 | W |
  °-°
   Walt Disney screensaver for Windows : DSW-30857-2768
   Watcom SQL netware NLM for Windows : 31600455
   Webauthor v1.0 for MS Word v6.0 /Win : 000-17N-22546
   Wildcat BBS v4.0x : 95-1144
   Win Poly Grab : WPG-01-002336
   WinARJ : D3V|L H4CK3RZ/158544
   Winbatch compiler v5.01j for Windows : #/QG017Q3U id/263324
   Winbatch v5.0j for Windows : #/LG01FNT9 id/264747
   Wincheckit 2.01 : A6-050152
   Wincheckit Retail v2.0 : B6-019820
   Wincom PRO v1.1 for Windows : 37Z59J
   Windows 95 (build 490) : 100-1208613
   Windows 95 v4.00.950 : 24264-425-4287696-06468
   Windows 95 v4.00.950 R2 : 875-7215850
   Windows 95 v4.00.950 R3/R6 : 975-4769754
   Windows 95 Setup : 35202-OEM-0187462-158883
   Windows draw by Micrografx : DV1001LXX10827
   Windows for workgroups v3.11 : 18016-010-0187302
   Winfax PRO for Windows : 1321-2123-7176
   Winfax PRO v3.0 for networks Windows : server: 1100-0955-4806
   Winfax PRO v3.0 for networks Windows : user: 1152-7632-1646
   Winfax PRO v4.0 for networks for Win : server/1101-3405-1357
   Winfax PRO v4.0 for networks for Win : user/1154-2501-7095
   WinGroove : name/BJG70109 #/ZAAAAAAA
   WinImage 2.10a : name/Registered Version #/8BDCDD26
   Winmaster v1.5 for Windows : 4010625852V01
   Win Play 3: name/ISO FreeWare #/100011-301000-5000
   Winprobe v3.0 for Windows : 00065088DH9
   Winprobe v3.1 for Windows : 01497186EH9
   WinRAR 2.00b for Windows : D3V|L H4CK3RZ/7ECA8A997D16
   Winsleuth gold plus v2.0 for Windows : 240-14256
   Winsock for windows (all versions) : name/Me #/39323CC3
   Winzip v5.6 for Windows : #/A04C3CCD name/Registered Version
   WinZip v6.0 : D3V|L H4CK3RZ/ADF515B6
   Word crazy for Windows : 942-010-397
   Wordperfect v5.2 for Windows : 1WP52XW0820311
   Wordperfect v6.1 for Windows : 1WP61XW0166388
   Wordscan v3.0 for Windows : BB3921343
   Wordstar professional v7.0 : 29015146
  o-o
 | X |
  °-°
   X-Men screensaver for Windows : AD3-00670-6681
   Xargon : E20-1-3H
   XDiz v1.0e : name/SoNiC (R) [UCF] #/770
   Xtree PRO v1.0 : 115611
   Xtree v2.0 for Windows : X711080
   Xtreenet v3.0 for Windows : N524420944
   XWare xvision v5.6 for Windows : #/040005100D21819 key/18748F03DA00
  o-o
 | Y |
  °-°
   Yamaha Visual Arranger for Windows 95 : 11wa00939875e
   YanKees and RedNecks : You!/G.!.$/21762
  o-o
 | Z |
  °-°
   Zeno graphics superprint v3.10 : 400-310-00793
   Zipchunker PRO v3.01 : #/ZCP0000000079 name/Steve Voss
   Zipzap v9.01 : 991
   Zweckform winform PRO v1.0 for Win : WF0440


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
8 ) Codigos de paises
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 Afghanistan-Afganistan:                        AF
 Albania:                                       AL
 Algeria-Argelia:                               DZ
 American Samoa-Samoa Americana:                AS
 Andorra:                                       AD
 Angola:                                        AO
 Anguilla-Anguila:                              AI
 Antarctica-Antartida:                          AQ
 Antigua y Barbuda:                             AG
 Argentina:                                     AR
 Armenia:                                       AM
 Aruba:                                         AW
 Australia:                                     AU
 Austria:                                       AT
 Azerbaijan-Azerbaiyan:                         AZ
 Bahamas:                                       BS
 Bahrain-Bahrein:                               BH
 Bangladesh:                                    BD
 Barbados:                                      BB
 Belgium-Belgica:                               BE
 Belize:                                        BZ
 Benin:                                         BJ
 Bermuda-Bermudas:                              BM
 Bhutan-Butan:                                  BT
 Bolivia:                                       BO
 Bosnia-Herzegovina:                            BA
 Botswana:                                      BW
 Bouvet Island-Isla Bouvet:                     BV
 Brazil-Brasil:                                 BR
 British Indian Ocean Territory
 Territorio Oceanico de las Indias Britanicas:  IO
 British Virgin Islands
 Islas Virgenes Britanicas:                     VG
 Brunei:                                        BN
 Bulgaria:                                      BG
 Burkina Faso:                                  BF
 Burma-Birmania:                                BU
 Burundi:                                       BI
 Byelorussian Ssr (Bielorussia)-Bielorrusia:    BY
 Canada                                         CA
 Canton and Enderbury Islands
 Islas Canton y Enderbury:                      CT
 Cape Verde-Cabo Verde:                         CV
 Caroline Islands-Islas Carolina:               FM
 Cayman Islands-Islas Caiman:                   KY
 Central African Republic
 Republica Centroafricana:                      CF
 Chad:                                          TD
 Chile:                                         CL
 China:                                         CN
 Christmas Island-Isla Christmas:               CX
 Cocos Islands-Islas Cocos:                     CC
 Columbia-Colombia:                             CO
 Commercial-Comercial:                          COM
 Comoros-Comores:                               KM
 Congo:                                         CG
 Cook Islands-Islas Cook:                       CK
 Costa Rica:                                    CR
 Croatia-Croacia:                               HR
 Cuba:                                          CU
 Cyprus-Chipre:                                 CY
 Czech.-Republica Checa:                        CZ
 Czechoslovakia-Checoslovaquia:                 CS
 Democratic Kampuchea-Kampuchea:                KH
 Democratic People's Republic of Korea
 Corea del Norte:                               KP
 Democratic Yemen-Yemen del Sur:                YD
 Denmark-Dinamarca:                             DK
 Djibouti-Djibuti:                              DJ
 Dominica:                                      DM
 Dominican Republic-Republica Dominicana:       DO
 Dronning Maud Land:                            NQ
 East Timor-Timor Oriental:                     TP
 Ecuador: EC
 Educational Institute
 Universidades Norteamericanas:                 EDU
 Egypt-Egipto:                                  EG
 El Salvador:                                   SV
 England-Inglaterra:                            GB
 Equatorial Guinea-Guinea Ecuatorial:           GQ
 Eritrea:                                       ER
 Estonia:                                       EE
 Ethiopia-Etiopia:                              ET
 Faeroe Islands-Islas Feroe:                    FO
 Falkland Islands-Falkland / Islas Malvinas:    FK
 Federal Republic of Germany
 Republica Federal de Alemania:                 DE
 Fiji:                                          FJ
 Finland-Finlandia:                             FI
 France-Francia:                                FR
 French Guiana-Guayana Francesa:                GF
 French Polynesia-Polinesia Francesa:           PF
 French Southern Territories
 Territorios Franceses del Sur:                 TF
 Gabon:                                         GA
 Gambia:                                        GM
 Georgia:                                       GG
 Ghana:                                         GH
 Gibraltar:                                     GI
 Greece-Grecia:                                 GR
 Greenland-Groenlandia:                         GL
 Grenada-Granada:                               GD
 Guadeloupe-Guadalupe:                          GP
 Guam:                                          GU
 Guatemala:                                     GT
 Guinea:                                        GN
 Guinea-Bisseu-Guinea-Bissau:                   GW
 Guyana:                                        GY
 Haiti:                                         HT
 Heard and Mc Donald Islands
 Heard y Mc Donald, Islas:                      HM
 Honduras:                                      HN
 Hong Kong:                                     HK
 Hungary-Hungria:                               HU
 Iceland-Islandia:                              IS
 India:                                         IN
 Indonesia:                                     ID
 International-Internacional:                   INT
 Iran:                                          IR
 Iraq-Irak:                                     IQ
 Ireland-Irlanda:                               IE
 Israel:                                        IL
 Italy-Italia:                                  IT
 Ivory Coast-Costa de Marfil:                   CI
 Jamaica:                                       JM
 Japan-Japon:                                   JP
 Johnston Island-Johnston, Isla:                JT
 Jordan-Jordania:                               JO
 Kazakhstan-Kazakstan:                          KK
 Kenya:                                         KE
 Kiribati:                                      KI
 Kuwait:                                        KW
 Kyrgyzstan (Kirgistan)-Kirgistan:              KG
 Lao People's Democratic Republic-Laos:         LA
 Latvia-Letonia:                                LV
 Lebanon-Libano:                                LB
 Lesotho:                                       LS
 Liberia:                                       LR
 Libyan Arab Jamahiriya-Libia:                  LY
 Liechtenstein:                                 LI
 Lithuania-Lituania:                            LT
 Luxembourg-Luxemburgo:                         LU
 Macau-Macao:                                   MO
 Madagascar:                                    MG
 Malasia:                                       MY
 Malawi:                                        MW
 Maldives-Maldivas:                             MV
 Mali:                                          ML
 Malta:                                         MT
 Marshall Islands-Islas Marshall:               MH
 Martinique-Martinica:                          MQ
 Mauritania:                                    MR
 Mauritius-Mauricio:                            MU
 Mayotte:                                       YT
 Mexico:                                        MX
 Micronesia:                                    FM
 Midway Islands-Midway, Islas:                  MI
 Moldova-Moldavia:                              MD
 Monaco:                                        MC
 Mongolia:                                      MN
 Montserrat:                                    MS
 Morrocco-Marruecos:                            MA
 Mozambique:                                    MZ
 Namibia:                                       NA
 Napal-Nepal:                                   NP
 Nato Field-Otan:                               NATO
 Nauru:                                         NR
 Netherlands-Holanda:                           NL
 Netherlands Antilles-Antillas Holandesas:      AN
 Network-Red:                                   NET
 Neutral Zone-Zona Neutral:                     NT
 New Calidonia-Nueva Caledonia:                 NC
 New Zealand-Nueva Zelanda:                     NZ
 Nicaragua:                                     NI
 Niger:                                         NE
 Nigeria:                                       NG
 Niue:                                          NU
 Non-Profit Organization
 Organizacion sin animo de lucro:               ORG
 Norfolk Island-Norfolk, Isla:                  NF
 Northern Mariana Islands
 Marianas del Norte, Islas:                     MP
 Norway-Noruega:                                NO
 Old Style Arpanet-Arpanet:                     ARPA
 Oman:                                          OM
 Pacific Islands-Islas del Pacifico:            PC
 Pakistan:                                      PK
 Palau:                                         PW
 Panama:                                        PA
 Papua New Guinea-Papua Nueva Guinea:           PG
 Paraguay:                                      PY
 Peru:                                          PE
 Philippines-Filipinas:                         PH
 Pitcairn Island-Pitcairn, Isla:                PN
 Poland-Polonia:                                PL
 Portugal:                                      PT
 Puerto Rico:                                   PR
 Qatar:                                         QA
 Republic of Korea-Corea del Sur:               KR
 Reunion:                                       RE
 Romania-Rumania:                               RO
 Russia-Rusia:                                  RU
 Rwanda-Ruanda:                                 RW
 Saint Lucia-Santa Lucia:                       LC
 Saint Vincent and the Grenadines
 San Vicente y las Granadinas:                  VC
 Samoa:                                         WS
 San Marino:                                    SM
 Sao Tome and Principe-Santo Tome y Principe:   ST
 Saudi Arabia-Arabia Saudi:                     SA
 Senegal:                                       SN
 Seychelles:                                    SC
 Sierra Leone-Sierra Leona:                     SL
 Singapore-Singapur:                            SG
 Slovakia-Eslovaquia:                           SQ
 Slovenia-Eslovenia:                            SI
 Solomon Islands-Islas Salomon:                 SB
 Somalia:                                       SO
 South Africa-Sudafrica:                        ZA
 South Georgia-Georgia del Sur:                 GS
 Spain-España:                                  ES
 Sri Lanka:                                     LK
 St. Helena-Santa Helena:                       SH
 St. Kitts Nevis Anguilla
 San Cristobal-Nevis-Anguila:                   KN
 St. Pierre and Miquelon
 Saint Pierre y Miquelon:                       PM
 Sudan:                                         SD
 Suriname-Surinam:                              SR
 Svalbard and Jan Mayen Islands
 Svalbard y Jan Mayen, Islas:                   SJ
 Swaziland-Suazilandia:                         SZ
 Sweden-Suecia:                                 SE
 Switzerland-Suiza:                             CH
 Syran Arab Republic-Siria:                     SY
 Taiwan:                                        TW
 Tajikistan-Tayikistan:                         TJ
 Thailand-Tailandia:                            TH
 Togo:                                          TG
 Tokelau:                                       TK
 Tonga:                                         TO
 Trinidad and Tobago-Trinidad y Tobago:         TT
 Tunisia-Tunez:                                 TN
 Turkey-Turquia:                                TR
 Turkmenistan-Turkmenistan:                     TM
 Turks and Caicos Islands
 Turks y Caicos, Islas:                         TC
 Tuvalu:                                        TV
 Uganda:                                        UG
 Ukrainian SSR-Ucrania:                         UA
 United Arab Emirates-Emiratos Arabes Unidos:   AE
 United Kingdom-Reino Unido:                    UK
 United Republic of Cameroon-Camerun:           CM
 United Republic of Tanzania-Tanzania:          TZ
 United States-Estados Unidos:                  US
 United States Minor Outlying Islands
 Islas exteriores menores (Estados Unidos):     UM
 United States Miscelaneous Pacific Islands
 Islas del Pacifico de los Estados Unidos:      PU
 Unites States Virgin Islands-Islas Virgenes:   VI
 Upper Volta-Alto Volta:                        HV
 Uruguay:                                       UY
 US Government-Gobierno Norteamericano:         GOV
 US Military-Organismo Militar Norteamericano:  MIL
 USSR-URSS:                                     SU
 Uzbekistan-Uzbequistan:                        UZ
 Vanuatu:                                       VU
 Vatican City State-Ciudad del Vaticano:        VA
 Venezuela:                                     VE
 Vietnam:                                       VN
 Wake Island-Wake, Isla:                        WK
 Wallis and Futuma Islands
 Wallis y Futuna, Islas:                        WF
 Western Sahara-Sahara Occidental:              EH
 Yemen-Yemen del Norte:                         YE
 Yugoslavia:                                    YU
 Zaire:                                         ZR
 Zambia:                                        ZM



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
9 ) Me conecte a Internet
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                ..--::   Me conecte a Internet   ::--..
                          (Solo para novatos)
                             By Mr. Nuk3m

 Hace un tiempo, estaba navegando por internet y probando algunas cosas
 con el telnet en el cybercafe, y de pronto se me ocurrio: ¿ a ver que pasa
 con la direccion del server del cyber ? y probe haciendole un telnet a la
 direccion del server....

 Bueno me aparecio el mensaje de bienvenida y a continuacion el famoso
 login y password... probe algunos logins y passwords defaults que habia
 visto por algunas e-zines y despues de un rato... Ssii... aunque no lo
 crean, el administrador HABIA DEJADO LA CUENTA DEL ROOT "SIN PASSWORD"..

 Entre sin pensarlo y al toque, me hice una cuenta con privilegios de
 root para no usar tanto la cuenta del root... La cuestion de esto es
 que no hice mucho en ese momento porque no sabia mucho del tema y no
 se me ocurria otra cosa que hacerme una cuenta para mi para futuras
 entradas... Anduvo todo muy bien hasta que a la tercera semana de haber
 creado mi cuenta cuando voy a ingresar me pone login incorrect, pruebo
 unas veces y nada...¿ que paso ? el administrador se dio cuenta o lo
 informaron de la intrusion y borro mi cuenta y le puso un password a la
 cuenta del root y asi finalizo esta primera experiencia con el server...

 Ansioso por volver a experimentar esta sensacion de no saber lo que vas
 a encontrar y si realmente vas a poder "hackear" es todo un desafio y
 que te motiva a seguir adelante.. lei unos articulos que hablaban de
 ingenieria social y los estudie por unos dias hasta que me decidi a
 empezar a recopilar informacion de cualquier manera y a cualquier costo.
 Entonces cuando ya tenia mas o menos todo organizado como para hacer mi
 primera ingenieria social, puse manos a la obra y llame a un chico que
 yo sabia que tenia acceso a Internet mediante ese proveedor y que por
 supuesto, sabia muy poco de computacion e internet...

 Esta es la conversacion mas o menos como recuerdo que fue...

 . Llamo a la casa del chico... ring... ring... ring....
 . Atiende una mujer (supongo que era la madre) y dice..
   (Victim) - " Hola "
   (Nuk3m) - " Hola, que tal. Esta fulanito ? "
   (Victim) - " Si ya te paso "
   (Fulanito) - " Hola "
   (Nuk3m) - " Ah si.. hola fulanito que tal. Soy xxx y queria saber
               si sabes el numero del telefono al cual te conectas a
               Internet, o sea, el numero del servidor. Porque a mi
               de dieron un numero pero no me anda. No se que pasa.
               Me podes decir a cual llamas vos ?? te lo agradeceria
               mucho... "
   (Fulanito) - " Eh... espera un poco... "
   (Nuk3m) - " Bueno... :) "
  . Despues de unos segundos vuelve al telefono y dice..
   (Fulanito) - " Mira xxx yo me conecto usando el XXX-XXXXX fijate si te
                  sirve y despues me contas.."
   (Nuk3m) - " Bueno.. muchas gracias... Chau..."
  . Cuelgo... click...

 Con la pequeña conversacion que tuve con "Fulanito" me entere de que el
 numero para concetarse al server y a internet era el XXXX-XXX.... pero
 ahora me faltaba una cuenta para poder entrar....

 Buscando por Internet, encontre unos programitas que revelavan los
 passwords que estaban ocultos con los asteriscos (***) y me los bajes
 y despues le pase uno de estos programas a un amigo...

 Ese dia, el administrador estaba donde estan las maquinas en el Cybercafe
 y en ese entonces alguien lo llamo por telefono y yo que estaba a unos
 metros de el lo escuche decir los numeros de telefonos de todos los
 servers.... :))) y los anote en un .txt y me los lleve para mi casa
 para guardarlos en la base de datos...

 Despues de un tiempo, un poco largo de por cierto, este amigo me trajo
 del server una cuenta ordinaria y el archivo shadow y el passwd para
 ver si yo podia encontrar mas cuentas.... y que de por cierto encontre
 unas 5 mas... junto con la que me habia traido el, teniamos en total 6
 cuentas del server para explorar tranquilos.....

 Decidimos un dia al tarde, tipo 8 o 9, probar algunas cuentas desde
 un lugar que no tenia ninguna relacion con nosotros (por las dudas,
 aunque el administrador es un TARADO). Iba todo tranquilo hasta que
 de repente se corto la comunicacion y el telefono despues no anduvo por
 algunos minutos... Despues probamos otra vez con la misma cuenta y
 estuvimos on-line otros 30 minutos y de nuevo se corto la comunicacion..
 Intentamos por tercera vez y ... BOOOMBB... Le habian cambiado el
 password... Pero a mi no me importo una mierda porque tenia otras 5
 cuentas para cagarlos....  Asi que intente con otra cuenta y Si...
 me conecte otra vez por algunos minutos... y otra vez me desconectaron
 por que se dieron cuenta en el server de que habia dos usuarios iguales.
 Uno el era el verdadero usuario y el otro era yo jeje.... y asi termino
 ese dia de hacking mas o menos feliz ;)

 Al dia siguiente me entero de que habian detectado la intrusion al
 server pero no sabian muy bien de quien o quienes se trataba. Pero el
 que se entero de la intrusion al server no fue el "adminsitrador" (si
 se le puede decir asi), sino un ex-colega que le informo a este del
 echo y ahi trato de cerrarme todas las conexiones que yo hacia....

 ¿¿ Como termina esta historia ???

 Muy simple, hasta el dia de hoy tengo unas de esas cuentas que pude
 desifrar y que de por ciero me han servido mucho.... ;)))

 Asi que ya saben... es cuestion de leer un poco, investigar, organizarse
 y de a poco tendremos lo que tanto buscamos.. una conexion mas.

 Nota Nuk3m: No doy a conocer las cuentas ni el server a las cuales
             pertencen por dos motivos: 1. La informacion que uno tiene
             es de uno y de nadie mas porque le costo mucho trabajo
             conseguirla, etc... y 2. Si todos usaramos esas cuentas, las
             cancelarian al poco tiempo.

 Todo esta en la lectura de esta y otras e-zines, asi que LEE antes de
 hacer algo. Nadie nacio sabiendo y todos tuvimos que aprender en algun
 momento. Ya sea a escribir, leer, caminar y porque no, Hackear....


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
10 ) Publicidad, Links recomendados, etc
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


.............................. Nuk3m's Links ..............................

 Nota Nuk3m: Las siguientes direcciones me las recomendaron, pero hasta
             ahora no las he visitado por una cuestion de tiempo. Asi que
             si quieren dense un vuelta por ellas y comenten que les
             parecio.

 Varios:
 -------
 http://antisocial.tsx.org/
 http://www.angelfire.com/sk/lellosansone/
 http://www.dplanet.ch/users/crashbandy/
 http://www2.sienanet.it/users/mrzero/ftp.html
 http://come.to/spaghettiphreakers

 Hack:
 -----
 http://www.anonymizer.com
 http://people.frankfurt.netsurf.de/HellRider/index.htm
 http://www.ricariche.cjb.net/
 http://32bit.bhs.com/default.asp
 http://www.piratez.com/index2.html
 http://www.admiral.ru/~geo/hacks/hack.html
 http://hackerworld.isthebe.st/
 http://www.hackersclub.com/km/frontpage/index.html
 http://hackerzlair.org/Members/pROcon/main.html
 http://members.tripod.com/~DigiTaLGhosT/hacklinks.html
 http://www.hackingexposed.com/
 http://www.2600.com/mindex.html

 Cardz:
 ------
 http://www.artcom.de/~karo/hpa/cards/

 Crack:
 ------
 http://www.crackstore.com/index2.htm
 http://homepages.go.com/~germancorruptedkillas/down1.htm
 http://www.ewsnl.com/warez/
 http://www.1234.co.kr/frontpage98/crack.htm
 http://flowers.pp.ru/rcz/n.shtml
 http://members.tripod.it/StoLenbYTe/
 http://mirror.thecrack.net/index.htm
 http://servenet.net/users/welder/b.html

 Phreack:
 --------
 http://web.tiscalinet.it/ricariche/
 http://come.to/spaghettiphreakers

............................................................................


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
11 ) BBS, sinonimo de la comunicacion
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                      BBS, sinonimo de la comunicacion
                      ---- -------- -- -- -------------
                               By Mr. Nuk3m
                               -- --- -----

 Hoy en dia todos estan re-metidos con Windows, Internet, juegos, etc.
 Pero alguien se acuerda de los famosos BBS's ? Que a mas de a uno
 seguro que le ha brindado horas y horas de diversion, informacion,
 etc....

 Este es un articulo dedicado a aquellos que hicieron posible que
 muchos de nosotros tengamos un lugar para reunirnos e intercambiar
 informacion y tambien pasar el tiempo.. los BBS's junto con sus
 SysOp's.

 Desde hace muchos años antes de que existiera la Web, Internet y
 Windows, muchisimas personas se comunicaban entre si a traves de los
 BBS's (Bulletin Board Systems, algo asi como "Carteleras
 Electronicas") instalados en domicilios particulares. Desde alli se
 podian bajar archivos, participar de foros de discusion, chatear con
 otros usuarios y tambien con el SysOp (Operador del BBS). En nuestro
 pais los primeros BBS's aparecieron en los '80 y funcionaban sobre
 computadoras tipo Commodore 64 con modems de 300 o 1200 Bps. Sin
 embargo, la "Epoca de oro de los BBS's" tuvo lugar durante el periodo
 1992-1996, epoca en la que llegaron a funcionar mas de 400 BBS en
 linea distintos. Hoy casi no hay, aunque quedan muy pocos funcionando,
 pero quienes los utilizan los consideran "imprescindibles".

 Que es un BBS...

 El funcionamiento de un bbs es muy simple: una computadora conectada a
 la linea del telefono mediante un modem que atiende automaticamente
 los llamados de los usuarios del sistema, quienes ingresan usando un
 programa llamado terminal de comunicacion como el que tiene windows
 (Hyperterminal).

 Cuando un usuario se comunica a un BBS por primera vez, debe ingresar
 sus datos personales y una palabra clave que usara para conectarse.
 Durante el primer ingreso, el usuario no se encuentra validado por el
 sistema y, por lo tanto, tendra algunas restricciones como no poder
 bajar archivos, etc.

 El nuevo usuario, una vez validado, podra usar por completo el BBS.
 Generalmente la validacion se realiza a travez de un llamado
 telefonico para confirmar los datos o bien cuando el usuario se
 conecte nuevamente ya estara validado.

 Con el auge de Internet, los BBS's han dejado de tener sentido para
 algunos usuarios. Es una lastima que ya no se vean los BBS como hace
 algunos años atras. Piensen en lo siguiente: ¿ Que pasa con la gente
 que tiene un modem y que por algun motivo no tiene acceso a Internet ?
 Se siente desconectados y desinformados y se pierden de vivir una
 linda experiencia como lo son los boards (bbs). Que de por cierto en
 su gran mayoria eran gratuitos. Salvo aquellos que eran mantenidos por
 empresas.

 Por ultimo quiero decirles que, como ya habran visto mas arriba, El
 LoCo fue uno de los SysOp's mas importantes de la Argentina junto con
 sus BBS's que puso cuando el estuvo on-line... algunos fueron:

                                                      - Zone BBS
                                                      - NeverLand
                                                      - 777

 Y para aquellos que todavia se preguntan ¿ quien es El LoCo ? El LoCo
 es Alejandro Szykula.. (Un Capo) que fue el SysOp mas famoso de la
 Argentina desde sus comienzos con los BBS's en el año 1994.

 Bueno hasta aca llegue y espero que les haya gustado y tengan en
 cuenta a los bbs. Se que en España los BBS's todavia hay unos cuantos
 que funcionan.



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
12 ) KEVIN MITNICK: El "Hacker" mas famoso de la red
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


          .-< KEVIN MITNICK: El "Hacker" mas famoso de la red >-.

                "Robe centrales telefenicas enteras
                       solo para divertirme"
                                                Kevin Mitnick.

 El "hacker" mas famoso de la Red habla de la ultima oleada de ataques
 informaticos: "No es un trabajo de autenticos hackers. Falta
 sofisticacion y elegancia. Cualquier estudiante podria haberlo hecho".

 NUEVA YORK.- El hombre calificado por la prensa de EEUU como el hacker
 mas buscado del planeta, Kevin Mitnick, esta en la calle. Segun las
 autoridades estadounidenses, es culpable de haber violado los sistemas
 informaticos de mas de 35 multinacionales durante 13 años,
 ocasionandoles perdidas de casi 291 millones de dolares. En su primera
 entrevista tras salir de la carcel, donde ha permanecido cinco años,
 ya tiene palabras para la ultima oleada de ataques a la Red: "Pudieron
 ser chicos buscando emociones fuertes los que provocaron el caos en
 Internet. O yuppies sin escrupulos para ganar en Bolsa, anticipandose
 a la caida de valores. Lo cierto es que no es un trabajo de autenticos
 hackers. Falta sofisticacion y elegancia. Cualquier estudiante podria
 haberlo hecho".

 Pregunta. ¿Que diferencia existe entre usted y esos hackers
 aficionados?

 Respuesta. Mi especialidad era copiar los masters originales de los
            telefonos moviles. Estaba fascinado por las
            telecomunicaciones y queria saber como funcionan por
            dentro. Incluso cuando robe centrales telefonicas enteras
            lo hice por divertirme y como un desafio intelectual, pero
            nunca para obtener un beneficio. He llegado a conseguir los
            numeros privados de las grandes estrellas de Hollywood,
            desde Bruce Springsteen a Madonna. Pude haber llamado
            incluso a Bill Clinton, pero no lo hice para no alertar a
            los servicios secretos.

 Pregunta. Segun las autoridades americanas, es usted el hacker mas
           peligroso de la historia.

 Respuesta. Eso es un mito, que comenzo con una serie de articulos
            firmados por John Markoff en la portada de The New York
            Times, llenos de acusaciones falsas y difamatorias, que mas
            tarde fueron desmentidas por las propias autoridades.
            Markoff me la tenia jurada porque me negue a colaborar en
            su libro y creo el mito de Kevin Mitnick, para transformar
            Takedown [su libro] en un bestseller.

 Pregunta. ¿Por que lo persiguen entonces las autoridades?

 Respuesta. Las autoridades aprovecharon la ocasion para transformarme
            en el chivo expiatorio de todos los hackers de la tierra. Y
            para autojustificarse, exageraron hasta lo inverosimil el
            daño que pude causar, que esta muy por debajo de los
            cientos de millones de dolares que el Gobierno me imputa.

 Pregunta. ¿Como han llegado a imputarle esa cifra?

 Respuesta. Le pidieron a las 35 compañias que les proporcionasen no
            tanto las cifras de daños reales que pude haber ocasionado,
            sino tambien los fondos utilizados por sus investigadores
            para elaborar el software que copie, un software que nunca
            vendi a nadie y del que no saque beneficio alguno. Mi
            supuesto robo no ha impedido a compañias como Motorola y
            Nec seguir cosechando enormes beneficios con su software.

            "Nunca fui capaz de robar dinero. Y eso que hoy podria ser
            multimillonario y vivir el resto de mis dias al sol del
            Caribe. Pero mi conciencia me lo impidio. Y estoy orgulloso
            de mi conciencia"


 Pregunta. ¿Por que nunca le saco provecho a su enorme talento
 informatico?

 Respuesta. Porque mis valores eticos me lo impiden. Unos valores que
            herede de mis padres, judios de origen ruso, que me
            educaron en el rigor moral. Nunca fui capaz de robar
            dinero. Y eso que hoy podria ser multimillonario y vivir el
            resto de mis dias al sol del Caribe. Pero mi conciencia me
            lo impidio. Y estoy orgulloso de mi conciencia.

 Pregunta. Segun algunas, sus motivaciones son tambien ideologicas.

 Respuesta. Confieso que no sentia remordimiento alguno cuando atacaba
            a las compañias monoliticas y riquisimas, dedicadas a
            extraer el maximo beneficio de sus clientes. Pero siempre
            actue en solitario y nunca forme parte de un grupo
            politico. Lo que me impulsaba era mas bien la euforia del
            descubrimiento cientifico, el placer mental que se
            experimenta cuando se resuelve un dificilisimo problema
            matemetico.

 Pregunta. ¿Es verdad que detras de los ultimos ciberataques hay un
            movimiento juvenil de contestacion y protesta parecido al
            de mayo del 68?

 Respuesta. Estoy totalmente convencido de ello. Internet es un nuevo
            medio de asociacion y de libertad de expresion y
            pensamiento, que sera utilizado cada vez mas como una aldea
            global, sobre todo en Europa, donde el activismo
            informßtico es mas vivo.

 Pregunta. ¿Que va a hacer ahora?

 Respuesta. Me gustaria encauzar mi talento para ayudar a la comunidad
            a defenderse de los hackers, pero el Gobierno me lo impide.
            Las restricciones impuestas por mi libertad vigilada,
            durante los proximos años, son increibles. No puedo
            encontrar trabajo ni siquiera en un MacDonalds. Ni
            matricularme en la Universidad o en sitio alguno donde haya
            computadoras. Tambien me estan prohibidos los telefonos
            moviles y las agendas electronicas. Ya comienzo a tener
            crisis de abstinencia informatica.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
13 ) Glosario de Terminos Tecnicos
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                  .s$ Glosario de Terminos Tecnicos $s.
                             By Mr. Nuk3m

 Como bien dice el titulo de este articulo, a continuacion un glosario
 de aquellos terminos mas usados en el ambito de la informatica e
 Internet.

 ADMINISTRADOR DE UNA WEB:
 Operador del sistema de un sitio Web.

 ANCHO DE BANDA:
 Medida de capacidad de comunicacion o velocidad de transmision
 de datos de un circuito o canal.

 ARRASTRAR Y COLOCAR:
 Concepto de GUI (Interfaz grafica de usuario) que permite
 seleccionar un objeto de la pantalla y pasarlo como entrada a
 otro objeto (icono).

 BACKBONE:
 Red de banda ancha para conexiones entre conmutadores.

 BANDA AMPLIA:
 Ruta/circuito de comunicaciones de capacidad media. Suele
 indicar una velocidad de 64000 bps a 1544 Mbps.

 BANDA ANCHA:
 Ruta/circuito de comunicaciones de gran capacidad. Normalmente
 implica una velocidad superior a 1544 Mbps.

 BASE DE DATOS:
 Conjunto de informacion para varios usuarios. Suele admitir la
 seleccion de acceso aleatorio y multiples "vistas" o niveles
 de abstraccion de los datos subyacentes.

 BAUDIO (termino antiguo que se esta reemplazando por bps - bits
 por segundo):
 Numero de elementos de señalizacion que pueden transmitirse
 por segundo en un circuito.

 BIT:
 Cantidad de informacion mas pequeña que puede transmitirse.
 Una combinacion de bits puede indicar un caracter alfabetico,
 un digito, una señal, un modificador u otras funciones.

 BOT:
 "bot" es el termino coloquial para programas que escuchan una
 conversacion y responden en un canal IRC.

 BPS:
 Bits por segundo. Medida de velocidad de un modem.

 BBS (Sistema de boletin electronico):
 Boletin electronico en el que los usuarios pueden dejar
 mensajes. En muchos BBS es necesario ser miembro de ellos.

 CANAL:
 Via (canalizacion) de telecomunicaciones con una determinada
 capacidad (velocidad) entre dos ubicaciones de una red.

 CAPACIDAD:
 La mayor velocidad de transmision posible (fiable) que puede
 darse en un canal, un circuito o una pieza de equipo. La
 capacidad puede expresarse como la velocidad bruta o como el
 rendimiento neto.

 CATV:
 Television por cable - Television por antena comunitaria. Un
 sistema de television comunitaria, servida por cable y
 conectada a una antena (o grupo de antenas) comun. La
 legislacion federal de EE.UU. de 1994 permite a los
 proveedores de CATV competir por servicios telefonicos (en la
 superautopista de la informacion).

 CERN:
 European Laboratory for Particle Physics, el sitio donde se
 celebro la primera conferencia sobre World Wide Web y
 considerado el lugar de nacimiento de la tecnologia de WWW. El
 trabajo sobre la tecnologia de WWW y la elaboracion de
 estandares se ha trasladado a la World Wide Web Organization
 (W3O, en w3.org). http://www.cern.ch/

 CGI (Interfaz de gateway comun):
 Interfaz para programadores que crean archivos de comandos o
 aplicaciones que se ejecutan internamente en un servidor de
 Web. Estos archivos de comandos pueden generar texto y otros
 tipos de datos de forma inmediata, en respuesta a una entrada
 del usuario, o bien tomando la informacion de una base de
 datos.

 CIBERESPACIO:
 Termino utilizado originalmente en la novela "Neuromante", de
 Willian Gibson, sobre redes de equipos informaticos en el
 cerebro. Se refiere al campo colectivo de la comunicacion
 asistida mediante equipos informaticos.

 COMPRESION/DESCOMPRESION:
 Metodo para cifrar/descifrar señales que permite transmitir (o
 almacenar) mas informacion de la que, de otro modo, podria
 aceptar el soporte.

 CONEXION:
 Ruta de comunicaciones dedicada punto a punto o conmutada.

 CONVERSACION:
 Termino que se utiliza para describir una conferencia en
 tiempo real. Las salas de conversaciones IRC, "WebChat",
 prodigy y aol son ejemplos de "conversacion".

 CUELLO DE BOTELLA:
 Limite en la capacidad del sistema que puede reducir el
 trafico en condiciones de sobrecarga.

 DIGITAL:
 Dispositivo o metodo que utiliza variaciones discretas en
 voltaje, frecuencia, amplitud, ubicacion, etc. para cifrar,
 procesar o transportar señales binarias (0 o 1) para datos
 informaticos, sonido, video u otra informacion.

 DIRECCION:
 Codigo exclusivo asignado a la ubicacion de un archivo
 almacenado, un dispositivo en un sistema o red, o cualquier
 origen de datos de una red.

 DIRECCION IP:
 Direccion de 32 bits del protocolo Internet asignada a un
 host. La direccion IP tiene un componente del host y un
 componente de la red.

 DIRECCION URL (Uniform Resource Locator):
 Formato de las direcciones de sitios que muestra el nombre del
 servidor en el que se almacenan los archivos del sitio, la
 ruta de acceso al directorio del archivo y su nombre.

 EXPLORADOR:
 Programa de aplicacion que proporciona una interfaz grafica
 interactiva para buscar localizar, ver y administrar la
 informacion a traves de una red.

 FAQ (Frecuently Ask Questions):
 Preguntas mas frecuentes.

 FINGER:
 Protocolo que permite localizar informacion sobre los usuarios
 en la red del host. Algunas redes no permiten su uso desde un
 sistema externo, y otras no lo permiten en absoluto.

 "FLAME WAR":
 Apasionado debate en linea en el que no se incluye la
 politica.

 FTP (Protocolo de transferencia de archivos):
 Protocolo utilizado para transferir archivos a traves de una
 amplia variedad de sistemas.

 GATEWAY :
 Conversor de protocolos. Nodo especifico de la aplicacion que
 conecta redes que de otra forma serian incompatibles.
 Convierte codigos de datos y protocolos de transmision que
 permiten la interoperatividad.

 GIF:
 Formato de intercambio de graficos. GIF es un formato estandar
 para archivos de imagenes en WWW. El formato de archivos GIF
 es muy comun, ya que utiliza un metodo de compresion para
 reducir los archivos.

 GOPHER:
 Programa de busqueda y exploracion de bases de datos publicas
 en Internet.

 GUI (Graphic User Interfase):
 Interfaz grafica de usuario.

 HIPERMEDIO:
 Metodo para presentar informacion en unidades discretas, o
 nodos, que estan conectados mediante vinculos. La informacion
 puede presentarse utilizando distintos medios, como
 documentacion ejecutable, de texto, graficos, audio, video,
 animacion o imagen.

 HIPERTEXTO:
 Describe un tipo de funcionalidad de exploracion en linea
 interactiva. Los vinculos (direcciones URL) incrustados en
 palabras o frases permiten al usuario seleccionar texto (p.
 ej. haciendo clic con el mouse) y mostrar inmediatamente
 informacion relacionada y material multimedia.

 HIPERVINCULO:
 Conexiones entre una informacion y otra.

 HTML (Hypertext Markup Language):
 Lenguaje de "etiquetas" en el que se asigna formato a las
 paginas de Web y se distribuye la informacion.

 HTTP (Protocolo de transferencia de hipertexto):
 Metodo mediante el que se transfieren documentos desde el
 sistema host o servidor a los exploradores y usuarios
 individuales.

 IP (Protocolo Internet):
 Define la unidad de informacion enviada entre sistemas, que
 proporciona un servicio de entrega de paquetes basico.
 ISDN (Red digital de servicios integrados)
 (Tambien llamada RDSI) Juego de normas de la transmision a
 gran velocidad de informacion simultanea de voz, datos e
 informacion a traves de menos canales de los que serian
 necesarios de otro modo, mediante el uso de la señalizacion
 fuera de banda.

 JPEG:
 Joint Photographic Experts Group. Se trata de un conocido
 metodo para comprimir imagenes fotograficas. Muchos
 exploradores del Web aceptan imagenes JPEG como el formato de
 archivo estandar para la visualizacion.

 LINEA DEDICADA:
 Linea privada alquilada a una empresa de telecomunicaciones.

 LISTSERV:
 "ListServ" es un programa gratuito para automatizar el
 mantenimiento y la entrega de listas de correo electronico.
 Hay listas de muchos temas; algunas son "abiertas" (cualquier
 persona de la lista puede enviar un mensaje a toda la lista,
 como en una conversacion) y otras "cerradas" (solo
 determinadas personas pueden enviar informacion a ellas).

 SITIO:
 Ubicacion de la direccion de un servidor en Internet.

 MODEM (Modulador-Desmodulador):
 Conexion del equipo del usuario final que permite transmitir
 datos digitales a traves de dispositivos de transmision
 analogicos, como las lineas telefonicas.

 MPEG:
 Moving Pictures Expert Group. Se trata de un modo estandar de
 comprimir video de imagenes en movimiento.

 MULTIMEDIA:
 Sistemas informaticos que integran audio, video y datos.

 NCSA:
 El National Center for Supercomputing Applications es una
 institucion de formacion. El explorador de Web Mosaic se creo
 aqui. http://www.ncsa.uiuc.edu/

 PAGINA:
 Documento de hipermedia en el Web.

 PKZIP/PKUNZIP:
 PKZIP es una utilidad compartida de compresion para PCs. Para
 descomprimir estos archivos se utiliza un programa llamado
 PKUNZIP.

 "POP" (punto de presencia):
 Conexion de acceso telefonico de los proveedores de servicios
 de Internet para usuarios de modem, que se utiliza
 principalmente para describir conexiones locales, de forma que
 los usuarios no tengan que hacer llamadas de larga distancia.
 Por ejemplo, un determinado ISP puede tener su base en San
 Jose, pero tener "POP" en Los Angeles y Nueva York.

 PORTADORA:
 Proveedor de telecomunicaciones que posee su propio equipo de
 conmutacion de redes.

 PORTADORA COMUN:
 (Empresa de telecomunicaciones) Portadora que sirve al publico
 (o a un segmento de el) de forma indiscriminada (es decir, sin
 tener en cuenta la identidad del cliente y sin discriminacion
 indebida).

 PPP (Protocolo punto a punto):
 Conexion a Internet de acceso telefonico que utiliza el
 protocolo TCP/IP; algo mas rapido que SLIP.

 PRINCIPAL:
 Primera pagina de un sitio, que contiene informacion de
 identificacion y un indice.

 PRIVILEGIOS DE ACCESO:
 Privilegio para tener acceso a carpetas y hacer cambios en
 ellas.

 PUNTERO:
 Direccion URL incrustada en los datos que especifica su
 ubicacion en otro registro o archivo. El hipervinculo es un
 ejemplo de puntero.

 RED:
 Sistema de elementos interrelacionados que se conectan
 mediante un vinculo dedicado o conmutado para proporcionar una
 comunicacion local o remota (de voz, video, datos, etc.) y
 facilitar el intercambio de informacion entre usuarios con
 intereses comunes.

 ROBOT:
 Los "Robots" suelen mencionarse en el contexto de WWW como
 programas que se mueven por el Web buscando informacion; por
 ejemplo, para crear indices en dispositivos de busqueda o
 localizar errores en sitios Web o funciones similares.

 SEGURIDAD:
 Mecanismos de control que evitan el uso no autorizado de
 recursos.

 SEÑAL:
 Cambio de estado orientado a eventos (p. ej. un tono, cambio
 de frecuencia, valor binario, alarma, mensaje, etc.).

 SERVIDOR:
 En una red, estacion host de datos que proporciona servicios a
 otras estaciones.

 SERVIDOR DE ARCHIVOS:
 Sistema informatico que permite a usuarios remotos (clientes)
 tener acceso a archivos.

 SGML:
 Standard Generalized Markup Language. Lenguaje para la
 descripcion de otros lenguajes de documentos estructurales
 basados en etiquetas. Por ejemplo, el HTML esta definido
 mediante el SGML.

 SLIP (Protocolo Internet de linea en serie):
 Conexion de acceso telefonico a Internet que utiliza el
 protocolo TCP/IP.

 SOPORTE:
 Formato de distribucion y almacenamiento de informacion (p.
 ej. cinta de video, disquete, disco optico, impresora, etc.).
 Una ampliacion de la capacidad de comunicacion de la
 humanidad. Es el mensaje.

 SSL:
 Nivel de socket de seguridad. Protocolo que utiliza Netscape
 para proporcionar transacciones seguras a traves de la red.

 SUPERAUTOPISTA DE LA INFORMACION
 Una palabra de moda (vease tambien media, hiper...). Hace
 referencia al plan de la administracion de Clinton/Gore para
 liberalizar los servicios de comunicacion, permitiendo la
 integracion de todos los aspectos de Internet, CATV, telefono,
 empresas, ocio, proveedores de informacion, educacion, etc.

 TCP/IP:
 Protocolo de control de transmisiones/Protocolo Internet. Es
 el protocolo estandar de comunicaciones en red utilizado para
 conectar sistemas informaticos a traves de Internet.

 TELNET:
 Programa de red que ofrece una forma de conectarse y trabajar
 desde otro equipo. Al conectarse a otro sistema, los usuarios
 pueden tener acceso a servicios de Internet que quizas no
 tengan en sus propios equipos.

 TIEMPO REAL:
 Rapida transmision y proceso de datos orientados a eventos y
 transacciones a medida que se producen, en contraposicion a
 almacenarse y retransmitirse o procesarse por lotes.

 TRANSFERIR:
 Trasladar programas o datos de equipos informaticos a
 dispositivos conectados, normalmente de servidores a PCs.

 USENET (USEer NETwork):
 Grupos de debate de Internet. Uno de los primeros formatos de
 "correo electronico colectivo". Actualmente hay unos 10000
 grupos de debate diferentes.

 VINCULO DE COMUNICACIONES:
 Sistema de equipo y programas que conecta a dos usuarios
 finales.

 VRML - Virtual Reality Modeling Language:
 Lenguaje de "etiquetas" en el que las paginas de Web estan
 formateadas para permitir graficos en 3D y la exploracion
 espacial interactiva.

 WAIS (Wide Area Information Server):
 Potente sistema para buscar grandes cantidades de informacion
 muy rapidamente en Internet.

 WAV:
 "wav" es la extension que utilizan algunos archivos de audio.

 WINZIP:
 Winzip es un utilidad de compresion que permite a los usuarios
 de Windows 95, 3.1 y NT reducir el tamaño de sus archivos para
 transferirlos mas rapidamente a traves de Internet. Esta
 utilidad tambien descomprime archivos comprimidos con formatos
 PKZIP o TAR. http://www.winzip.com/winzip/

 WWW (World Wide Web):
 Sistema de Internet para vincular mediante hipertexto en todo
 el mundo documentos multimedia, permitiendo un facil acceso,
 totalmente independiente de la ubicacion fisica, a la
 informacion comun entre documentos.

 ZIP:
 Al "comprimir" (es decir, hacer una copia de menor tamaño,
 pero igual) un archivo mediante "pkzip", el archivo resultante
 se denomina un archivo "zip". Suele terminar con la extension
 ".zip".

Todo esto ya es mas que conocido, pero aun hay personas que no saben mucho
de los terminos mas usados... aunque creo que le faltarian algunos mas..
pero bueno, estos son los mas importantes.


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
14 ) ¿ Miedo a los articulos o fiaca ?
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                    ¿ Miedo a los articulos o fiaca ?
                             By Mr. Nuk3m

 Este articulo no tiene que ver con el hack directamente, es una pequeña
 reflexion de porque hay que escribir un articulo en cualquier e-zine.

 Esto viene a raiz de cuando estas hablando con alquien (principalmente en
 el irc, chat o como quieras llamarlo), primero te cuenta que hice esto y
 aquello y que acaba de hackear un server, asi y que..., y vos despues
 pensas "Wow, como lo habra echo..."  y le decis, "porque no escribis un
 articulo y lo envias a una e-zine", pero te dice todo asustado: Si, pero
 no me veo capaz, bla, bla, bla... y asi de esa forma otras personas se
 pierden la oportunidad de aprender un poco mas.

 Por eso a continuacion una serie de puntos por los cuales hay que escribir
 un articulo aunque sea una vez. Hay van:

 1 - Para escribir sobre alguna cosa tenes que buscar info y leer mucho,
     con esto aprenderas y avanzaras en tus conocimientos.

 2 - Si traducis textos en ingles, mejoraras tu ingles, algo necesario en
     estos dias.

 3 - Escribiendo articulos ayudaras a las e-zines para que sigan mejorando.

 4 - Poco a poco, cuando la gente vaya leyendo tus articulos, sabran de tu
     existencia y te iras abriendo paso en el underground y haciendo nuevos
     amigos y colegas.

 5 - Podes pensar que tu articulo sera muy basico pero siempre hay alguien
     que sabe menos que vos.

 6 - No hay articulos malos, sino poco trabajados :)

 7 - Cuando la gente vea tus trabajos, te pediran consejo e incluso ofertas
     de entrar en algun grupo de hack.

 8 - La proliferacion de articulos en nuestra lengua, refleja el estado del
     underground de habla hispana.

 9 - Siempre hay sobre algo que escribir, ya sea algo nuevo o mejorar uno ya
     escrito.

 10 - Tendras algo que contar a tus amigos, novia!! y sobre todo, a tus
      nietos ;-)

 11 - Escribir no mata, quizas canse un poco. Pero quien te dice que algun
     dia seras recompensado con un poco de fama y gloria ;)

 Bueno, pues estos son los 11 puntos por lo que hay que contribuir en
 la mejora del underground de habla hispana. Pues ya sabes a ESCRIBIR
 ARTICULOS :)) o ayuda a quellas personas que hacen una e-zine con tus
 articulos. Estoy seguro que lo van a apreciar.

 Les cuento algo, yo antes no escribia nada de nada. Ni un solo caracter
 para un articulo. Mirenme ahora, estoy escribiendo todo lo que puedo...

 Bueno ya saben, ESCRIBAN y no tengan miedo al que diran de sus articulos.
 Siempre lo pueden mejorar...


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
15 ) Manifiesto de un hacker novato
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


                      Manifiesto de un hacker novato
                            by Silicon Dragon
                              Internet libre


 En la vida de todo hacker siempre existe un periodo, a veces largo,
 en el cual uno es un autentico novato para las cosas de internet. Que
 nadie diga que no ha pasado un tiempo mas o menos largo en el cual el/ella a
 sido asi.

 Entrar en el mundo del Underground suele resultar dificil, no conoces
 a nadie y no sabes donde buscar informacion que te permita ampliar tus
 conocimientos sobre tecnicas y en fin todas esas cosas que hacen de
 internet un mundo interesante y divertido. Los pasos que la mayoria de los
 actuales hackers (al menos los que yo conozco) suelen ser similares, a pesar
 de que entre ellos no se parezcan excepto por el hecho de gustarles nuestro
 mundo, y digo nuestro mundo porque internet es el mundo del hacker, donde
 nos relacionamos, pasamos buenos ratos, adquirimos conocimientos y hacemos
 nuevas amistades que nos permiten seguir adelante en el mundo. Por otro
 lado vosotros/nosotros/ellos, los hackers, con mas o menos conocimientos,
 somos un grupo que vivimos aqui, en internet, y estamos acostumbrados a
 movernos por este mundo, aqui somos los reyes en la sombra, los maestros
 del bit, los luchadores por la libertad que luchan por sobrevivir ante un
 concepto mal creado de que somos "criminales sin escrupulos"; FALSO!!!,
 tenemos nuestra etica. Grandes compañias y grupos de intereses nos atacan e
 intentan aniquilarnos utilizando para ello arcaicas leyes y concepciones
 sobre el bien y el mal, pero ellos no se dan cuenta que nosotros, la tribu
 del ciberespacio, tenemos el poder en nuestras manos; o mas correctamente
 en nuestras mentes, libres y claras, nuestros dedos tecleando secuencias
 nunca soñadas por ellos, los guardianes de la moral publica y el estado de
 derecho; y nuestras computadoras, maquinas con las que entramos en este
 fascinate mundo de internet, mundo de electrones corriendo por chips de
 silicio y aluminio, mundo de libertad y conocimiento. INTERNET.

 Todo aquel que llega o intenta llegar a ser un hacker, !A vivir en
 el maravilloso mundo de internet! Sabe que no tiene que seguir unas normas,
 pero comparte con el resto de la tribu un codigo por el que se rige y que
 lo diferencia de los lamers, que sin tener ni idea de nada se las dan de
 sabios perjudicandonos al resto y dando razones a ciertos sectores para
 criticarnos, ponernos como ejemplos de mal, lanzando sobre los menos
 protegidos sus perros de presa en forma de actuaciones judiciales, redadas
 y como no llevandonos a juicio por socavar la economia de tal o cual
 compañia a la que "nosotros" hemos perjudicado. !!!!Nosotros!!!! que
 nuestro afan no es enrriquezernos como ellos hacen. !Tienen miedo! de que
 les quitemos su maravilloso dinero, sus estructuras organizadas, su mundo
 gris y falto de libertad. !!!!Nosotros!!!! que nos guian un afan de
 superacion, de busqueda de conocimientos, !No para enrriquezernos! como
 hace nuestra sociedad decrepita sino para aumnetar nuestros conocimientos
 nuestra mente sin fronteras nuestra libertad. ¡¡¡¡Nosotros!!!! que buscamos
 la libertad, que defendemos causas justas, que no molestamos, dañamos,
 matamos..... ¡¡¡¡Nosotros!!!! esa tribu de malditos que nos temen por
 nuestro poder, por las ideas que afirmamos, por nuestra libertad. Nosotros
 los hackers.

 Pero volvamos al tema que nos ocupa en este articulo. Me acuerdo de
 cierto amigo de electrones, ¿No adivinan quien es?, al cual lo podemos
 llamar el dragoncito, je je je ya se imaginan quien ;) . Bueno pues ese
 amigo ,el dragoncito, era un chico, lo siento pero eso es innegable :)))) ,
 que a muy tierna edad y por los azares de la vida termino un verano delante
 de una computadora, una 8086 o 80186, corria el año 85 (¿¿¿hace tiempo eh???)
 y sin nada por hacer, con mucho tiempo libre y algo de curiosidad, bueno
 lo admito mucha :))). Bueno, ese chico aprendio lo que podria llamarse los
 fundamentos de la informatica y la programacion (el BASIC ¿Vamos o crees
 que empezo con ensamblador y binario?) el tiempo paso, mas o menos rapido, y
 hacia el año 1995-96 empezo lo que la mayoria de la gente llamaria inicio
 de una "carrera delictiva" o "fue por el mal camino" o "las malas compañias"
 o "le comieron la cabeza"...... vamos tonterias. Yo diria que inicio su
 vida en el fascinante mundo de internet donde todo es posible y se haya al
 alcance de nuestros programitas y nuestras mentes inquietas je je o
 ustedes que leen esto no creen en esta verdad.

 El hecho de tener una conexion a INTERNET es una ventaja que obviamente
 todos los que esten leyendo esto tienen, a los demas les cobro
 derechos de autor :)))). Fue en ese momento, cuando el pequeño dragon
 optuvo la conexión, cuando pudo continuar sus andanzas por el mundo de los
 ordenadores, los cuales havia abandonado, porque mira que los libros de
 informatica suelen ser aburridos uffffff, y ya que habia oido algo hacerca
 de esos "peligrosos criminales" llamados hackers :))))))), ¿A que no sabes
 que descubrio? "hey.. si no son ni criminales, ni terroristas, ni locos, ni
 ladrones, son gente normal como yo!!!!" en fin la mascara con la que la
 sociedad nos cubre afecta a todos... Pues bien, el amigo dragoncito, como
 asi se llamaba ;) creo XDD, empezo a descubrir paginas en internet que le
 daban cierta informacion, truquitos, solo a nivel educativo :)) en fin lo
 que le encaminaria hacia las tinieblas( o en mi opinion hacia la luz, en
 INTERNET, es decir al dominio de la web, traspaso de ficheros, telnet, port
 spoofing, bugs de seguridad, passwords, root...)  que le permitirian de una
 manera no dañina y recalco esto no dañina aprovechar todos los recursos que
 encontro en este mundo de electrones que corre a traves de lineas
 telefonicas, hondas herzianas y cables de fibra de vidrio a velocidades
 increibles, aumentando sus conocimientos hasta poder al fin, empezar a
 conocer este nuestro mundo donde todos somos maestros y alumnos, nadie sabe
 todo y de todos y en el que cualquiera (incluso los lamers) puede enseñar
 algo (en el caso de los lamers lo que no debes hacer XDDDD).

 Una de las primeras cosas que el y todo aspirante a hacker suelen
 hacer es leer todo lo posible sobre este tema a lo largo de la red, como el
 hizo, es en el unico sitio donde se encontraria la verdad sobre tecnicas,
 estilos y codigos sobre nuestro/vuestro entretenimiento/trabajo/vida como
 hackers, como ser que se desplaza a traves de corrientes de datos sin que
 nadie pueda ni detectarlo ni pararlo, ni atacarle ni dominarlo. Lo mas
 dificil (pero al alcance de todos) fue encontrar la primera pagina web
 sobre este tema, ya que no suelen estar en la guia telefonica para que
 cualquiera llame y pregunte como ser un hacker (los lamers intentan algo
 asi XDDD) de ahi en adelante, pudo llegar a encontrar links (enlaces
 burros!!!) a otras paginas y asi entrar en  el entramado de los
 conocimientos que se guardan en INTERNET, el mundo de electrones
 representados por conjuntos de bits el cual con nuestra "magia" dominamos
 y con esta energia creamos un armagedon de poder y un nuevo mundo a nuestro
 antojo (que filosofico me pongo a veces :)))).

 Otra de las cosas que le facilitaron el integrarse en la "tribu"
 fueron unos conocimientos minimos sobre programacion, :(( si se que los
 libros de programacion suelen ser aburridos, lentos y estupidos, pero hay
 que joderse y aprender algo ya que es fundamental para ser un hacker, si no
 conformate con ser un cracker (lo cual no es necesariamente malo), bajate
 alguno de sus ficheros y rompe todo por donde pases como hizo Atila con los
 Romanos (el rey de los Hunos, tribu aliada de Cartago pedazo de bestia no
 es un hacker famoso :))) pero piensa que: 1- Va en contra de nuestra etica,
 2- Realmente cualquiera puede hacer eso, es realmente facil bajarse archivos
 de internet; 3- Eso no es propio de un hacker sino de un cracker (no son
 peores pero tienen una concepcion diferente ).

 Y finalmente otra de las cosas que le ayudaron fueron conocer a unos
 amigos (hackers no iban a ser cocineros, con todo mis respetos a estos
 ultimos :))))) que le explicaron algunas cosas y le enseñaron donde
 localizar otras, la verdad es que el dragoncito es el amigo que todos
 quieren, le gustaba y le gusta aprender y suele ser simpatico (Lo siento
 pero su abuela no esta aqui para echarle flores  :))). Por otro lado, el
 IRC fue y es un buen sitio donde pedir ayuda, no siempre (o casi nunca lo
 reconozco) le contestaron (en cuanto le conocieron si, es que hay mucho
 IRC-COP ) pero de vez en cuando si. De paso saludos para los del canal
 #hackers del IRC-hispano (donde normalmente se habla de todo menos de la
 tematica del hacker, aunque te lo pasas bien je je je y a veces te ayudan,
 lo digo por esperiencia son buena gente, lo malo es cuando se aburren y les
 da por nukear a alguien ;) ). Pero bueno sigamos con la fucking historia...

 El hecho de aprender y buscar ayuda, es si no el unico, si el mejor
 camino para adentrarse en este mundo. La ayuda siempre viene bien porque me
 acuerdo de lo que le paso en su primer telnet, llamando a un numero
 aleatorio que se le ocurrio termino dando con una PC que cada vez que
 le preguntaba algo le daba su direccion de ip (la del dragocillo) o otra
 vez que mando un e-mail falso a un amigo y resulta que el servidor al que
 se habia conectado escribio el nombre "supuesto" el remitente a
 continuacion del real (a tomar por culo el anonimato) todo eso le paso por
 no consultar a los que si que sabian eso lo nuestro es una busqueda de
 informacion y que mejor forma de distribuirla que compartirla entre
 nosotros que somos los mas interesados en que la informacion y la libertad
 se mantenga en INTERNET.

 La libertad de los hackers es fundamental para el mantenimiento de la
 libertad en INTERNET. No solo entre la cultura underground sino de todos
 los usuarios que utilizan este medio. Esta es la razon por lo que el
 pequeño dragoncito se metio en este mundo, por la que los hackers siguen
 luchando a pesar de que constantemente se les castiga desde todos los
 angulos de la sociedad. El nuestro es un trabajo vital y a mi/nosotros
 me/nos gusta nuestra libertad que no cambiaria por nada. En el camino para
 convertirse en hackers muchos pierden el rumbo, quizas es un camino dificil,
 pero merece la pena. No ir por falsos atajos se llega antes al final. Como
 dijo un famoso poeta Español "Caminante no hay camino, el camino se hace al
 andar". (Soy un chico culto ;) ). No somos hackers por tener los
 conocimientos lo somos al investigar; al buscar nuevos conocimientos,
 cuando ayudamos al nuevo a conocer el mundo, a buscar conocimientos, a
 escapar del mal, a respetar el codigo; al ampliar la libertad en INTERNET
 al luchar por ella contra los que intentan socavarla; al caminar; AL
 HACKEAR. Hemos nacido para ello somos los paladines de una causa justa,
 nadie debe cuartar nuestras libertades somos los dragones del amanecer de
 una nueva epoca, nos pueden llamar malvados pero el tiempo demostrara que
 hemos sido los cruzados de la causa de la libertad en INTERNET, vigilaremos
 a los poderes y no les dejaremos actuar contra nuestra libertad contra
 nosotros, al fin y al cabo, sabemos quienes somos y que queremos,la busqueda
 del conocimiento no sera parada asi que amigos, veteranos y novatos no se
 rindan a pesar de los surcos de los espacios virtuales, navegemos por
 los mares del conocimiento utilizemos nuestras garras de electrones
 nuestros cerebros de aluminio y silicio, y hagamos aquello que nos da la
 libertad y para lo que hemos nacido: SOMOS HACKERS Y AQUI ESTAMOS.... y que
 lo sepan nuestros enemigos saldremos victoriosos de las batallas, el futuro
 los odiara y nos aclamara por nuestra libertad entre bites y silicio.

 Debo dar las gracias a mucha gente que me ha ayudado a entrar en este
 fascinante mundo, ups, digo ayudaron al dragoncito a entrar ;), algunos de
 una forma activa como Bisho al cual le, otro ups el dragoncito, le debe
 mucho. Otros escribiendo articulos o manteniendo paginas donde localizar
 los conocimientos oscuros (je je je me he rayado) como: J.J.F./ Hackers Team,
 Wakanda, Van Hackez, Saqueadores...... y muchos otros que si los pusiera
 en este articulo ocuparian Mb enteros y para los que brindo mi mayor apollo
 ya que sin ellos nuestro mundo no seria el mismo INTERNET no seria el mundo
 de libertad que es y nosotros, la trivu, no  tendriamos  donde habitar
 oscurecidos por los poderes malignos (ahora si que me he rayado) que
 intentan doblegarnos AUNQUE NUNKA LO LOGRARAN porque soy un hacker
 (novato eso si) y mi trivu me protegera y me ayudara a defenderme,
 tenemos el poder y sabemos como usarlo para conservar nuestra/vuestra
 libertad, SOMOS HACKERS, SOMOS LIBRES.

 La distribucion de este texto es completamente libre salvo que sea
 usado por fuerzas de seguridad (en cuyo caso deberan de pagar por su uso
 una cantidad no inferior a $1,000,000.00) o para su uso en cualquier tipo
 de juicios y ese tipo de cosas (si no lo tienes claro preguntame XDDD) en
 cuyo caso los derechos del autor (yo) son los mismos que en el caso de la
 policia. Para los demas con meros fines educativos y tal es gratis :))).

                                                 by Silicon Dragon
                                             [email protected]

 Nota Nuk3m: Que les parecio ??? Bueno por empezar les digo, que edite el
 articulo solamente para que se vea un poco mejor y un poco mas ordenado,
 y sobre todo para argentinizarlo un poco mas Ok...


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
16 ) Llave PGP
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


Esta es mi nueva llave PGP. Actualiza tu llavero ok. Copia lo que esta entre
las lineas nuk3m.asc y pegalo en un .txt y guardalo como nuk3m.asc y
depues usa ese archivo con el PGP.

<----------------------------- nuk3m.asc ---------------------------------->.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGPfreeware 6.5.1 Int. for non-commercial use <http://www.pgpinternational.com>
Comment: # Mr. Nuk3m # [email protected] # 314u.none.com.ar #

mQGiBDip5K8RBADaudodSH9gjPSPyegvNs9DyHyZwCB1YZq/FTrL/bN8IQn4cVrF
i9OI6X2YFfpYhxGr6mMi2VrWAoOrUkbubDUWfH3xYOUDMhpphXypYSvKsVpbgA4C
bWYx9GBJc/Cf2CO+X12OrtJcWaZxJuQVcD0KDw5UZ4zMbl1xNtQ9qX/XuwCg/11y
3oS11WYeqEQ6xadEwKEjYpMD/33mHAb6/Lk72AAYnXEcl6Ra9hrEcDPOdjQsvKyK
bka2pRFEFfVxV9OelGaaxy/8q4z2TXQ+ZqF6/DfUddrrw/vBGcSZfBl237YJqGtf
IFL4ffIfITlRFcUezHC/0RJEd/XfxsKmSTndziFLXflaUz/4BOOAqgh7HpMwQGN9
UPgBA/9Nls9WZNfNw3GRay3UPO/QgwszuPbRIVnzeKuzPK/UlwGV/AcFoqpMcdlw
Cf5cHLBdTZ9rLhoPHLlZgKjMu4uW22Udd92rSxcT2fEthTFUwJjwGCTopT4hH9E9
EPYkLYkz5RTgNP/MSOhdKDQvM07fDWg0sKbl4ZaO4mmGCh1UurQcTXIuIE51azNt
IDxtcl9udWszbUB1c2EubmV0PokATgQQEQIADgUCOKnkrwQLAwIBAhkBAAoJENjz
NdjgKzhgVZcAn1KnSPVRJ1a0uPej22svtdkYorkTAKDjbwf/yy5EkCUjvbbJvPfF
ejcqD7kCDQQ4qeSxEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW
oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS
Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0
iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04
0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ
ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAggAv6DuH6YJrqmw8md2
KcgSYwdZuWryAPigOtnYgwud7niTXkWMxbN7v1yxe2QMS0QKRb4dANJoy7rtcB2k
37ufWJcRoL0bQCKa2rFK7+vJkQT+r+GtS/0FqtWtU0eQCYUfV+r6zIQ1LDhOKboH
t+npgo9K6etUIPhMaz0LHoxYy2Z31DN9RteSkeUPRuOakPLqm6jO4nCyrTNGXhEO
ohxzlPKgv3fywd6wJrtd8vU2N2bixsL392a2DT0WD3dyhb1of6AYj2RQH6YPDXUv
wG1eNGibTFSUAa9tfWLCdKGZWjA273uCHPIcB47kvUc6cH+KAgzINM6E5/tHzN1R
yf5n/IkARgQYEQIABgUCOKnksQAKCRDY8zXY4Cs4YKiJAJ4hTKwrpMyjSCbCmaQo
52G+xcOOWgCdFvH0bwDd2WWMmEG9deqh6JbK9Dk=
=1Ocg
-----END PGP PUBLIC KEY BLOCK-----

°<----------------------------- nuk3m.asc ---------------------------------->°


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
17 ) Despedida
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-


 Bueno asi llegamos al fin del numero 2 de CIA Magazine. Me apena un poco
 no haber podido poder haber publicado algun mail de los lectores, pero esta
 bien ya que la revista es muy nueva y no tiene mucha difusion todavia.
 Pero espero que para el tercer numero ya haya recibido algunos mails.

 Espero recibir colaboraciones para poder sacar CIA numero 3 lo mas pronto
 posible en Abril, ya que este numero esta casi totalmente lleno de articulos
 mios a falta de articulos de colaboradores o de alguien que quiera que
 publique un articulo suyo en el e-zine.

 Como ven no me he quedado en el primer numero de la e-zine. He empezado
 bien, me gusta lo que hago y lo seguire haciendo; a pesar de que mucha
 gente quizas no tome en serio o talvez no quiera tomar en cuenta la e-zine
 por ser muy nueva y realmente no me importa, por que seguire trabajando
 para todo aquel que quiera aprender, empezara a acrecer con la ayuda de
 nuestros lectores, quizas ya hay gente que ya nos conoce por medio
 del primer numero y tambien en nuestro pais ...

 En el numero 3 entregare la ultima parte del manual de Linux 5.0, cosa que
 que creo es de bastante interesante ... talvez algunos truquitos para el
 Windows 95/98, articulos de nuestros lectores, bueno quien sabe, se me
 olvidan varias cosas. Bueno y un monton mas de cosas que pretendo cumplir
 para el proximo numero de la e-zine. Les digo que no escriban nada delicado
 en los mails que envien... porque recuerden que podemos estar siendo
 observados !!!! y por ese motivo les recomiendo que usen el PGP... de
 este programa hablaremos tambien en CIA Magazine N°3.

 Y como siempre, estoy dispuesto a recibir sus opiniones, datos, noticias o
 lo que sea, al final para eso estan las e-zines o no !!!!...

 Bueno ya se me vienen las clases de la UNI otra vez y espero poder sacar
 el e-zine a tiempo.... y si alguno de nuestro lectores quiere formar
 parte del CIA Team de la e-zine que me avise asi queda confirmado como un
 editor oficial de la revista que bien podra responder los mail que los
 lectores nos acerquen y que tambien podria llevar adelante una seccion de
 la revista sobre algun tema del cual sepa mucho o le interese....

 La proxima e-zine, como ya dije arriba, saldria los primeros dias de Abril.

 Un saludo a todos los lectores y espero volver a verlo en el numero 3...

 Bytes....

 Mr. Nuk3m
 [email protected]

 CIA Magazine
 [email protected]

 8 de Marzo del 2000

=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-