=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=- .{{-~& ________________________________ {{}{{{{ / \ {{{} ÖÖ 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: \\ \\ ciamagazine@usa.net // // \\ ||.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.:.|| \\ // // EDITOR: \\ \\ // // Mr. Nuk3m \\ \\ // // 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 mr_nuk3m@usa.net. 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 ciamagazine@usa.net y que en lo posible cumpla con las siguientes caracteristicas: -= Estar escrito como maximo a 78 columnas. -= Que sea en un archivo .TXT en un .Zip. -= Que no contega acentos, ni caracteres 8-bit, salvo nuestra querida eñe. Y ya esta. Yo creo que son faciles de cumplir no? :) Algunos de los textos que aqui se ponen, han sido copiados de webs u otros sitios pero siempre se respeta el contenido original de los autores y se pone la fuente de donde han salido. Si algun texto es tuyo y no queres que figure en este e-zine, decimelo y lo sacare de la edicion. No todos los articulos son de otras revistas, tambien hay producciones propias y si a veces hay articulos de otras e-zines es porque no he recibido ninguna colaboracion hasta el momento. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- | 0 0 -= CIA =- 1999-2000, Derechos Reservados | | 0 0 -=#( COMENZAMOS CON EL NUMERO 2 DE CIA, QUE LO DISFRUTES. )#=- | | 0 0-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Titulo Autor Tema ~~~~~~ ~~~~~ ~~~~ 00. Indice .................................... Mr. Nuk3m ..... Que sera ? 01. Editorial ................................. CIA-Team ...... Editorial 02. Noticias .................................. Mr. Nuk3m ..... Actualidad 03. Descubriendo Linux Red Hat 5.0 (parte 2) .. Mr. Nuk3m ..... Linux 04. Texto 109 del LoCo ........................ ELoCo ......... Personaje 05. Mail del lector ........................... CIA-Team ...... Lectores 06. Consejos para una pagina o un sitio web ... Mr. Nuk3m ..... HTML 07. Numeros de serie .......................... Mr. Nuk3m ..... Cracking 08. Codigos de paises ......................... Mr. Nuk3m ..... WWW 09. Me conecte a Internet ..................... Mr. Nuk3m ..... Hacking 10. Publicidad, Links recomendados, etc ....... Mr. Nuk3m ..... Publicidad 11. BBS, sinonimo de la comunicacion .......... Mr. Nuk3m ..... Bbsing 12. KEVIN MITNICK: El "Hacker" mas famoso de la red ..................... Mr. Nuk3m ..... Entrevista 13. Glosario de Terminos Tecnicos ............. Mr. Nuk3m ..... Info 14. ¿ Miedo a los articulos o fiaca ? ......... Mr. Nuk3m ..... Articulos 15. Manifiesto de un hacker novato ............ Silicon Dragon Recopilacion 16. Llave PGP ................................. CIA-Team ...... PGP 17. Despedida ................................. CIA-Team ...... Despedida =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 01 ) Editorial =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Hola a todos (y a todas ;-)) !, despues de casi un mes de haber publicado el primer numero de la e-zine, tratando el tema de Linux en su mayoria, y otros temas por supuesto, aca estamos de vuelta con el numero 2 de C.I.A Magazine. En este numero 2 de la revista inauguramos una nueva seccion: Publicidad, Links recomendados, etc. Como bien dice el titulo de la seccion, en ella se van a poner avisos de publicidad, ya sean de web sites, FTP's, BBS's, Links interesantes y recomendados, y todo aquellos que los lectores quieran publicar en la e-zine que bien podria ser las direcciones de sus sitios o paginas personales, o sus sitios preferidos, o algo que crean que valga la pena publicar para que los demas lectores se enteren. Hago esta E-zine para Argentina ya que no encuentro muchas y que a su vez esten actualizadas. Y una vez más, les digo que necesito su ayuda, que necesito su colaboración, sus artículos, su apoyo... y ganas para que este e-zine salga adelante :) Si tenes cualquier pregunta o problema, aca estoy para ayudarte en todo lo que pueda. Pero no me preguntes sobre cosas muy avanzadas o algo extrañas, porque no domino mucho el tema en absoluto. Podes utilizar la dirección de la revista para cualquiera de estas cosas: ciamagazine@usa.net Por cierto, necesito distribuidores para alojar el e-zine en todo tipo de medio de comunicación. Por favor, si tenes una página Web distribuila, si conoces un BBS o un FTP subila para que esté al alcance de todos... Se Necesitan Colaboradores, y gente que este dispuesta a formar parte del CIA Team. Les cuento que el CIA Team va a estrar formado por menos de 10 personas, asi que aquellos que se sientan capaces de llevar una seccion de la revista como una seccion de Hack, Crack, Phreack o lo que sepa hacer que me escriba asi queda confirmado como editor de la revista. Bueno, termino esta editorial diciendoles que disfruten, aprovechen este numero y que les sirva de algo. Espero que mas adelante podamos "usar" el e-zine como un punto de encuentro que nos permita conocer gente interesante y juntos ir descubriendo este Mundo Subterraneo. |\/|r. |\|uk3m mr_nuk3m@usa.net =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 02 ) Noticias =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Nota Nuk3m: No se si la info que sigue a continuacion les sirva de algo, pero es lo unico con que se me ocurrio rellenar esta seccion. -= 1 =- El buscador HispaVista vende su mayoria al ISP frances Libertysurf. HispaVista, uno de los buscadores españoles mas utilizados, ha vendido su mayoria accionarial al ISP frances LibertySurf, dominado por la empresa de Internet Europa@web, propiedad de Bernard Arnault, presidente, a su vez, del grupo LVMH (Louis Vuitton). Asi lo revelaron el viernes 3, a ultima hora, mediante nota de prensa, los propietarios de HispaVista, encabezados los hermanos donostiarras Elosegui. La cifra de la operacion no fue hecha publica, si bien el boletin Arroba Euskadi, que dirige el periodista Jose A. del Moral, la situo en 35 millones de dolares (6.000 millones de pesetas). "Se trata del primer ciberpelotazo de la historia de Euskadi", escribio el reportero. "Jon, Unai y Paul Elosegui recibiran una participacion del 0,23 % de la compañia gala y 1.300 millones de pesetas en efectivo, y seguiran gestionando la empresa, ademas de mantener el 49 % de su capital". HispaVista, que figura en la ultima encuesta de la AIMC como uno de los diez primeros sitios web visitados en España, inicio en noviembre una ronda de financiacion. LibertySurf inscribe la operacion en la proxima salida a Bolsa Segun revelo este sitio web, "hemos tenido ofertas de entidades de capital riesgo, banca, corporaciones, culminando este proceso con LibertySurf, que fue el mejor postor". "La entrada de LibertySurf en HispaVista representa la incorporacion de un socio estable que aporta un know-how en el sector de las telecomunicaciones y el reconocimiento a nivel internacional", comento Paul Elosegui. Por su parte, LibertySurf, uno de los proveedores lideres de acceso gratuito en Francia, hizo coincidir el anuncio de la adquisicion junto a la noticia de su proxima salida a Bolsa. Pierre Besnainou, chief executive de LibertySurf manifesto en Paris que "los ingresos de la compañia vendran de cuatro fuentes principales: comercio electronico, publicidad, telecomunicaciones y conexiones a Internet. Nuestro siguiente paso tiene tres objetivos: atraer nuevos usuarios, fidelizarlos e incrementar beneficios". HispaVista asegura que su audiencia asciende a 13,4 millones de paginas visitadas al mes, con un crecimiento medio mensual del 30 %. Entre sus servicios gratuitos, destacan el alojamiento de paginas web en Galeon, el correo, la bolsa de empleo, con 3500 ofertas de empleo activas y la informacion bursatil. -= 2 =- El candidato Bush se manifiesta contrario a la division de Microsoft. El candidato republicano George W. Bush manifesto el viernes 3, en Nueva York que se opone a que Microsoft sea dividido en diferentes empresas, tal y como se especula que sucedera si el Gobierno norteamericano gana el caso anti-monopolio. En la actualidad, el juez Thomas Penfield Jackson sopecha si Microsoft, con sus agresivas practicas comerciales, violo la Ley Sherman Anti trust. "Estoy en contra de que se rompa Microsoft. Seguro que existe una solucion mejor que partir una compañia exitosa que emplea a mucha gente", dijo el politico conservador. En todo caso, la decision del juez se espera para las proximas semanas, muchos meses antes de que el candidato Bush pudiera alcanzar la Casa Blanca. -= 3 =- Un estudio de Stanford habla sobre los adictoas al sexo por Internet. Un estudio realizado por psicologos de las universidades de Starford y Duquesne revela que unos 200.000 internautas norteamericanos son adictos a las paginas web y chat pornograficos, empleando en ello una media de once horas a la semana. "Debemos preocuparnos por estas personas porque estan comenzando a desarrollar problemas mentales que pueden ser muy graves", dice el estudio, una de cuyas reseñas se publica en El Mundo. Al Cooper, uno de los autores del analisis, indica que "las personas que reconocian visitar con frecuencia los portales pornograficos tenian mas problemas para relacionarse con individuos de otro sexo que los internautas que usaban ocasionalmente estas direcciones o que aquellos que no las visitaban jamas". El mencionado diario recuerda que otro estudio realizado en España revelo que "la propia Red es una de las nuevas adicciones creadas por el estilo de vida de las grandes ciudades" (...) "Internet propicia la aparicion de personas adictas al juego, al sexo, a la comida o a las compras". -= 4 =- La industria discografica, preocupada por las perdidas por pirateo. La industria musical empieza a reconocer publicamente las cuantiosas perdidas que causan las copias ilegales de canciones por Internet. Jay Berman, presidente de la poderosa organizacion internacional IFPI, dijo el viernes 3 en Londres que "el pirateo esta costando anualmente al sector 4.500 millones de dolares, en una industria que mueve 38.000 millones". "Para los artistas, Internet representa una gran oportunidad para llegar a las audiencias que buscan, pero al mismo tiempo, ellos quieren cobrar por su trabajo". La solucion que propone este directivo es que los gobiernos endurezcan las leyes del copyright. La industria musical estima que en la actualidad existen mas de un millon de canciones no autorizadas en Internet, y la cifra aumenta dia a dia. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 03 ) Descubriendo Linux Red Hat 5.0 (PARTE 2) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Descubriendo Linux Red Hat 5.0 (PARTE 2) ------------ ----- --- --- --- --------- By Mr. Nuk3m -- --- ----- Hola a todos los que estan leyendo esto, yo soy Mr. Nuk3m y esta es la segunda entrega de este manual del sistema operativo Linux Red Hat 5.0. Disculpen las faltas de ortografia pero no voy a poner acentos, salvo las eñes para que todos puedan leer este texto; ya sean usuarios de Windows o Linux :) Me reservo los derechos de autor de este manual por lo que si quieren hacer modificaciones, avisen primero. Este texto es de libre distribucion, siempre y cuando aparezcan estas lineas y mi nombre, Mr. Nuk3m. A continuacion, como siempre, un indice para que puedas buscar lo que te interesa saber de Linux Red Hat 5.0: Contenido Introduccion (lo esta leyendo) 8. Utilidades Adicionales 8.1 Utilidades de monitoreo 8.1.1 date: Muestra la fecha y hora actuales 8.1.2 who: Lista los usuarios logueados actualmente 8.1.3 ps: Listado de los procesos 8.1.4 free: Sumario de la utilizacion de la memoria 8.1.5 top: Actividad del procesador 8.1.6 df: Muestra el espacio libre en los sistemas de archivos 8.1.7 du: Uso del disco 8.2 Utilidades para trabajar con texto 8.2.1 cat: Mostrar archivos 8.2.2 head: Muestra el comienzo de un archivo 8.2.3 tail: Muestra el final de un archivo 8.2.4 ascii-xfr: Convierte archivos de texto 8.2.5 more: Filtro para visualizacion de texto por pantalla 8.3 Utilidades para agrupar y comprimir archivos 8.3.1 gzip y bzip2: Compresion de archivos 8.3.2 tar: Agrupa archivos 8.4 Utilidades de ayuda 8.4.1 man: Informacion de los comandos y utilidades 8.5 Otras utilidades 8.5.1 passwd: Cambiando el password 9. Instalacion de software adicional 9.1 Software distribuido con codigo fuente 9.1.1 La distribucion 9.1.2 La configuracion 9.1.3 La compilacion 9.1.4 El directorio /usr/local 9.1.5 La instalacion 9.2 El sistema de paquetes RPM 9.2.1 Convenciones en los nombres de los paquetes 9.2.2 La base de datos RPM 9.2.3 Modos de operacion de rpm 9.3 Utilizacion de librerias 9.3.1 Directorios de las librerias 9.3.2 Instalacion de librerias. 10. Montando sistemas de archivos 10.1 Sistemas de archivos y particiones 10.2 Sintaxis del comando mount 10.3 Montando sistemas de archivos 10.3.1 Tipos de sistemas de archivos 10.4 Desmontando sistemas de archivos 10.5 El archivo /etc/fstab 10.5.1 Campos de cada entrada 10.5.2 Uso del archivo fstab 10.5.3 Permitiendo montar sistemas de archivos a usuarios normales 11. El kernel y los modulos 11.1 ¿Que es el kernel? 11.2 La interaccion 11.2.1 Las librerias del sistema 11.2.2 Las utilidades del sistema 11.3 ¿Que son los modulos? 11.4 Personalizando el kernel 11.4.1 Eligiendo la configuracion adecuada 11.4.2 Compilando el kernel 11.4.3 Compilando los modulos 11.4.4 Instalando los modulos 11.4.5 Instalando el nuevo kernel 11.4.6 Cargando y decargando los modulos 11.4.7 Las dependencias entre los modulos 11.4.8 Una carga de modulos mas inteligente 11.5 Actualizando nuestro kernel 11.5.1 Obteniendo el kernel 11.5.2 Instalando las fuentes del kernel 12. Aspectos avanzados de la shell 12.1 Programas de la shell (scripts) 12.2 Variables de la shell 12.2.1 Exportando variables de la shell 12.2.2 Variables automaticas de la shell 12.2.3 Variables estandar de la shell 12.3 El camino de busqueda (path) 12.4 Caracteres especiales - "Quoting" 12.5 Estado de salida de los comandos 12.6 Los argumentos 12.7 Estructuras de control 12.7.1 Condicionales simples 12.7.2 El condicional if 12.7.3 Los loops condicionales while y until 12.7.4 La sentencia for 12.7.5 La sentencia case 12.8 Evaluacion de condiciones - Test 12.9 Evaluacion de expresiones - Expr CAPITULO 8 UTILIDADES ADICIONALES 8.1 UTILIDADES DE MONITOREO El S.O. Linux nos provee de un conjunto de utilidades que nos permiten monitorear nuestro sistema, desde enterarnos de la fecha actual hasta un sumario del uso de la memoria. 8.1.1 date: MUESTRA LA FECHA Y LA HORA ACTUAL # date Sat May 29 23:54:23 ART 1999 El comando date tambien se utiliza para setear la fecha y la hora del sistema, pero esto solo puede hacerlo el superusuario. 8.1.2 who: LISTA LOS USUARIOS LOGUEADOS ACTUALMENTE El comando who muestra una lista de las personas que estan usando actualmente el sistema. # who tony tty1 May 29 23:23 root tty2 May 29 20:15 8.1.3 ps: LISTADO DE PROCESOS El comando ps muestra una lista de los procesos que se encuentran corriendo en el sistema. Usualmente este comando es utilizado por los programadores y los administradores del sistema para ver que es lo que esta sucediendo en el sistema. Los usuarios utilizan ps para averiguar el PID (process identification number) de los procesos errantes para poder matarlos. Si ejecutamos ps, veremos una lista formada por los procesos que nosotros estamos ejecutando, pero no veremos los procesos de otros usuarios. Vemos un ejemplo en la figura 8.1. En el listado que aparece como salida del comando ps vemos el PID, la terminal que lo controla, el estado del proceso, el tiempo de ejecucion y el comando que invoco al proceso. Los PIDs se asignan secuencialmente a medida que cada proceso comienza y ciclan otra vez hacia 1 cuando alcanzan 32767. Si un proceso se esta ejecutando en "background", podemos monitorearlo con el comando ps. # ps PID TTY STAT TIME COMMAND 491 1 S 0:00 /bin/login -- tony 492 1 S 0:00 -bash 503 1 S 0:00 sh /usr/X11R6/bin/startx 504 1 S 0:00 xinit /home/tony/.xinitrx -- 508 1 S 0:02 wmaker 509 1 S 0:06 kfm 512 1 S 0:00 mount.app 513 1 S 0:00 asclock -shape 514 1 S 0:00 wmmixer -w 515 1 S 0:00 wmmom 516 1 S 0:00 wmmom -s 521 1 S 0:23 emacs -fn 9x15 525 p5 S 0:00 /bin/bash 572 p6 R 0:00 ps Figura 8.1: Listando los procesos. Si ejecutamos ps aux veremos todos los procesos que se estan ejecutando en el sistema. Cada proceso tendra especificado el usuario dueño del mismo. 8.1.4 free: SUMARIO DE LA UTILIZACION DE LA MEMORIA El comando free muestra la cantidad de memoria fisica utilizada y libre, la utilizacion del espacio "swap", la cantidad de memoria compartida y la utilizacion de los "buffers". La opcion -b muestra la cantidades en bytes, la opcion -k en kilobytes (es la predeterminada) y la opcion -m en megabytes. Vemos la salida de este comando en la figura 8.2. # free total used free shared buffers cached Mem: 95696 70068 25628 39672 6840 28760 -/+ buffers/cache: 34468 61228 Swap: 40156 0 40156 Figura 8.2: Visualizando la informacion de la memoria utilizada en el sistema. 8.1.5 top: ACTIVIDAD DEL PROCESADOR El comando top provee una vision en tiempo real de la actividad del procesador. Nos muestra una lista de los procesos que utilizan el CPU de manera intensiva y provee una interfase interactiva para la manipulacion de los procesos. El comando top puede mostrar el listado de los procesos ordenados por el uso de CPU, utilizacion de memoria o tiempo de ejecucion. 8.1.6 df: MUESTRA EL ESPACIO LIBRE EN LOS SISTEMAS DE ARCHIVOS El comando df (disk free) muestra el espacio disponible en cada sistema de archivos actualmente montado. La unidad utilizada es un bloque de 1K, pero podemos modificar esto invocando a df con la opcion -h (human) para que muestre la informacion del espacio disponible en un formato mas accesible. Vemos un ejemplo en la figura 8.3. # df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 1701926 1306039 307932 81% / /dev/hda2 305064 200456 104608 66% /mnt/win95 /dev/hda1 2096450 1510124 586326 72% /mnt/nt /dev/hdc1 2108544 1620352 488192 77% /mnt/akenaton # df -h Filesystem Size Used Avail Capacity Mounted on /dev/hda3 1.6G 1.2G 301M 81% / /dev/hda2 298M 196M 102M 66% /mnt/win95 /dev/hda1 2.0G 1.4G 573M 72% /mnt/nt /dev/hdc1 2.0G 1.5G 477M 77% /mnt/akenaton Figura 8.3: Visualizando el espacio disponible en los sistemas de archivos. 8.1.7 du: USO DEL DISCO El comando du (disk usage) nos sirve para averiguar cuanto espacio estan ocupando nuestros archivos. Cuando es invocado sin argumentos, du nos devuelve una lista con los subdirectorios del directorio actual y el espacio ocupado por cada uno de ellos. Vemos un ejemplo en la figura 8.4a. # pwd /home/tony/docs/linux # du 1446 ./images 137 ./xtras 2114 . a. Visualizando el espacio ocupado por cada subdirectorio. Es usual querer saber cuanto espacio esta ocupando un directorio junto con todos sus subdirectorios. Para ello podemos utilizar el comando du con la opcion -s y como argumento el directorio en cuestion. Esta opcion realiza un sumario de espacio ocupado por cada argumento pasado al comando. Si no pusieramos la opcion -s el comando nos daria como salida un listado de los subdirectorios que se encuentran en ese directorio y el espacio que ocupan los mismos. Vemos un ejemplo de esto en las figuras 8.4b y c. # du -s Desktop 14 Desktop b. Visualizando el espacio ocupado por un subdirectorio # du Desktop 2 Desktop/Trash 8 Desktop/Templates 2 Desktop/Autostart 14 Desktop c. Visualizando el espacio ocupado por los subdirectorios de un directorio. Figura 8.4: Visualizando el espacio ocupado por los archivos. 8.2 UTILIDADES PARA TRABAJAR CON TEXTO 8.2.1 cat: MOSTRAR ARCHIVOS El uso estandar de este comando es el de mostrar archivos en nuestra terminal. Ademas el comando cat se puede utilizar para concatenar archivos. Ejemplos en las figuras 8.5a y b. # cat /etc/printcap ##PRINTTOOL3## LOCAL cdj550 300x300 a4 {} DeskJet550 Default 1 1 hp|lp:\ :sd=/var/spool/lpd/hp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=8/var/spool/lpd/filter: a. Utilizando cat para ver el contenido de un archivo. # cat mess[123] > message # cat message Contenido del mensaje 1 ..... Contenido del mensaje 2 ..... Contenido del mensaje 3 ..... b. Utilizando cat para concatenar archivos. Otro uso muy comun de cat es en la creacion de archivos de texto con muy pocas lineas. A veces necesitamos crear archivos con muy pocas lineas de textos y no se justifica cargar un editor de texto para hacerlo. Si ejecutamos cat sin argumentos, el comando leera caracteres de la entrada estandar hasta encontrar un caracter de fin de archivo (Ctrl+D). Ejemplo en la figura 8.5c. # cat > /etc/motd Se recuerda a todos los usuarios que el espacio de disco que tiene asignado es como maximo 4MB. ^D c. Utilizando cat para crear archivos. 8.2.2 head: MUESTRA EL COMIENZO DE UN ARCHIVO Hay ocasiones en las que queremos saber cual es el contenido de un archivo, pero no queremos visualizarlo todo, ya sea por que es muy grande y porque tardariamos mucho tiempo o porque se visualiza tan rapido que lo unico que vemos es una serie de flashs de caracteres en la pantalla. El comando head nos permite visualizar las primeras lienas de un archivo (10 por defecto). Usando la opcion -n 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 tamaño y nombre original. En la figura 8.8b vemos una comparacion entre ambas utilidades de compresion. Se tomo el archivo ejecutable del Netscape Communicator 4.5 como objeto de prueba. El archivo, sin comprimir, ocupa exactamente 12078064 bytes. Al comprimir con gzip obtuvimos un archivo con un tamaño de 5138529 bytes, lo que implica un grado de compresion del 57.4 %. Al comprimirlo con bzip2 obtuvimos un archivo de 4739906 bytes lo que implica un grado de compresion del 60.76%. En este caso comprimio mejor bzip2. En general bzip2 realiza mejores compresiones que gzip pero con el costo de tardar un poco mas. Hoy, esta ganando terreno la utilizacion del bzip2. En el ejemplo anterior, vimos los grados de compresion que alcanzaron ambas utilizadades. Estos grados son muy buenos teniendo en cuenta que el archivo objeto de la prueba era un archivo binario. En general, se logran mejores compresiones sobre los archivos de texto, por ejemplo: fuentes de algun programa. Luego en la seccion que trata sobre la utilidad tar veremos un ejemplo de esto, comprimiendo las fuentes del kernel de Linux. 8.3.2 tar: AGRUPAR ARCHIVOS Las utildades gzip y bzip2 son muy buenas comprimiendo grandes archivos, pero no pueden hacer mucho sobre archivos pequeños. Primero, los archivos pequeños son pequeños, valga la redundancia, y comprimirlos no nos trae mucho beneficio. Pero el problema, es que existe una dificultad tecnica que tenemos que entender. En Linux, el espacio en disco es reservado de a bloques de 1 Kilobyte, en los sistemas de archivos de otros Unix se reserva espacio en "clusteres" de 2, 4 o hasta 8 bloques de 512 bytes. Esto significa que si creamos un archivo que solo contiene un caracter, en Linux ocupara 1 Kilobyte y en otros Unix puede ocupar de 1 a 4 Kilobytes. La implicancia directa de esto es que no nos trae ningun beneficio comprimir un archivo de, por ejemplo 512 bytes ya que por mas que comprimido ocupe menos espacio, seguira almacenado en un bloque de 1 kilobyte. Otra dificultad con los archivos pequeños, es que, em general, se tiene muchisimos de ellos. Si tenemos unos pocos archivos de 1K no tendremos problemas, pero tener 5.000 o 10.000 archivos de ese tamaño pueden hacernos perder espacio rapidamente. La utilidad tar soluciona esto y otros problemas. Esta utilidad fue originalmente desarrollada como un programa para escribir archivos de cintas magneticas, su nombre es "Tape archiver". Las cintas se tratan como un gran archivo secuencial y tar fue diseñado para empaquetar conjuntos de archivos en un gran archivo para ser almacenado en cinta. Todavia se continua utilizando tar para realizar backups en cinta magnetica, pero tambien es muy util para archivar grandes conjuntos de archivos en un unico archivo llamado "tar-archive". Tar puede ahorrar espacio ya que almacena archivos en un gran archivo sin la limitacion de un tamaño de cluster fijo. Los archivos se colocan uno despues del otro separados por un encabezado. Un grupo de archivos pequeños dentro de un tar-archive puede ser facilmente comprimido utilizando las utilidades gzip o bzip2. Los compresores se utilizan como complemento de la utilidad tar para comprimir un arbol de directorios recursivamente. Primero se agrupan todos los archivos y directorios a comprimir en un tar-archive y luego este es comprimido con la ayuda de un compresor, ya sea gzip o bzip2. En la figura 8.9a vemos como se utiliza tar en conjunto con un compresor para crear un archivo comprimido que contenga toda la informacion del subdirectorio en cuestion, en este caso las fuentes del kernel de Linux, version 2.2.5. Elegimos las fuentes del kernel como archivo objeto porque son muchismos archivos de texto y con una estructura de directorios y subdirectorios muy compleja. Asi vemos que con un par de comandos almacenamos toda la estructura de subdirectorios en un unico archivo y luego lo comprimimos para que ocupe poco espacio. # du -hs linux-2.2.5 51M linux-2.2.5 # tar -c linux-2.2.5 | gzip > linux-2.2.5.tar.gz # du -hs linux-2.2.5.tar.gz 13M linux-2.2.5.tar.gz a. Comprimiendo un arbol de directorios. # gzip -dc linux-2.2.5.tar.gz | tar -xf - # du -hs linux-2.2.5 51M linux-2.2.5 b. Descomprimiendo un arbol de directorios. Figura 8.9: Comrpimiendo y descomprimiendo un arbol de directorios. El comando utilizado es tar -c ya que la opcion -c (create) hace que el comando tar cree un nuevo tar-archive y como no se especifica un archivo de salida (opcion -f nombre) tar envia la salida a la salida estandar. La cañeria creada permite que el comando gzip obtenga la salida de tar y comprima enviando el resultado a la salida estandar la cual es redireccionada al archivo linux-2.2.5.tar.gz. Tambien vemos que el directorio, junto con todos sus subdirectorios y archivos ocupa 51 Megabytes. Una vez agrupado y comprimido el tamaño del archivo es de solo 13 Megabytes, lo que implica un grado de compresion del 74.5%. En la figura 8.9b mostramos como se puede descomprimir el archivo linux-2.2.5.tar.gz. El comando es otra vez una cañeria, pero esta vez en sentido inverso. Se utiliza el comando gzip con la opcion -d para que descomprima y la opcion -c para que envie el resultado a la salida estandar. Luego utilizamos el comando tar para desagrupar los archivos y necesitamos agregrales las opciones -x (extract) para que extraiga los archivos y -f para indicarle que es un tar-archive. Ademas debemos agregarle el simbolo "-" para indicarle que lea de la entrada estandar y asi pueda recibir la salida del compresor. Luego realizamos un chequeo y vemos que se encuentra el directorio linux-2.2.5 y que su tamaño es nuevamente 51 Megabytes. 8.4 UTILIDADES DE AYUDA 8.4.1 man: INFORMACION DE LOS COMANDOS Y UTILIDADES Los sistemas de la familia Unix, tiene un sistema de ayuda "on-line" para los comandos y utilidades del sistema muy completo y practico que es llamado "Man-Pages" (manuales). La utilidad man es un programa que formatea (de darle forma) y visuliza los manuales de los comandos y utilidades del sistema. Esta utilidad se invoca con un argumento que debe ser un comando o utilidad valida del sistema o cualquier programa que hayamos instalado que posea manuales instalados. El siguiente comando nos mostrara el manual del comando ls. ==> man ls Dentro del entorno de la utilidad man hay varios comandos que es util conocer: 1- Avanzar: Avanzamos por las paginas del manual utilizando la barra espaciadora o "space". 2- Retrocerder: Retrocedemos una pagina del manual utilizando la tecla "b" (back). 3- Salir: Salimos del manual con la tecla "q" (quit). 8.5 OTRAS UTILIDADES 8.5.1 passwd: CAMBIANDO EL PASSWORD El comando passwd se utiliza para cambiar el "password" del usuario. Algunas personas cambian su password periodicamente para mantener la seguridad. El comando passwd primero nos obliga a ingresar el password actual y si es valido nos pregunta dos veces el nuevo password, para verificar que no nos hayamos equivocado. Ninguno de los passwords es mostrado en la pantalla por cuestiones de privacidad y seguridad. El superusuario (root) puede setear el password de cualquier usuario, pero los usuarios ordinarios solo pueden cambiar sus propios passwords. En algunos sistemas los passwords se "vencen", es decir que duran un cierto tiempo. El sistema nos obligara a cambiar nuestro password la proxima vez que iniciemos una sesion pasado el periodo de vencimiento. CAPITULO 9 INSTALACION DE SOFTWARE ADICIONAL Una vez instalado el sistema Linux, estamos en condiciones de utilizar una gran cantidad de utilidades y programas que vienen como parte del mismo. La gran mayoria del software que viene con las distribuciones de Linux, es actualizado permanentemente, ya sea porque se perfecciona o porque se le agregan nuevas caracteristicas. Ademas, hoy en Internet, podemos conseguir una infinidad de programas adicionales de distintas areas. Para poder instalar con exito cada uno de los programas que conseguimos es necesario que conozcamos algunos detalles importantes. Existen una gran cantidad de sitios en Internet, donde es posible conseguir las ultimas versiones de los programas y utilidades mas conocidas en el sistema Linux. En el apendice A se listan las direcciones de los sitios mas importantes, los que no tenemos que dejar de visitar. 9.1 SOFTWARE DISTRIBUIDO CON CODIGO FUENTE El software para Linux o Unix, en general es distribuido con el codigo fuente, ya que existen una gran cantidad de plataformas Unix con distintas caracteristicas. Seria inviable que el autor del software compile y genere una version ejecutable binaria del programa para cada plataforma y la publique para que podamos disponer de ella. Para evitar esto, cada version de la familia Unix posee un sistema de compilacion y generacion de ejecutables como parte del sistema. Asi teniendo el codigo fuente del programa, podemos compilar y generar una version ejecutable del mismo, sobre nuestra plataforma y con todas las caracteristicas de nuestro sistema, de forma casi transparente. La obvia desventaja de esta aproximacion es el tiempo extra que tenemos que invertir compilando los programas, sobre todo si los mismos son muy grandes. El echo de contar con el codigo fuente de los programas (usualmente C, C++), nos da la posibilidad de poder modificar los mismos y adaptarlos a nuestras necesidades particulares. Asi podemos modificar el codigo fuente y volver a compilar el ejecutable, tantas veces como queramos. Una complicacion adicional surge al encontrarse con el codigo fuente de los programas: los mismos pueden necesitar utilizar librerias para poder compilarlos. La seccion 9.3 se ocupa de explicar como podemos instalar nuevas librerias en nuestro sistema. 9.1.1 LA DISTRIBUCION La mayoria del software que podemos conseguir en Internet se encuentra agrupado y comprimido con los formatos tar y gzip o bzip2 respectivamente. Antes de realizar la instalacion es necesario descomprimir y desagrupar los contenidos. Vamos a ver un ejemplo con el programa cdda2wav que es una utilidad para copiar cd's de audio a formato de archivo de sonido de onda (wav). El archivo de la distribucion es cdda2wav-1.0c.tar.gz. El comando para descomprimir y desagrupar el contenido del archivo puede ser: ==> tar -zxvf cdda2wav-1.0c.tar.gz o el equivalente ==> gzip -dc cdda2wav-1.0c.tar.gz | tar -xvf - NOTA: Si el formato es .tar.bz2 no es posible utilizar la primera forma del comando. Es necesario invocar un comando de la forma del segundo, reemplazando el descompresor gzip por el bzip2. Luego de haber descomprimido y desagrupado las fuentes, en general, obtendremos un directorio con los contenidos del archivo. En la figura 9.1 vemos el contenido del directorio obtenido. # cd cdda2wav-1.0c # ls Fronted byteorder.h md5c.h scsilib GLP cdda2mp3 md5c.c semshm.c HOWTOUSE cdda2mp3.new missing semshm.h HPUX-Notes cdd2wav.1 mkinstalldrs setuid.c Makefile.am cdd2wav.c mycdrom.h setuid.h Makefile.in cdd2wav.h mytype.h sndconfig.c NEWS cdda_links pitchplay sndconfig.h OtherProgs config.guess raw.c sun.c README config.h raw.h sun.h README.2_0_33 config.sub readmult toc.c README.GoldstarR580B configure resample.c toc.h README.INSTALL configure.in resample.h tracknames.pl README.paranoia global.h ringbuff.c tracknames.txt THANKS install-sh ringbuff.h wav.c TODO interface.c scan_scsi.linux wav.h aclocal.m4 interface.h scsi_cmds.c add_wav lowlevel.h scsi_cmds.h Figura 9.1: El contenido tipico de una distribucion de codigo fuente. Es usual que los desarrolladores del software agregen en la distribucion archivos INSTALL o README que son muy utiles al momento de compilar e instalar, ya que especifican las instrucciones de compilacion e instalacion que debemos seguir para poder instalar el programa con exito. A continuacion, vamos a explicar el proceso de compilacion e instalacion mas comunmente utilizados. ES NECESARIO ACLARAR QUE NO TODO EL SOFTWARE QUE PODEMOS CONSEGUIR SIGUE ESTAS CARCTERISTICAS. SIEMPRE DEBEMOS REMITIRNOS, COMO PRIMER MEDIDA, A LAS INSTRUCCIONES RESPECTIVAS DE CADA PROGRAMA. 9.1.2 LA CONFIGURACION Como paso previo a la compilacion, debemos iniciar un proceso de configuracion del software. El mismo escaneara nuestro sistema en busca de los requerimientos del programa para ver si los mismos se encuentran instalados o no, y para determinar otros parametros necesarios a la hora de compilar. Para iniciar este proceso de configuracion, debemos ejecutar el comando: ==> ./configure Dentro del directorio del programa. Seguiran una serie de mensajes de estado y configuracion, los cuales terminaran en la generacion de los archivos Makefile que son requisitos imprescindibles a la hora de compilar. La salida de esta etapa son estos archivos que contienen las instrucciones para que el compilador pueda trabajar. NOTA: Si en esta etapa el proceso de configuracion se detiene con un mensaje de error, es posible que nos este faltando una libreria o algo necesario para la configuracion del programa. Anotar precisamente el error y luego referirse a los archivos INSTALL o README respectivos a cada programa con el fin de determinar la causa del error. 9.1.3 LA COMPILACION La compilacion es el proceso por el cual el texto fuente de un programa es traducido al formato binario (leguaje entendido por la maquina) para que la misma este en condiciones de ejecutarlo. Es una tarea automatica (por lo menos desde el punto de vista del usuario). En general, ejecutando el comando ==> make (construir) daremos comienzo a la tarea de compilar el programa. Este comando indica al compilador que comience su tarea, y el mismo, en base a las instrucciones de los archivos Makefile generados en la etapa anterior, ira construyendo los distintos componentes del programa, para finalizar su tarea, vinculando los componentes generados en uno o mas ejecutables que forman parte del programa. Estos ejecutables seran guardados en el directorio donde tenemos el codigo fuente del programa. Como paso restante, queda instalar los ejecutables y documentacion (usualmente provista con el codigo fuente - no es necesario compilar) en el directorio correspondiente, para asi poder comenzar a utilizar el programa en nuestro sistema. 9.1.4 EL DIRECTORIO /usr/local El directorio /usr/local usualmente es el lugar en la jerarquia de archivos donde se instala el software adicional, es decir aquel software que no haya sido provisto inicialmente con la distribucion del S.O. Linux instalada. La mayoria del software posee como destino de instalacion predeterminado este directorio, por lo que el programa se instalara en ese lugar. Este directorio posee una serie de subdirectorios que lo forman, los mismos son (lista no exhaustiva): * /usr/local/bin: Es el directorio donde se guardan los ejecutables. * /usr/local/lib: Es el directorio donde se instalan las librerias. * /usr/local/man: Es el directorio donde los programas instalan sus man-pages. * /usr/local/doc: Es el directorio donde se almacena la documentacion adicional. Usualmente paginas Html. * /usr/local/include: Es el directorio donde se guardan los encabezados de las librerias. Este directorio es escaneado por los programas de configuracion, para ver si se ecuentran disponibles ciertas librerias. * /usr/local/games: En este directorio se instalan los programas de entretenimiento. * /usr/local/share: Este directorio es tomado como directorio destino de ciertos programas que tienen informacion extra y la necesitan para poder trabajar. Adicionalmente, hay programas que son muy grandes que reservan un directorio para ellos con su nombre dentro del directorio /usr/local. Por ejemplo: Netscape Communicator /usr/local/netscape, KDE (Kommon Desktop Environment) /usr/local/kde. 9.1.5 LA INSTALACION El ultimo paso a realizar es la instalacion. Para ello ejecutamos el siguiente comando: ==> make install Este comando iniciara un proceso de instalacion que se ocupa de copiar todos los archivos necesarios a el/los directorios destino especificados. Seguiran una serie de mensajes y luego se dara por finalizada la instalacion. NOTA: Es necesario estar en una sesion con permisos de superusuario para poder ejecutar este comando, ya que si no tenemos permiso de escritura en el directorio destino, el proceso de instalacion abortara con un error. Para esto, podemos iniciar una sesion con el usuario root, o ejecutar directamente el comando su (superuser), el cual nos pedira la contraseña del superusuario y si es correcta, iniciaremos una sesion con permisos de superusuario. Una vez finalizada la instalacion, podemos retornar a la sesion anterior con el comando exit. Es posible que cada programa necesite que realicemos ciertas configuraciones adicionales para hacer que el programa funcione. Usualmente debemos seguir una serie de instrucciones que son especificadas en la documentacion del programa. Las configuraciones tipicas que debemos realizar son edicion del camino de busqueda, creacion y exportacion de variables de entorno, etc. Todos estos temas seran tratados en capitulos posteriores. 9.2 EL SISTEMA DE PAQUETES RPM RPM (RedHat Package Manager) es un sistema de manejo de paquetes de software muy potente, que puede ser utilizado para construir, instalar, consultar, verificar, actualizar y desinstalar paquetes de software individuales. Un paquete consiste de dos partes fundamentales: el software en si y un encabezamiento que contiene la informacion del paquete (nombre, version, dependencias, etc). RPM le otorga al administrador al habilidad de poder actualizar componentes individuales o sistemas enteros conservando la configuracion del sistema o paquete, consultar la base de datos de paquetes para averiguar la locacion de los archivos, paquetes o informacion relacionada. RPM es el sistema de manejo de paquetes de Red Hat, pero esto no significa que solo pueda ser usado en una distribucion Red Hat. Se desarrollo pensando en ser un sistema de paquetes abiertos, es decir, para poder ser utilizado en cualquier distribucion. Actualmente, Red Hat recomienda a otros distribuidores de Linux a usarlo en sus distribuciones. Hoy, podemos considerar que es el sistema de manejo de paquetes mas utilizado en la comunidad Linux. 9.2.1 CONVENCIONES EN LOS NOMBRES DE LOS PAQUETES Un paquete de software RPM construido correctamente tiene la caracteristica de que su nombre (package.rpm) identifica la siguiente informacion: el nombre del paquete, su version, la ultima revision de compilacion y la arquitectura para la cual fue construido. En general los paquetes son distribuidos en archivos con extension .rpm. Veamos un ejemplo con el paquete XFree86-3.3.1-14.i386.rpm. El nombre del paquete es XFree86 y es el sistema grafico de ventanas que se utiliza en Linux. Su version es la 3.3.1 y es revision 14 de esa version. La plataforma para la cual fue construido es la Intel 80386 o superiores. Como vemos, el nombre del archivo mediante el cual se distribuye el paquete nos puede brindar mucha informacion del mismo. Es mas, aun, la informacion que posee un paquete internamente. Aunque el estudio de la estructura interna de un paquete RPM esta, claramente, fuera del ambito de este manual, podemos destacar que en un paquete internamente tiene: * Archivos ejecutables. * Archivos de configuracion. * Archivos de documentacion (HTML, man-pages, etc). * Archivos miscelaneos relacionados directamente con el paquete. * Un registro de los lugares donde se deben instalar los archivos. * Un registro de todos los paquetes requeridos (dependencias). 9.2.2 LA BASE DE DATOS DE RPM. El sistema de manejo de paquetes RPM mantiene una base de datos, local al sistema, donde se mantienen los datos de todos los paquetes instalados en el sistema. Una vez instalado un paquete exitosamente, toda la informacion del paquete se registra en la base de datos. 9.2.3 MODOS DE OPERACION DE RPM Todas las operaciones del sistema de manejo de paquetes se realizan con el programa rpm. El mismo tiene varios modos de operacion, donde cada uno de ellos posee opciones especiales. NOTA: Sobre el sistema de ventanas X-Windows existen varias herramientas graficas de manejo de paquetes, que son muy faciles de utilizar y muy comodas. Algunas de ellas son: kpackage (para el Windows Manager KDE), X Package Management Tool (es provisto con las herramientas estandar de la distribucion Red Hat). Los 4 modos mas importantes de la operacion son: Modo de Instalacion: ==> rpm -i [install-options] 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 tamaño de los archivos, permisos, tipos, dueños y grupos de cada archivo. Cualquier discrepancia se muestra en pantalla. El comando de verificacion es de la siguiente forma: ==> rpm -V [verify-options] Las opciones de especificacion de paquetes son iguales a las de consulta. Modo desinstalacion La forma del comando de desisnstalacion es la siguiente: ==> rpm -e Pueden ser especificadas opciones adicionales: * --nodeps: no realizar un chequeo de las dependencias. Si algun paquete instalado necesita del paquete que estamos desinstalando, se borrara igual. * --allmatches: remueve todas las versiones del paquete especificado. 9.3 UTILIACION DE LIBRERIAS Con el objetivo de hacer que los programas sean mas pequeños, los mismos se desarrollan utilizando el concepto de "librerias compartidas". Las librerias son colecciones de modulos ya desarrollados, para ser utilizados en el desarrollo de nuevos programas. Estas colecciones, de alguna forma, son factorizadas, es decir se proveen una sola vez y cualquier numero de programas pueden utilizar su funcionalidad. NOTA: O sea, que si tenemos muchos programas que utilizan un mismo archivo en comun para funcionar, no es necesario que haya una copia del mismo para cada programa que lo utilice. Sino que que todos los programas que utilicen ese archivo pueden usar un solo archivo que se comparte con el resto de los programas que lo utilicen tambien. En el S.O. Linux, el concepto de librerias compartidas es muy utilizado por los programadores a la hora de desarrollar el software. A la hora de instalar un nuevo programa, podemos encontrarnos con la necesidad de instalar previamente algun conjunto de librerias. Primero veremos cuales son los lugares donde se encuentran las librerias en nuestro sistema y luego veremos como se pueden instalar librerias adicionales. 9.3.1 DIRECTORIOS DE LAS LIBRERIAS Las librerias, en el S.O. Linux, se encuentran distribuidas en varios lugares. A diferencia de otros S.O., que mantiene todas las librerias en un lugar centralizado (con las desventajas que esto trae), Linux las distribuye de acuerdo a unas convenciones muy simples. Los directorios comunmente utilizados son los siguientes: /lib: Son las librerias necesarias para poder ejecutar los programas que se encuentran en los directorios /bin y /sbin. /usr/lib: Son las librerias que necesitamos para poder ejecutar los programas que se encuentran en /usr/bin y /usr/sbin. /usr/X11R6/lib o /usr/X11/lib: Son librerias que utiliza el sistema de ventanas X-Windows y los programas que funcionan con el mismo. Usualmente son librerias graficas. /usr/local/lib: Este es el directorio que usamos comunmente para instalar las librerias adicionales que nosotros instalamos como parte de algun programa. 9.3.2 INSTALACION DE LIBRERIAS Las librerias en Linux, en general, son provistas con su codigo fuente, por las mismas razones que el software es distribuido asi. El proceso necesario para instalar una determinada libreria puede variar considerablemente. Hoy, la tendencia es a seguir el mismo procedimiento que con el software. Es decir que tenemos que seguir los mismos pasos de "configuracion", "compilacion" e "instalacion" descriptos en la seccion 9.1. Si la libreria, necesita que sigamos algun otro proceso de instalacion, deberemos referirnos a su documentacion y seguir las instrucciones de instalacion que usualmente son provistas como parte de la distribucion del software. Una vez realizada la instalacion de la libreria, nos resta realizar un paso adicional para que puedan ser utilizadas en el sistema. El S.O. mantiene un "vinculador de tiempo de ejecucion (run time linker)" que mantiene una base de datos de las librerias disponibles para los programas. Cuando un programa necesita utilizar una libreria, entra en juego este vinculador y realiza la "vinculacion" entre el mismo y la libreria, para que el primero la pueda utilizar. Cuando agregamos una libreria al sistema, debemos asegurarnos que el vinculador se "entere de su existencia". EL ARCHIVO /etc/ld.so.conf Este archivo mantiene una lista de los directorios donde tenemos librerias instaladas en el sistema. El contenido de un archivo de estos es mostrado en la figura 9.2. # cat /etc/ld.so.conf /usr/i486-linux-libc5/lib /usr/X11R6/lib /usr/local/lib /usr/local/kde/lib Figura 9.2: Un archivo /etc/ld.so.conf. Este archivo mantiene los directorios que son escaneados por el vinculador de tiempo de ejecucion en busca de librerias instaladas en el sistema. Normalmente, el vinculador esta configurado para actualizar la informacion de las librerias cada vez que se inicia el sistema. Por lo tanto, se puede pensar que para que el vinculador encuentre nuestra libreria, solo es necesario agregar el directorio donde se instalo la misma y luego reiniciar el sistema. Ese razonamiento no es erroneo, pero no es muy practico que digamos. Linux es un sistema que esta diseñado para evitar ser reiniciado, salvo situaciones extremas, a diferencia de otros S.O. que necesitan ser reiniciados por cosas minusculas. Es inaceptable tener que reiniciar el sistema porque se agrego una libreria al sistema, sobre todo teniendo en cuenta que Linux es "multiusuario" y si tenemos usuarios conectados tendremos que desconectarlos del sistema para poder reiniciar, o sin ir mas lejos pensemos en un sistema que actua como servidor de WWW y que esta atendiendo pedidos y se lo reinicia sin previo aviso. Para evitar reiniciar el sistema cada vez que instalamos un nuevo programa o libreria, Linux posee un comando que le indica al vinculador de tiempo de ejecucion que refresque la informacion de las librerias escaneando los directorios nuevamente. Una vez que hayamos editado el archivo /etc/ld.so.conf, debemos ejecutar el siguiente comando: ==> ldconfig el mismo refrescara las librerias que el vinculador considerara de ahi en adelante. A partir de eso podemos comenzar a utilizar el programa ya que el vinculador encontrara al libreria en el momento que el programa la solicite. Tanto la ejecucion de este comando como la edicion del archivo /etc/ld.so.conf se deben hacer con privilegios de superusuario ya que un usuario ordinario NO DEBE TENER PERMISO para escribir el archivo /etc/ld.so.conf y el comando ldconfig usualmente no se encuentra disponible para ser ejecutado por un usuario comun. CAPITULO 10 MONTANDO SISTEMAS DE ARCHIVOS Como vimos en capitulos anteriores, todos los archivos en un sistema Linux se acomodan en un gran arbol: la jerarquia de archivos tiene a "/" como raiz. Estos archivos pueden estar distribuidos en distintos dispositivos Antes de poder utilizar un sistema de archivos, debemos "montarlo" sobre la jerarquia de archivos. Para ello necesitaremos conocer el dispositivo a montar y tener disponible un punto de montaje (un directorio). El comando mount nos sirve para agregar un sistema de archivos a la jerarquia de archivos. De forma opuesta, el comando unmount, eliminara la asociacion creada con el comando mount. 10.1 SISTEMAS DE ARCHIVOS Y PARTICIONES Un sistema de archivos es una coleccion de archivos o directorios en algun dispositivo, con algun tipo o formato de almacenamiento. Discos de poca capacidad (por ejemplo: discos flexibles) solo poseen un sistema de archivos, en cambio los discos grandes pueden tener varias regiones (particiones), cada una con su sistema de archivos propio. Existen varias motivaciones por las cuales se trata de particionar los discos. En el comienzo de Unix, particionar los discos era necesario porque las estructuras del kernel para mantener los datos de los archivos y sistemas de archivos no podian direccionar todo el espacio de almacenamiento disponible. En los sistemas Unix modernos (incluyendo a Linux) un archivo, potencialmente, puede tener como maximo 2 Gigabytes y un sistema de archivos puede ser tan largo como un Terabyte (1.000.000 Megabytes). Ningun disco, hoy, puede alcanzar esas capacidades, por lo que la decision de particionar el disco es opcional. Una de las razones por las cuales es adecuado particionar es la modularidad. Las particiones nos permiten controlar la cantidad de espacio que asignamos a una dada actividad o tipo de uso de un sistema de archivos: es usual crear una particion aparte para el directorio /tmp otra para el directorio /home donde se encuentran los datos de los usuarios, etc. Las particiones nos otorgan la posibilidad de realizar un control mas fino sobre las tareas de backup. Los archivos de solo-lectura y los temporales en general no se tienen en cuenta al realizar un backup. Manteniendolos en particiones separadas solucionamos este problema, ya que la tarea de backup toma todo o nada de la informacion de una particion. Un caso particular de particionamiento del disco disco lo encontramos en la particion utilizada para realizar el intercambio de datos cuando no queda memoria disponible (swap). Linux trata el espacio swap como una particion separada del sistema de archivos principal. La particion de swap esta organizada de forma contigua para poder ser accedida eficientemente, por lo que requiere una estructura distinta a la utilizada en el sistema de archivos principal. Esta es la causa por la cual el espacio de intercambio se mantiene en una particion especial. 10.2 SINTAXIS DEL COMANDO MOUNT La forma estandar del comando mount es la siguiente: ==> mount -t type device dir Un comando de este tipo le comunica al kernel que monte el sistema de archivos de tipo "type" que se encuentra en el dispositivo "device" sobre el directorio "dir". Los contenidos del directorio "dir" (si existen) se vuelven invisibles, mientras el sistema de archivos se mantenga montado. La mayoria de los dispositivos se indican por un nombre de archivo, por ejemplo: /dev/hdb (la unidad IDE esclava-primaria), /dev/hda1 (la primera particion de la unidad de disco IDE master-primaria), /dev/cdrom (la unidad CD-ROM) o /dev/fd0 (la primera unidad de disco flexibles del sistema). Los programas mount y unmount mantienen una lista de los sistemas de archivos actualmente montados en el archivo /etc/mtab. Si se ejecuta el comando mount sin argumentos, la informacion contenida en ese archivo es mostrada como salida. 10.3 MONTANDO SISTEMAS DE ARCHIVOS Para poder montar distintos sistemas de archivos debemos conocer: el dispositivo donde se encuentra el sistema de archivos, el tipo del sistema de archivos y el punto de montaje. Ademas de esto debemos tener los permisos de superusuario o tener permiso de montaje de usuario ordinario (esto se explica en la seccion 10.5.3). Una vez que conocemos toda esa informacion podemos utilizar el comando mount para montar el sistema de archivos en la jerarquia. Un tema muy delicado es el de los tipos de sistemas de archivos, ya que existen una gran variedad de sistemas de archivos, cada uno con su formato propio. Linux es capaz de manipular una gran cantidad de sistemas de archivos eficientemente, pero un item que usualmente confunde a los usuarios es el hecho de que para poder montar sistemas de archivos de un determinado tipo es necesario tener compilado el kernel con el soporte para ese tipo de sistema de archivos. En un capitulo posterior veremos como hacer para agregar al kernel el soporte para distintos sistemas de archivos. Por ahora supondremos que el kernel es capaz de entender cualquier sistema de archivos disponible. 10.3.1 TIPOS DE SISTEMAS DE ARCHIVOS SISTEMAS DE ARCHIVOS FAT Si queremos accedera a archivos de particiones que contienen sistemas de archivos basados en FAT, debemos utilizar el tipo "msdos". En este caso los nombres de los archivos repetaran el formato de MS-DOS (windows 3.x), o sea nombres de 8 caracteres con extension de 3. Podemos utilizar el tipo "vfat" para montar sistemas de archivos de Windows 95/98. Los kernels de versiones 2.0.x no soportan las extensiones de Microsoft para nombres largos, por lo que veremos los archivos con el formato de nombres de MS-DOS. A estos kernels es posible aplicarles un patch, disponible gratuitamente en Internet, para poder ver los nombres largos. Por suerte los kernels 2.2.x ya tiene ese soporte integrado por lo que no debemos realizar ninguna tarea adicional. El siguiente comando montara el sistema de archivos de Windows 95 que se encuentra en la particion 2 del primer disco de la maquina, en el directorio /mnt/win95. ==> mount -t vfat /dev/hda2 /mnt/win95 Es posible montar discos flexibles de cualquiera de estos dos tipos. En general el dispositivo de la disquetera es /dev/fd0 o /dev/floppy. El siguiente comando nos muestra como podemos montar un diskette MS-DOS. ==> mount -t msdos /dev/fd0 /mnt/floppy SISTEMAS DE ARCHIVOS NTFS Anteriormente, dijimos que un sistema Linux puede coexistir con Windows NT en una maquina. Aicionalmente, podemos montar un sistema de archivos NTFS (el sistema de archivos de Windows NT) como parte de nuestra jerarquia. Para ello podemos utilizar el siguiente comando: ==> mount -t ntfs /dev/hda1 /nt NOTA: El soporte de NTFS del kernel (2.2.5) permite leer corectamente informacion, pero el soporte para escritura se encuentra en una etapa experimental y es muy peligroso activarlo, ya que podemos romper la estructura del sistema de archivos NTFS y volverlo inutilizable. Se recomienda montar estos sistemas de archivos como solo lectura. MONTANDO CD-ROM'S (SISTEMA DE ARCHIVOS ISO9600) El sistema de archivos estandar utilizado en los cd-rom que contiene datos es el ISO9600, conocido previamente como "High Sierra Filesystem" (hsfs), por lo que en otros Unix es conocido de tal forma. Como el medio de almacenamiento de cd-rom es inherentemente de solo lectura, los cd-rom seran siempre montados como solo lectura. El comando para montar un cd-rom puede ser: ==> mount -t iso9600 /dev/cdrom /mnt/cdrom 10.4 DESMONTANDO SISTEMAS DE ARCHIVOS Una vez que trabajamos con el sistema de archivos y ya no lo necesitamos podemos desmontarlo. Hay sistemas de archivos que se montan automaticamente al iniciarse y permanecen montados hasta que el sistema se baja. Mas adelante veremos como se pueden configurar los sistemas de archivos para que se comporten de esta manera. Los medios removibles (discos flexibles, cd-rom's, etc) y en ocasiones discos y particiones son montados temporariamente para leer o escribir informacion y luego son desmontados. El comando umount (unmount) nos permite desmontar un sistema de archivos. La informacion necesaria para desmontar un sistema de archivos puede ser el dispositivo o alternativamente el directorio donde esta montado. Por lo tanto podemos desmontar el cd-rom que montamos en la seccion anterior con cualquiera de los siguientes comandos: ==> umount /dev/cdrom ==> umount /mnt/cdrom Observaciones: * Un sistema de archivos no puede ser desmontado si se encuentra "ocupado", esto es, por ejemplo, cuando existen archivos del mismo que se encuentran abiertos o cuando algun proceso tiene como directorio de trabajo algun directorio del sistema de archivos. El comando fuser nos sirve para averiguar que usuarios, y que procesos, estan utilizando un determinado archivo o sistema de archivos. Adicionalmente nos permite matar estos procesos, para poder desmontar el sistema de archivos. * Cuando un sistema de archivos se encuentra montado, cierta informacion vital de la locacion de los archivos en ese sistema de archivos, se mantiene en memoria con el kernel. Si removemos el medio fisico sin realizar el umount puede suceder que la informacion que se encuentra en memoria se pierda, y el estado del sistema de archivos quede inconsistente. El proposito de la operacion umount es volcar toda la informacion del sistema de archivos, que se encuentra en memoria, al medio fisico, para que todo quede en un estado consistente. 10.5 EL ARCHIVO /etc/fstab El archivo /etc/fstab (file system table) es uno de los archivos mas importantes en lo que concierne a la administracion del sistema. El mismo contiene lineas describiendo que dispositivos son usualmente montados, con que opciones y donde se montan los mismos. Contiene, ademas, la informacion de los sistemas de archivos que deben ser montados automaticamente al iniciarse el sistema. Es tarea del adminsitrador del sistema editar y mantener este archivo. Cada sistema de archivos se escribe en una linea separada. Cada linea contiene varios campos y estos son separados por tabs o espacios. Como ejemplo, vemos un archivo fstab en la figura 10.1. # Device or NFS Mount Point Type Options /dev/hda3 / ext2 defaults 1 1 /dev/hda2 /mnt/win95 vfat defaults 0 0 /dev/hda4 swap swap defaults 0 0 /dev/fd0 /mnt/floppy vfat user,noauto 0 0 /dev/hdb /mnt/cdrom iso9600 ro,user,noauto,noide 0 0 none /proc proc defaults 0 0 /dev/hda1 /mnt/nt ntfs unmask=022,ro 0 0 Figura 10.1: Un archivo /etc/fstab con informacion de los sistemas de archivos. 10.5.1 CAMPOS DE CADA ENTRADA Device or NFS: Especifica el dispositivo donde se encuentra el sistema de archivos. En caso de ser un sistema de archivos en red (NFS), no se especifica un dispositivo, sino que debemos poner el nombre del host, del directorio que se encuentra compartido. Mount Point: Punto de montaje. Es el directorio que forma parte de la jerarquia, donde queremos montar el sistema de archivos. Notemos que estos directorios solo pueden ser especificados con rutas absolutas. En caso de ser una particion swap, el punto de montaje es nulo y se especifica con swap o none. Type: Es el tipo de sistema de archivos que se encuentra en el dispositivo. Puede ser: msdos, vfat, ext2, minix, iso9600, swap, etc. El kernel debe tener compilado el soporte para cada sistema de archivos que especificamos. Options: Este campo es una serie de opciones separadas por comas. Cada opcion tiene un comportamiento determinado y las opciones varian de acuerdo al tipo de sistema de archivos. Explicaremos las mas comunmente utilizadas: rw,ro: La primera (read/write) monta el sistema de archivos en modo lectura/escritura. La segunda ro (read-only) especifica que se montara como solo lectura. auto,noauto: Especifican si el sistema de archivos se montara al iniciar el sistema o no. user,nouser: Especifican si el sistema de archivos puede ser montado por el usuario ordinario o no. defaults: Especificamos que tome las opciones predeterminadas, entre otras: rw,auto,nouser. 10.5.2 USO DEL ARCHIVO FSTAB Este archivo, usualmente es utilizado en tres formas: 1- El comando mount -a (all), usualmente ejecutado en los scripts de inicio del sistema, monta todos los sistemas de archivos especificados en el archivo /etc/fstab, salvo las que tengan la opcion noauto. En general los medios removibles (discos flexibles, cd-rom's, discos ZIP, etc.) son especificados con la opcion noauto. 2- Cuando montamos un sistema de archivos que se encuantra especificado en el archivo /etc/fstab, basta con especificar el dispositivo a montar o el punto de montaje. El comando mount buscara el resto de la informacion en el archivo. Por ejemplo, suponiendo que nuestro archivo fstab es el de la figura 10.1 y queremos montar el cd-rom, podemos ingresar cualquiera de los siguientes comandos: ==> mount /dev/cdrom ==> mount /mnt/cdrom 3- Para definir que sistema de archivos pueden ser montados por usuarios ordinarios. Ver seccion siguiente. 10.5.3 PERMITIENDO MONTAR SISTEMAS DE ARCHIVOS A UN USUARIO ORDINARIO El comando mount debe ser utilizado solo por el administrador del sistema (root). Asi podemos tener seguridad en el sistema. No queremos que los usuarios ordinarios puedan montar y desmontar a gusto nuestros sistemas de archivos, pero seria una restriccion muy grande que los usuarios comunes no puedan montar, por ejemplo, un diskette. Para solucionar esto, sin comprometer la seguridad del sistema, el adminstrador especifica en el archivo /etc/fstab cuales son los sistemas de archivos que un usuario puede montar, utilizando la opcion user. El usuario puede, luego, montar el sistema de archivos, pero limitado al tipo, punto de montaje y opciones especificadas por el adminstrador en el archivo /etc/fstab. CAPITULO 11 EL KERNEL Y LOS MODULOS 11.1 ¿QUE ES EL KERNEL? El kernel es el organizador principal del S.O. Linux. El kernel planifica la ejecucion de los procesos y se asegura de que cada uno de ellos obtenga una tajada "justa" de tiempo de procesador; realiza todo el manejo de memoria necesario para que los procesos puedan trabajar; provee una interfaz agradable y portable para que los procesos y programas de usuario puedan interactuar con el hardware; maneja todo lo respectivo a almacenamiento de datos en discos; realiza la supervision de las transmisiones de datos entre la memoria y los dispositivos perifericos y debe servir todos los pedidos de acceso a hardware de los procesos. El kernel es la porcion del S.O. Linux que se encuentra residente en memoria. Comparado a muchos S.O. de "mainframes", el kernel de Linux provee una funcionalidad relativamente pequeña (aunque aumentando dia a dia). De todas formas, comparado a otros S.O. de microcomputadoras, como lo puede ser MS-DOS, Windows 95, etc., el kernel de Linux tiene un gran repertorio de servicios. El kernel nunca realiza alguna tarea directamente para el usuario; los servicios basicos del kernel son provistos mediante utilidades que establecen la interfase entre el usuario y el kernel. El kernel de Linux se ocupa, principalmente, de las siguientes tareas: Manejo de memoria: El subsistema de manejo de memoria es una de las partes mas importantes del S.O. Desde los primeros dias de la computacion, ha habido una necesidad de tener mas memoria de la disponible fisicamente en un sistema. Se han desarrollado varias estrategias para sobrepasar esta limitacion, y la mas exitosa de todas, sin dudas, ha sido la memoria virtual. La memoria virtual hace parecer que el sistema tiene mas memoria que la fisica usando almacenamiento en disco para ampliar la misma. La ventaja de esto es que podemos ejecutar mas procesos que los que quepan en memoria en un instante dado de manera muy eficeinte. Procesos: Un proceso es un programa de computadora en accion, una entidad dinamica, su estado cambia constantemente a medida que es ejecutado. El kernel tiene la responsabilidad de comenzar los procesos, planificar su ejecucion de manera justa, enviarlos a espacio de intercambio (swap) cuando no hay mas memoria disponible y traerlos nuevamente a memoria cuando se libere espacio para que puedan seguir ejecutandose, otorgarles recursos y servir sus pedidos de interaccion con los dispositivos. Mecanismo de intercomunicacion entre procesos: Los procesos se comunican entre si y con el kernel para coordinar y sincronizar sus actividades. Linux soporta un numero de Mecanismos de Comunicacion entre Procesos (Inter-Process Communications - IPC), las señales y las cañerias son dos de ellos. A su vez. Linux posee otro mecanismo muy potente de comunicacion entre procesos que son los sockets, este mecanismo es muy importante para la implementacion de los protocolos de red utilizados en varios sistemas. Adicionalmente, se tiene colas de mensajes, semaforos y memoria compartida. Manejadores de dispositivos (device drivers): Uno de los objetos principales de un S.O. es ocultar a los usuarios las peculiaridades especificas del hardware sobre el cual se ejecuta. El CPU (Central Processing Unit) no es el unico dispositivo de hardware "inteligente" en una computadora. Cada dispositivo posee su controladora en hardware que conoce perfectamente las caracteristicas del mismo y puede manejar su operacion satisfactoriamente. El software que maneja y controla una controladora de hardware se conoce como manejador de dispositivo (device driver). El kernel de Linux posee una gran cantidad de manejadores de dsipositivos y les encarga a ellos el tratamiento de bajo nivel de los dispositivos, pero siempre supervisando su tarea. Sistemas de archivos: La habilidad de manejar los sistemas de archivos en necesaria para poder almacenar y recuperar informacion de los medios de almacenamiento. En el pasado, cada sistema manejaba su propio sistema de archivos. Una de las potencialidades de Linux es el soporte que tiene para una gran variedad de sistemas de archivos distintos. Esta caracteristica hace de Linux un sistema altamente flexible y hace posible que coexista con otros S.O. Redes: El trabajo en red y Linux son casi sinonimos. En sentido real, Linux es un producto de Internet o la World Wide Web (WWW). Linux posee soporte nativo para varios protocolos de red, como lo son TCP/IP, AppleTalk, etc. El kernel, internemente, esta dividido en modulos que se ocupan cada uno de una tarea en especial. Una sobre-simplificacion de la estructura del kernel, se muestra en la figura 11.1. /--------------------\ | Programas de usuario |\ \--------------------/ | \---|---|---|-------/ | | | PROGRAMAS # # # # # # # # # # # # # # # #|# #|# #|# # # # # # # # # # # # # # # # # # # # # | | | KERNEL _________________________\|/_\|/_\|/___________________________________ | . Interfaz de llamdas al sistema | °°°°°°|°°°°°°°°°°°°°°°°°°°°|°°°°°°°°°°°°°°°°°°°|°°°°°°°°°°°°°°°°°|°°°°° _____\|/_____ _____\|/______ ____\|/_______ ___\|/__________ | Manejo de | | Manejador de | | Manejador de | | Servicios de | | sistemas de | | memoria | | Procesos | | red abstractos | | archivos | °°°°°°°°°°°°°° °°°°°°°°°°°°°° | (sockets) | | virtuales | °°°°°°°|°°°°°°°° °°°°°°|°°°°°° \|/ \|/ |°°°°°°°°°°°°°°°°°| |°°°°°°°°°°°°°| | Manejadores del | | Varios | |protocolo TCP/IP | | manejadores | |_________________| | de sistemas |______________ | | de archivos | °\ \|/ °°°°|°°°°°°°° | |°°°°°°°°°°°°°°°°| \|/ \|/ | Manejador de | |°°°°°°°°°°°°°| |°°°°°°°°°°°°°°°°°°°°°| | tarjeta de red | | Manejador | | Manejador de | | Ethernet | | de discos | | Unidad de diskettes | °°°°°°°|°°°°°°°° | rigidos IDE | | | | °°°°|°°°°°°°° °°°°°°°°°°|°°°°°°°°°° | | | | KERNEL # # # # #|# # # # # # # # # # # # #|# # # # # # # # # # # # # # # # # # #|# # # # # # # # # # # # | | | HARDWARE \|/ \|/ | |°°°°°°°°°°°°°°°°°°| |°°°°°°°°°°°°°°°°°°°°°| \|/ | Disco Rigido IDE | | Unidad de diskettes | |°°°°°°°°°°°°°°°°°°| |__________________| |_____________________| | Tarjeta Ethernet | °°°°°°°°°°°°°°°°°° Figura 11.1: Partes importantes del kernel. 11.2 LA INTERACCION Como dijimos anteriormente, en Linux, a diferencia de otros Unix, ni el programador ni el usuario interactuan directamente con el kernel. Existen dos mecanismos que son utilizados para interactuar con el S.O. Ambos terminan ejecutando "llamadas al sistema" (system calls) que son funciones que el kernel provee como servicios, y cada una de ellas tiene un rol predeterminado, por ejemplo: abrir un archivo, iniciar un proceso, mandar un mensaje a otro proceso, etc. Si la comunicacion usuario-sistema operativo se realizara mediante llamadas al sistema, seria todo muy engorroso y tedioso, ya que las mismas implementan funciones de muy bajo nivel. Para, por ejemplo, listar los contenidos de un directorio tendriamos que ejecutar una gran cantidad de llamadas al sistema explicitamente, lo que es inviable para un usuario. Las librerias del sistema y los programas de usuario nos brindan una interfase mas amigable para poder comunicarnos con el sistema. 11.2.1 LAS LIBRERIAS DEL SISTEMA Las librerias del sistema definen un conjunto de funciones mediante las cuales las aplicaciones pueden interactuar con el kernel y que implementan la mayoria de la funcionalidad del S.O. que no necesita los privilegios que posee el codigo del kernel. La interfaz del S.O., visibles a las aplicaciones, no es mantenida directamente por el kernel, sino que las aplicaciones hacen llamadas a las librerias del sistema que luego llaman a los servicios del S.O. si es necesario. Las librerias del sistema proveen muchos tipos de funcionalidad. En el nivel mas simple, permiten a las aplicaciones realizar pedidos de servicios al kernel. Las librerias pueden, tambien, proveer versiones mas complejas de las llamadas al sistema. Por ejemplo: las funciones de libreria del lenguaje C de manejo de archivos, estan todas implementadas en las librerias del sistema, permitiendo asi un control mas avanzado de entrada-salida de archivos que aquel que el kernel provee. Las librerias del sistema tambien contiene rutinas que no corresponden a las llamadas al sistema como lo pueden ser algoritmos de ordenamiento, funciones matematicas, etc. 11.2.2 LAS UTILIDADES DEL SISTEMA Las utilidades del sistema o programas del usuario, son programas que realizan tareas individuales y especializadas. Algunas utilidades del sistema se invocan una unica vez para inicializar y configurar algun aspecto del sistema, otras; conocidas como "demonios", se ejecutan permanentemente en "background" y manejan tareas de conexiones de red, actualizacion de "archivos de log", aceptacion de pedidos de inicio de sesion, etc. No todas las utilidades del sistema sirven para adminsitrar puntos claves del sistema. El entorno del S.O. Linux contiene un gran numero de utilidades estandar para realizar tareas simples, de todos los dias, como son listar directorios, mostrar el contenido de un archivo, etc. Por mas que estas utilidades no realicen tareas del S.O. en si son una parte muy importante del S.O. Linux. 11.3 ¿QUE SON LOS MODULOS? El kernel de Linux es un "kernel monolitico". Esto quiere decir que es un unico y largo programa donde todos los componentes funcionales del mismo tiene acceso a todas las estructuras de datos internas y sus rutinas. Esta caracteristica evidencia una falta de modularidad en el diseño del kernel. Por ejemplo, si queremos agregar un dispositivo al sistema, digamos una tarjeta de red, y el manejador de dispositivo no se encuentra compilado en el kernel, tendremos que volver a compilar "TODO" el kernel, que, como veremos mas adelante, es un proceso que consume mucho tiempo. Para evitar estas situaciones se aplica una estrategia parecida al uso de librerias compartidas por los programas de usuario en tiempo de ejecucion. Una gran cantidad de funcionalidad del kernel puede ser compilada como "modulos" y el kernel puede cargar y descargar los mismos a medida que los necesita. El kernel no necesita saber que modulos van a ser cargados, los mismos son verdaderamente componentes independientes. Los modulos se cargan bajo demanda, es decir cuando son necesitados para satisfacer el pedido del algun proceso, y se ejecutan en modo privilegiado como todo el codigo del kernel de Linux, y, como consecuencia tienen acceso completo a las capacidades del hardware de la maquina donde se ejecutan. Teoricamente, no existe ninguna restriccion en las tareas que un modulo debe realizar; tipicamente, un modulo puede implementar un manejador de dispositivo, un sistema de archivos o un protocolo de red. Existen muchas razones por las cuales es conveniente la utilizacion de modulos del kernel. El codigo de Linux es gratis, por lo tanto cualquier persona que quiera desarrollar un nuevo manejador de dispositivos puede insertarlo en el kernel, compilarlo y reconstruir el kernel, instalarlo y reiniciar el sistema con la nueva funcionalidad, pero esta tarea se puede volver altamente tediosa ya que cada vez que la persona modifique el manejador de dispositivo debera reconstruir e instalar el kernel para poder testearlo. Si se utilizan modulos, se puede compilar solamente el modulo y ser insertado y eliminado del kernel sin necesidad, siquiera, de reiniciar el sistema !! :) Finalmente, los modulos del kernel permiten al sistema Linux ser configurado con un kernel minimo estandar sin ningun manejador extra formando parte del mismo. Cualquier modulo que el usuario necesite puede ser cargado explicitamente al iniciarse el sistema o cargado automaticamente por el sistema al realizarse una demanda y descargado cuando el sistema detecte que ya no se necesita. 11.4 PERSONALIZANDO EL KERNEL Una de las caracteristicas mas importantes del S.O. Linux es su flexibilidad, ya que es posible que podamos "poner a punto" el kernel y hacerlo a la medida de nuestro sistema, algo es totalmente imposible en otros S.O. comerciales. El hecho de que el S.O. Linux se distribuye con su codigo fuente completo, hace que podamos elegir que queremos que forme parte del kernel y que queremos dejar afuera. Por ejemplo: Linux posee una gran cantidad de manejadores de dispositivos SCSI, pero si nosotros no poseemos ningun dispositivo de este tipo, entonces podemos hacer que el codigo de estos manejadores no se compile ni se incluya en la construccion del kernel, obteniendo asi un kernel mas pequeño que ocupara menos memoria. Ya que, como dijimos antes, el kernel es la parte del S.O. que se encuentra residente en memoria, es importante reducir el tamaño del mismo para liberar mas memoria para los procesos. Gracias a esta caracteristica, Linux exige mucha menor cantidad de memoria para trabajar que otros S.O. Por esto es totalmente viable configurar un kernel minimo, para trabajar, por ejemplo, en una maquina Intel 80386 con 2 Mb de memoria Ram. La personalizacion del kernel es una tarea que exige que tengamos un alto grado de conocimiento de las caracteristicas del hardware y de los servicios que necesitamos que funcionen en nuestro sistema. Un punto clave en la personalizacion del kernel es la configuracion del mismo. 11.4.1 ELIGIENDO LA CONFIGURACION ADECUADA NOTA: Suponiendo que tenemos las fuentes del kernel instaladas correctamente, las mismas se encontraran en el directorio /usr/src/linux y todos los comandos que se muestran en la discusion que sigue deben ser ejecutados en ese directorio, salvo que se indique lo contrario. En la seccion 11.5.2 se dan las instrucciones para realizar la instalacion de las fuentes del kernel, ya sea porque no se encuentran instaladas o porque queremos instalar una nueva version. Cuando configuramos el kernel, estamos eligiendo los servicios que queremos que formen parte del mismo. Existen varias formas de realizar esta configuracion. Las mismas son: make config Solo necesita que tengamos corriendo la shell bash. Ejecuta un script que nos va realizando una serie de preguntas. Se vuelve un proceso tedioso y no tenemos forma de volver atras en caso de un error. make menuconfig Es una interfaz basada en menues de configuracion. Tenemos un menu principal que se divide en sub-menus de acuerdo a una serie de items. Es mucho mas comodo de utilizar y no requiere interfaz grafica. make xconfig Solo para aquellos que puedan ejecutar el sistema X Windows. Es una interfaz basada en ventanas y botones. Es mucho mas comoda para trabajar. En base a las caracteriticas de nuestro sistema, debemos elegir una herramienta de configuracion de las tres enumeradas anteriormente y asi comenzar la configuracion. ELECCIONES DE LAS OPCIONES Sin importar de que herramienta usemos para configurar el kernel, tendremos que seleccionar una opcion para cada item del kernel. Cada item posee una opcion "y" (yes) y otra "n" (no). Algunas poseen una opcion "m" (module) que significa que se compilara ese item pero no directamente dentro del kernel, sino como un modulo independiente. A continuacion describiremos las opciones basicas a tener en cuenta al momento de compilar el kernel. Esta lista, obviamente, es no exhaustiva y no prentende ser una guia precisa de la configuracion de un kernel, sino que trata de ser una ayuda para un novato a la hora de configurar un kernel. CODE MATURITY LEVEL OPTIONS: El S.O. Linux se encuentra en constante evolucion. Por lo tanto siempre existen caracteristicas que se encuentran en un estado experimental. Lo que quiere decir que algunas cosas no se encuentran totalmente testeadas y pueden ser peligrosas para el sistema. Podemos elegir que el configurador nos deje o no agregar caracteristicas experimentales al kernel. En general, las caracteristicas experimentales son utilizadas por desarrolladores y se recomienda que los usuarios novatos las dejen de lado. PROCCESOR TYPE AND FEATURES: Aqui configuramos el tipo de procesador de nuestro sistema. Otro item importante es si deseamos emulacion de instrucciones matematicas; maquinas superiores a 486 SX poseen coprocesador matematico en hardware, por lo que si tenemos una maquinas de estas debemos contestar que no. LOADABLE MODULE SUPPORT: Aqui especificamos si queremos soporte para modulos en nuestro kernel. Si vamos a compilar algun servicio como modulo es indispensable responder "y" a la pregunta Enable lodable module support ?. GENERAL SETUP: En esta opcion elegimos parametros generales de nuestro sistema. Elegimos si queremos soporte para trabajar en red, soporte para dispositivos PCI, soporte para puertos paralelos (indispensable para instalar una impresora, o cualquier dispositivo que utilice el puerto paralelo) y otro items avanzados como lo son Advanced Power Management (para computadoras portatiles), mecanismos de comunicacion entre procesos y soporte para distintos formatos de archivos ejecutables. PLUG AND PLAY SUPPORT: Si tenemos algun dispositivo periferico que sea compatible con la norma Plug and Play, debemos contestar "y" al item Plug and Play support. BLOCK DEVICES: En esta seccion elegimos el tipo de los dispositivos de almacenamiento de archivos que vamos a utilizar, como por ejemplo, si queremos soporte para unidad de diskettes, para discos rigidos IDE, CD-ROM's IDE/ATAPI, dispositivos de cinta magnetica, soporte para discos ULTRA-DMA, y otros dispositivos de bloque avanzados. Si estamos desorientados de que elegir se recomienda soporte para discos IDE, diskettera normal, CD-ROM's ATAPI y dejar el resto de las opciones predeterminadas. NETWORKING OPTIONS: Editar solo si necesitamos soporte para trabajar en red. Esta seccion esta llena de opciones avanzadas que en general, solo son seteadas por un adminsitrador de red. Sin embargo, podemos optar en algunos items. Si queremos soporte para trabajo en red, debemos asegurarnos de que el item TCP/IP Networking este seleccionado. El resto de las opciones podemos dejarlas en su estado predeterminado, a no ser que sepamos lo que estamos haciendo !!! Si nececitamos conectividad con maquinas corriendo Novell/Netware debemos seleccionar el soporte para protocolo IPX. SCSI SUPPORT: Solo si tenemos algun dispositivo SCSI para configurar. En esta seccion hay una gran variedad de dispositivos para elegir. Debemos averiguar que marca y modelo es el nuestro y que caracteristicas posee para seleccionar el adecuado. Podemos elegir que el manejador de dispositivos se compile como modulo si no sera frecuentemente utilizado. NETWORK DEVICE SUPPORT: En esta seccion seleccionamos que tipo de interfases de red instalaremos en nuestro sistema. Hay soporte para una gran cantidad de tarjetas Ethernet, tanto ISA, VLB o PCI. Tenemos soporte para los dispositivos Frame Relay, FDDI, etc. Si vamos a conectar dos maquinas mediante un cable debemos elegir PLIP (cable paralelo) o SLIP (cable serie). Para este ultimo tambien podemos elegir soporte para PPP (Point to Point Protocol), el cual es indispensable si queremos realizar conexiones a Internet mediante un ISP (Internet Service Provider) Proveedor de Servicios Internet. CHARACTER DEVICES: Aqui seleccionamos que dispositivos de caracter queremos utilizar. Se recomienda elegir consolas virtuales, soporte para puertos serie estandar, soporte para impresora en puerto paralelo, soporte para mouse (no serial) en caso de tener un mouse PS/2, Logitech, etc. FILESYSTEMS: Esta es una de las secciones mas importantes de la configuracion del kernel. Aqui elegimos que tipos de sistemas de archivos podran ser accedidos mediante nuestro kernel. Es indispensable el soporte para ext2fs que es el sistema de archivos de Linux. Se deben elegir FAT y VFAT para poder leer y escribir sistemas de archivos de MS-DOS y Windows 95 respectivamente, el sistema de archivos ISO9660 para leer CD-ROM's de datos, las extensiones Joliet para CD-ROM's de Microsoft nos permiten entender el formato de nombres largos de los CD-ROM's que tienen este formato; el soport para NTFS nos permite leer informacion de los sistemas de archivos de Windows NT; los demas son sistemas de archivos raramente utilizados y, es preferible desactivarlos, si no tenemos la necesidad de utilizarlos. El codigo para poder entender los sistemas de archivos adicionales se suele compilar como modulos ya que no son utilizados constantemente y podemos aprovechar para poder reducir el tamaño del kernel. NATIVE LANGUAGE SUPPORT: En esta seccion podemos elegir que tipo de lenguaje nativo queremos utilizar. En general se seleccionan las opciones Codepage 437, Codepage 850 y NLS ISO-8859-1 (Latin 1) para nuestro pais y paises con lenguajes similares. Los demas codigos de paginas y de caracteres se utilizan para otros lenguajes: hebreo, turco, griego, arabe, etc. SOUND: En esta seccion seleccionamos si queremos o no soporte para tarjeta de sonido y en caso de ser afirmativa la respuesta elegimos para que tipo de tarjeta queremos tener soporte. Las tarjetas mas conocidas y utilizadas son las tarjetas Sound Blaster, Pro Audio Spectrum, Microsoft Sound System, Ensoniq Soundscape, etc. Es necesario aclarar que el driver de Sound Blaster es solo para tarjetas que son 100% compatibles con Sound Blaster, que no es el caso de la mayoria de las tarjetas de sonido genericas que se venden para computadoras personales. Existen muchisimos modelos que claman ser compatibles Sound Blaster, pero nos engañan, ya que la compatibilidad la emulan por software cargando un manejador de dispositivo residente (que solo funciona con MS-DOS o Windows) que se comunica con la tarjeta. En Linux, obviamente no podremos cargar este manejador y tampoco podremos hacer funcionar la tarjeta con el manejador de Sound Blaster. Sin embargo, algunas de estas tarjetas son compatibles con MAD16 y funcionan perfectamente con este manejador. Encontramos, tambien soporte para muchas otras tarjetas menos conocidas que las nombradas anteriormente, y ademas soporte para poder trabajar con MIDI. Se recomienda compilar los manejadores que necesitemos como modulos ya que resulta muy practica y facil la instalacion y la configuracion posterior de la tarjeta de sonido. NOTA: Cada item posee un cuadro de ayuda donde se explica exactamente para que sirve. En caso de desorientacion o desconociemiento se recomienda LEER la explicacion que alli se encuentra. En caso de dudas, dejar la opcion predeterminada. CODIGO INTEGRADO EN EL KERNEL VS MODULOS Cuando debemos decidir si un item debe ser compilado como parte del kernel o como modulo independiente debemos tener en cuenta los siguientes puntos: * Si el servicio va a ser utilizado infrecuentemente y su eficiencia no es critica para el funcionamiento del sistema, entonces nos conviene que se instale como modulo, ya que no ocupara memoria mientras no se necesite. * Hay servicios que es necesario que se encuentren instalados al iniciarse el sistema. En estos casos es conveniente que se instalen como parte del kernel, ya que los modulos se suelen cargar despues de que el sistema se inicio y consecuentemente luego de que fuera necesitado. * Cuando un servicio se compila como modulo tenemos la ventaja de que no ocupara espacio innecesario, pero tenemos la desventaja de que cuando queremos utilizar el modulo tenemos una sobrecarga. Cuando queremos utilizar un servicio que ha sido compilado como modulo, debemos cargarlo explicitamente o el mismo puede ser configurado para ser cargado automaticamente, pero de todas formas, el kernel debe realizar una serie de operaciones para vincular los modulos dinamicamente y cargarlos para que puedan ser utilizados. Estas operaciones no son necesarias cuando compilamos el servicio como parte del kernel. * Si el tamaño del kernel nos condiciona rigidamente, entonces debemos utilizar los modulos tanto como sea posible. Es normal configurar un kernel que haga uso intensivo de modulos y lograr que el tamaño del mismo ronde los 400 K. 11.4.2. COMPILANDO EL KERNEL Luego de que hayamos configurado nuestro kernel pasamos a la etapa donde construimos el mismo. Esta etapa es un proceso facil de realizar (desde el punto de vista del usuario), pero, en contrapartida, nos lleva mucho tiempo. Este proceso realiza la compilacion de todos los elementos seleccionados en la etapa de configuracion. La compilacion es un proceso que realiza un uso intensivo del procesador y el tiempo que tardaremos en compilar el kernel depende exclusivamente de la velocidad y potencia de nuestro procesador y de la cantidad de memoria del sistema. Dependiendo de nuestra maquina podemos tardar desde 15 minutos hasta 1 hora o mas todavia. NOTA: Si todavia no le tomaron el gustito a los modulos, prueben de olvidarse de compilar algo como parte del kernel y luego tener que volver a compilarlo completamente solo para agregar ese servicio. CALCULANDO LAS DEPENDENCIAS Las fuentes del kernel estan formadas por un gran numero de archivos y componentes que se encuentran vinculados por relaciones de dependencia. Estas relaciones de dependencia entre los objetos del kernel deben ser calculadas de acuerdo a la configuracion del kernel que hayamos elegido. El siguiente comando calculara las dependencias: ==> make dep LIMPIANDO LO VIEJO Si no es la primera vez que utilizamos las fuentes del kernel para compilarlo, debemos tener en cuenta que existen archivos compilados del kernel anterior y es indispensable eliminarlos antes de comenzar el proceso de construccion. El siguiente comando se ocupara de limpiar todos los archivos innecesarios: ==> make clean CONSTRUYENDO EL KERNEL Para compilar los kernels 2.2.x debemos asegurarnos de tener instalada la version 2.7.2 del compilador de C/C++ gcc, o alguna mas nueva. Para averiguar esto podemos ejecutar el siguiente comando: ==> gcc --version Para construir el kernel debemos ejecutar ==> make zImage Este es proceso que tarda mas tiempo y genera una imagen comprimida del kernel. Una vez que este proceso termina el kernel se encuentra listo para ser instalado. En caso de haber seleccionado demasiados servicios para que sean compilados como parte del kernel, el proceso de construccion se abortara quejandose de esto. Para contrarrestar esto podemos probar con el siguiente comando: ==> make bzImage Si el proceso se sigue quejando, entonces debemos eleminar alguno de los servicios elegidos o seleccionarlos para que se compilen como modulos, y luego volver a calcular las dependencias, limpiar los archivos y comenzar de nuevo la construccion. 11.4.3 COMPILANDO LOS MODULOS Si en la etapa de configuracion seleccionamos algun item para que sea compilado como modulo, entonces debemos ejecutar el siguiente comando: ==> make modules Este comando realiza la compilacion de los modulos que seleccionamos en la etapa de configuracion. 11.4.4 INSTALANDO LOS MODULOS En lo que respecta a los modulos, nos resta instalarlos. Los modulos son normalmente instalados en el directorio /lib/modules. En este directorio encontraremos un subdirectorio por cada version kernel para la que hayamos instalado modulos anteriormente. Ejecutando el siguiente comando, instalaremos los modulos en ese directorio bajo el subdirectorio correspondiente a la version del kernel que estemos ejecutando. ==> make modules_install 11.4.5 INSTALANDO EL NUEVO KERNEL Una vez que tenemos nuestro kernel compilado debemos instalarlo para que el sistema comience a trabajar con el mismo. La mayoria de los usuarios de Linux utilizan el programa LILO (LInux LOader) para instalar el kernel. LILO es un programa facil de utilizar, aunque el archivo de configuracion /etc/lilo.conf suele confundir un poco a los usuarios novatos. El archivo de configuracion debe parecerse al que se muestra en la figura 11.2. # cat /etc/lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b image=/boot/vmlinuz label=linux root=/dev/hda1 read-only Figura 11.2: Un archivo de configuracion del programa LILO. Tres puntos importantes a tener en cuenta: 1. La linea image=...: Aqui le indicamos a LILO la ruta donde se encuentra la imagen comprimida del kernel. 2. La linea label=...: Esta opcion le indica al programa que estiqueta usar para ese kernel. La etiqueta es util en caso de tener mas de un S.O. en la misma maquina, ya que LILO nos permite iniciar cualquiera de ellos eligiendo la respectiva etiqueta. 3. La linea root=...: Con esta opcion le indicamos a LILO cual es la particion raiz de nuestro sistema. Debemos configurar estas opciones en el archivo de configuraciones, guardarlo y luego copiar la imagen comprimida del kernel que se encuentra en el dirctorio /usr/src/linux/arch/i386/boot bajo el nombre zImage o bzImage, segun hayamos elegido al construirlo, a el lugar que le fue indicado a LILO en el archivo de configuracion. Luego debemos ejecutar lilo (o /sbin/lilo si la shell no lo encuentra). Esto hara que LILO lea el archivo de configuracion e instale el nuevo kernel bajo las opciones especificadas. Para poder trabajar con el nuevo kernel, resta reiniciar el sistema. La instalacion de un nuevo kernel es uno de los unicos motivos por los cuales es necesario reiniciar el sistema, ya que no nos queda otra opcion. En general podremos reiniciar el sistema ejecutando el comando: ==> reboot o equivalentamente ==> init 6 11.4.6 CARGANDO Y DESCARGANDO LOS MODULOS Una vez que iniciamos el sistema con el nuevo kernel y verificamos que todo funciona correctamente, podemos comenzar a probar los modulos seleccionados y compilados anteriormente. Los comandos referidos a la manipulacion de modulos son los siguientes: * lsmod (list modules): Muestra una lista de los modulos cargados actualmente. * isnmod (insert module): Carga un modulo en memoria como parte del kernel. * rmmod (remove module): Elimina un modulo cargado en memoria. Inicialmente, no se encuentra cargado ningun modulo en memoria. Por lo tanto, al ejecutar lsmod obtendremos una lista vacia: # lsmod Module Size Used by En la figura 11.3 se muestra el contenido de los directorios que contienen los modulos en un sistema. Ilustraremos la carga y descarga de los modulos con el modulo minix que nos permite montar sistemas de archivos del S.O. Minix. Veamos que pasa si queremos montar un diskette con sistema de archivo minix sin tener el modulo cargado: # mount -t minix /dev/fd0 /mnt/floppy mount: fs type minix not supported by kernel El comando mount nos indica que hay un error, ya que el sistema de archivos Minix no se encuentra soportado por el kernel. Para poder montar el sistema de archivos de Minix debemos cargar el modulo minix. Para cargar el mismo ejecutamos el comando insmod y luego verifiamos que haya sido cargado: # insmod minix # lsmod Module Size Used by minix 22568 0 (unused) Una vez que tenemos el modulo caragado como parte del kernel podemos montar tranquilamente el diskette. Notemos que el modulo esta cargado pero nadie lo esta utilizando. Veamos como montar el diskette: # mount -t minix /dev/fd0 /mnt/floppy lsmod Module Size Used by minix 22568 1 Como vemos, ahora el modulo esta siendo usado por 1 servicio ya que al montar el diskette el modulo se utiliza hasta que el mismo se desmonte. Una vez que ya no necesitamos utilizar el diskette lo desmontamos y luego verificamos que el modulo ya no esta siendo utilizado: # rmmod minix # lsmod Module Size Used by 11.4.7 LAS DEPENDENCIAS ENTRE LOS MODULOS Asi como los distintos componentes que forman parte del kernel poseen dependencias, los modulos tambien se vinculan por relaciones de dependencia. En el caso del ejemplo anterior del modulo minix vimos que el mismo no depende de ningun otro modulo, por lo que podemos cargarlo directamente y comenzar a utilizarlo. No todos los modulos poseen esta caracteristica y, como consecuencia, puede no ser tan facil cargarlos. # pwd /lib/modules/2.2.5 #ls * modules.dep block: loop.o fs: minix.o msdos.o misc: ad1848.o af_spx.o ipx.o mad16.o sb.o uart401.o net: 8390.o bsd_comp.o dummy.o ne.o ppp_deflate.o Figura 11.3: Una serie de modulos instalados Suponiendo el mismo conjunto de modulos de la figura 11.3 queremos instalar otro modulo. Uno de los items que seleccionamos para que sea compilado como modulo en la etapa de configuracion es el manejador de dispositivo de una placa de red compatible NE2000. Una vez que examinamos el subdirectorio net encontramos el modulo ne y lo instalamos con el comando insmod de la siguiente forma: # insmod ne /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_open /lib/modules/2.2.5/net/ne.o: unresolved symbol ethdev_init /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_interrupt /lib/modules/2.2.5/net/ne.o: unresolved symbol NS8390_init /lib/modules/2.2.5/net/ne.o: unresolved symbol ei_close ¿ Que paso ? La respuesta es la siguiente: el modulo no puede resolver ciertos simbolos. Esto quiere decir que depende de algun otro modulo. Por lo tanto antes de cargar el modulo "ne" debemos cargar los modulos de los cuales depende. Pero... ¿ cuales son los modulos de los que depende ?. En este caso, una detallada examinacion de los mensajes de error del comando insmod pueden hacernos sospechar que el numero 8390 que por ahi anda dando vueltas implica que el modulo 8390, que se encuentra en el mismo directorio que ne, es necesario para poder cargarlo. Por lo tanto, probamos: # insmod 8390 # insmod ne Efectivamente esto funciono, y lo podemos verificar con el comando lsmod. En la tabla que nos muestra este comando vemos que el modulo 8390 es utilizado por el modulo ne. # lsmod Module Size Used by ne 5980 1 8390 5940 0 [ne] Esta aproximacion, claramente, no es practica. Un modulo puede depender de varios y podemos tener situaciones donde las dependencias entre modulos son transitivas, es decir, que un modulo M3 depende de otro modulo M2 y este, a su vez, depende de otro modulo M1. Asi vemos que las cosas se complican; si no contamos con una herramienta que realice automaticamente estas tareas de resolusion de dependencias, la carga y descarga de modulos se vuelve una tarea bastante complicada. Por suerte, existen dos utilidades que nos resuelven estos problemas ideseables. 11.4.8 UNA CARGA MAS INTELIGENTE El programa depmod es una utilidad que sirve para calcular automaticamente las dependencias entre los modulos. Puede ser utilizado de varias formas, pero la mas comun de ellas es la siguiente: ==> depmod -a Este comando ejecutara depmod con la opcion -a (all) y asi calculara todas las dependencias entre los modulos. Este comando es ejecutado, usualmente, como parte del inicio del sistema. Una vez que se calculan las dependencias entre los modulos, podemos cargar los modulos sin saber que dependencias tienen, ya que el sistema se ocupara de cargar los modulos necesarios (de acuerdo a las dependencias) de forma totalmente transparente al usuario. Para poder realizar la carga de los modulos de esta forma, debemos utilizar el comando modprobe. Veamos un ejemplo de esta estrategia: Queremos cargar el modulo mad16, que sabemos es el manejador de dispositivo de un tarjeta de sonido. Supongamos que la misma esta configurada para trabajar en el puerto 0x530, utiliza la interrupcion (IRQ) 10 y el acceso directo a memoria (DMA) 1. Por supuesto, no tenemos las mas minima idea de que modulos es necesario cargar para que mad16 funcione correctamente. No hay problema, ejecutando los siguientes comandos todo se hara de forma automatica y transparente. # lsmod Module Size Used by # depmod -a # modprobe mad16 io=0x530 irq=10 dma=1 # lsmod Module Size Used by mad16 6548 0 (unused) uart401 5572 0 [mad16] ad1848 15088 0 [mad16] Como vemos, al comenzar no tenemos ningun modulo cargado. Antes de cargar el modulo mad16 realizamos el calculo de las relaciones de dependecia entre los modulos. Luego cargamos el modulo mad16. Notemos que este modulo (como muchos de los que implementan manejadores de dispositivos de placas de sonido) necesitan parametros adicionales para poder ser cargados. En este caso son necesarios el puerto de entrada/salida, la interrupcion y el acceso directo a memoria que utiliza la misma. Luego de cargar el modulo, realizamos un listado de los modulos que se encuentran cargados y descubrimos que el modulo mad16 posee dos dependencias: uart401 y ad1848. Estos modulos fueron cargados automaticamente para poder cargar el modulo mad16. Para descargar el modulo y todas sus dependencias (que no se encuentren en uso) podamos ejecutar modprobe -r: # modprobe -r mad16 # lsmod Module Size Used by 11.5 ACTUALIZANDO NUESTRO KERNEL Una de las grandes ventajas del S.O. Linux es su desarrollo. El kernel del sistema se encuentra en constante actualizacion y desarrollo, a tal punto que podemos disponer de una nueva version del mismo cada, mas o menos, una o dos semanas. Comparemos esto con la frecuencia de actualizacion de otros S.O., si es que tiene actualizacion :) Es importante actualizar nuestro kernel ya que a medida que los kernels evolucionan se corrigen muchos "bugs", son capaces de trabajar con nuevos dispositivos, se agrega soporte para otros sistemas de archivos, pueden mejorar el manejo de puntos claves (memoria, procesos, etc.), pueden ser mas rapidos y mas estables, etc. 11.5.1 OBTENIENDO EL KERNEL Existen varias formas de obtener las fuentes del kernel. Una de ellas es mediante Internet ya que existen varios sitios donde se publican las mismas. Ver al apendice A para obtener las direcciones de los sitios. Existen, tambien varias distribuciones en CD-ROM's que traen las fuentes de los kernels. Un punto importante a tener en cuenta al momento de conseguir las fuentes del kernel es la version de las mismas. VERSIONES DEL KERNEL Las fuentes del kernel poseen un sistema de numeracion muy simple. Cualquier version par de las fuentes representa un kernel estable, por ejemplo 2.0 o 2.2. Una version impar representa un kernel en estado experimental o en desarrollo (las famosas versiones "beta"), por ejemplo 2.1. A su vez sobre cada version se publican varios "releases", es decir subversiones de los mismos. Asi podemos tener versiones como 2.0.32, 2.1.125, 2.2.5, etc. En general, existen un gran numero de releases betas antes de publicar la siguiente version estable. Por ejemplo, antes de que se publicara la version 2.2 del kernel se realizaron mas de 130 releases del kernel 2.1. Podemos ver el grado de testeo y correccion de los kernels antes de ser denominados "estables" y por lo tanto ser considerados confiables y aceptables. La politica de los desarrolladores de Linux es testear intensivamente los kernels antes de publicar una nueva version estable, por lo que podemos estar seguros de que si la version es par es "realmente estable". Comparemos esto con las estrategias de desarrollo de otros S.O. 11.5.2 INSTALANDO LAS FUENTES DEL KERNEL Las fuentes del kernel son provistas en un archivo agrupado y comprimido con el formato tar y gzip o alternativamente bzip2. Si la version es, digamos, 2.2.1, entonces el archivo se llamara linux-2.2.1.tar.gz o linux-2.2.1.tar.bz2. Estas fuentes deben ser instaladas dentro del directorio /usr/src. Como es posible que tengamos en ese mismo diretorio las fuentes de kernels de versiones anteriores, es recomendable realizar un par de cosas antes de descomprimir las nuevas fuentes. Supongamos que dentro del directorio /usr/src tenemos instaladas las fuentes del kernel 2.1.125 y queremos instalar las fuentes del nuevo kernel 2.2.5. El contenido del directorio /usr/src es el siguiente: # pwd /usr/src # ls -l lrwxrwxrwx 1 root root 11 May 5 23:58 linux -> linux-2.1.125 drwxr-xr-x 15 root root 1024 May 5 23:50 linux-2.1.125 -rw-r--r-- 1 root root 13721493 May 9 22:17 linux-2.2.5.tar.gz Las fuentes del kernel actuales deben encontrarse en el directorio linux. Es conveniente que se realice un directorio para cada version de las fuentes y crear un link simbolico linux que apunte al directorio respectivo. En este caso el link apunta al directorio linux-2.1.125 ya que es la unica version que tenemos. Si descomprimimos las nuevas fuentes en este momento tendremos un problema: En general, estos archivos comprimidos viene armados para que al descomprimirlos se instalen en el directorio linux, pero como nosotros tenemos el link simbolico apuntando al directorio linux-2.1.125, al descomprimir las fuentes, estas se instalaran en este ultimo directorio y sobrescribiran las fuentes del kernel 2.1.125. Para evitar esto, debemos eliminar el link simbolico antes de descomprimir las nuevas fuentes. En la figura 11.4 vemos como hacer para instalar correctamente las fuentes del kernel y conservar las anteriores. # rm linux # ls -l drwxr-xr-x 15 root root 1024 May 5 23:50 linux-2.1.125 -rw-r--r-- 1 root root 13721493 May 9 22:17 linux-2.2.5.tar.gz # tar -zxvf linux-2.2.5.tar.gz # ls -l drwxr-xr-x 15 root root 1024 May 9 22:30 linux-2.1.125 drwxr-xr-x 15 root root 1024 May 5 23:50 linux-2.2.5 -rw-r--r-- 1 root root 13721493 May 9 22:17 linux-2.2.5.tar.gz # mv linux linux-2.2.5 # ls -l drwxr-xr-x 15 root root 1024 May 5 23:50 linux-2.1.125 drwxr-xr-x 15 root root 1024 May 9 22:32 linux-2.2.5 -rw-r--r-- 1 root root 13721493 May 9 22:17 linux-2.2.5.tar.gz # ln -s linux-2.2.5 linux # ls -l lrwxrwxrwx 1 root root 9 May 9 23:33 linux -> linux-2.2.5 drwxr-xr-x 15 root root 1024 May 5 23:50 linux-2.1.125 drwxr-xr-x 15 root root 1024 May 9 22:32 linux-2.2.5 -rw-r--r-- 1 root root 13721493 May 9 22:17 linux-2.2.5.tar.gz Figura 11.4: Descomprimiendo las fuentes del nuevo kernel. Para completar la instalacion del nuevo kernel debemos realizar un paso adicional para asegurarnos de que no tenemos ningun vinculo incorrecto. Debemos cambiar el directorio /usr/src/linux y ejecutar el siguiente comando: ==> make mrproper Ahora si tenemos las fuentes del kernel correctamente instaladas. CAPITULO 12 ASPECTOS AVANZADOS DE LA SHELL Ya hemos discutido la utilizacion de la shell en el capitulo 6 y la hemos utilizado interactivamente de manera intensiva. Los usuarios utilizan la shell, en su gran mayoria, interactivamente de las siguientes formas: * Ingresando comandos simples (ls). * Utilizando las facilidades de generacion de nombres de archivos (ls *.tex). * Especificando redireccion de la entrada y/o salida (ls > iofile). * Construyendo cañerias (ls | wc -l). Estas tecnicas son potentes y extremadamente utiles, pero solo son una pequeña parte de las capacidades de la shell. Elegir una shell interactiva es en realidad una cuestion de gusto. Muchos usuarios prefieren la shell "C" para uso interactivo. La misma fue la primera shell que implemento una lista historica de los comandos para poder ser reutilizados facilmente sin tener que tipearlos nuevamente. Tambien fue la primer shell que implemeto el control de procesos, es decir, como poder manipular procesos que se ejecutan en background. Elegir una shell para escribir un scripts es una tarea mucho mas facil. Si las necesidades del usuario son modestas y se conocen las capacidades de la shell de "C", entonces es conveniente utilizarla, pero la mayoria de los usuarios, hoy, prefieren utilizar la shell de "Bourne" para escribir scripts. La shell de "Bourne" (sh) es la unica shell que se encuentra en todos los sistemas Unix, incluido Linux, que ademas posee la shell "Bourne Again" (bash) que es totalmente compatible con la shell de Bourne y agrega caracteristicas importantes y utiles de la shell de "Korn" (ksh) y la shell de "C" (csh). La shell de Bourne Again es la shell predeterminada de Linux. La shell de "Bourne" fue diseñada desde un comienzo como un lenguaje de programacion, lo que explica las capacidades de la misma como lenguaje de programacion lo que la hace la shell mas ampliamente aceptada como lenguaje de programacion de scripts. Este capitulo no intenta desarrollar completamente las capacidades de la shell de Bourne como lenguaje de programacion, sino que pretende ser una introduccion a la programacion de scripts, tarea no indispensable para un usuario ordinario, pero que puede hacer que muchas de las tareas a realizar en el sistema sean mas faciles y practicas. Analizaremos tambien los aspectos de la shell que forman el entorno del usuario, como lo son: variables de entorno, variables de shell, el camino de busqueda (path), etc. 12.1 PROGRAMAS DE SHELL (SRIPTS) Un script es cualquier comando o secuencia de comandos de Linux almacenados en un archivo de texto. Usualmente el termino de script se utiliza cuando el archivo solo contiene una simple secuencia de comandos; el termino programa de shell identifica un archivo que contiene una estructura de comandos mas compleja. Un usuario puede ejecutar un programa de shell o un script directamente ingresando el nombre del archivo en la linea de comandos. Los programas de la shell se tratan de la misma forma que cualquier otro ejecutable. Por supuesto, debemos tener permiso de ejecucion sobre el archivo que contiene el script y ademas la shell debe poder encontrar el archivo dentro del camino de busqueda (path). 12.2 VARIABLES DE LA SHELL Como en cualquier lenguaje de programacion, las variables de la shell se utilizan para almacenar valores para luego poder ser utilizados. El termino variable sugiere que el valor de la misma puede cambiar durante el flujo de ejecucion. Las variables de la shell solo pueden guardar cadenas de texto (strings). Los numeros, en las variables de la shell, son almacenados como cadenas de caracteres. Para asignar valores a las variables utilizamos el comando de asignacion (=). El valor almacenado en una variable se denota como $var, donde var es la variable en cuestion. Siempre que usemos el nombre de la variable, este denotara el nombre de la variable y no su valor, a diferencia de la mayoria de los lenguajes de programacion. Veamos un ejemplo de esto en la figura 12.1. # Boca = campeon bash: Boca: command not found # River=campeon # echo River River # echo $River campeon # echo $Boca # River=Capo # echo $River Capo Figura 12.1: Seteando y consultando variables de la shell. En esta figura vemos varias cosas interesantes ( Je, je ademas de que la shell no conoce a Boca y si a River :): * Debemos ser cuidadosos al utilizar el comando de asignacion, ya que la shell nos obliga a ponerlo inmediatamente depues del nombre de la variable, ya que sino la primer palabra es interpretada como un comando y, cuando la shell intenta ejecutarlo no lo encuentra. * El comando echo visualiza una linea de texto en la salida estandar. Cuando ejecutamos el primer comando echo, vemos que la linea de texto ingresada ("River") es visualizada en pantalla. Cuando utilizamos el simbolo $ antes del nombre de la variable River, la shell reemplaza $River por el valor de la variable, es decir la cadena "campeon". Esta cadena es la que es pasada como argumento al comando y el mismo la visualiza en pantalla. * Es muy importante comprender que la manipulacion de las vatiables y sus valores la realiza la shell y no el comando echo. * Una variable pierde su valor anterior si es asignada de nuevo. * Una variable que no ha sido asignada tiene la cadena nula o vacia. Cuando queremos asignar a una variable una cadena de caracteres que contiene espacios debemos encerrar toda la cadena entre comillas. Vemos un ejemplo en la figura 12.2. # Boca=No existe bash: existe: command not found # Boca="No existe" # echo $Boca No existe # Figura 12.2: Utilizando comillas para asignar cadenas a las variables. 12.2.1 EXPORTANDO VARIABLES DE LA SHELL Las variables de la shell que creamos son locales a la shell activa a no ser que sean exportadas explicitamente. El comando export nos sirve para exportar variables. Con el siguiente comando podemos exportar la variable var: ==> export var Si ejecutamos export sin argumentos obtendremos una lista de las variables exportadas. Este comando solo lista las variables exportadas de la shell actual. Una variable exportada permanece en ese estado hasta que la shell en la que fue marcada para exportacion sea terminada. 12.2.2 VARIABLES AUTOMATICAS DE LA SHELL Las siguientes variables son seteadas automaticamente por la shell: $? Contiene el valor de salida retornado por el ultimo comando ejecutado. $$ Contiene el PID de la shell actual. $! Contiene el PID del ultimo proceso que se invoco en background. $# Contiene el numero de parametros que fueron pasados a la shell. $* Contiene la lista de argumentos actual. Estas variables pueden ser utilizadas como todas las demas. Por ejemplo podemos utilizar la variable $$ para ver el numero de proceso de la shell actual. # ps PID TTY STAT TIME COMMAND 443 1 S 0:00 /bin/login -- tony 451 1 S 0:00 -bash 462 1 S 0:00 sh /usr/X11R6/bin/startx 463 1 S 0:00 xinit /home/tony/.xinitrc -- 467 1 S 0:02 wmaker 490 1 S 0:57 emacs -fn 9x15 541 p7 S 0:00 /bin/bash 594 p7 R 0:00 ps # echo $$ 541 12.2.3 VARIABLES ESTANDAR DE LA SHELL El significado de una gran cantidad de variables ha sido estandarizado con el paso del tiempo. Esta variables son como todas las demas, pero tiene un significado convencional que debemos entender. Estas variables son llamdas usualmente variables de entorno. Podemos producir un listado de las variables actualmente asignadas con el comando set. Veamos un listado de ejemplo en la figura 12.3. # set BASH=/bin/bash BASH_VERSION=1.14.7(1) COLUMNS=104 DISPLAY=:0 ENV=/home/tony/.bashrc EUID=500 HISTFILE=/home/tony/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 HOME=/home/tony HOSTNAME=tonyx HOSTTYPE=i386 IFS= LD_LIBRARY_PATH=/usr/local/qt/lib LINES=24 LOGNAME=tony MAIL=/var/spool/mail/tony MAILCHECK=60 MANPATH=/usr/local/qt/man:/usr/man:/usr/local/man OLDPWD=/home/tony/docs/linux OSTYPE=Linux PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:. PPID=490 PS1=# PS2=> PS4=+ PWD=/home/tony/docs/linux SHELL=/bin/bash TERM=dumb UID=500 USER=tony USERNAME=tony Figura 12.3: Listado de variables de entorno. La mayoria de estas variables se crean durante el proceso de inicio de sesion (login) y son una parte muy importante de la funcionalidad del sistema. Algunas de las variables que forman parte de la lista de la figura 12.3 son utilizadas por uno o dos programas particulares y no son de interes general. Vamos a detallar el significdo de las variables que tienen una importancia vital para nuestro dialogo con Linux y para que el trabajo de los programas y utilidades se desarrolle exitosamente. $HOME Contiene el nombre del directorio home del usuario. Se setea al iniciarse la sesion y es utilizada por los programas que necesitan acceder a archivos almacenados en nuestra parte del sistema de archivos, por ejemplo, los programas que lee o escriben los archivos de configuracion e inicializacion llamados dot files, ya que comienzan con un punto y son ocultos (.Xdefaults .bash.profile .xinitrc, etc.). $PATH Contiene la cadena de busqueda que la shell utiliza cuando busca los comandos a ejecutar. $IFS Contiene los separadores internos entre campos (Internal Field Separators), que son usualmente espacios, tabulador y nueva linea. Los separadores de campos separan las palabras de los comandos. La linea en blanco que se encuentra despues de IFS es parte del valor de la variable. $LOGNAME $USER $USERNAME Es el nombre de usuario (login). Se usan alternativamente. $MAIL o $MAILPATH Se utilizan si queremos ser notificados de la llegada de nuevo correo electronico. $MAILCHECK Es el intervalo, en segundos, entre chequeos de nuevo mail. $SHELL Es el nombre de la shell de inicio. Es utilizada por programas que invocan a shells interactivas para utilizar sin necesidad de salir del programa. Un ejemplo es emacs. $PS1 Es la cadena que la shell utiliza como prompt primario. $PS2 Es la cadena utilizada como prompt secundario. Es utilizado cuando la shell detecta que los comandos estan obviamente incompletos y nos piden informacion adicional. Usualmente es un simbolo >. $TERM Contiene el modelo de terminal utilizado. Algunos comandos necesitan conocer el tipo de terminal para poder generar una salida correcta. 12.3 EL CAMINO DE BUSQUEDA (PATH) Cuando ingresamos un comando, la primera cosa que la shell hace es buscar el programa asociado. Pero, ¿Donde es que lo busca? Muchas instalaciones de Linux contiene cientos de directorios y consumiria mucho tiempo buscar en todos los directorios. Para concentrar la busqueda, la shell del sistema mantiene un camino de busqueda (PATH), tambien conocida como cadena de busqueda. El PATH es una lista de directorios donde la shell busca los comandos ingresados. Los PATH's en general contiene en directorio /bin, el directorio /usr/bin, etc., ya que en estos directorios es donde se encuentran los comandos y utilidades estandar. El PATH puede ser modificado para que la shell busque en directorios adicionales, cuando ingresamos algun comando. Si la shell no encuentra en ninguno de los directorios el comando especificado, entonces muestra un mensaje diciendonos que no lo pudo localizar. Podemos consultar cual es la lista de directorios que forman parte del path ejecutando: ==> echo $PATH Historicamente, se trataba de mantener los PATH's con una longuitud pequeña, ya que forzaban a la shell a invertir mucho tiempo en las busquedas, lo que terminaba resistiendo el tiempo de respuesta de la shell. Hoy, tanto la shell de Bourne como la shell de C, operan de una forma mas eficiente, manteniendo un "cache" de los comandos, es decir que recuerda donde se encuentran los comandos y por lo tanto solo realizan una sola vez la busqueda, no importa la cantidad de veces que utilicemos el comando. Similarmente es recomendable mantener un tamaño aceptable en los directorios donde almacenamos los ejecutables. Nos lleva mucho menos tiempo realizar una busqueda en un directorio que contiene solo unos pocos archivos que en un directorio que contiene cientos de archivos. En algunos sistemas Unix, incluyendo a Linux, el PATH no contiene al directorio actual. Los usuarios acostumbrados a trabajar con MS-DOS se sentirar desorientados cuando la shell les muestre un mensaje de error diciendoles que no encontro un comando que se encuentra en el directorio actual (suponiendo que el directorio actual no forma parte del PATH). Para este problema tenemos dos soluciones: 1. Ejecutar cada comando del directorio actual con el agregado del "./". Vemos un ejemplo en la figura 12.4. # ls -l total 1 -rwxr-xr-x 1 tony users 20 Jun 5 21:19 script1 # cat script1 echo Hola $USERNAME # script1 bash: script1: command not found # ./script1 Hola tony Figura 12.4: Ejecutando un comando que se encuentra en el directorio actual. 2. Agregar el directorio "." a nuestro PATH. Asi no importa en que directorio estemos, siempre se incluira el mismo como parte del PATH y la shell encontrara los comandos. 12.4 CARACTERES ESPECIALES - "QUOTING" Desafortunadamente, muchos de los caracteres especiales utilizados por la shell (¡, ?, -, etc.) son utilizados por otros programas. El problema es que no hay tantos simbolos disponibles y siempre pueden aparecer conflictos. Cuando ejecutamos comandos interactivamente o cuando ejecutamos un script, la shell es el primer programa que recibe el texto respectivo. Si el texto de el/los comandos contiene caracteres especiales, estos seran interpretados por la shell, realizando, la misma, las modificaciones necesarias. Para que la shell no interprete estos caracteres especiales, debemos utilizar secuencias de escape. Al proceso de utilizar secuencias de escape se lo conoce como quoting. Cuando queremos enviar simbolos especiales a los programas, debemos utilizar secuencias de escape. Existen tres formas de especificar secuencias de escapes: 1. Una barra invertida (\) sirve de escape para los caracteres que la siguen inmediatamente. 2. Todos los caracteres encerrados entre comillas simples (') se encuentran bajo una secuencia de escape. 3. Las comillas dobles (") sirven de escape para todos los caracteres que se encuentren entre un par de ellas, salvo los siguientes caracteres: $ \ Veamos varios ejemplos en la figura 12.5. # echo $USER tony # echo '$USER' $USER # echo \$USER $USER # echo "$HOME" /home/tony # echo "ls | wc -l" ls | wc -l Figura 12.5: Ejemplos de la utilizacion de caracteres y secuencias de escape. 12.5 ESTADO DE SALIDA DE LOS COMANDOS Cada comando que ejecutamos retorna un codigo que representa el estado de salida del comando. Cuando un comando se ejecuta exitosamente, retorna un codigo de salida que es cero (zero exit status). Por convencion, si un programa encuentra problemas serios en su ejecucion, retorna un codigo de estado de salida que es distinto de cero (non-zero exit status). Ejemplo: Si ingresamos el siguiente comando: ==> ls -l /dev/hda El comando retornara un codigo igual a 0, ya que el archivo que representa al primer disco rigido de la maquina existe. Sin embargo, si ingresamos el comando: ==> ls -l /dev/hdz El comando retornara un codigo distinto de 0, ya que el archivo de dispositivo especificado no existe y el comando ls encontrara el error. La variable de entorno $? contiene el codigo de estado de salida del ultimo comando ejecutado y podemos consultarla en caso de querer averiguar el codigo de estado de salida de los comandos. Vemos un ejemplo de esto en la figura 12.6. # ls -l /dev/hda brw-rw---- 1 root disk 3, 0 Sep 7 1994 /dev/hda # echo $? 0 # ls -l /dev/hdz ls: /dev/hdz: No such file or directory # echo $? 1 Figura 12.6: Consultando el estado de salida de los comandos. 12.6 LOS ARGUMENTOS En los programas de la shell, los argumentos de linea de comandos se encuentran disponibles en una serie de variables numeradas. $1 es la variable que contiene el primer argumento, $2 contiene el segundo argumento, y asi siguiendo. Estas variables representan parametros posicionales. Existen dos variables especiales que representan informacion adicional acerca de los argumentos: * $0 Representa el valor del argumento 0 que siempre es el nombre del programa ejecutado. * $# Contiene el numero de parametros ingresados en la linea de comandos. El programa que muestra la figura 12.7 toma como entrada 4 argumentos y como salida retorna los 4 argumentos en orden invertido. El programa fue realizado utilizando estas variables que representan los argumentos. # cat reverse if [ $# -eq 4 ] then echo $4 $3 $2 $1 else echo Uso: $0 arg1 arg2 arg3 arg4 fi # reverse Uso: $0 arg1 arg2 arg3 arg4 # revese 12 34 56 78 78 56 34 12 # Figura 12.7: Un programa que utiliza las variables de argumentos. 12.7 ESTRUCTURAS DE CONTROL Como cualquier otro lenguaje de programacion, el lenguaje de programacion de la shell nos brinda la posiblidad de utilizar estructuras de control. En el ejemplo de la figura 12.7, vimos de forma adelantada, el condicional if. A continuacion veremos un resumen de las estructuras de control que provee el lenguaje de programacion de la shell. 12.7.1 CONDICIONALES SIMPLES Los condicionales simples son operadores que nos permiten tomar decisiones entre las ejecuciones de los distintos comandos. El condicional mas simple es el operador &&. Cuando dos comandos son separados por este operador, el segundo comando se ejecutaro solo si el primero retorna un codigo de estado de salida igual a 0 (indicando una ejecucion exitosa). Este operador es util para indicarle a la shell que queremos ejecutar una secuencia de comandos, pero solo si se van ejecutando exitosamente. En caso de que alguno falle, los demas no se ejecutaran. En el capitulo 9 vimos que para compilar e instalar un programa debemos ejecutar una secuencia de comandos. Podemos automatizar estos procesos ejecutando los comandos de la siguiente forma: ==> ./configure && make && make install De esta forma, solo se construira el programa (make) si la configuracion (./configure) fue exitosa y solo se instalara (make install) si se construyo correctamente. El operador opuesto a && es ||. Cuando dos comandos son separados por || el segundo comando se ejecutara solo si el primero finaliza retornando un codigo de salida distinto de 0. 12.7.2 EL CONDICIONAL IF Los operadores && y || son utiles para crear sentencias condicionales muy simples. La shell tiene estructuras condicionales mas sofisticadas como puede ser el condicional if. La sintaxis de esta estructura es: if "listas de condiciones" then "listas de comandos" elif "listas de condiciones" "listas de comandos" else "listas de comandos" fi 12.7.3 LOS LOOPS CONDICIONALES WHILE Y UNTIL Los loops condicionales nos permiten repetir un grupo de comandos. La sintaxis del condicional while es la siguiente: while "lista de condiciones" do "lista de comandos" done La sintaxis de until es la siguiente: until "lista de condiciones" do "lista de comandos" done 12.7.4 LA SENTENCIA FOR La sentencia for nos permite ejecutar una lista de comandos repetidamente. Esta sentencia nos exige que le ingresemos uns lista de palabras y ejecuta la lista de comandos una vez para cada palabra. La forma general de la sentencia es la siguiente: for "nombre" in "palabra1" "palabra2" ... do "lista de comandos" done La sentencia for puede ser utilizada sin la palabra "in". De esta forma la lista de palabras automaticamente sera la lista de parametros posicionales. Vemos un ejemplo en la figura 12.8. # ls comandos environ* existe* reverse* rxvt-linux* # cat existe for archivo do if test -r $archivo then echo $archivo existe !!! else echo $archivo no existe !!! fi done # existe reverse comandos windows reverse existe !!! comandos existe !!! windows no existe !!! Figura 12.8: Utilizando la sentencia for con parametros posicionales. 12.7.5 LA SENTENCIA CASE La sentencia case de la shell es una forma de elegir varios caminos de ejecucion basandose en una comparacion por pattern matching. Su forma general es la siguiente: case "word" in "pattern1") "lista de comandos" ;; "pattern2") "lista de comandos" ;; ... esac 12.8 EVALUACION DE CONDICIONES - TEST El comando test es utilizado en los scripts para testear ciertas condiciones y determinar, por ejemplo, si los archivos o directorios existen, etc. Este comando, que viene integrado con la shell, puede ser utilizado para realizar tres tipos de tests: 1. Puede testear los archivos para averiguar ciertas caracteristicas. 2. Puede realizar comparaciones entre cadenas. 3. Puede realizar comparaciones numericas. El comando indica el exito o el fracaso del test utilizando su codigo de estado de salida. La utilizacion de los crchetes es un sinonimo del comando test. Veamos un ejemplo de la utilizacion de test en la figura 12.9. # pwd /home/tony/linux # echo $HOME /home/tony # [ $HOME = 'pwd' ] || echo No estamos en casa ;( No estamos en casa ;( # cd .. # [ $HOME = 'pwd' ] || echo No estamos en casa ;( # Figura 12.9: Evaluando condiciones con tets. El set completo de opciones del comando test se muestra en la tabla 12.1. ------------------------------------------------------------------------- Test de archivos -b archivo Verdadero si el archivo existe y es un archivo de dispositivo de bloque. -c archivo Verdadero si el archivo existe y es un archivo de dispositivo de caracter. -d archivo Verdadero si el archivo existe y si es un directorio. -e Verdadero si el archivo existe. -f Verdadero si el archivo existe y es un archivo ordinario. -L archivo Verdadero si el archivo existe y es un link simbolico. -r archivo Verdadero si el archivo existe y es posible leerlo. -s archivo Verdadero si el archivo existe y su longuitud es nayor a cero. -w archivo Verdadero si el archivo existe y es posible escribirlo. -x archivo Verdadero si el archivo existe y es ejecutable. archivo1 -nt archivo2 Verdadero si el archivo 1 es mas nuevo que el archivo 2. archivo1 -ot archivo2 Verdadero si el archivo 1 es mas viejo que el archivo 2. ------------------------------------------------------------------------- Comparaciones de cadenas -z string Verdadero si la longuitud de la cadena es 0. string Verdadero si la longuitud de la cadenas es mayor a 0. string1 = string2 Verdadero si las dos cadenas son iguales. string1 != string2 Verdadero si las dos cadenas son distintas. ------------------------------------------------------------------------ Comaparaciones numericas -eq Igualdad (equal) -ne Distintos (not equal) -gt Mayor que (greater than) -lt Menor que (less than) -ge Mayor o igual que (greater or equal) -le Menor o igual que (less or equal) ------------------------------------------------------------------------ Operaciones logicas ! Not (no) -a And (y) -o Or (o) ------------------------------------------------------------------------ Tabla 12.1: Opciones del comando test. 12.9 EVALUACION DE EXPRESIONES - EXPR El comando expr es un programa simple que realiza operaciones aritmeticas sobre enteros. La expresion a evaluar se provee en la linea de comandos y expr produce la salida en la salida estandar. Cada argumento de este comando deber ser un numero entero o un operador. Como la mayoria de los argumentos son simbolos utilizados por la shell, es necesario utilizar secuencias de escape. Vemos ejemplos simples de la utilizacion de expr en la figura 12.10. # expr 2 + 4 6 # expr 2 * 6 expr: syntax error # expr 2 \* 6 12 # expr 4 / 2 2 # expr 5 - 4 1 Figura 12.10: Utilizando expr para evaluar expresiones. Bueno hasta aca hemos llegado por hoy, espero que les haya gustado y les cuento lo que veremos en la tercera y ultima entrega: Analizamos y vemos un poco el Booteo, inicializacion y la detencion del sistema (cap.13), tambien veremos como instalamos y configuramos los dispositivos (cap.14), hablaremos tambien de la administracion del sistema y de su seguridad (cap.15) y por ultimo veremos el sistema de ventanas X WIndows (cap.16). Bueno, nos vemos en la ultima entraga de este manual de Linux 5.0. Espero que les haya gustado esta entrega y les sirva de ayuda tambien. Created By Mr. Nuk3m ( mr_nukem@mixmail.com ) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 04 ) Texto 109 del LoCo =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Bueno no se si les interese, pero senti ganas de homenajear a un "Grande" del Cyber como lo es "El LoCo" con un texo que el publico hace tiempo. Algunos de ustedes quizas lo conozcan, lo hayan conocido alguna vez y otros quizas nunca habran sentido oir de el. Dejenme decirles que fue uno de los mas grandes SysOp's de BBS's que ha tenido este pais desde el año 1994 si mal no recuerdo y que hoy por hoy ya no esta mas en los boards (segun me informaron hace tiempo), pero esta en Internet y estoy seguro que le esta yendo muy bien con su site de chat y otras cosas. A continuacion un texto que llego a mis manos y que me hizo pensar y seguir adelante con las cosas. Espero que lo sepan apreciar y que les guste. El siguiente texto aparecio en la LocoList (lista de BBS's) 109 del 24 de Abril de 1996... y empezaba pidiendo disculpas por el retraso de su lista pero a continuacion seguia el texto que esta mas abajo. ... ... Me gustaria que muchas personas lean lo que voy a poner a continuacion: Nunca dejes que alguien te tire abajo, no dejes de hacer lo que estas haciendo si estas haciendo algo que te gusta. Siempre va a haber alguien con ganas de joderte la vida despreciando lo que vos haces, pero nunca dejes de creer en vos mismo y segui en lo que estas haciendo. Me acuerdo cuando alguien me decia que yo no servia para hacer ansis, que me dedicara a otra cosa.. que no dibujara mas, nunca deje de hacerlo.. eso que me dijeron una vez en vez de tirarme abajo hizo que me esforzara mas en lo que estaba haciendo, y aca estoy. :) Esto es un claro ejemplo de que aunque haya personas que te quieran tirar abajo nunca lo van a poder hacer mientras vos tengas tu fuerza de voluntad. Hay otras personas, gente que te apoya, una vez pense en no hacer mas la LoCoList.. y saque una ultima lista, sin numero.. se llamaba "LOCOLAST". No pude creer la cantidad de gente que la usaba y se sintio defraudada cuando supieron que era la ultima. Muchos me dijeron que lo que hacia era un trabajo excelente y no entendian porque habia dejado de hacerlo. Esas son cosas que te hacen reaccionar y seguir adelante. Agradezco a todas esas personas que saben realmente que clase de persona soy y me apoyaron sin dejarse desviar por otras bocas. Si todavia seguis leyendo te repito algo muy importante: Nunca dejes de hacer algo porque los demas digan que lo haces mal. Podes cagarlos a todos, mejorando y demostrandoles que no era asi como ellos pensaban. Aunque digan que no servis, segui en eso que estas haciendo porque un dia se te va a cumplir ese sueño. Me pondria muy bien saber que esto que escribi haya ayudado o mejorado el estado de animo de alguna persona no solo en el mundo del Cyberespacio, tambien en la vida real. El LoCo (23/04/96) Alejandro Szykula =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 05 ) Mail del lector =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Bueno parece que la gente quizas tiene un poco de miedo de escribir y de aparacer en la seccion pero espero que para el numero 3 ya haya algunos mail que publicar en esta seccion... La verdad quiero que sirva para hacer contactos, me envien comentarios y pregunten cosas que quizas pueda responder ya que no me considero un .. hacker ... y solo hago un E-Zine que espero les sirva a todos y que podamos aprender entre todos. Tambien quisiera decirles que las direcciones del los e-mail de los lectores seran tachados con xxx para evitar problemas y que los bombarden con mensajes no deseados.. Ok.. pero si alguien quiere que aparezca su direccion de e-mail pues solamente tendra que decirlo al enviar el e-mail. Escriban asi veo como anda la e-zine, que impacto tuvo y a que lugares reconditos de habla hispana del planeta llego la ezine. En fin, ESCRIBAN :) =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 06 ) Consejos para una pagina o un sitio web =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Nota Nuk3m: Esto lo saque de algun lado y no me acuerdo de donde, asi que perdon a quien lo escribio, pero como no tenia firma cuano lo recibi, lo firme con mi nombre. Este documento esta dedicado a ayudar en la construccion y el diseño de paginas o sitios web de Internet. Es una guia de estilo y no un tutorial de HTML debido a que ya existen excelentes referencias sobre ello en varios idiomas. Yo no soy de ninguna manera un experto en el diseño de HTML y que, aunque la mayoria de los consejos que se encuentran aqui estan documentados, algunos estan basados en mi opinon personal . Tal vez estes de acuerdo con algunos de los consejos que doy y tal vez no, puede ser que yo mismo cambie de idea y rompa mis propias reglas pero bueno...nadie es perfecto. Links (enlaces en las paginas) Los links (enlaces, vinculos o como quieras llamarlos), son una parte fundamental de las paginas, ya que proporcionan un medio de conexion a otros documentos. Por ejemplo: "Mr. Nuk3m" hizo una pagina en español sobre el "Diseño de Paginas" Nota Nuk3m: Para representar al links, ponga la palabra entre "comillas". Es preferible a: "Presione aqui para ir a la pagina de Mr. Nuk3m" Eleji una longitud adecuada para el Link. Una sola palabra puede ser muy corta y carente de significado. Una frase entera puede ser dificil de leer, especialmente si el texto ocupa mas de una linea. No cambies el color de los Links si no es necesario. Por conveniencia, los Links no visitados son generalmente de un color mas brillante que los que ya visitaste. Al cambiar esto, podrias darle dolor de cabeza a los que usan monitor monocromatico (mm?? hay gente que usa monitores monocromaticos todavia ??). Longitud de las paginas Diseña tus paginas mas o menos cortas y concisas. Por regla general ninguna Pagina debiera exceder una pantalla y media de longitud vertical, ya que si es muy larga, podria aburrir a los usuarios. Esto se aplica en la mayoria de los casos, sin embargo si tenes una pagina importante que requiera la atencion del lector, no la hagas mayor de una pantalla. En cambio, si el contenido es interesante y estas seguro que vale la pena extenderte mas, podes hacerlo pero recorda que una pagina chica es mas facil de administrar y mantener. Toma en cuenta a los diferentes monitores. En los monitores tradicionales el area de exhibicion se mide en pixeles (pixel, abreviatura inglesa de "picture element"). La medida estandar es de 640x480 pixeles o bien 800x600 por lo que procura que la longitud horizontal de tus paginas sean de 640 u 800 pixeles para asegurarte que se despliegue correctamente en la mayoria de los monitores. Uso adecuado de Graficos Las imagenes pueden darle vida a una pagina y servir como una excelente guia de informacion visual, recorda que una imagen dice mas que mil palabras :))) Limita la cantidad de graficos en el documento Utiliza imagenes esporadicamente y solo si ayudan a explicar mejor un tema o a mejorar el atractivo visual de tu pagina. Toma en cuenta que cada grafico que agregues a tu documento aumenta el tiempo de espera para el lector o el visitante de tu pagina. Mantene el tamaño total de las imagenes lo mas bajo posible para optimizar el tiempo de acceso a tu pagina, el tamaño de las imagenes no debe sobrepasar los 30K. Si te es imperativo utilizar graficos de gran tamaño, reduci el numero total de colores en ellas y procura que esten en formato 'interlaced'. Ayuda a los navegadores a minimizar el tiempo de espera. Por regla general, siempre incluye descripciones ALT en tus imagenes. Tambien es muy importante que especifiques el largo y ancho (HEIGHT and WIDTH) de las mismas, lo que permitira que algunos navegadores las carguen mas rapido. Uso de Imagenes Mapa Las Imagenes Mapa (image maps) proporcionan un medio valioso de navegacion y contribuyen al atractivo visual de la pagina. Sin embargo en algunos casos pueden confundir al usuario y no son soportadas por todos los navegadores. Delimita claramente las regiones "activas". Las regiones activas de un Imagen Mapa son los puntos donde el usuario puede seleccionar o "hacer click". Es muy importante que esten perfectamente definidas y, de preferencia en forma de botones y separadas una de la otra. No olvides poner los mismos enlaces en texto. Esto ayuda a los usuarios con navegadores sin graficos (el Lynx de Linux) o que para minimizar el tiempo de espera los mantienen desactivados, ya que en cualquiera de los dos casos es imposible saber que esa imagen es un Mapa y por lo tanto no puede ser utilizada. Uso adecuado del color Utiliza colores contrastantes y "seguros". Si tu pagina utiliza un fondo oscuro, usa un color claro para el texto y si utiliza un fondo claro, usa un fondo oscuro para el texto. Tene mucho cuidado con los tonos que vas a utilizar ya que pueden dificultar enormemente la lectura del texto, especialmente si utilizas un tamaño chico de letra. La mayoria de los navegadores utiliza una paleta estandar de 216 colores llamada "Netscape Palette". Al utilizar alguno de ellos, te estas asegurando de que los colores de tu pagina se van a desplegar de igual manera en todos los navegadores y plataformas (PC, Mac, etc.) Especifica un color de fondo. Es importante que aunque tu pagina utilice una imagen de fondo, tambien especifiques un color en el atributo BGCOLOR, ya que este se mostrara en la pantalla inmediatamente y asi el usuario podra empezar a leer el texto sin esperar. Ademas, esto ayuda a los usuarios con navegadores que no soportan imagenes de fondo o que por comodidad las mantienen desactivadas. Estandariza los colores. Si te es posible, trata de utilizar colores iguales o similares en todas tus paginas. De esta forma se integraran mejor unas a las otras y adquiriran un aspecto mas profesional. Facilitar la navegacion. Pone un encabezado al inicio de cada pagina. Aunque el comando

funciona de maravilla, el encabezado de tu pagina no tiene que ser grande o estar resaltado, solo separado del resto del texto. Elige un buen titulo HTML para tu documento. Es importante elegir un buen titulo HTML que refleje el contenido general de tu pagina. Esto le ahorra tiempo a la gente que encuentra tu pagina en un servicio de busqueda (como Yahoo, Altavista, etc.) ya que estos generalmente lo toman como referencia. No hagas referencia a los 'botones' del navegador. Por ejemplo, nunca dejes un camino cerrado donde los usuarios tengan que presionar el boton "back" o "atras" de su navegador para regresar a la pagina anterior porque no puedes asumir que todos los navegadores tengan ese boton. Proporciona un link a tu pagina principal. Debido a que tus lectores pueden provenir de cualquier otra pagina y no necesariamente de la pagina principal, proporciona un link en texto, grafico o boton a la misma de cada documento, asi estaras seguro que el usuario la encontrara rapidamente. Calidad de la pagina Proba cada link y revisa su codigo HTML. Si la gente encuentra callejones sin salida o links rotos puede perder el interes en tu Pagina. Tambien toma en cuenta que si tu c≤digo HTML no esta correcto, algunos navegadores podrian interpretarlo incorrectamente o ignorarlo por lo que te recomiendo validarlo en uno de los servicios gratuitos que puedes encontrar en una busqueda en Yahoo de HTML Checkers. Revisa la ortografia y la gramatica de tu pagina. Si tenes algun programa que revise tu ortografia, por favor usalo. Si no, que alguien mas revise el texto. No utilices comandos especificos de ciertos navegadores. Los comandos especificos no pueden ser interpretados por todos los navegadores por lo que evitalos si te es posible. Un ejemplo de estos comandos es la Marquesina del Internet Explorer, que solo puede ser interpretado correctamente por dicho navegador y el comando de Netscape, que ademas es muy molesto. Contenido del documento Revisa tu texto y borra lo que no sea necesario. Por regla general, trata de que el texto de tu pagina sea conciso y sin rodeos. Recorda que si el contenido de tu documento es interesante y la estas actualizando constantemente, tus lectores la visitaran mas de una vez. Un documento que no aporta nada no causa interes alguno. Utiliza mayusculas y minusculas adecuadamente. El ser humano no lee las palabras mas comunes ensamblando las letras que la componen para formar una palabra reconocible, sino por su forma general. Si todo el texto de tu pagina se encuentra en mayusculas, podria dificultar la lecura de la misma ya que en la mayoria de las fuentes tipograficas todas las palabras tienen forma similar y monotona cuando estan compuestas unicamente por letras mayusculas Utilizacion correcta del lenguaje Cuida tu lenguaje. Dependiendo del contenido de tu pagina es necesario que observes el tipo de lenguaje que vas a utilizar tomando en cuenta a quien va dirigido. Palabras que, en mi opinion, deberian evitarse: Si agregas una imagen que señale esto solo estas desperdiciando tiempo y espacio, aunque si es aceptable y recomendable poner una seccion donde le informes a tus lectores de cambios o actualizaciones futuras que pretendas hacer en tus paginas. Esta pagina se ve mejor con...: Como se recomienda en otras secciones, no diseñes tus paginas teniendo en mente algun navegador especifico. Si creas una pagina a la que solo se le pueda sacar el maximo provecho con un navegador en particular, los usuarios que no lo utilicen se veran frustrados. Mejor diseña una pagina a la que se le pueda sacar el mejor provecho con todos los navegadores comunmente utilizados. Bueno esto eso todo lo que les puedo decir. Es eso solamente, unas pautas a tener en mente cuando vayas a diseñar tu pagina o tu sitio web. Mr. Nuk3m =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 07 ) Numeros de serie =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- A continuacion una pequeña lista con numeros de serie para registrar programas shareware. Te pueden resultar de increible utilidad. ¡Programas completos gratis! Por que vas a pagar por algo que quizas no sea lo que esperas... ?? o---o | Nºs | °---° 386 Max v7.0 : 240-104343 or 40090206002 4D Runtime 2.01 : T-302092506051 4DOS v5.00 : #/111209 code/8VS2PGCK 4th dimension 2.0.11 : D-205200607255 4th Right : V-302290527273 8 Ball Deluxe : ZJLFDN5TMAJ o-o | A | °-° ABC Flowcharter v3.0 for Windows : 0601001053909501 ABC Toolkit v1.0 for Windows : 01103158901 ABC Toolkit v1.1 for Windows : 1001001103158901 Above disk+ v4.0a : 506824 Accent for Windows : 042807358902273 Accent v2.0 final beta for Windows : 123 456 789 000 12 ACCPAC Simply Acounting v2.0a Windows : 1021602-48016 ACDsee v1.25b4 : name/letis #/+tHE riDDLER [uCF] 213111 Action workflow analyst for Windows : AA200013001W1001823 Adaptec EZ-SCSI v3.03 DOS/Win : 492848-01 Addepth for Windows : AW-100-1-2716-52987 Adobe acrobat distiler v1.0 for Win : DEE100R3001172-010-496 Adobe Acrobat reader v1.0 for Windows : ARW100R3100000-500-574 Adobe Acrobat reader v1.2 for Windows : ARM100R3100034-100-397 Adobe Acrobat v1.0 for windows : ARW100R3100230-826 Adobe Acrobat v2.0 for Windows : WVW200R3100221-398 Adobe Illustrator v4.0 for Windows : ABW400R3101335-714 Adobe Illustrator v4.01 for Windows : ABE400R3001625-858 Adobe PhotoShop : PCA 100000100-953 Adobe Photoshop v2.5 for Windows : PWW250R3000000-880 Adobe Photoshop v2.5.1 for Windows : PWW250R3104501-684 Adobe Photoshop v3.0 for Windows : PWW300R3000011-926 Adobe Photoshop v4.0 for Windows :PWW250r3107069-312 Adobe Premiere v1.0 for Windows : MBW100X3100970-389 Adobe Premiere v1.1 for Windows : MBW100D3100371-512 Adobe Premiere v4.0 for Windows : MBW400R1109394-244 Adobe Streamline v3.0 for Windows : SBW3001110706-297 Adobe Streamline v3.01 for Windows : SBW300S1100640-184 Adobe wild type : FHW251R31003373 After dark v3.0 for Windows : AD3-00670-6681 or ADW-33671-7329 Agency database v1.12c for Windows : ADW00195 Agfa Fotoflow : 410210021-086 Aldus Freehand v4.0 for Windows : 05-4002-202558479 Aldus Freehand v5.0 for Windows : 10350-0276-0089-83911 Aldus Gallery effect v1.5 for Windows : 36-1500-040049293 Aldus Persuasion v2.1a for Windows : 09-2101-200613117 Aldus Persuasion v3.0b for Windows : 09-3003-202849134 Aldus Photostyler v2.0 for Windows : 15-2000-000000000 Aldus Photostyler v2.0a for Windows : 15-0208-202570921 Aldus Photostyler v2.0SE for Windows : 15-0201-201632890 Aldus/Adobe Pagemaker v4.0 : 02-3008-000036469 Aldus/Adobe Pagemaker ENG v5.0 for Win: 03-4005-200136599 Aldus/Adobe Pagemaker NL v5.0 for Win : 02-50C8-100094310 Allfix v4.16 : name/Me #/A4009F0F2AC0ZB60A9EB2E4D Alpha five home/business ed. v1.0 Win : Z50HBEV1-1019144 Altamira composer v1.1 PRO : 644 043 060 0036 Altos system diagnostic v1.0SO : DIAG7K_9K00004 Altos system ECU setup v1.1SO : A_ECU00246 AM Workflow v3.1 : 001169 America online v1.0 for Windows : #/69-2815-4880 pw/LARKED-MASSES America online v1.15 for Windows : #/48-5004-6750 pw/AMBLED-ANION America online v2.0 for Windows : #/79-0519-3782 pw/SWIMS-TAGGER America online v2.5 beta 4 : #/10-5932-0206 pw/GOBLET-MEDIAN Ansipaint v2.1 : name/DIR&MIR #/1216 Anyview v1.00a for Windows : AVR-100-4201975 Apple media tool v1.2 for Windows : AMT00-00000-2155073 Approach v3.0 for Windows : 1F00028-01104360 Arcserve v5.01 for Windows (10 users) : 10AS 1163609 Arcsolo v3.02 for Windows : EVSO 1231464 ARJ v2.41 : name/XXX #/12345 Astound v1.5 for Windows : 3031620659 Astound v2.0 for Windows : 3044507372 Asymetrix 3D F/X for Windows : 2011-009713 Asymetrix multimedia toolbook v3.0 : 0740-002379 Authorware PRO v2.0 for Windows : 8205-2072-3071 Authorware PRO v2.01 for Windows : 8217-4072-0086 Autocad lite for Windows : 167-10001908 Autodesk Animator PRO : 4930-P4-PH-1 Autodesk Animator PRO v1.0 : 01603-010203-2520 Autodesk Animator PRO v3.05 : 655-10000088 Autodesk Autocad data extension : 130-10083217 Autodesk Autocad lite for Windows : 167-10001908 Autodesk Autocad v.R12 : 110-10061620 Autodesk Autocad v13.0 for Windows : 70FEE2FD Autodesk Designer learning resources : 07301-010203-4520 Autodesk Designer new fund. tools : 07300-010203-3310 Autodesk Designer training guide : 07300-010203-3010 Automanager v1.1 for Windows : 001454 Automap PRO v1.06 for Windows : 2028038 Automap v1.0 for Windows : W 12391 Automenu v1.0 for kids : 501G4-UHPMH-PCG53-S Autoscribe v2.5 : bbs/ABC #/5804 Autosketch v2.0 for Windows : 123-12345678 Autosketch v2.10 beta for Windows : 190-00028490 Autosketch v2.x for Windows : 190-00028490 Autovision v2.0 for Windows : 5B35AE2B Autowinnet v1.3 for Windows : AWN348CASLT101 Autowinnet v1.4 for Windows : AWN348INWUA102 AVM-ISDN-IBTX v3.0 : 2001507A o-o | B | °-° Ballade v1.0 for windows : 2004100460 Banner 3 : 507230300326 BBS Bowl v1.5 : name/Me #/17677 BGfax v1.30 : name/Me #/201258 pop/DFCA99E0 Bicycle v1.3 bike 'alog on disk : WWUXPQVYP Bitcom v5.4c : A271113 Bitfax v3.09c : A248258 Bitfax/SR v4.06g and Bitcom v5.6d : A006844633 Blackboard : name/Me bbs/ABC key/?G49( Blastermaster v6.x : (add to .BAT) SET SBMASTER=798-3240 Bluewave v2.12 : name/Me #/77384318 Bolo CD-version : 7000465510-LNK Bookie Bookworm: All stories : 1-900-903-2665 Boot commander v1.27 : R302582-TTHY Boot'R v2.11 : name/"Your own" #/RH-004001-000 Borland C++ v2.0 for OS/2 : BCP1420WW10180 Borland Office v2.0 for Windows : IA332A10046950 Bridge manager v0.33 for Windows : 373-0111-03 Buromanager PRO v3.1 : 0E01188472020 o-o | C | °-° C.B.S.O v2.6 : SYSTEM CA Simply accounting v3.0a for Win : 1021602-52559 CA Simply accounting v4.0b for Win : 1020602-212703 Calendar v3.0 enterprises : #/61001234 key/191715 Calera wordscan v3.0 : BB3921343 Calera wordscan v3.1 for Windows : HP3102305 Caligari true space v1.1 for Windows : 3 10 001 026188 Cantax for '95 v1.0 for Windows : 134-950128-0374079 Canvas for Windows : 5035430458 Canvas v3.52 for Windows : 485110842 Cardshop plus for Windows : 0729 Catdisk v7.xx : (AUTOEXEC.BAT) SET CATDISK=XYZZY Catdisk v8.x : name/Maroon code/G445000QIR CD-Quick cache v1.10 : NAME/**** KEY/**** CD-Quick cache v1.11 : name/Me key/DF92 CD-ROM update v0.3 beta : (CDROM.REG) name/Me bbs/XXX Chameleon NFS morpher v4.01 : 34649640121147 S3,D7D0 Chameleon NFS v3.14 for Windows : 3433223117197 P3 C4ED Chameleon v4.x : #/34059131041712 S3 key/A224 Chameleon NFS v4.5 : 34768840199594I3 2FA2 Cheat master (all versions) : Crea un archivo vacio llamado "A FOREST.SIG" Check It v4.0 and v5.0 : 000-237032 Checkit PRO (analyst) for Windows : A7-100163 Checkit PRO analyst v1.0 for Windows : A7-100163 Checkit PRO sysinfo v1.0 : A1-001725 Checkit PRO v1.04 for Windows : A3-062402 Checkit PRO v1.06 or 4.0+ /Windows : A4-115796 Checkit v4.0+ : A7-100163 Chicago beta build 177 : betaside id/101907 pw/999670C9E CICS v2.01 for OS/2 multi user : UN74786 CICS v2.01 for OS/2 single user : UN74802 Cleensweep v1.0 for Windows : 115-25C-22620 Clinical pharmacy for Windows : 9412345 Close up host/remote v6.0 for Windows : 31B57D-1121111 Closeup v5.0 for Windows : IBB463-852875 CM Viewer v3.10 : 44718494P31 Coach & Coach Pro : 1552467 Color view v3.10 : name/Twinhead [TWH/BDC] #/378839 Comma net mail v2.50 for Windows : 19211134581-6 Comment : 1897867 Compel PE : ASYM10288 Complete program deleter v1.4 for win : 728679 Conference Room vx.x (IRC SERVER) : F5EA-23E8-49D2-E689 Context v2.0 online dictionary Win : 04.4101.20 Conversions plus for Windows : 904954-2539 Conversions plus v2.0 for Windows : 11111111 Conversions plus v2.53 for Windows : 983798-0308 Cool edit v1.50 for Windows : name/You! #/BMJZCPUX Cool edit v1.51 for Windows : name/COOL MAN #/XJMINCLE Corel flow v2.0 for Windows : SW-Q023-CF-E Corel Gallery v2.0 for Windows : CG2-020-123456 Corel Photopaint v5.0+ for Windows : PP5-2522-97100 Corel Ventura 5 for Windows : CD5-123-456789 Coreldraw v4.0 NL for Windows : CD4-114-654-454 or CD4-234-345-567 Coreldraw v5.0 for Windows : CD5-123-456789 Coreldraw v5.0 rev. E2 for Windows : CD5-050-118034 Corelflow v2.0 for Windows : CF2-123-456789 Corstream dedicated Server v1.0 : CBA 0009432 CPU Monitor plus v2.30 for OS/2 v2.1 : CPUP-V230-512073 Crystal Caliburn Pinball : 9525CCW102365-U1 Crystal graphics flying fonts for Win : RB10-0140-1022 CStar v1.0 for Windows : 4690289681360 CU-SEEME v3.0 : SCBTK-NPJGG-PKHEG-MJDCT-TECLM o-o | D | °-° D.B. Express v1.50 for Windows : PE15003-1194 Dabbler v1.0 for Windows : 5011380-8195 Daceasy EIS v5.0 for Windows : EI50X101175 Daceasy for Windows : WA1IB111835 Dagesh v2.0 : 334 804 020 072 125 Data access tools v2.0a for Windows : 1F00028-01104360 Data junction v5.0 for Windows : W103100217 Databoss "C" : 93-1207-000398 Databoss v1.01 for Windows : 94-0202-000361 Datacad estimator v4.2 : 5401-1092 Datacad professional v5.05 (update) : DC50C-8298 Datamaker v2.0 for Windows : 104010201F6 Davinci E-mail v2.52 : 52XVD-GBEUP-6BP3A Daytimer organizer v1.0 for Windows : 710000000 Dazzle plus v2.1 for Windows : DP940235 Dazzle plus v2.1b for Windows : 1234567 Dbase III plus : 3745331-26 Dbase IV : KD712AA0000005 Dbase IV for Windows : DA712A1047458 Dbase IV v1.5 : WA711C10152190 Dbase IV v2.0 beta 2 : KD712AA0000005 Dbase IV v2.0 NL : WA712C50000000 Dbase IV v2.02 : IA 712A10518133 Dbase IV v5.0 for Windows : DA712A1047458 DCC PRO v3.02 : 267109015 Delrina Preform v1.0 for Windows : 2201-8201-1029 Delrina Wincom PRO v1.1 for Windows : 37Z59J Demo workshop : Okware #/0AQ6M5RBRATPN8HN64K05I Deneba's Canvas for Win : 450059719 Design estimator : 5055-2897 Desqview /X network manager v1.1 : 003-V1-3616 Desqview /X OSF/motif : 002-R1-1583 Desqview /X v2.0 : 754-X5X-14396 Desqview 386 & QEMM 386 : 001-32H-72414 Desqview 386 v2.61 and QEMM 386 v7.02 : 001-32H-72414 Desqview 386 v2.7 & QEMM 386 v7.5 : 114-22H-28256 Desqview/X network manager v1.1 : 003-V1-3616 Desqview/X v2.0 : 000-15X-011980 Digigrabber : 6776-3647-1143-4455 Disk management system v6.10 : 64232312 Disk manager v6.03.03 Maxtor HD : 18002629867 Disk optimizer v1.01 for Windows : 11111111 Diskdupe PRO 3 v7.x : 200-468-710 Disktop 4.0 : 06412 Distinct TCP/IP v3.21 for Windows : #/AD00081094 key/78-17-DF Diz-it v1.3 : name/TwinHead [TWH/BDC] #/.156024 Diz-it v1.3 PRO : name/TwinHead [TWH/BDC] #/489984 DoKo for Omnis 5 runtime : DOKO Doorway v2.22 - v2.30 : name/Me #/57604 Dr. Salomon's antivirus toolkit v6.65 : TK2285817 Dr. Salomon's antivirus toolkit v6.68 : TK2495340 Dr. Salomon's antivirus toolkit v6.71 : DTK3H-063095 Draftchoice v2.15a : #/23-4234-9999 Name/SaLaManDeR Dream solver '95 summer edition : name/Perry McGee #/3415037668882416 Dreamrom v1.3 : name/Me bbs/XXX #/532 Drive Pro v1.15c : WBJK10 Drive PRO v2.0/2.0c : LAKS11 Drive rocket utility v1.15 : 00089549 o-o | E | °-° ECCO, the PIM for Windows : 1101232620 Eclipse fax v6.0 for Windows : 105-94452 Eight ball deluxe II : EZ001114301 Elastic reality for Windows : 40-9831-11111-23361 Electronic workbench v3.0e for Win : W-00190-E99C Empower : name/ADMINISTRATOR pw/ADMIN Enforcer 2.9 : 876855327801 Entertainment digest for Windows : 2011-0021-3271 ESL v4.0 for OS/2 and Windows : 3091300953 Estimator plus for Windows : 5500-9466 Eta beta 2.1 for Windows : WD52-EB21-0023 Evolve v6.1 for Clipper : EVC610401762 Excalibur BBS server v0.84 for Win : 10021000002 Excalibur BBS server v0.95 for Win : 100210000020095 Exceed 4 v4.1 for Windows : W -059483 EyeCandy 3.0(plugin for adobe photoshop): IIIGEBFHMJNB <> o-o | F | °-° F(g) Scholar : FG0021747120 Falcon v3.0 : 033624 Family treemaker v1.01 for Windows : FTW11R64747 Fantasy land v1.20 : bbs/XXX sysop/Me #/ABCD8178 Fantasy photo collection for DOS/Win : 37200 Far stone cache driver v2.X : 1-10501131 Fast fonts v3.3 for Windows : 05-U08355 Fast mail v1.20 beta a for Windows : 1502909616 Fauve matisse v1.24 for Windows : 1733920 Fax for Windows v3.0 : 100401007520 Fax-a-laugh v1.0 : GB001000 Faxmaster v1.01 : 4304L-D00-999999L Faxserver v2.0 for Netware : 20FX 985466 or EV 1213767 Fido QWK v1.25 : name/Me #/68571B8A Fighter wing from Merrit studios : 1PKY6T89X2A File force 1.0 : X-442540368699 File magic professional v2.0 : 16-0012025 Filecompress PRO v1.0 for Windows : 081494-001L-00P4093 Filemaker PRO NL v2.x for Windows : 7000843902 Filemark v2.00 beta : name/Me #/214180166571461814535 Final v3.0 for Windows : WFNA 106311 First aid v1.0 for Windows : 1002-0E7B First aid v1.2c for Windows : #/1000-A1B1 pcode: AF10112C Fixed asset system v9.41 : 3060461 Flinstone cuckoo clock for Windows : 90500100-00123 Folio viewer v3.0 for Windows : 30WVU1234567 Foxbase 1.1 : #/FMD027877 pw/EMZXPYEI Fractal design painter v2.0 for Win : 0700585AQK Fractal design painter v3.0 for Win : PW300RAZ0002607-EANY-001 Framebuilder for Windows : 04-0-01-01-4-0056A-916E2D Framemaker v2.1 : 2-01320-27 Framemaker v4.02 for Windows : 00-0-01-01-4-00C2F-3C9DB0 Framework 4 : 00-0-01-01-4-0059E-2E00D2 Freehand v4.0 for Windows : 03-003-00003 or 03-921-34311 Frontdoor v2.11 : FD001123456 FrontDoor v2.20a Multi Line : name/Me s-input/34566 #/FFFF:8706 FTP-Server daemon for Winsock v1.1 Win: .Va7/onRUR./Kermu Fusion DBL CD : 557-0251-01 o-o | G | °-° Game wizard PRO v2.0b : ESD-GW-002001 Gamma universe v1.03 for Windows : UV0103-000-43LPBSW-6548 Geopublish graphic windows environment: 1000-0022-0278-1056 German translation program : 45014774 GetRight All versions: 698008401650 Gif Converter 2.1.1 : 62-37-77-F4-DE-A8-8B-B2 Giflink : #/GK123456445 name/Betamax Giflink v2.01 : name/Me #/GK546354872 Giflite : #/GL123456689 name/Betamax Giflite v2.0 : name/Me #/GL868695771 GifLite v2.10 : name/Me! #/GL210000698 Girlfriend Teri : 240-104343 Global war (any version) : bbs/ABC #/GQ892HIRTFG Goldmine for Windows : 10576345 Graphics workshop : name/Me #/11811 Graphics workshop v1.1j for Windows : 65535 Graphics workshop v1.1p for Windows : name/>>>MarQuis De SoiRée<<< #26132 Graphics workshop v6.1 : name/Okware #/13845 Graphics workshop v6.x and v7.x : name/Me #/5923 Graphics workshop v7.0e : name/Me #/05889 Gravity verdict law office : GV-940606-6996-000111 Great Plains Accounting : MANAGER pw/ACCESS o-o | H | °-° Harvard graphics v3.0 for Windows : 16-0300-DSET Harvard montage v1.0 for Windows : 27101 0001211 Help development toolkit v2.5 for Win : WQT7YZW6-HDK Help magican PRO v3.0 for Windows : 97304.300.001 Hi-Cross v2.6 for Windows : #/67657 lic/163240 Hijaack graphics suite for Windows : HGJS 3 SU CH EB0GSWUT Hijaack PRO v2.0 and v3.0 for Windows : RYXJ595D Home design v1.1 for Windows : 0530140311 Hslink DLP (for Procomm+ v2.x for Win): #/0001 code/BSB258H Hslink external : 00654 Hslink v1.21 : Hslink (brand) 1134 0136ZW0 Hslink v1.21 beta 9 : #/123 code/1E7H7P9 Hugo plus v8.0 for Windows : #/096056 code/WIFR80 1094 Hurricane v1.0 : 07-A17280 Hyperware speedkit v4.91 : SNFBBSUPD o-o | I | °-° IBM Bookmanager lib reader v2.0 Win : 5799-PXY IBM PL/I Personal entry ver for Warp : 10H7819 IBM PL/I Professional edition for Warp: 10H7848 Ice Zmodem v1.02 : name/Potman '95 #/1306561065 Ice Zmodem v6.0 beta : name/SLA #/1-49282-84275 Idea fisher v1.0 for Windows : W12203-0512 Idea fisher v5.0 : W04044-0080 Image commander v1.0 for Windows : 100SPW3H07A10380 Image IN v3.2 : 100-05DG-0ER4 Image Q v2.2 for Windows : 901172 Imagepal : RNAE9-40302-01417 Imagination v2.2.24 : 00765 Infomodeler v1.5 desktop ver for Win : 1090-003800 Inoculan v2.5 : IL20 346002 Inspiration v4.0a for Windows : 1633D1233H4551 Integraa visual db builder v2.00 Win : 1205555057 Intel LANdesk response for Windows : 400361.001 Intellicom v2.01 beta 5 : 040994 Intergraph's Microstation : 00088193000085 Intermail v2.2x : 6A-000-001234 International OCR : A46IW331561710 o-o | J | °-° Jigsaw-it v1.0 for Windows : 7104401272 Jigsoft v1.2g for Windows : 503-331 o-o | K | °-° Kiwi Enveloppes 3.0 : KE301120RA Klik & play v1.0 for Windows : KPE10001143 o-o | L | °-° Labtech notebook v7.3.0 : 27539 Lahey fortran 77 v3.0b : B12858 Landmark Datasafe crashproof v2.0 Win : 00213057 CU Landmark INI expert for Windows : 00005536X1 Landmark Speedtest v3.0 for Windows : 01703286SFW Landmark Wintest v1.0 for Windows : 01860489 TH9 Laplink v6.0 for Windows : LW6USRT-100475-600/24 LastByte Memory Manager v2.50 : name/Me! #/9F0BF89C Layer III : 1234DA75901230 Lemmings for Windows : 168255 Liason 2.0 : 40026825185 Light chat v1.0 : name/Me key/2482430948 Lightning CD : LC110014980 Lightning graphics C-version v4.0a : 004-922-C9D00 Liquid speed v1.0.2 for 3DS : 12900388760114244102 Locksmith v1.31 : LOCK-1000 Logitech mouse v6.30 for DOS and Win : MBAI 008965T630 Logitech mouse v6.43b for DOS and Win : MBAI 013904T643 Lotus 123 for OS/2 : 1O00003-35389080 Lotus 123 v5.0 : 2350016-38419880 Lotus 123 v5.0 for Windows : 1F00028-01104360 Lotus Approach v3.0 for Windows : 1F00028-01104360 Lotus data access tools v2.0a for Win : 1F00028-01104360 Lotus organizer v1.1 for Windows : 1Q00001-83927521 Lotus organizer v2.0 for Windows : 1F00028-01104360 Lotus screencam v1.1 for Windows : 2350016-0141988 Lotus Smartsuite v3.0 for Windows : 1S10015-08473222 Lotus VIP, visual basic type program : 1F00028-01104360 LView Pro 1C/95 : name/Nobody number/1090-000-005821 LWbull : name/Me bbs/XXX #/17961493 LWmenu : name/Me bbs/XXX #/18192757 LWuser : name/Me bbs/XXX #/18578197 LW_mgr : name/Me bbs/XXX #/18809461 o-o | M | °-° Mac 2 PC PRO plus for Windows : 123456-1234 Macpassword 3.8.0 : NOV30195MAY261951 Macro model for Windows : 0428-4079-2071 Macromedia director v4.0 for Windows : DRW400-1895-9074-2077 Magic v1.33 : 15002688 MagnaRam for 95 : 011-18B-99630 Mannequin v1.1 : 10012345 Map Edit 2.2 : BJJNBKBA Mapple V v3 for DOS and Windows : DOS-5203-676023-1 Marvel screen posters for Windows : MVW-92958-1201 Master Juggler : MVW-92958-1201 Mathcad v5.0 for Windows : P501069D00368 Mathematica v2.1 for Windows : 2549-51771-93417-6270 Mathematica v2.21 for Windows : 5870-34471-82354-3005 Matlab v4.0 for Windows : 335339 Mattise v1.5.2 : 1733767 Mayor BBS v6.25 : NWGEEGD9J Mechwars v1.9g : sysop/Me bbs/XXX #/XA0N4TA4BUQB Media studio beta for Windows : ABETA-40490-29051 Media studio v1.0 for Windows : NNAEA-40721-02586 Mentor plus flite star 10/93 : 9243210 Micro-scope v5.06 : MS-1231393 Microfocus/370 assembler v3.1.16 : URNB0UPP/000000000 Micrographic picture pub v5.0 for Win : NTA-NTA-01A Microscope v5.06 : MS-1231393 Microsoft CD protection : 040-0613220 Microsoft Great greetings v1.0 for Win: 32521-082-0109954 Microsoft Money v2.01 beta for Windows: 00-105-0200-99999979 Microsoft Money v3.5 (german) for Win : 20342-066-0023392 Microsoft Office PRO '95 : 26716-103-0145657 Microsoft Office PRO v4.3c for Windows: 28779-051-0101444 Microsoft Planner for Windows : 076-051-090 Microsoft works v3.0 NL : 16429-020-0000284 Microstation : 00088193000085 Microstation CAD v5.08 for DOS and Win: 6362-CURRY-FRIKA Microstation powerdraft CAD v5.5.0.5 : 00088193000085 Microstation v5.00.95 (5.1) : SGBXI48AB-0500A Minitab v9.2 for Windows : W92006400 Mirage raytracing engine for 3D studio: 942559 Mirc 32 v4.52+ : D3V|L H4CK3RZ/13026-1177904 Modem docter v5.2 : M4B00635 Monarch for Windows : 1003818 Moneymap financial director for Win : password/CASH Morphing magic : 0-672-30320-5 2 Mortice kern sys. 3.1 DOS/Win (6users): 3041129678 Multiedit v7.00e : ME700E111111 Multimedia solutions : 205521 Music magic songbook v1.0 for Windows : 932667-2198 Music time for Windows : MV20-0-02045-8738 My advanced label designer : 2223-87357 My advanced maillist and addressbook : 2123-42935 My invoices : 2643-20966 My-T-mouse v1.30 for Windows : FT 1305766 Mystery at the museums : 0340151 o-o | N | °-° Natural v2.1.1 for Windows : NW12118855322257 Navcis PRO v1.5 for Windows : MC-9267 Neobook PRO v2.0b : 4711081MIQOEOB or 7753889AHULQWJ Neopaint v1.1 : 1312649GQISPSV Neopaint v2.0 : 2233445HPKTNSR or 9876543OVOWASP Neopaint v2.1 : 2039485HNKZNWR Neopaint v3.0 and v3.1 : 47110815LMPJVQ Neoshow PRO v1.0 : 0123456THTJNQN Neoshow PRO v2.0 : 2115868RUJISNV Neoshow PRO v2.5 : 4711081WUIJTRC NeoSoft phantom screensaver v1.2b : 4711081WIRJUUN NetBus Pro 2.0 : NAG Software, Inc./FDDB7485 Netcom netcruiser v1.0 internet : 91629 Netroom v3.0 : 02-R809678 Network plus : 02-AU1-0726C-0RNR-002-20052 Neverending disk v2.1 : NDO101841 Norton administrator for networks : M5NA15XG10410213 Norton textra connect v1.1 : A7881492178 Novell DOS 7.0 personal netware v1.0 : S6-004001-001 Novell perfect office v3.0 for Windows: 1P030XW00010110Z Novell personal netware (5 users) : 23660970 Nowhere Man's Virus Creator : ARoseIsARoseIsARose Nupaint : 10111220 o-o | O | °-° Office control-easy for Windows : 33233359 OLX Off-line xpress for Windows : 44-4444 Omnipage : 2804b-d00-999999 Omnipage 2.1 : 0102E-%001705 Omnipage PRO v5.0 for Windows : #/2804B-C000003700 pn/872-0734-020 Omnipage PRO v5.02 for Windows : 2804A-C00-073789 Omnis 5 runtime version : 11087165180 Omnis 7 v3.0 for Windows : CWRS 270836 20251 / CWRS270836 20251 Open doors v4.x - v5.x : name/Me #/0x0000E005 Outside in v2.1g for Windows :OW218312364 Outside view v3.2 for Windows : 18VS48-391 o-o | P | °-° Pagemaker NL v5.0 for Windows : 02-50C8-100094310 Panoramic utils v1.1 : 111-976-0001513-01 Paper direct templ. v5.0 for Corel Win: 606771 Paper direct templ. v5.0 for MSWord v6: 608813 Paradox speller for Windows : CM55022999 Paradox v4.0 for Windows : IA931A10158034 Paradox v4.5 for Windows : IA931A10000162 PC Anywhere v4.5 for DOS and Windows : PCDH4543IN PC Auto strecken berater netz (german): 0000108995 PC Blox v2.0 : 080594 PC Board professional v15.21 : 029617 PC Buchhalter v1.01 (german) for Win : 8848 5060295 PC Doktor v1.0 : 1139610360 PC Focus v6.01 NL : 1732221 PC Miler v1.0 for Windows : W410626 PC Tools v2.00 for Windows : 11-50-01415 PC/TCP Network v3.0 for DOS/Windows : #/1990-1025-7300 key/3751-6732-9871 PC/TCP v1.1 for Windows and DOS : #/3917-3337-0007 key/3776-9499-4365 Pckwik powerpak for DOS and Windows : 5062180192V09 PCX-DumP v9.2 : name/Me! #/YTMAR0A14DCA0EC27 Peachtree accounting for Windows : 9257595 Peachtree complete accounting v8.0 : 9005635 Peachtree v7.0 : 7807139 Perfectview NL v6.10 : PV-PAC61-260159 Perfectview v6.1 : PV-PAC61-NT260119 Pharlap TNT 32 BIT DOS extender v6.0 : 27146 Pharlap TNT 32 BIT DOS extender v7.0 : 30875 Photo magic : PH1001LXX-04526 PhotoShop Pro 3.04 : PWW300R3000011-926 Photostyler v2.0 for Windows : 15-2008-201748321 Physik v2.0 : PHYSIK+V2.0WWW94 Picture publisher v4.0 : 0301001006108501 Picture publisher v5.0 for Windows : NTA-NTA-01A Plug-in v2.0 for Windows : 136-92031109 PMComm v2.30 32 bit for OS/2 : 4618110594 Power management v2.02 for DOS and Win: KWW687480 Power PPL v2.0 : fname/Me lname/XXX #/442:264:146 Powerdrive v6.0 for Windows : U60041006398 Practica Musica : 00215052 Premiere v1.0 for Windows : MBW100X3100970-389 Preprint : 11-1009-200021734 Procomm plus : PW10091107 Procomm plus for Windows : PW10467543 Procomm plus v2.0 : PP20116382 Procomm plus v2.0 for Windows : PPWU2000081467 Procomm plus v2.11 for Windows : PPWU2100077294 Profesional draw : 3000045840 Project manager workbench v2.0 for Win: 120344 PSearch v4.4a : name/GaRY D. [UCF] #/000000138 PTT Phonebook dec. '94 CD-ROM : D2865 PTT Phonebook sept. '94 CD-ROM : H3435 o-o | Q | °-° QAPlus/FE v5.30 : 12345-6789-0 QEMM 386 V7.0 : 103-27E-53601 QEMM 386 v7.03 and v7.04 : 001-32H-72414 QEMM 386 v7.5 : 010-17F-95293 QEMM 386 v7.52 : 000-000-00009 QEMM 386 v7.53 : 001-32H-72414 QFront vx.xx : name/Me! bbs/G.!.$ #/01-0001 Qmodem : name/Me #/42646 Qmodem PRO v1.10 for Windows : 92-0069 Qmodem PRO v1.53 : 66-3454 QmodemPro for '95 : 123-456-789 Quark express v3.3 with EFI : WX-12572277 Quarterdeck InternetSuite v1.0 : 003-17J-55484 Quatro PRO v3.1 : DA246D10323488 Quatro PRO v5.0 for Windows : 1F945C10098127 Quattro PRO NL v5.0 : IA945C10033381 Query for OS/2 : 5622-118 Quick books v1.0 : 382.71.904 Quick books v3.0 for Windows : 1000164598 Quick restart v1.5 for windows : 00617051QR1 Quick time v2.0 for Windows : 040904E4 Quickbooks v3.0 for Windows : 1000164598 o-o | R | °-° R&R Report writer v6.0 for Windows : 65793 Ragtime 3.0 : #/6601120 Production#/8739401 Ramexam : 5432189569 Ramexam v7.01 : 90060814060 RAR v1.54 beta : name/!YOU! #/A9BC77E742FBCA1995 Ray dream designer v3.x : DW-313-1-8686-4776 Reachout remotecontrol Pro4.04 DOS/Win: 000646264 Reachout remote control v5.0 : 1031-1100-0000-0000 Recognita plus v1.0 for Windows : A46AW422604388 Recognita plus v1.25 for Windows : A46IW422685241 Recognita v1.0 for Windows : A46AW422604388 Regognita GO-CR v2.1 : UI23C2029043 Remote access pro v2.01 : PFB7B1EF04CDD90AAC0045 Remote Access Pro v2.02 (250 nodes) : PF026549CB0002319A0045 Remove it v1.0 : 10022814 Remove It v2.0 : 20148045 Rems property manager 500 v3.0 : 92336 1/2 Renderman for Windows : 1114897156 Roadtech v1.0 : A5-171754 Rock & Bach studio v1.0 : 0247942 Route 66 for Windows : 28424XVMH0333 Route 66 for Windows benelux.map : 2316FSFE74625 Rumba mainframe connect v4.0 (4 node) : 00491097 o-o | S | °-° SCO Open server v4.21 : #/2BF016051 key/UQQFGHCD SCO Unix NFS v1.1.0 : #/ING000045 act.Key/JQQBRMYC Second-friend v5.0 : TR5012853 Select time v2.0 : W894S91K4 Semware editor prerelease : 3001005027 Ser green screen/power saver : SKY797128 Server dat v4.0 program manager : 301062 Shadow login v1.2b : name/Me #/144901579 Shez (all versions) : CDCE1357017562 SideBar v1.0 for Windows : 000-19T-83189 Sidekick v2.0 for Windows : 32-4644 Simpson screensaver for Windows : KAW-64331-1262 or ZQW-33671-7329 Sins for sirds v1.1 for Windows : 1371078 SIO v1.45 16 port version for OS/2 : name/Joseph Urban #/10010205 Skatteprogram 94/95 v9.11 : 62-046-123456 Skullcheck v3.5 : (SKULLCHK.KEY) line #9/(Your name) Skylight v3.0 for Windows : XXX-201258-BMAX Smooth editor v0.99 : name/Me #/04.96.87.65.90.74 Smooth editor v1.02 : name/Me #/09.46.88.56.99.27 Snapgrafx v1.0 for Windows : 0901-0010-2844-6401 Snooper v3.30 : S112-2331 Softdesk core v7.02 unlocked : 07DCR3E 20337 Softdesk productivity tools v7.02 : 07DPP3E 20333 Softline pay CD : DFGD SCFE PQE EWX Software caroussel v6.02 and v6.03 : 30230940 Sourcer v5.10 : B309868-YTHT or S321851-GPER Sourcer v6.09 : SR309518-RMYR Spectre VR (CD-version) : #/7WWD7JM3 network#/BWRK29R8 Spinrite v3.1 : E0225808 SPSS v6.1 for Windows : 945639 Stacker v1.1 for DOS and OS/2 : SI1FH361225 Stacker v4.0 for DOS and Windows : U40AA079658 Stanford graphics v3.0b for Windows : 3000394 Stardate v1.0 for Windows : LSW-83838-9710 Star Trek for After Dark : KAW-64331-1262 or BSW-83011-2400 Startrek screen posters : SPW-06753-8181 Startrek:"TNG" screen saver : ZQW-33671-7329 Storage executive v2.0 for Windows NT : 0241980001010487 Streamliner v3.01 for Windows : SBW3001100640-184 Streets on a disk v6.0 : ST40088 Streetwizard v5.0 for Windows : 24451FD Studio 1 : 4682119240 Stuffit Deluxe 1.01 : A 09000 Styleline designer for MS Publisher : 28579-087-0113621 Super queue v3.1 for Windows : 798-310-00120 Superbase '95 v3.0 for Windows : 302010051293 or 353010020336 Superbase v2.0 for Windows : 152010055593 Supercharts v2.1g for Windows : OPQH93AG1YL3U4L Superfax v5.0 for Windows : 110957 Superfax v5.1 for Windows : 110957 Superjam v1.0 for Windows : 01-0426310A-000267 or 26310A-000267 Superprint v3.10 : 400-310-00793 Supervoice v2.0A for Windows : 001504 Supervoice v2.0b for windows : 002846 Suretrack project manager : 73013187 System commander v1.28 : Y302121-GJRM Sytos plus v1.4x : SPED-142SYD2-A14 o-o | T | °-° Take command : #/300711 code/8C7XFRNQ Tango PCB disk 1 : PP222X1 Tango PCB disk 2 : PP222X2 Tango PCB disk 3 : S140X1 Tango PCB disk 4 : S140X2 Tango PCB disk 5 : S140X3 TBBS v1.2 : 2310267 Telemate v4.12 : name/Me #/TM00F1C0155 Telemate v4.20 : name/Me #/TM220000703 Teles online for Windows : 900W657702504540 Teles.com v2.72 : 9302 6618 2159 1171 Telix v1.0/1.1x for Windows : W1902775-00945 Telix v1.01x for Windows : W1251600-65005 Telix v3.22 : A1058771-37419 The reader v4.01 : name/Mine key/AAAB Thedraw v4.62 : A460-004945 Timbuktu v1.01 Remote : 3120741165 Timbuktu v1.1 for DOS and Windows : 3130078-33EC Timbuktu v3.1 : 067-591-117-475 Time Organizer 2.0 : TMO-A011043-45 Time slips v5.0 for Windows : 5.10190000638 TKterm v0.15 : name/Me #/GCII233 Topproducer v5.0 for Windows : IS3H-081794-CAE0019264 Total access analyzer 2.02c /MSAccess : ST66162722 Total access speller 1 user /MSAccess : ST42204733 Total access statistics 1.0a /MSAccess: ST77008244 Totally twisted screensaver for Win : BII-00670-6681 Tradewars 2002 v2.0 : name/Me #/M4FE\C^JDH Trascan v5.x : 7E-08A7-81 Treboffer v1.0 : #/622 pw/Password Trip maker road atlas for Windows : TMD 100 100 10782 Tron v1.06 : name/Me! #/ST+44147 Troubleshooter v3.51 : 570166 True Forms 2.0 : TDA2008000217 True type effects : TEW31-13A2B-01F0KV Truespace animation v1.0 for Windows : 310001026188 Truespace v2.0 : 3 20 004 0030567 Turbocom/2 v2.0 : 102454202 Turbofast professional v4.2d : 23-HH845 Twinbridge v3.3 for Windows : TBCWSYS9409U-109307 Typestry v1.1 for Windows : 478821383 o-o | U | °-° UHS Reader v3.0 : name/Me! #/177371 UHS TSR v1.0 : name/Me! #/411321722622 Ultra compressor II archiver, r2-3 PRO: #/2650819804 code/2423 Ultra Paint : 51736 Uninstaller v2.0x for Windows : I2237533 Uninstaller v3.0 for Windows : VE18530027716 Universal VESA VBE v5.x : 10000-0991DA6B-00001 Unprotect/DOS 4.2a v646 : name/GaRY D. [UCF] #/00000000138 Usurper : name/Me bbs/XXX #/541315 o-o | V | °-° Value vision personal inv. mgr v2.0 : VV-W20-2551554 Ventura publisher NL v3.0 : RWNL000029 Versions/VB v1.1 for Windows : 110020000897 VFast v2.0 beta protocol driver : VFC0D6F2 Virtus VR : I20095616 Vis PRO C/C++ for OS/2 : VPP5015436 or VPP6019281 Vis PRO rexx gold edition for OS/2 : VPR1540827 Visio 3 : 117-287-033446 Visual reality for Windows : VRW02449 Visualage team v2.0 for Windows : 17H7503 Voice type control v2.0 for Windows : 16H9-740 Vueprint v4.0 for Windows : 9202446 VuePrint v4.1 : 9202444 VuePro 32 : 8342813 VX Rexx v2.0 for OS/2 : VXR2025401 o-o | W | °-° Walt Disney screensaver for Windows : DSW-30857-2768 Watcom SQL netware NLM for Windows : 31600455 Webauthor v1.0 for MS Word v6.0 /Win : 000-17N-22546 Wildcat BBS v4.0x : 95-1144 Win Poly Grab : WPG-01-002336 WinARJ : D3V|L H4CK3RZ/158544 Winbatch compiler v5.01j for Windows : #/QG017Q3U id/263324 Winbatch v5.0j for Windows : #/LG01FNT9 id/264747 Wincheckit 2.01 : A6-050152 Wincheckit Retail v2.0 : B6-019820 Wincom PRO v1.1 for Windows : 37Z59J Windows 95 (build 490) : 100-1208613 Windows 95 v4.00.950 : 24264-425-4287696-06468 Windows 95 v4.00.950 R2 : 875-7215850 Windows 95 v4.00.950 R3/R6 : 975-4769754 Windows 95 Setup : 35202-OEM-0187462-158883 Windows draw by Micrografx : DV1001LXX10827 Windows for workgroups v3.11 : 18016-010-0187302 Winfax PRO for Windows : 1321-2123-7176 Winfax PRO v3.0 for networks Windows : server: 1100-0955-4806 Winfax PRO v3.0 for networks Windows : user: 1152-7632-1646 Winfax PRO v4.0 for networks for Win : server/1101-3405-1357 Winfax PRO v4.0 for networks for Win : user/1154-2501-7095 WinGroove : name/BJG70109 #/ZAAAAAAA WinImage 2.10a : name/Registered Version #/8BDCDD26 Winmaster v1.5 for Windows : 4010625852V01 Win Play 3: name/ISO FreeWare #/100011-301000-5000 Winprobe v3.0 for Windows : 00065088DH9 Winprobe v3.1 for Windows : 01497186EH9 WinRAR 2.00b for Windows : D3V|L H4CK3RZ/7ECA8A997D16 Winsleuth gold plus v2.0 for Windows : 240-14256 Winsock for windows (all versions) : name/Me #/39323CC3 Winzip v5.6 for Windows : #/A04C3CCD name/Registered Version WinZip v6.0 : D3V|L H4CK3RZ/ADF515B6 Word crazy for Windows : 942-010-397 Wordperfect v5.2 for Windows : 1WP52XW0820311 Wordperfect v6.1 for Windows : 1WP61XW0166388 Wordscan v3.0 for Windows : BB3921343 Wordstar professional v7.0 : 29015146 o-o | X | °-° X-Men screensaver for Windows : AD3-00670-6681 Xargon : E20-1-3H XDiz v1.0e : name/SoNiC (R) [UCF] #/770 Xtree PRO v1.0 : 115611 Xtree v2.0 for Windows : X711080 Xtreenet v3.0 for Windows : N524420944 XWare xvision v5.6 for Windows : #/040005100D21819 key/18748F03DA00 o-o | Y | °-° Yamaha Visual Arranger for Windows 95 : 11wa00939875e YanKees and RedNecks : You!/G.!.$/21762 o-o | Z | °-° Zeno graphics superprint v3.10 : 400-310-00793 Zipchunker PRO v3.01 : #/ZCP0000000079 name/Steve Voss Zipzap v9.01 : 991 Zweckform winform PRO v1.0 for Win : WF0440 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 8 ) Codigos de paises =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Afghanistan-Afganistan: AF Albania: AL Algeria-Argelia: DZ American Samoa-Samoa Americana: AS Andorra: AD Angola: AO Anguilla-Anguila: AI Antarctica-Antartida: AQ Antigua y Barbuda: AG Argentina: AR Armenia: AM Aruba: AW Australia: AU Austria: AT Azerbaijan-Azerbaiyan: AZ Bahamas: BS Bahrain-Bahrein: BH Bangladesh: BD Barbados: BB Belgium-Belgica: BE Belize: BZ Benin: BJ Bermuda-Bermudas: BM Bhutan-Butan: BT Bolivia: BO Bosnia-Herzegovina: BA Botswana: BW Bouvet Island-Isla Bouvet: BV Brazil-Brasil: BR British Indian Ocean Territory Territorio Oceanico de las Indias Britanicas: IO British Virgin Islands Islas Virgenes Britanicas: VG Brunei: BN Bulgaria: BG Burkina Faso: BF Burma-Birmania: BU Burundi: BI Byelorussian Ssr (Bielorussia)-Bielorrusia: BY Canada CA Canton and Enderbury Islands Islas Canton y Enderbury: CT Cape Verde-Cabo Verde: CV Caroline Islands-Islas Carolina: FM Cayman Islands-Islas Caiman: KY Central African Republic Republica Centroafricana: CF Chad: TD Chile: CL China: CN Christmas Island-Isla Christmas: CX Cocos Islands-Islas Cocos: CC Columbia-Colombia: CO Commercial-Comercial: COM Comoros-Comores: KM Congo: CG Cook Islands-Islas Cook: CK Costa Rica: CR Croatia-Croacia: HR Cuba: CU Cyprus-Chipre: CY Czech.-Republica Checa: CZ Czechoslovakia-Checoslovaquia: CS Democratic Kampuchea-Kampuchea: KH Democratic People's Republic of Korea Corea del Norte: KP Democratic Yemen-Yemen del Sur: YD Denmark-Dinamarca: DK Djibouti-Djibuti: DJ Dominica: DM Dominican Republic-Republica Dominicana: DO Dronning Maud Land: NQ East Timor-Timor Oriental: TP Ecuador: EC Educational Institute Universidades Norteamericanas: EDU Egypt-Egipto: EG El Salvador: SV England-Inglaterra: GB Equatorial Guinea-Guinea Ecuatorial: GQ Eritrea: ER Estonia: EE Ethiopia-Etiopia: ET Faeroe Islands-Islas Feroe: FO Falkland Islands-Falkland / Islas Malvinas: FK Federal Republic of Germany Republica Federal de Alemania: DE Fiji: FJ Finland-Finlandia: FI France-Francia: FR French Guiana-Guayana Francesa: GF French Polynesia-Polinesia Francesa: PF French Southern Territories Territorios Franceses del Sur: TF Gabon: GA Gambia: GM Georgia: GG Ghana: GH Gibraltar: GI Greece-Grecia: GR Greenland-Groenlandia: GL Grenada-Granada: GD Guadeloupe-Guadalupe: GP Guam: GU Guatemala: GT Guinea: GN Guinea-Bisseu-Guinea-Bissau: GW Guyana: GY Haiti: HT Heard and Mc Donald Islands Heard y Mc Donald, Islas: HM Honduras: HN Hong Kong: HK Hungary-Hungria: HU Iceland-Islandia: IS India: IN Indonesia: ID International-Internacional: INT Iran: IR Iraq-Irak: IQ Ireland-Irlanda: IE Israel: IL Italy-Italia: IT Ivory Coast-Costa de Marfil: CI Jamaica: JM Japan-Japon: JP Johnston Island-Johnston, Isla: JT Jordan-Jordania: JO Kazakhstan-Kazakstan: KK Kenya: KE Kiribati: KI Kuwait: KW Kyrgyzstan (Kirgistan)-Kirgistan: KG Lao People's Democratic Republic-Laos: LA Latvia-Letonia: LV Lebanon-Libano: LB Lesotho: LS Liberia: LR Libyan Arab Jamahiriya-Libia: LY Liechtenstein: LI Lithuania-Lituania: LT Luxembourg-Luxemburgo: LU Macau-Macao: MO Madagascar: MG Malasia: MY Malawi: MW Maldives-Maldivas: MV Mali: ML Malta: MT Marshall Islands-Islas Marshall: MH Martinique-Martinica: MQ Mauritania: MR Mauritius-Mauricio: MU Mayotte: YT Mexico: MX Micronesia: FM Midway Islands-Midway, Islas: MI Moldova-Moldavia: MD Monaco: MC Mongolia: MN Montserrat: MS Morrocco-Marruecos: MA Mozambique: MZ Namibia: NA Napal-Nepal: NP Nato Field-Otan: NATO Nauru: NR Netherlands-Holanda: NL Netherlands Antilles-Antillas Holandesas: AN Network-Red: NET Neutral Zone-Zona Neutral: NT New Calidonia-Nueva Caledonia: NC New Zealand-Nueva Zelanda: NZ Nicaragua: NI Niger: NE Nigeria: NG Niue: NU Non-Profit Organization Organizacion sin animo de lucro: ORG Norfolk Island-Norfolk, Isla: NF Northern Mariana Islands Marianas del Norte, Islas: MP Norway-Noruega: NO Old Style Arpanet-Arpanet: ARPA Oman: OM Pacific Islands-Islas del Pacifico: PC Pakistan: PK Palau: PW Panama: PA Papua New Guinea-Papua Nueva Guinea: PG Paraguay: PY Peru: PE Philippines-Filipinas: PH Pitcairn Island-Pitcairn, Isla: PN Poland-Polonia: PL Portugal: PT Puerto Rico: PR Qatar: QA Republic of Korea-Corea del Sur: KR Reunion: RE Romania-Rumania: RO Russia-Rusia: RU Rwanda-Ruanda: RW Saint Lucia-Santa Lucia: LC Saint Vincent and the Grenadines San Vicente y las Granadinas: VC Samoa: WS San Marino: SM Sao Tome and Principe-Santo Tome y Principe: ST Saudi Arabia-Arabia Saudi: SA Senegal: SN Seychelles: SC Sierra Leone-Sierra Leona: SL Singapore-Singapur: SG Slovakia-Eslovaquia: SQ Slovenia-Eslovenia: SI Solomon Islands-Islas Salomon: SB Somalia: SO South Africa-Sudafrica: ZA South Georgia-Georgia del Sur: GS Spain-España: ES Sri Lanka: LK St. Helena-Santa Helena: SH St. Kitts Nevis Anguilla San Cristobal-Nevis-Anguila: KN St. Pierre and Miquelon Saint Pierre y Miquelon: PM Sudan: SD Suriname-Surinam: SR Svalbard and Jan Mayen Islands Svalbard y Jan Mayen, Islas: SJ Swaziland-Suazilandia: SZ Sweden-Suecia: SE Switzerland-Suiza: CH Syran Arab Republic-Siria: SY Taiwan: TW Tajikistan-Tayikistan: TJ Thailand-Tailandia: TH Togo: TG Tokelau: TK Tonga: TO Trinidad and Tobago-Trinidad y Tobago: TT Tunisia-Tunez: TN Turkey-Turquia: TR Turkmenistan-Turkmenistan: TM Turks and Caicos Islands Turks y Caicos, Islas: TC Tuvalu: TV Uganda: UG Ukrainian SSR-Ucrania: UA United Arab Emirates-Emiratos Arabes Unidos: AE United Kingdom-Reino Unido: UK United Republic of Cameroon-Camerun: CM United Republic of Tanzania-Tanzania: TZ United States-Estados Unidos: US United States Minor Outlying Islands Islas exteriores menores (Estados Unidos): UM United States Miscelaneous Pacific Islands Islas del Pacifico de los Estados Unidos: PU Unites States Virgin Islands-Islas Virgenes: VI Upper Volta-Alto Volta: HV Uruguay: UY US Government-Gobierno Norteamericano: GOV US Military-Organismo Militar Norteamericano: MIL USSR-URSS: SU Uzbekistan-Uzbequistan: UZ Vanuatu: VU Vatican City State-Ciudad del Vaticano: VA Venezuela: VE Vietnam: VN Wake Island-Wake, Isla: WK Wallis and Futuma Islands Wallis y Futuna, Islas: WF Western Sahara-Sahara Occidental: EH Yemen-Yemen del Norte: YE Yugoslavia: YU Zaire: ZR Zambia: ZM =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 9 ) Me conecte a Internet =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ..--:: Me conecte a Internet ::--.. (Solo para novatos) By Mr. Nuk3m Hace un tiempo, estaba navegando por internet y probando algunas cosas con el telnet en el cybercafe, y de pronto se me ocurrio: ¿ a ver que pasa con la direccion del server del cyber ? y probe haciendole un telnet a la direccion del server.... Bueno me aparecio el mensaje de bienvenida y a continuacion el famoso login y password... probe algunos logins y passwords defaults que habia visto por algunas e-zines y despues de un rato... Ssii... aunque no lo crean, el administrador HABIA DEJADO LA CUENTA DEL ROOT "SIN PASSWORD".. Entre sin pensarlo y al toque, me hice una cuenta con privilegios de root para no usar tanto la cuenta del root... La cuestion de esto es que no hice mucho en ese momento porque no sabia mucho del tema y no se me ocurria otra cosa que hacerme una cuenta para mi para futuras entradas... Anduvo todo muy bien hasta que a la tercera semana de haber creado mi cuenta cuando voy a ingresar me pone login incorrect, pruebo unas veces y nada...¿ que paso ? el administrador se dio cuenta o lo informaron de la intrusion y borro mi cuenta y le puso un password a la cuenta del root y asi finalizo esta primera experiencia con el server... Ansioso por volver a experimentar esta sensacion de no saber lo que vas a encontrar y si realmente vas a poder "hackear" es todo un desafio y que te motiva a seguir adelante.. lei unos articulos que hablaban de ingenieria social y los estudie por unos dias hasta que me decidi a empezar a recopilar informacion de cualquier manera y a cualquier costo. Entonces cuando ya tenia mas o menos todo organizado como para hacer mi primera ingenieria social, puse manos a la obra y llame a un chico que yo sabia que tenia acceso a Internet mediante ese proveedor y que por supuesto, sabia muy poco de computacion e internet... Esta es la conversacion mas o menos como recuerdo que fue... . Llamo a la casa del chico... ring... ring... ring.... . Atiende una mujer (supongo que era la madre) y dice.. (Victim) - " Hola " (Nuk3m) - " Hola, que tal. Esta fulanito ? " (Victim) - " Si ya te paso " (Fulanito) - " Hola " (Nuk3m) - " Ah si.. hola fulanito que tal. Soy xxx y queria saber si sabes el numero del telefono al cual te conectas a Internet, o sea, el numero del servidor. Porque a mi de dieron un numero pero no me anda. No se que pasa. Me podes decir a cual llamas vos ?? te lo agradeceria mucho... " (Fulanito) - " Eh... espera un poco... " (Nuk3m) - " Bueno... :) " . Despues de unos segundos vuelve al telefono y dice.. (Fulanito) - " Mira xxx yo me conecto usando el XXX-XXXXX fijate si te sirve y despues me contas.." (Nuk3m) - " Bueno.. muchas gracias... Chau..." . Cuelgo... click... Con la pequeña conversacion que tuve con "Fulanito" me entere de que el numero para concetarse al server y a internet era el XXXX-XXX.... pero ahora me faltaba una cuenta para poder entrar.... Buscando por Internet, encontre unos programitas que revelavan los passwords que estaban ocultos con los asteriscos (***) y me los bajes y despues le pase uno de estos programas a un amigo... Ese dia, el administrador estaba donde estan las maquinas en el Cybercafe y en ese entonces alguien lo llamo por telefono y yo que estaba a unos metros de el lo escuche decir los numeros de telefonos de todos los servers.... :))) y los anote en un .txt y me los lleve para mi casa para guardarlos en la base de datos... Despues de un tiempo, un poco largo de por cierto, este amigo me trajo del server una cuenta ordinaria y el archivo shadow y el passwd para ver si yo podia encontrar mas cuentas.... y que de por cierto encontre unas 5 mas... junto con la que me habia traido el, teniamos en total 6 cuentas del server para explorar tranquilos..... Decidimos un dia al tarde, tipo 8 o 9, probar algunas cuentas desde un lugar que no tenia ninguna relacion con nosotros (por las dudas, aunque el administrador es un TARADO). Iba todo tranquilo hasta que de repente se corto la comunicacion y el telefono despues no anduvo por algunos minutos... Despues probamos otra vez con la misma cuenta y estuvimos on-line otros 30 minutos y de nuevo se corto la comunicacion.. Intentamos por tercera vez y ... BOOOMBB... Le habian cambiado el password... Pero a mi no me importo una mierda porque tenia otras 5 cuentas para cagarlos.... Asi que intente con otra cuenta y Si... me conecte otra vez por algunos minutos... y otra vez me desconectaron por que se dieron cuenta en el server de que habia dos usuarios iguales. Uno el era el verdadero usuario y el otro era yo jeje.... y asi termino ese dia de hacking mas o menos feliz ;) Al dia siguiente me entero de que habian detectado la intrusion al server pero no sabian muy bien de quien o quienes se trataba. Pero el que se entero de la intrusion al server no fue el "adminsitrador" (si se le puede decir asi), sino un ex-colega que le informo a este del echo y ahi trato de cerrarme todas las conexiones que yo hacia.... ¿¿ Como termina esta historia ??? Muy simple, hasta el dia de hoy tengo unas de esas cuentas que pude desifrar y que de por ciero me han servido mucho.... ;))) Asi que ya saben... es cuestion de leer un poco, investigar, organizarse y de a poco tendremos lo que tanto buscamos.. una conexion mas. Nota Nuk3m: No doy a conocer las cuentas ni el server a las cuales pertencen por dos motivos: 1. La informacion que uno tiene es de uno y de nadie mas porque le costo mucho trabajo conseguirla, etc... y 2. Si todos usaramos esas cuentas, las cancelarian al poco tiempo. Todo esta en la lectura de esta y otras e-zines, asi que LEE antes de hacer algo. Nadie nacio sabiendo y todos tuvimos que aprender en algun momento. Ya sea a escribir, leer, caminar y porque no, Hackear.... =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 10 ) Publicidad, Links recomendados, etc =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .............................. Nuk3m's Links .............................. Nota Nuk3m: Las siguientes direcciones me las recomendaron, pero hasta ahora no las he visitado por una cuestion de tiempo. Asi que si quieren dense un vuelta por ellas y comenten que les parecio. Varios: ------- http://antisocial.tsx.org/ http://www.angelfire.com/sk/lellosansone/ http://www.dplanet.ch/users/crashbandy/ http://www2.sienanet.it/users/mrzero/ftp.html http://come.to/spaghettiphreakers Hack: ----- http://www.anonymizer.com http://people.frankfurt.netsurf.de/HellRider/index.htm http://www.ricariche.cjb.net/ http://32bit.bhs.com/default.asp http://www.piratez.com/index2.html http://www.admiral.ru/~geo/hacks/hack.html http://hackerworld.isthebe.st/ http://www.hackersclub.com/km/frontpage/index.html http://hackerzlair.org/Members/pROcon/main.html http://members.tripod.com/~DigiTaLGhosT/hacklinks.html http://www.hackingexposed.com/ http://www.2600.com/mindex.html Cardz: ------ http://www.artcom.de/~karo/hpa/cards/ Crack: ------ http://www.crackstore.com/index2.htm http://homepages.go.com/~germancorruptedkillas/down1.htm http://www.ewsnl.com/warez/ http://www.1234.co.kr/frontpage98/crack.htm http://flowers.pp.ru/rcz/n.shtml http://members.tripod.it/StoLenbYTe/ http://mirror.thecrack.net/index.htm http://servenet.net/users/welder/b.html Phreack: -------- http://web.tiscalinet.it/ricariche/ http://come.to/spaghettiphreakers ............................................................................ =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 11 ) BBS, sinonimo de la comunicacion =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- BBS, sinonimo de la comunicacion ---- -------- -- -- ------------- By Mr. Nuk3m -- --- ----- Hoy en dia todos estan re-metidos con Windows, Internet, juegos, etc. Pero alguien se acuerda de los famosos BBS's ? Que a mas de a uno seguro que le ha brindado horas y horas de diversion, informacion, etc.... Este es un articulo dedicado a aquellos que hicieron posible que muchos de nosotros tengamos un lugar para reunirnos e intercambiar informacion y tambien pasar el tiempo.. los BBS's junto con sus SysOp's. Desde hace muchos años antes de que existiera la Web, Internet y Windows, muchisimas personas se comunicaban entre si a traves de los BBS's (Bulletin Board Systems, algo asi como "Carteleras Electronicas") instalados en domicilios particulares. Desde alli se podian bajar archivos, participar de foros de discusion, chatear con otros usuarios y tambien con el SysOp (Operador del BBS). En nuestro pais los primeros BBS's aparecieron en los '80 y funcionaban sobre computadoras tipo Commodore 64 con modems de 300 o 1200 Bps. Sin embargo, la "Epoca de oro de los BBS's" tuvo lugar durante el periodo 1992-1996, epoca en la que llegaron a funcionar mas de 400 BBS en linea distintos. Hoy casi no hay, aunque quedan muy pocos funcionando, pero quienes los utilizan los consideran "imprescindibles". Que es un BBS... El funcionamiento de un bbs es muy simple: una computadora conectada a la linea del telefono mediante un modem que atiende automaticamente los llamados de los usuarios del sistema, quienes ingresan usando un programa llamado terminal de comunicacion como el que tiene windows (Hyperterminal). Cuando un usuario se comunica a un BBS por primera vez, debe ingresar sus datos personales y una palabra clave que usara para conectarse. Durante el primer ingreso, el usuario no se encuentra validado por el sistema y, por lo tanto, tendra algunas restricciones como no poder bajar archivos, etc. El nuevo usuario, una vez validado, podra usar por completo el BBS. Generalmente la validacion se realiza a travez de un llamado telefonico para confirmar los datos o bien cuando el usuario se conecte nuevamente ya estara validado. Con el auge de Internet, los BBS's han dejado de tener sentido para algunos usuarios. Es una lastima que ya no se vean los BBS como hace algunos años atras. Piensen en lo siguiente: ¿ Que pasa con la gente que tiene un modem y que por algun motivo no tiene acceso a Internet ? Se siente desconectados y desinformados y se pierden de vivir una linda experiencia como lo son los boards (bbs). Que de por cierto en su gran mayoria eran gratuitos. Salvo aquellos que eran mantenidos por empresas. Por ultimo quiero decirles que, como ya habran visto mas arriba, El LoCo fue uno de los SysOp's mas importantes de la Argentina junto con sus BBS's que puso cuando el estuvo on-line... algunos fueron: - Zone BBS - NeverLand - 777 Y para aquellos que todavia se preguntan ¿ quien es El LoCo ? El LoCo es Alejandro Szykula.. (Un Capo) que fue el SysOp mas famoso de la Argentina desde sus comienzos con los BBS's en el año 1994. Bueno hasta aca llegue y espero que les haya gustado y tengan en cuenta a los bbs. Se que en España los BBS's todavia hay unos cuantos que funcionan. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 12 ) KEVIN MITNICK: El "Hacker" mas famoso de la red =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .-< KEVIN MITNICK: El "Hacker" mas famoso de la red >-. "Robe centrales telefenicas enteras solo para divertirme" Kevin Mitnick. El "hacker" mas famoso de la Red habla de la ultima oleada de ataques informaticos: "No es un trabajo de autenticos hackers. Falta sofisticacion y elegancia. Cualquier estudiante podria haberlo hecho". NUEVA YORK.- El hombre calificado por la prensa de EEUU como el hacker mas buscado del planeta, Kevin Mitnick, esta en la calle. Segun las autoridades estadounidenses, es culpable de haber violado los sistemas informaticos de mas de 35 multinacionales durante 13 años, ocasionandoles perdidas de casi 291 millones de dolares. En su primera entrevista tras salir de la carcel, donde ha permanecido cinco años, ya tiene palabras para la ultima oleada de ataques a la Red: "Pudieron ser chicos buscando emociones fuertes los que provocaron el caos en Internet. O yuppies sin escrupulos para ganar en Bolsa, anticipandose a la caida de valores. Lo cierto es que no es un trabajo de autenticos hackers. Falta sofisticacion y elegancia. Cualquier estudiante podria haberlo hecho". Pregunta. ¿Que diferencia existe entre usted y esos hackers aficionados? Respuesta. Mi especialidad era copiar los masters originales de los telefonos moviles. Estaba fascinado por las telecomunicaciones y queria saber como funcionan por dentro. Incluso cuando robe centrales telefonicas enteras lo hice por divertirme y como un desafio intelectual, pero nunca para obtener un beneficio. He llegado a conseguir los numeros privados de las grandes estrellas de Hollywood, desde Bruce Springsteen a Madonna. Pude haber llamado incluso a Bill Clinton, pero no lo hice para no alertar a los servicios secretos. Pregunta. Segun las autoridades americanas, es usted el hacker mas peligroso de la historia. Respuesta. Eso es un mito, que comenzo con una serie de articulos firmados por John Markoff en la portada de The New York Times, llenos de acusaciones falsas y difamatorias, que mas tarde fueron desmentidas por las propias autoridades. Markoff me la tenia jurada porque me negue a colaborar en su libro y creo el mito de Kevin Mitnick, para transformar Takedown [su libro] en un bestseller. Pregunta. ¿Por que lo persiguen entonces las autoridades? Respuesta. Las autoridades aprovecharon la ocasion para transformarme en el chivo expiatorio de todos los hackers de la tierra. Y para autojustificarse, exageraron hasta lo inverosimil el daño que pude causar, que esta muy por debajo de los cientos de millones de dolares que el Gobierno me imputa. Pregunta. ¿Como han llegado a imputarle esa cifra? Respuesta. Le pidieron a las 35 compañias que les proporcionasen no tanto las cifras de daños reales que pude haber ocasionado, sino tambien los fondos utilizados por sus investigadores para elaborar el software que copie, un software que nunca vendi a nadie y del que no saque beneficio alguno. Mi supuesto robo no ha impedido a compañias como Motorola y Nec seguir cosechando enormes beneficios con su software. "Nunca fui capaz de robar dinero. Y eso que hoy podria ser multimillonario y vivir el resto de mis dias al sol del Caribe. Pero mi conciencia me lo impidio. Y estoy orgulloso de mi conciencia" Pregunta. ¿Por que nunca le saco provecho a su enorme talento informatico? Respuesta. Porque mis valores eticos me lo impiden. Unos valores que herede de mis padres, judios de origen ruso, que me educaron en el rigor moral. Nunca fui capaz de robar dinero. Y eso que hoy podria ser multimillonario y vivir el resto de mis dias al sol del Caribe. Pero mi conciencia me lo impidio. Y estoy orgulloso de mi conciencia. Pregunta. Segun algunas, sus motivaciones son tambien ideologicas. Respuesta. Confieso que no sentia remordimiento alguno cuando atacaba a las compañias monoliticas y riquisimas, dedicadas a extraer el maximo beneficio de sus clientes. Pero siempre actue en solitario y nunca forme parte de un grupo politico. Lo que me impulsaba era mas bien la euforia del descubrimiento cientifico, el placer mental que se experimenta cuando se resuelve un dificilisimo problema matemetico. Pregunta. ¿Es verdad que detras de los ultimos ciberataques hay un movimiento juvenil de contestacion y protesta parecido al de mayo del 68? Respuesta. Estoy totalmente convencido de ello. Internet es un nuevo medio de asociacion y de libertad de expresion y pensamiento, que sera utilizado cada vez mas como una aldea global, sobre todo en Europa, donde el activismo informßtico es mas vivo. Pregunta. ¿Que va a hacer ahora? Respuesta. Me gustaria encauzar mi talento para ayudar a la comunidad a defenderse de los hackers, pero el Gobierno me lo impide. Las restricciones impuestas por mi libertad vigilada, durante los proximos años, son increibles. No puedo encontrar trabajo ni siquiera en un MacDonalds. Ni matricularme en la Universidad o en sitio alguno donde haya computadoras. Tambien me estan prohibidos los telefonos moviles y las agendas electronicas. Ya comienzo a tener crisis de abstinencia informatica. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 13 ) Glosario de Terminos Tecnicos =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- .s$ Glosario de Terminos Tecnicos $s. By Mr. Nuk3m Como bien dice el titulo de este articulo, a continuacion un glosario de aquellos terminos mas usados en el ambito de la informatica e Internet. ADMINISTRADOR DE UNA WEB: Operador del sistema de un sitio Web. ANCHO DE BANDA: Medida de capacidad de comunicacion o velocidad de transmision de datos de un circuito o canal. ARRASTRAR Y COLOCAR: Concepto de GUI (Interfaz grafica de usuario) que permite seleccionar un objeto de la pantalla y pasarlo como entrada a otro objeto (icono). BACKBONE: Red de banda ancha para conexiones entre conmutadores. BANDA AMPLIA: Ruta/circuito de comunicaciones de capacidad media. Suele indicar una velocidad de 64000 bps a 1544 Mbps. BANDA ANCHA: Ruta/circuito de comunicaciones de gran capacidad. Normalmente implica una velocidad superior a 1544 Mbps. BASE DE DATOS: Conjunto de informacion para varios usuarios. Suele admitir la seleccion de acceso aleatorio y multiples "vistas" o niveles de abstraccion de los datos subyacentes. BAUDIO (termino antiguo que se esta reemplazando por bps - bits por segundo): Numero de elementos de señalizacion que pueden transmitirse por segundo en un circuito. BIT: Cantidad de informacion mas pequeña que puede transmitirse. Una combinacion de bits puede indicar un caracter alfabetico, un digito, una señal, un modificador u otras funciones. BOT: "bot" es el termino coloquial para programas que escuchan una conversacion y responden en un canal IRC. BPS: Bits por segundo. Medida de velocidad de un modem. BBS (Sistema de boletin electronico): Boletin electronico en el que los usuarios pueden dejar mensajes. En muchos BBS es necesario ser miembro de ellos. CANAL: Via (canalizacion) de telecomunicaciones con una determinada capacidad (velocidad) entre dos ubicaciones de una red. CAPACIDAD: La mayor velocidad de transmision posible (fiable) que puede darse en un canal, un circuito o una pieza de equipo. La capacidad puede expresarse como la velocidad bruta o como el rendimiento neto. CATV: Television por cable - Television por antena comunitaria. Un sistema de television comunitaria, servida por cable y conectada a una antena (o grupo de antenas) comun. La legislacion federal de EE.UU. de 1994 permite a los proveedores de CATV competir por servicios telefonicos (en la superautopista de la informacion). CERN: European Laboratory for Particle Physics, el sitio donde se celebro la primera conferencia sobre World Wide Web y considerado el lugar de nacimiento de la tecnologia de WWW. El trabajo sobre la tecnologia de WWW y la elaboracion de estandares se ha trasladado a la World Wide Web Organization (W3O, en w3.org). http://www.cern.ch/ CGI (Interfaz de gateway comun): Interfaz para programadores que crean archivos de comandos o aplicaciones que se ejecutan internamente en un servidor de Web. Estos archivos de comandos pueden generar texto y otros tipos de datos de forma inmediata, en respuesta a una entrada del usuario, o bien tomando la informacion de una base de datos. CIBERESPACIO: Termino utilizado originalmente en la novela "Neuromante", de Willian Gibson, sobre redes de equipos informaticos en el cerebro. Se refiere al campo colectivo de la comunicacion asistida mediante equipos informaticos. COMPRESION/DESCOMPRESION: Metodo para cifrar/descifrar señales que permite transmitir (o almacenar) mas informacion de la que, de otro modo, podria aceptar el soporte. CONEXION: Ruta de comunicaciones dedicada punto a punto o conmutada. CONVERSACION: Termino que se utiliza para describir una conferencia en tiempo real. Las salas de conversaciones IRC, "WebChat", prodigy y aol son ejemplos de "conversacion". CUELLO DE BOTELLA: Limite en la capacidad del sistema que puede reducir el trafico en condiciones de sobrecarga. DIGITAL: Dispositivo o metodo que utiliza variaciones discretas en voltaje, frecuencia, amplitud, ubicacion, etc. para cifrar, procesar o transportar señales binarias (0 o 1) para datos informaticos, sonido, video u otra informacion. DIRECCION: Codigo exclusivo asignado a la ubicacion de un archivo almacenado, un dispositivo en un sistema o red, o cualquier origen de datos de una red. DIRECCION IP: Direccion de 32 bits del protocolo Internet asignada a un host. La direccion IP tiene un componente del host y un componente de la red. DIRECCION URL (Uniform Resource Locator): Formato de las direcciones de sitios que muestra el nombre del servidor en el que se almacenan los archivos del sitio, la ruta de acceso al directorio del archivo y su nombre. EXPLORADOR: Programa de aplicacion que proporciona una interfaz grafica interactiva para buscar localizar, ver y administrar la informacion a traves de una red. FAQ (Frecuently Ask Questions): Preguntas mas frecuentes. FINGER: Protocolo que permite localizar informacion sobre los usuarios en la red del host. Algunas redes no permiten su uso desde un sistema externo, y otras no lo permiten en absoluto. "FLAME WAR": Apasionado debate en linea en el que no se incluye la politica. FTP (Protocolo de transferencia de archivos): Protocolo utilizado para transferir archivos a traves de una amplia variedad de sistemas. GATEWAY : Conversor de protocolos. Nodo especifico de la aplicacion que conecta redes que de otra forma serian incompatibles. Convierte codigos de datos y protocolos de transmision que permiten la interoperatividad. GIF: Formato de intercambio de graficos. GIF es un formato estandar para archivos de imagenes en WWW. El formato de archivos GIF es muy comun, ya que utiliza un metodo de compresion para reducir los archivos. GOPHER: Programa de busqueda y exploracion de bases de datos publicas en Internet. GUI (Graphic User Interfase): Interfaz grafica de usuario. HIPERMEDIO: Metodo para presentar informacion en unidades discretas, o nodos, que estan conectados mediante vinculos. La informacion puede presentarse utilizando distintos medios, como documentacion ejecutable, de texto, graficos, audio, video, animacion o imagen. HIPERTEXTO: Describe un tipo de funcionalidad de exploracion en linea interactiva. Los vinculos (direcciones URL) incrustados en palabras o frases permiten al usuario seleccionar texto (p. ej. haciendo clic con el mouse) y mostrar inmediatamente informacion relacionada y material multimedia. HIPERVINCULO: Conexiones entre una informacion y otra. HTML (Hypertext Markup Language): Lenguaje de "etiquetas" en el que se asigna formato a las paginas de Web y se distribuye la informacion. HTTP (Protocolo de transferencia de hipertexto): Metodo mediante el que se transfieren documentos desde el sistema host o servidor a los exploradores y usuarios individuales. IP (Protocolo Internet): Define la unidad de informacion enviada entre sistemas, que proporciona un servicio de entrega de paquetes basico. ISDN (Red digital de servicios integrados) (Tambien llamada RDSI) Juego de normas de la transmision a gran velocidad de informacion simultanea de voz, datos e informacion a traves de menos canales de los que serian necesarios de otro modo, mediante el uso de la señalizacion fuera de banda. JPEG: Joint Photographic Experts Group. Se trata de un conocido metodo para comprimir imagenes fotograficas. Muchos exploradores del Web aceptan imagenes JPEG como el formato de archivo estandar para la visualizacion. LINEA DEDICADA: Linea privada alquilada a una empresa de telecomunicaciones. LISTSERV: "ListServ" es un programa gratuito para automatizar el mantenimiento y la entrega de listas de correo electronico. Hay listas de muchos temas; algunas son "abiertas" (cualquier persona de la lista puede enviar un mensaje a toda la lista, como en una conversacion) y otras "cerradas" (solo determinadas personas pueden enviar informacion a ellas). SITIO: Ubicacion de la direccion de un servidor en Internet. MODEM (Modulador-Desmodulador): Conexion del equipo del usuario final que permite transmitir datos digitales a traves de dispositivos de transmision analogicos, como las lineas telefonicas. MPEG: Moving Pictures Expert Group. Se trata de un modo estandar de comprimir video de imagenes en movimiento. MULTIMEDIA: Sistemas informaticos que integran audio, video y datos. NCSA: El National Center for Supercomputing Applications es una institucion de formacion. El explorador de Web Mosaic se creo aqui. http://www.ncsa.uiuc.edu/ PAGINA: Documento de hipermedia en el Web. PKZIP/PKUNZIP: PKZIP es una utilidad compartida de compresion para PCs. Para descomprimir estos archivos se utiliza un programa llamado PKUNZIP. "POP" (punto de presencia): Conexion de acceso telefonico de los proveedores de servicios de Internet para usuarios de modem, que se utiliza principalmente para describir conexiones locales, de forma que los usuarios no tengan que hacer llamadas de larga distancia. Por ejemplo, un determinado ISP puede tener su base en San Jose, pero tener "POP" en Los Angeles y Nueva York. PORTADORA: Proveedor de telecomunicaciones que posee su propio equipo de conmutacion de redes. PORTADORA COMUN: (Empresa de telecomunicaciones) Portadora que sirve al publico (o a un segmento de el) de forma indiscriminada (es decir, sin tener en cuenta la identidad del cliente y sin discriminacion indebida). PPP (Protocolo punto a punto): Conexion a Internet de acceso telefonico que utiliza el protocolo TCP/IP; algo mas rapido que SLIP. PRINCIPAL: Primera pagina de un sitio, que contiene informacion de identificacion y un indice. PRIVILEGIOS DE ACCESO: Privilegio para tener acceso a carpetas y hacer cambios en ellas. PUNTERO: Direccion URL incrustada en los datos que especifica su ubicacion en otro registro o archivo. El hipervinculo es un ejemplo de puntero. RED: Sistema de elementos interrelacionados que se conectan mediante un vinculo dedicado o conmutado para proporcionar una comunicacion local o remota (de voz, video, datos, etc.) y facilitar el intercambio de informacion entre usuarios con intereses comunes. ROBOT: Los "Robots" suelen mencionarse en el contexto de WWW como programas que se mueven por el Web buscando informacion; por ejemplo, para crear indices en dispositivos de busqueda o localizar errores en sitios Web o funciones similares. SEGURIDAD: Mecanismos de control que evitan el uso no autorizado de recursos. SEÑAL: Cambio de estado orientado a eventos (p. ej. un tono, cambio de frecuencia, valor binario, alarma, mensaje, etc.). SERVIDOR: En una red, estacion host de datos que proporciona servicios a otras estaciones. SERVIDOR DE ARCHIVOS: Sistema informatico que permite a usuarios remotos (clientes) tener acceso a archivos. SGML: Standard Generalized Markup Language. Lenguaje para la descripcion de otros lenguajes de documentos estructurales basados en etiquetas. Por ejemplo, el HTML esta definido mediante el SGML. SLIP (Protocolo Internet de linea en serie): Conexion de acceso telefonico a Internet que utiliza el protocolo TCP/IP. SOPORTE: Formato de distribucion y almacenamiento de informacion (p. ej. cinta de video, disquete, disco optico, impresora, etc.). Una ampliacion de la capacidad de comunicacion de la humanidad. Es el mensaje. SSL: Nivel de socket de seguridad. Protocolo que utiliza Netscape para proporcionar transacciones seguras a traves de la red. SUPERAUTOPISTA DE LA INFORMACION Una palabra de moda (vease tambien media, hiper...). Hace referencia al plan de la administracion de Clinton/Gore para liberalizar los servicios de comunicacion, permitiendo la integracion de todos los aspectos de Internet, CATV, telefono, empresas, ocio, proveedores de informacion, educacion, etc. TCP/IP: Protocolo de control de transmisiones/Protocolo Internet. Es el protocolo estandar de comunicaciones en red utilizado para conectar sistemas informaticos a traves de Internet. TELNET: Programa de red que ofrece una forma de conectarse y trabajar desde otro equipo. Al conectarse a otro sistema, los usuarios pueden tener acceso a servicios de Internet que quizas no tengan en sus propios equipos. TIEMPO REAL: Rapida transmision y proceso de datos orientados a eventos y transacciones a medida que se producen, en contraposicion a almacenarse y retransmitirse o procesarse por lotes. TRANSFERIR: Trasladar programas o datos de equipos informaticos a dispositivos conectados, normalmente de servidores a PCs. USENET (USEer NETwork): Grupos de debate de Internet. Uno de los primeros formatos de "correo electronico colectivo". Actualmente hay unos 10000 grupos de debate diferentes. VINCULO DE COMUNICACIONES: Sistema de equipo y programas que conecta a dos usuarios finales. VRML - Virtual Reality Modeling Language: Lenguaje de "etiquetas" en el que las paginas de Web estan formateadas para permitir graficos en 3D y la exploracion espacial interactiva. WAIS (Wide Area Information Server): Potente sistema para buscar grandes cantidades de informacion muy rapidamente en Internet. WAV: "wav" es la extension que utilizan algunos archivos de audio. WINZIP: Winzip es un utilidad de compresion que permite a los usuarios de Windows 95, 3.1 y NT reducir el tamaño de sus archivos para transferirlos mas rapidamente a traves de Internet. Esta utilidad tambien descomprime archivos comprimidos con formatos PKZIP o TAR. http://www.winzip.com/winzip/ WWW (World Wide Web): Sistema de Internet para vincular mediante hipertexto en todo el mundo documentos multimedia, permitiendo un facil acceso, totalmente independiente de la ubicacion fisica, a la informacion comun entre documentos. ZIP: Al "comprimir" (es decir, hacer una copia de menor tamaño, pero igual) un archivo mediante "pkzip", el archivo resultante se denomina un archivo "zip". Suele terminar con la extension ".zip". Todo esto ya es mas que conocido, pero aun hay personas que no saben mucho de los terminos mas usados... aunque creo que le faltarian algunos mas.. pero bueno, estos son los mas importantes. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 14 ) ¿ Miedo a los articulos o fiaca ? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ¿ Miedo a los articulos o fiaca ? By Mr. Nuk3m Este articulo no tiene que ver con el hack directamente, es una pequeña reflexion de porque hay que escribir un articulo en cualquier e-zine. Esto viene a raiz de cuando estas hablando con alquien (principalmente en el irc, chat o como quieras llamarlo), primero te cuenta que hice esto y aquello y que acaba de hackear un server, asi y que..., y vos despues pensas "Wow, como lo habra echo..." y le decis, "porque no escribis un articulo y lo envias a una e-zine", pero te dice todo asustado: Si, pero no me veo capaz, bla, bla, bla... y asi de esa forma otras personas se pierden la oportunidad de aprender un poco mas. Por eso a continuacion una serie de puntos por los cuales hay que escribir un articulo aunque sea una vez. Hay van: 1 - Para escribir sobre alguna cosa tenes que buscar info y leer mucho, con esto aprenderas y avanzaras en tus conocimientos. 2 - Si traducis textos en ingles, mejoraras tu ingles, algo necesario en estos dias. 3 - Escribiendo articulos ayudaras a las e-zines para que sigan mejorando. 4 - Poco a poco, cuando la gente vaya leyendo tus articulos, sabran de tu existencia y te iras abriendo paso en el underground y haciendo nuevos amigos y colegas. 5 - Podes pensar que tu articulo sera muy basico pero siempre hay alguien que sabe menos que vos. 6 - No hay articulos malos, sino poco trabajados :) 7 - Cuando la gente vea tus trabajos, te pediran consejo e incluso ofertas de entrar en algun grupo de hack. 8 - La proliferacion de articulos en nuestra lengua, refleja el estado del underground de habla hispana. 9 - Siempre hay sobre algo que escribir, ya sea algo nuevo o mejorar uno ya escrito. 10 - Tendras algo que contar a tus amigos, novia!! y sobre todo, a tus nietos ;-) 11 - Escribir no mata, quizas canse un poco. Pero quien te dice que algun dia seras recompensado con un poco de fama y gloria ;) Bueno, pues estos son los 11 puntos por lo que hay que contribuir en la mejora del underground de habla hispana. Pues ya sabes a ESCRIBIR ARTICULOS :)) o ayuda a quellas personas que hacen una e-zine con tus articulos. Estoy seguro que lo van a apreciar. Les cuento algo, yo antes no escribia nada de nada. Ni un solo caracter para un articulo. Mirenme ahora, estoy escribiendo todo lo que puedo... Bueno ya saben, ESCRIBAN y no tengan miedo al que diran de sus articulos. Siempre lo pueden mejorar... =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 15 ) Manifiesto de un hacker novato =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Manifiesto de un hacker novato by Silicon Dragon Internet libre En la vida de todo hacker siempre existe un periodo, a veces largo, en el cual uno es un autentico novato para las cosas de internet. Que nadie diga que no ha pasado un tiempo mas o menos largo en el cual el/ella a sido asi. Entrar en el mundo del Underground suele resultar dificil, no conoces a nadie y no sabes donde buscar informacion que te permita ampliar tus conocimientos sobre tecnicas y en fin todas esas cosas que hacen de internet un mundo interesante y divertido. Los pasos que la mayoria de los actuales hackers (al menos los que yo conozco) suelen ser similares, a pesar de que entre ellos no se parezcan excepto por el hecho de gustarles nuestro mundo, y digo nuestro mundo porque internet es el mundo del hacker, donde nos relacionamos, pasamos buenos ratos, adquirimos conocimientos y hacemos nuevas amistades que nos permiten seguir adelante en el mundo. Por otro lado vosotros/nosotros/ellos, los hackers, con mas o menos conocimientos, somos un grupo que vivimos aqui, en internet, y estamos acostumbrados a movernos por este mundo, aqui somos los reyes en la sombra, los maestros del bit, los luchadores por la libertad que luchan por sobrevivir ante un concepto mal creado de que somos "criminales sin escrupulos"; FALSO!!!, tenemos nuestra etica. Grandes compañias y grupos de intereses nos atacan e intentan aniquilarnos utilizando para ello arcaicas leyes y concepciones sobre el bien y el mal, pero ellos no se dan cuenta que nosotros, la tribu del ciberespacio, tenemos el poder en nuestras manos; o mas correctamente en nuestras mentes, libres y claras, nuestros dedos tecleando secuencias nunca soñadas por ellos, los guardianes de la moral publica y el estado de derecho; y nuestras computadoras, maquinas con las que entramos en este fascinate mundo de internet, mundo de electrones corriendo por chips de silicio y aluminio, mundo de libertad y conocimiento. INTERNET. Todo aquel que llega o intenta llegar a ser un hacker, !A vivir en el maravilloso mundo de internet! Sabe que no tiene que seguir unas normas, pero comparte con el resto de la tribu un codigo por el que se rige y que lo diferencia de los lamers, que sin tener ni idea de nada se las dan de sabios perjudicandonos al resto y dando razones a ciertos sectores para criticarnos, ponernos como ejemplos de mal, lanzando sobre los menos protegidos sus perros de presa en forma de actuaciones judiciales, redadas y como no llevandonos a juicio por socavar la economia de tal o cual compañia a la que "nosotros" hemos perjudicado. !!!!Nosotros!!!! que nuestro afan no es enrriquezernos como ellos hacen. !Tienen miedo! de que les quitemos su maravilloso dinero, sus estructuras organizadas, su mundo gris y falto de libertad. !!!!Nosotros!!!! que nos guian un afan de superacion, de busqueda de conocimientos, !No para enrriquezernos! como hace nuestra sociedad decrepita sino para aumnetar nuestros conocimientos nuestra mente sin fronteras nuestra libertad. ¡¡¡¡Nosotros!!!! que buscamos la libertad, que defendemos causas justas, que no molestamos, dañamos, matamos..... ¡¡¡¡Nosotros!!!! esa tribu de malditos que nos temen por nuestro poder, por las ideas que afirmamos, por nuestra libertad. Nosotros los hackers. Pero volvamos al tema que nos ocupa en este articulo. Me acuerdo de cierto amigo de electrones, ¿No adivinan quien es?, al cual lo podemos llamar el dragoncito, je je je ya se imaginan quien ;) . Bueno pues ese amigo ,el dragoncito, era un chico, lo siento pero eso es innegable :)))) , que a muy tierna edad y por los azares de la vida termino un verano delante de una computadora, una 8086 o 80186, corria el año 85 (¿¿¿hace tiempo eh???) y sin nada por hacer, con mucho tiempo libre y algo de curiosidad, bueno lo admito mucha :))). Bueno, ese chico aprendio lo que podria llamarse los fundamentos de la informatica y la programacion (el BASIC ¿Vamos o crees que empezo con ensamblador y binario?) el tiempo paso, mas o menos rapido, y hacia el año 1995-96 empezo lo que la mayoria de la gente llamaria inicio de una "carrera delictiva" o "fue por el mal camino" o "las malas compañias" o "le comieron la cabeza"...... vamos tonterias. Yo diria que inicio su vida en el fascinante mundo de internet donde todo es posible y se haya al alcance de nuestros programitas y nuestras mentes inquietas je je o ustedes que leen esto no creen en esta verdad. El hecho de tener una conexion a INTERNET es una ventaja que obviamente todos los que esten leyendo esto tienen, a los demas les cobro derechos de autor :)))). Fue en ese momento, cuando el pequeño dragon optuvo la conexión, cuando pudo continuar sus andanzas por el mundo de los ordenadores, los cuales havia abandonado, porque mira que los libros de informatica suelen ser aburridos uffffff, y ya que habia oido algo hacerca de esos "peligrosos criminales" llamados hackers :))))))), ¿A que no sabes que descubrio? "hey.. si no son ni criminales, ni terroristas, ni locos, ni ladrones, son gente normal como yo!!!!" en fin la mascara con la que la sociedad nos cubre afecta a todos... Pues bien, el amigo dragoncito, como asi se llamaba ;) creo XDD, empezo a descubrir paginas en internet que le daban cierta informacion, truquitos, solo a nivel educativo :)) en fin lo que le encaminaria hacia las tinieblas( o en mi opinion hacia la luz, en INTERNET, es decir al dominio de la web, traspaso de ficheros, telnet, port spoofing, bugs de seguridad, passwords, root...) que le permitirian de una manera no dañina y recalco esto no dañina aprovechar todos los recursos que encontro en este mundo de electrones que corre a traves de lineas telefonicas, hondas herzianas y cables de fibra de vidrio a velocidades increibles, aumentando sus conocimientos hasta poder al fin, empezar a conocer este nuestro mundo donde todos somos maestros y alumnos, nadie sabe todo y de todos y en el que cualquiera (incluso los lamers) puede enseñar algo (en el caso de los lamers lo que no debes hacer XDDDD). Una de las primeras cosas que el y todo aspirante a hacker suelen hacer es leer todo lo posible sobre este tema a lo largo de la red, como el hizo, es en el unico sitio donde se encontraria la verdad sobre tecnicas, estilos y codigos sobre nuestro/vuestro entretenimiento/trabajo/vida como hackers, como ser que se desplaza a traves de corrientes de datos sin que nadie pueda ni detectarlo ni pararlo, ni atacarle ni dominarlo. Lo mas dificil (pero al alcance de todos) fue encontrar la primera pagina web sobre este tema, ya que no suelen estar en la guia telefonica para que cualquiera llame y pregunte como ser un hacker (los lamers intentan algo asi XDDD) de ahi en adelante, pudo llegar a encontrar links (enlaces burros!!!) a otras paginas y asi entrar en el entramado de los conocimientos que se guardan en INTERNET, el mundo de electrones representados por conjuntos de bits el cual con nuestra "magia" dominamos y con esta energia creamos un armagedon de poder y un nuevo mundo a nuestro antojo (que filosofico me pongo a veces :)))). Otra de las cosas que le facilitaron el integrarse en la "tribu" fueron unos conocimientos minimos sobre programacion, :(( si se que los libros de programacion suelen ser aburridos, lentos y estupidos, pero hay que joderse y aprender algo ya que es fundamental para ser un hacker, si no conformate con ser un cracker (lo cual no es necesariamente malo), bajate alguno de sus ficheros y rompe todo por donde pases como hizo Atila con los Romanos (el rey de los Hunos, tribu aliada de Cartago pedazo de bestia no es un hacker famoso :))) pero piensa que: 1- Va en contra de nuestra etica, 2- Realmente cualquiera puede hacer eso, es realmente facil bajarse archivos de internet; 3- Eso no es propio de un hacker sino de un cracker (no son peores pero tienen una concepcion diferente ). Y finalmente otra de las cosas que le ayudaron fueron conocer a unos amigos (hackers no iban a ser cocineros, con todo mis respetos a estos ultimos :))))) que le explicaron algunas cosas y le enseñaron donde localizar otras, la verdad es que el dragoncito es el amigo que todos quieren, le gustaba y le gusta aprender y suele ser simpatico (Lo siento pero su abuela no esta aqui para echarle flores :))). Por otro lado, el IRC fue y es un buen sitio donde pedir ayuda, no siempre (o casi nunca lo reconozco) le contestaron (en cuanto le conocieron si, es que hay mucho IRC-COP ) pero de vez en cuando si. De paso saludos para los del canal #hackers del IRC-hispano (donde normalmente se habla de todo menos de la tematica del hacker, aunque te lo pasas bien je je je y a veces te ayudan, lo digo por esperiencia son buena gente, lo malo es cuando se aburren y les da por nukear a alguien ;) ). Pero bueno sigamos con la fucking historia... El hecho de aprender y buscar ayuda, es si no el unico, si el mejor camino para adentrarse en este mundo. La ayuda siempre viene bien porque me acuerdo de lo que le paso en su primer telnet, llamando a un numero aleatorio que se le ocurrio termino dando con una PC que cada vez que le preguntaba algo le daba su direccion de ip (la del dragocillo) o otra vez que mando un e-mail falso a un amigo y resulta que el servidor al que se habia conectado escribio el nombre "supuesto" el remitente a continuacion del real (a tomar por culo el anonimato) todo eso le paso por no consultar a los que si que sabian eso lo nuestro es una busqueda de informacion y que mejor forma de distribuirla que compartirla entre nosotros que somos los mas interesados en que la informacion y la libertad se mantenga en INTERNET. La libertad de los hackers es fundamental para el mantenimiento de la libertad en INTERNET. No solo entre la cultura underground sino de todos los usuarios que utilizan este medio. Esta es la razon por lo que el pequeño dragoncito se metio en este mundo, por la que los hackers siguen luchando a pesar de que constantemente se les castiga desde todos los angulos de la sociedad. El nuestro es un trabajo vital y a mi/nosotros me/nos gusta nuestra libertad que no cambiaria por nada. En el camino para convertirse en hackers muchos pierden el rumbo, quizas es un camino dificil, pero merece la pena. No ir por falsos atajos se llega antes al final. Como dijo un famoso poeta Español "Caminante no hay camino, el camino se hace al andar". (Soy un chico culto ;) ). No somos hackers por tener los conocimientos lo somos al investigar; al buscar nuevos conocimientos, cuando ayudamos al nuevo a conocer el mundo, a buscar conocimientos, a escapar del mal, a respetar el codigo; al ampliar la libertad en INTERNET al luchar por ella contra los que intentan socavarla; al caminar; AL HACKEAR. Hemos nacido para ello somos los paladines de una causa justa, nadie debe cuartar nuestras libertades somos los dragones del amanecer de una nueva epoca, nos pueden llamar malvados pero el tiempo demostrara que hemos sido los cruzados de la causa de la libertad en INTERNET, vigilaremos a los poderes y no les dejaremos actuar contra nuestra libertad contra nosotros, al fin y al cabo, sabemos quienes somos y que queremos,la busqueda del conocimiento no sera parada asi que amigos, veteranos y novatos no se rindan a pesar de los surcos de los espacios virtuales, navegemos por los mares del conocimiento utilizemos nuestras garras de electrones nuestros cerebros de aluminio y silicio, y hagamos aquello que nos da la libertad y para lo que hemos nacido: SOMOS HACKERS Y AQUI ESTAMOS.... y que lo sepan nuestros enemigos saldremos victoriosos de las batallas, el futuro los odiara y nos aclamara por nuestra libertad entre bites y silicio. Debo dar las gracias a mucha gente que me ha ayudado a entrar en este fascinante mundo, ups, digo ayudaron al dragoncito a entrar ;), algunos de una forma activa como Bisho al cual le, otro ups el dragoncito, le debe mucho. Otros escribiendo articulos o manteniendo paginas donde localizar los conocimientos oscuros (je je je me he rayado) como: J.J.F./ Hackers Team, Wakanda, Van Hackez, Saqueadores...... y muchos otros que si los pusiera en este articulo ocuparian Mb enteros y para los que brindo mi mayor apollo ya que sin ellos nuestro mundo no seria el mismo INTERNET no seria el mundo de libertad que es y nosotros, la trivu, no tendriamos donde habitar oscurecidos por los poderes malignos (ahora si que me he rayado) que intentan doblegarnos AUNQUE NUNKA LO LOGRARAN porque soy un hacker (novato eso si) y mi trivu me protegera y me ayudara a defenderme, tenemos el poder y sabemos como usarlo para conservar nuestra/vuestra libertad, SOMOS HACKERS, SOMOS LIBRES. La distribucion de este texto es completamente libre salvo que sea usado por fuerzas de seguridad (en cuyo caso deberan de pagar por su uso una cantidad no inferior a $1,000,000.00) o para su uso en cualquier tipo de juicios y ese tipo de cosas (si no lo tienes claro preguntame XDDD) en cuyo caso los derechos del autor (yo) son los mismos que en el caso de la policia. Para los demas con meros fines educativos y tal es gratis :))). by Silicon Dragon dragonsilicio@bigfoot.com 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 # mr_nuk3m@usa.net # 314u.none.com.ar # mQGiBDip5K8RBADaudodSH9gjPSPyegvNs9DyHyZwCB1YZq/FTrL/bN8IQn4cVrF i9OI6X2YFfpYhxGr6mMi2VrWAoOrUkbubDUWfH3xYOUDMhpphXypYSvKsVpbgA4C bWYx9GBJc/Cf2CO+X12OrtJcWaZxJuQVcD0KDw5UZ4zMbl1xNtQ9qX/XuwCg/11y 3oS11WYeqEQ6xadEwKEjYpMD/33mHAb6/Lk72AAYnXEcl6Ra9hrEcDPOdjQsvKyK bka2pRFEFfVxV9OelGaaxy/8q4z2TXQ+ZqF6/DfUddrrw/vBGcSZfBl237YJqGtf IFL4ffIfITlRFcUezHC/0RJEd/XfxsKmSTndziFLXflaUz/4BOOAqgh7HpMwQGN9 UPgBA/9Nls9WZNfNw3GRay3UPO/QgwszuPbRIVnzeKuzPK/UlwGV/AcFoqpMcdlw Cf5cHLBdTZ9rLhoPHLlZgKjMu4uW22Udd92rSxcT2fEthTFUwJjwGCTopT4hH9E9 EPYkLYkz5RTgNP/MSOhdKDQvM07fDWg0sKbl4ZaO4mmGCh1UurQcTXIuIE51azNt IDxtcl9udWszbUB1c2EubmV0PokATgQQEQIADgUCOKnkrwQLAwIBAhkBAAoJENjz NdjgKzhgVZcAn1KnSPVRJ1a0uPej22svtdkYorkTAKDjbwf/yy5EkCUjvbbJvPfF ejcqD7kCDQQ4qeSxEAgA9kJXtwh/CBdyorrWqULzBej5UxE5T7bxbrlLOCDaAadW oxTpj0BV89AHxstDqZSt90xkhkn4DIO9ZekX1KHTUPj1WV/cdlJPPT2N286Z4VeS Wc39uK50T8X8dryDxUcwYc58yWb/Ffm7/ZFexwGq01uejaClcjrUGvC/RgBYK+X0 iP1YTknbzSC0neSRBzZrM2w4DUUdD3yIsxx8Wy2O9vPJI8BD8KVbGI2Ou1WMuF04 0zT9fBdXQ6MdGGzeMyEstSr/POGxKUAYEY18hKcKctaGxAMZyAcpesqVDNmWn6vQ ClCbAkbTCD1mpF1Bn5x8vYlLIhkmuquiXsNV6TILOwACAggAv6DuH6YJrqmw8md2 KcgSYwdZuWryAPigOtnYgwud7niTXkWMxbN7v1yxe2QMS0QKRb4dANJoy7rtcB2k 37ufWJcRoL0bQCKa2rFK7+vJkQT+r+GtS/0FqtWtU0eQCYUfV+r6zIQ1LDhOKboH t+npgo9K6etUIPhMaz0LHoxYy2Z31DN9RteSkeUPRuOakPLqm6jO4nCyrTNGXhEO ohxzlPKgv3fywd6wJrtd8vU2N2bixsL392a2DT0WD3dyhb1of6AYj2RQH6YPDXUv wG1eNGibTFSUAa9tfWLCdKGZWjA273uCHPIcB47kvUc6cH+KAgzINM6E5/tHzN1R yf5n/IkARgQYEQIABgUCOKnksQAKCRDY8zXY4Cs4YKiJAJ4hTKwrpMyjSCbCmaQo 52G+xcOOWgCdFvH0bwDd2WWMmEG9deqh6JbK9Dk= =1Ocg -----END PGP PUBLIC KEY BLOCK----- °<----------------------------- nuk3m.asc ---------------------------------->° =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 17 ) Despedida =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Bueno asi llegamos al fin del numero 2 de CIA Magazine. Me apena un poco no haber podido poder haber publicado algun mail de los lectores, pero esta bien ya que la revista es muy nueva y no tiene mucha difusion todavia. Pero espero que para el tercer numero ya haya recibido algunos mails. Espero recibir colaboraciones para poder sacar CIA numero 3 lo mas pronto posible en Abril, ya que este numero esta casi totalmente lleno de articulos mios a falta de articulos de colaboradores o de alguien que quiera que publique un articulo suyo en el e-zine. Como ven no me he quedado en el primer numero de la e-zine. He empezado bien, me gusta lo que hago y lo seguire haciendo; a pesar de que mucha gente quizas no tome en serio o talvez no quiera tomar en cuenta la e-zine por ser muy nueva y realmente no me importa, por que seguire trabajando para todo aquel que quiera aprender, empezara a acrecer con la ayuda de nuestros lectores, quizas ya hay gente que ya nos conoce por medio del primer numero y tambien en nuestro pais ... En el numero 3 entregare la ultima parte del manual de Linux 5.0, cosa que que creo es de bastante interesante ... talvez algunos truquitos para el Windows 95/98, articulos de nuestros lectores, bueno quien sabe, se me olvidan varias cosas. Bueno y un monton mas de cosas que pretendo cumplir para el proximo numero de la e-zine. Les digo que no escriban nada delicado en los mails que envien... porque recuerden que podemos estar siendo observados !!!! y por ese motivo les recomiendo que usen el PGP... de este programa hablaremos tambien en CIA Magazine N°3. Y como siempre, estoy dispuesto a recibir sus opiniones, datos, noticias o lo que sea, al final para eso estan las e-zines o no !!!!... Bueno ya se me vienen las clases de la UNI otra vez y espero poder sacar el e-zine a tiempo.... y si alguno de nuestro lectores quiere formar parte del CIA Team de la e-zine que me avise asi queda confirmado como un editor oficial de la revista que bien podra responder los mail que los lectores nos acerquen y que tambien podria llevar adelante una seccion de la revista sobre algun tema del cual sepa mucho o le interese.... La proxima e-zine, como ya dije arriba, saldria los primeros dias de Abril. Un saludo a todos los lectores y espero volver a verlo en el numero 3... Bytes.... Mr. Nuk3m mr_nuk3m@usa.net CIA Magazine ciamagazine@usa.net 8 de Marzo del 2000 =[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-=[%]=-