Home E-Zines Cia Cia 02

Ultimos Mensajes del Foro

Manual Aleatorio

Sacandole Provecho a netcat / nc
Nos explica detalles de la compilacion en linux, como enlazar cmd.exe a un puerto, estudio de demonios, escaneos, usarlo como sniffer y algunas otras cosas de interes
Leer más...

Webs Amigas

Cia 02 PDF Imprimir E-mail
Martes, 30 de Noviembre de 1999 01:00
Linux II, HTML, serials, codigos de paises, entrevista a kevin mitnick, glosario de terminos, manifiesto del hacker novato.....

Texto Completo:
=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-
                        
         .{{-~&     ________________________________
        {{}{{{{    /                                \
       {{{}    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:                         \
    \                       
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
                        //
    //                                                                 \
    ||.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.||
    \                                                                 //
    //    EDITOR:                                                      \
    \                                                                 //
    //    Mr. Nuk3m <
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
 >                                 \
    \                                                                 //
    //    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 
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
 . 

 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 
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
  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 ee.

 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 ms, les digo que necesito su ayuda,
  que necesito su colaboracin, sus artculos, 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
  extraas, porque no domino mucho el tema en absoluto. Podes utilizar la
  direccin de la revista para cualquiera de estas cosas: 
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
 

  Por cierto, necesito distribuidores para alojar el e-zine en todo tipo de
  medio de comunicacin. Por favor, si tenes una pgina 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
                                                         
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
 


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 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 espaoles 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 compaia 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 Espaa, 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 compaia 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 compaia 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 reseas 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 Espaa 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
 ees 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 dueo 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  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  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 tamao 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 tamao 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 pequeos. Primero, los archivos pequeos
 son pequeos, 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 pequeos, 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 tamao 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 diseado 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 tamao de cluster fijo. Los archivos se colocan uno
 despues del otro separados por un encabezado. Un grupo de archivos pequeos
 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
 caeria 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 tamao 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 caeria, 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 tamao 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 "venden", 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 contrasea 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] 

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

  ==> rpm -U [install-options] 

  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:

  * : 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 : 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 tamao de los
 archivos, permisos, tipos, dueos 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 

  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 pequeos, 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 diseado 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 pequea (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 seales y las caerias 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 diseo 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 pequeo 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 tamao 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 tamao 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 engaan, 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 tamao 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 tamao 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 caerias (ls | wc -l).

 Estas tecnicas son potentes y extremadamente utiles, pero solo son una
 pequea 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 diseada 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 pequea,
 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 tamao 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. jumi es la
 variable que contiene el primer argumento, [*3] [http://www.govannom.org/e-zines/cia/cia2.txt] contiene el segundo argumento,
 y asi siguiendo. Estas variables representan parametros posicionales.

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

  * {jumi [*3] [http://www.govannom.org/e-zines/cia/cia2.txt]}  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   [*3] [http://www.govannom.org/e-zines/cia/cia2.txt] jumi
  else
         echo Uso: {jumi [*3] [http://www.govannom.org/e-zines/cia/cia2.txt]} arg1 arg2 arg3 arg4
  fi
  # reverse
  Uso: {jumi [*3] [http://www.govannom.org/e-zines/cia/cia2.txt]} 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 ( 
 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
  )


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 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 ao 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 texo 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 sueo.

  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 diseo 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 diseo 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 espaol sobre el "Diseo 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

 Disea 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 tamao total de las imagenes lo mas bajo posible para optimizar
 el tiempo de acceso a tu pagina, el tamao de las imagenes no debe
 sobrepasar los 30K. Si te es imperativo utilizar graficos de gran tamao,
 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 tamao
 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 

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 cdigo 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 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 seale 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 disees 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 disea 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 disear tu pagina o tu sitio web. Mr. Nuk3m =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 07 ) Numeros de serie =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- A continuacion una pequea 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 | Ns | --- 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 SoiRe<<< #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-Espaa: 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 pequea 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 aos 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 aos 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 ao 1994. Bueno hasta aca llegue y espero que les haya gustado y tengan en cuenta a los bbs. Se que en Espaa 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 aos, ocasionandoles perdidas de casi 291 millones de dolares. En su primera entrevista tras salir de la carcel, donde ha permanecido cinco aos, 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 dao 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 compaias que les proporcionasen no tanto las cifras de daos 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 compaias 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 compaias 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 informtico 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 aos, 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 sealizacion que pueden transmitirse por segundo en un circuito. BIT: Cantidad de informacion mas pequea que puede transmitirse. Una combinacion de bits puede indicar un caracter alfabetico, un digito, una seal, 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 seales 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 seales 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 sealizacion 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. SEAL: 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 tamao 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 tamao, 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 pequea 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 compaias 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 soadas 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 compaia 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, daamos, 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 ao 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 ao 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 compaias" 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 pequeo dragon optuvo la conexin, 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 daina y recalco esto no daina 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 ensear 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 ensearon 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 pequeo 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 Espaol "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 jumi,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 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla 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 Comment: # Mr. Nuk3m # Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla # 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 N3. 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 Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla CIA Magazine Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla 8 de Marzo del 2000 =[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-