Linus Torvalds y su piedra de hacer sopa.

 

Existe una vieja historia que cuenta que un día llegó a un pueblo un caminante, cansado, sin un peso, muerto de hambre. En la calle principal recogió una piedra común de tamaño regular, entro a la taberna donde invito a todos los parroquianos y a sus familias a tomar la mejor sopa de sus vidas. La gente que estaba pasando una mala época (cuando no) acepto de buena gana y pronto todo el pueblo estaba reunido en la plaza. Entonces Juan, que era el nombre del viajero, levanto en alto su mano con la piedra y dijo, "amigos, vengo de lejanas tierras de donde traigo esta piedra; no es una piedra común, es la mágica piedra de hacer sopa, solo necesito la buena voluntad de alguien que me preste una olla lo suficientemente grande como para hacer una sopa para todos", no bien terminó de decir esto el panadero de pueblo dijo que el tenia esa olla y corrió a su casa a traerla. Mientras otros trajeron la leña y el agua, colocaron la olla al fuego que un comedido encendió en segundos. Juan puso la piedra milagrosa dentro del recipiente junto con el agua. Mientras el agua comenzaba a tomar temperatura Juan comento "Unas cuantas cebollas le darían un rico sabor a esta sopa" e inmediatamente unas señoras aparecieron trayendo cebollas que echaron a fuego, luego Juan dijo "un zapallo le daría un lindo color a esta sopa" y el verdulero del pueblo trajo su zapallo mas grande, finalmente comento que seria bueno que todos se fijaran si en sus casa les quedaba algo de fideos para que la sopa fuese mas nutritiva y todos corrieron a sus casas entusiasmados con lo que sería ese ya formidable potaje. Poco a poco todos fueron trayendo algo de sus casas para que la sopa fuera lo mas rica posible, cuando la sopa estuvo lista todos la tomaron con gusto. Hoy aún se recuerda en el pueblo, después de muchos años a aquel misterioso caminante que les trajo la piedra de hacer sopa de lejanas tierras.

Hoy Juan se llama Linus Torvalds y su piedra es el kernel de un sistema operativo, y nosotros somos los pueblerinos que disfrutamos de la sopa producto del aporte de todos. Linux.>

¿Que es Linux?

Linux es un Sistema Operativo, tal como DOS, Solaris, VMS, Windows 95 (a medias) o Aix por citar unos pocos, esta basado en UNIX aunque no posee ni una sola línea del código original de AT&T. Sujeto a licencia GNU (frase recursiva GNU is Not Unix).

Historia. (levemente romántica)

Linux fue concebido por un finlandés de 21 años llamado Linus Torvalds estudiante de la universidad de Helsinki, quien comenzó trabajando sobre los fuente de Minix (un pequeño UNIX desarrollado por Andy Tenembaum) para lograr un Unix mínimo, capaz de correr un shell y un compilador por lo menos. Lo que creo me animo a llamarlo como la mayor revolución de software en la historia de la informática, primero fue la primera versión la 0.02 ya que la 0.01 nunca llego a ser compilada con éxito. Luego Linus anuncio en Internet su proyecto de la siguiente manera:

"Si suspiras al recordar aquellos días cuando lo hombres eran hombres y escribían sus propios drivers. Si te sentís sin ningún proyecto interesante y te gustaría tener un verdadero sistema operativo que pudieras modificar a placer, Si te resulta frustrante tener solo Minix. Entonces este articulo es para vos"

Y Linux fue liberado en Internet y la respuesta de los programadores y  usuarios de UNIX fue contundente. Pronto todos querían aportar sus conocimientos para que la incipiente criatura fuera un sistema operativo estable, robusto y potente. Finalmente llego la primera versión estable del Kernel la 1.0. De allí en adelante Linux fue evolucionando a un ritmo vertiginoso hasta hacer tambalear a todos los S.O del mercado. La versión actual del Kernel 2.0.33 estable y 2.1.97 experimental.
 

Hoy tuve un sueño (M.L.King)

Imaginémonos el Sistema Operativo ideal. Seguramente no todos estaremos de acuerdo en todas las sus características pero busquemos por lo menos diez puntos en común.

1. CODIGO: Si nuestra PC actualmente tiene un microprocesador de 32 bits, el Sistema deber  ser "completamente" de 32 bits. Es mas si en el futuro tenemos PCs con procesadores de 64 bits, también el S.O. deber  estar compilado en 64 bits. Mas aun, seria mejor que el sistema operativo se provea con sus fuentes en el lenguaje m s portable de cuantos existen así lo podemos compilar en la maquina que se nos antoje.
2. RED: Actualmente se impone cada vez con mayor firmeza el uso de redes ya sean locales, Intranets e Internet. De manera que nuestro sistema operativo deber  estar concebido como de red desde sus orígenes. Existen muchos sistemas de red, debemos entonces pensar cual es la mejor opción teniendo en cuanta varios factores, la popularidad, la trayectoria, la compatibilidad, la fiabilidad, etc. Tenemos que tener en cuenta también cual es a escala mundial el estándar en Internet. La respuesta es una sola, UNIX. De manera que nuestro S.O. deber  estar basado en UNIX.
3. INTERFACE CON EL USUARIO: Con la aparición de las MAC, se impuso un nuevo estándar que luego fue incorporado por casi todos los S.O. Las Interfaces Gráficas. De manera que nuestro S.O. tiene que tener una. Es mas seria mejor que tenga muchas y que el usuario pueda elegir si quiere que esta se vea y comporte como Win95, como Solaris, como las no tan populares NEXT, una propia de UNIX como ser MOTIFF, o de muchas otras formas algunas totalmente inéditas y originales como Enlightenment, KDE, WindowMaker, AfterStep. (ver Figuras 1, 2, 3, 4, 5,)
4. MULTITAREA: El cerebro del hombre es multitarea por naturaleza, así que la principal extensión artificial del mismo (la PC) deber  tener un sistema operativo multitarea. Pero multitarea real, de tipo cooperativo, que garantice la posibilidad de ejecución de todas las aplicaciones activas.
5. MULTIUSUARIO: La PC no es como un cepillo de dientes de uso personal exclusivamente es mas bien como una esponja o cepillo de baño que los usan toda la familia de manera que nuestro S.O. ideal deber  tener capacidad de administrar en forma segura la información y aplicaciones de cada uno de sus usuarios pudiendo estos tener terminales propias o bien usar una sola maquina.
6. MULTIMEDIA: Nuestro S.O. tendrá  que soportar todas las capacidades multimedia actuales y las que vendrá deberán tener una rápida asimilación.
7. APLICACIONES: Sin una fuerte biblioteca de aplicaciones un S.O. esta destinado a perecer. De manera que tendremos que contar con una amplísima colección de aplicaciones que cubran todos los rubros tales como Gráficos, Animaciones, Música, autoedición, Procesamiento de textos, Gestión administrativa y comercial. No nos olvidemos que como el S.O. de suministra con sus fuentes es lógico que las aplicaciones también lo hagan. Como nos basamos en UNIX podremos aprovechar todo el software desarrollado para esa plataforma.
8. OTRAS PLATAFORMAS: Las aplicaciones de otras plataformas tales como DOS, Windows o Mac, tienen que correr con emuladores.
9. DESARROLLO: Es importante que nuestro S.O. tenga un amplio surtido de compiladores y librerías, tales como C, C++, PASCAL, BASIC, SMALLTALK, EIFFEL, CLIPPER, PERL, FORTRAM, ADA, MODULA 2, ETC.
10. Y como si todo esto fuera poco pidamos que este soportado por un cuerpo de diseñadores y programadores expertos de todo el mundo.
11. Una de yapa. Que todo absolutamente todo sea GRATIS.

Requerimientos para instalar LINUX.
 

* CPU: Su computadora debe tener un procesador 386, 486, Pentium, Pentium Pro, Pentium II o uno de los clones de estos procesadores hechos por fabricantes como Cyrix, AMD, TI, IBM, etc. Si su procesador tiene letras como "sx", "sl", "slc", etc. después del número, como en "386sx", es correcto. El sistema no funcionar  en un 286 o en procesadores inferiores.

* Bus de E/S: Su computadora debe utilizar el bus ISA, EISA, PCI, o VL. El bus VL se conoce también como VESA Local Bus o VLB. Las computadoras que tienen PCI o VLB generalmente tienen también ranuras ISA o EISA.

* RAM y Disco Rígido: Debe tener al menos 4MB de RAM aunque es recomendable no menos de 16MB y 40MB de disco duro. Pero si usted quiere instalar todo necesitar  400MB. Las interfaces de disco que emulan la interfaz de disco "AT" que se llaman habitualmente MFM, RLL, IDE, o ATA están soportados. Las controladoras de disco SCSI de diversos fabricantes están soportadas.

* Unidad de disquete: Debe tener una unidad de disquete de 1.2MB o 1.44MB como unidad a: en el sistema en el que instale Linux. Si tiene tanto una unidad de 1.2MB como una de 1.44MB, configure el hardware para que la unidad de 1.44MB sea la a:.

* MPC: Como casi todas las distribuciones de Linux vienen en CD-ROM necesitaremos una lectora que puede ser IDE, SCSI o con norma propia como alguna Sanyo o Mitusmi.
 

* Placa de video: Aunque soporta desde una hercules, es recomendable usar una placa de video compatible con VGA para el terminal de la consola. Prácticamente cualquier tarjeta gráfica moderna es compatible con VGA. CGA, MDA, o HGA pueden funcionar correctamente para texto, pero no funcionarán con el Xwindows.

* Otro Hardware: Linux soporta una gran variedad de dispositivos como son: ratones, impresoras, escáners, módems, tarjetas de red, etc. Sin embargo, no se requiere ninguno de estos dispositivos durante la instalación del sistema
 

Características.

Aprendiendo a usar Linux

Conceptos básicos preliminares

Para entender mejor Linux muchas veces haremos comparaciones con DOS, así que aquí van algunas consideraciones acerca de MS-DOS o Linux. Muchos usuarios de Linux confían en MS-DOS para aplicaciones tales como procesadores de texto. Aunque Linux proporciona sus propios análogos para estas aplicaciones, existen varias razones por las que un usuario concreto desearía correr tanto MS-DOS como Linux. Hay muchas aplicaciones comerciales para MS-DOS que no están disponibles todavía para Linux, y no hay ninguna razón por la que no pueda usar ambos.

MS-DOS ni Windows/95 no utiliza completamente la funcionalidad de los procesadores 80386 y 80486. Por otro lado, Linux corre completamente en el modo protegido del procesador y explota todas las características de este. Puede acceder directamente a toda su memoria disponible (e incluso mas allá de la disponible, usando RAM virtual

Podríamos debatir los pros y contras de MS-DOS y Linux durante paginas y paginas. Sin embargo, baste decir que Linux y MS-DOS son entidades completamente diferentes.  MS-DOS no es caro (comparado con otros sistemas operativos comerciales), y tiene un fuerte asentamiento en el mundo de los PC's. Ningún otro sistema operativo para PC ha conseguido el nivel de popularidad de MS-DOS, básicamente porque el coste de esos otros sistemas operativos es inaccesible para la mayoría de los usuarios de PCs. Muy pocos usuarios de PC pueden imaginar pagar lo que cuesta por ejemplo un Solaris.

Podrá emitir sus propios juicios de Linux y MS-DOS basados en sus expectativas y necesidades. Linux no esta destinado a todo el mundo.

Este capitulo no presentara gran cantidad de detalles ni cubrirá temas muy avanzados. Esta pensado para permitir al nuevo usuario de Linux comenzar a usar el sistema y situarlo en una posición en la que pueda leer libros mas generales sobre UNIX y entender las diferencias básicas entre otros sistemas UNIX y Linux.

A primera vista, UNIX se parece a MS-DOS (después de todo, partes de MS-DOS fueron tomadas de CP/M, el cual fue a su vez inspirado en UNIX incluso muchas de las novedades que Windows 95 pretende presentar son características de los sistemas UNIX). Pero, solo las características superficiales de UNIX se parecen a MS-DOS.

Como ya dijimos, Linux es un sistema operativo multitarea y Multiusuario. Bajo UNIX, para que los usuarios puedan identificarse en el sistema, deben registrarse  (login), proceso que consta de dos pasos:  Introducir el nombre de usuario (login) (el nombre con que ser  identificado por el sistema), y una palabra  clave o contraseña (password), la cual es su llave personal secreta para entrar en la cuenta.  Como solo usted conoce su palabra clave, nadie mas podrá logearse en el sistema con su nombre de usuario. Por esto es muy importante tomarse unos minutos para elegir una palabra clave que no sea fácil de adivinar o desencriptar, es común en los novatos usar palabras claves que tiene algo que ver con ellos, por ejemplo el nombre de la novia, esposa, madre, hija, fecha de nacimiento, numero de documento, hasta el nombre de su mascota, de esta manera los hackers usan diccionarios con nombres femeninos para lograr adivinar claves de usuarios desprevenidos.
 
En los sistemas UNIX tradicionales, el administrador del sistema asignara el nombre de usuario y una palabra clave inicial en el momento de crear la cuenta de usuario.

Además, cada sistema UNIX tiene un nombre del sistema (hostname. Este "hostname" le da nombre a la maquina, además de carácter y encanto, por ejemplo la mía se llama Amankay, (que es el nombre de una flor de la puna Jujeña) la anterior fue Newton y la anterior Leonardo.  El nombre del sistema es usado para identificar maquinas en una red, pero incluso aunque la maquina no este en red, deberá tener un nombre.

Antes de poder usar el sistema, deber  crear una cuenta de usuario.  Esto es necesario porque no es buena idea usar la cuenta de root para los usos normales. La cuenta de root debería reservarse para el uso de comandos privilegiados y para el mantenimiento del sistema.

Shells

La forma de comunicarse entre el S.O., el hardware y el usuario es un Shell, en Linux, el m s difundido es "bash" que significa "Bourne again shell" aunque existen varios shells para todos los gustos. En la mayoría de las exploraciones en el mundo de UNIX, estar  hablando con el sistema a través del uso de un shell. Un shell es simplemente un programa que toma la entrada del usuario (ej. las ordenes que teclea) y las traduce a instrucciones. Esto puede ser comparado con el COMMAND.COM de MS-DOS o el 4DOS para los mas exquisitos, los cuales  efectúan esencialmente la misma tarea. El shell es solo uno de los interfaces con UNIX hay muchos interfaces posibles como el sistema X Windows, el cual le permite ejecutar comandos usando el ratón y el teclado.

Antes de continuar, deberíamos ver como salir del sistema. Desde la línea de comandos usaremos la orden "exit" para salir. Hay otras formas, pero esta es la más fácil.

Directorios

La mayoría de los sistemas UNIX tienen una distribución de ficheros estándar, de forma que recursos y ficheros puedan ser fácilmente localizados. Esta distribución forma el árbol de directorios, el cual comienza en el directorio "/", también conocido como "directorio raíz".  Directamente por debajo de "/" hay algunos subdirectorios importantes: /bin, /etc, /dev y /usr, entre otros. Estos a su vez contienen otros directorios con ficheros de configuraci¢n del sistema, programas, etc. En particular, cada usuario tiene un directorio "home". Este es el directorio en el que el usuario guardara sus archivos. Usualmente, los directorios home de los usuarios cuelgan de /home y son nombrados con el nombre del usuario al que pertenecen.

El siguiente es un ejemplo de arbol de directorios en linux.
/________bin
      |__dev
      |
      |__etc
      |
      |__home  _______juan
      |            |
      |            |__pedro
      |__
      |  lib
      |__proc
      |
      |__tmp
      |
      |__usr _______X386
                 |
                 |__bin
                 |
                 |__emacs
                 |
                 |__
                 |  etc
                 |
                 |__g++-include
                 |
                 |__include
                 |
                 |__lib
                 |
                 |__local_______
                 |           |  bin
                 |           |
                 |           |__emacs
                 |           |
                 |           |__etc
                 |           |
                 |           |__lib
                 |
                 |__man
                 |
                 |
                 |__spool
                 |
                 |__src_______linux
                 |
                 |__tmp
 

Comandos Básicos

Antes de comenzar es importante destacar que todos los nombres de ficheros y comandos son "case-sensitive" (que hacen diferencia entre mayúsculas y minúsculas, a diferencia de sistemas operativos como MS-DOS). Por ejemplo, el comando make es diferente a Make o MAKE. Lo mismo ocurre en el caso de nombres de ficheros o directorios.

Cambio de directorio:

La orden para movernos por la estructura de directorios es cd, abreviación de "cambio de directorio". Hay que destacar, que la mayoría de las ordenes UNIX mas usadas son de dos o tres letras.

La forma de uso de la orden cd es:

cd <directorio>

Donde <directorio> es el nombre del directorio al que queremos ir. Si usamos cd sin par metros esto no llevara a nuestro directorio. Tenemos también dos puntero uno al directorio padre ".." y otro a si mismo "." Esto también fue copiado por DOS.

Consultar el directorio actual

Para saber en que directorio no encontramos usaremos el comando "pwd"

Consultar el contenido de los directorios

Una vez que podemos navegar por nuestro árbol de directorio lo más importante es poder ver que tenemos en cada uno. Para eso usaremos el comando "ls", ls vendría a ser "dir" del DOS, pero como vernos mas adelante es mucho mas poderoso como todos los comandos de Linux. Ls tiene muchos parámetros que van a afectar su comportamiento, pero el mas usado sin duda ser "-l" que no mostrara con mas detalle el contenido del directorio.

Consultar las páginas del manual

En este momento creo que uno de los comandos que mas nos van a ayudar en el aprendizaje de Linux es "man" que siguiendo con las comparaciones con el DOS vendría a ser el "help" con man podrá solicitar información de todos los comandos e incluso algunos programas y aplicaciones tiene sus propias paginas de manual. En mi experiencia personal man me ayudo mas veces que cualquier libro.

La forma de usarlo es:

man <comando>

Creación de directorios:

Para esto usaremos el comando "mkdir" como en DOS seguido del nombre del directorio a crear.
 
        mkdir <nombre>

Copiado de archivos

La orden "cp" copia los ficheros listados en la línea de comandos al fichero o directorio pasado como ultimo argumento.

        cp <origen> <destinod>

Mover archivos

Tanto para mover como para renombrar archivos o directorio usaremos el comando "mv" de idéntica manera a "cp" solo que en esta caso no se preservara el origen.

        mv <origen> <destino>

Borrado de archivos

Para borrar se usa "rm" que viene de remove. Se usa con un parametro que es el nombre del fichero a borrar o una lista de ellos. Tambien lo podemos usar para borrar directorios completos con el parámetro "-r" a hay que ser muy prudente y cuidadoso con este comando ya que podemos hacer macanas.

rm <nombre de archivo o directorio>

Mirando los ficheros

Las ordenes "more", "cat" y "less" son usadas para ver el contenido de ficheros. More y less muestran el fichero pantalla a pantalla mientras que cat lo muestra entero de una vez.

        more <archivo>
        less <archivo>
        cat <archivo>

El sistema de ficheros y la jerarquía de directorios.

Primero cambie al directorio raiz (cd /) y ejecute ls -F. Probablemente vera estos directorios:

bin, dev, etc, home, install, lib, mnt, proc, root, tmp, user, usr, y var.

La distribución de directorios y archivos es Unix es muy ordenada y distinta que en DOS, veamos para que usamos cada directorio.
 
 
/bin es la abreviación de "binaries", o ejecutables.  Es donde residen la mayoría de los programas esenciales del sistema. 
/dev Los "ficheros" en /dev son conocidos como controladores de dispositivo (device drivers)_son usados para acceder a los dispositivos del sistema y recursos, como discos duros, modems, memoria, etc 
/etc contiene una serie de ficheros de configuración del sistema.  Estos incluyen /etc/passwd (la base de datos de usuarios), /etc/rc (guiones de inicialización del sistema), etc. 
/sbin se usa para almacenar programas esenciales del sistema, que usara el administrador del sistema. 
/var contiene directorios que a menudo cambian su tama¤o o tienden a crecer. Muchos de estos directorios solian residir en /usr, por ejemplo en /var/adm encontraremos varios ficheros de inter'es para el administrador del sistema, específicamente históricos del sistema, los cuales recogen errores o problemas con el sistema. 
/usr/src contiene el código fuente (programas por compilar) de varios programas de su sistema.  El mas importante es /usr/src/linux, el cual contiene el código fuente del kernel de Linux. 
/usr/local es el directorio donde normalmente pondremos nuestras aplicaciones. 
/usr/include contiene los ficheros de cabecera para el compilador de C. Estos ficheros (la mayoría de los cuales terminan en .h, de "header") declaran estructuras de datos, subrutinas y constantes usados en la escritura de programas en C. Los ficheros que se encuentran en /usr/include/sys son generalmente usados en la programación de en UNIX a nivel de sistema. Si esta familiarizado con el lenguaje de programación C, aquí encontrara los ficheros de cabecera como stdio.h, el cual declara funciones como printf(). 
/usr/bin es el deposito real de programas del sistema UNIX. Contiene la mayoría de los programas que no se encuentran en otras partes como /bin. 
/usr/X11R6 contiene todos los ejecutables de X Window, ficheros de configuración y de soporte. 
/usr es un directorio muy importante.  Contienen una serie de subdirectorios que contienen a su vez algunos de los mas importantes y útiles programas y ficheros de configuración usados en el sistema.
/proc es un "sistema de ficheros virtual". Los ficheros que contiene realmente residen en memoria, no en un disco. Hacen referencia a varios procesos que corren en el sistema, y le permiten obtener información acerca de que programas y procesos est n en ejecución. 
/lib contiene las imagines de las librerías compartidas.  Estos ficheros contienen código que compartirían muchos programas. 
/home contiene los directorios "home" de los usuarios. Por ejemplo, /home/juan es el directorio del usuario "juan". 
 

Como agregar un usuario

Cuando se añade un usuario hay varios pasos a seguir. Primero, se le debe crear una entrada en el archivo /etc/passwd, con un nombre de usuario y UID únicos. Se debe especificar el GID, nombre completo y resto de información. Se debe crear el directorio inicial, y poner los permisos en el directorio para que el usuario sea el dueño. Se deben suministrar ficheros de comandos de inicialización en el nuevo directorio y se debe hacer alguna otra configuración del sistema (por ejemplo, preparar un buzón para el correo electrónico entrante para el nuevo usuario). Aunque todo esto puede ser echo a mano es mucho mas sencillo y seguro usar un programa que se provee con Linux llamado "adduser" este programita nos ir  preguntando uno a uno los datos necesarios y una vez completados se encargara de modificar todos los archivos necesarios de configuración y crear los directorios necesarios.

Como borrar un usuario.

Para borrar un usuario nos basta con borrarlo del archivo "passwd" y eliminar también todos sus archivos y directorios. Esto se puede hacer a mano o usar deluser que es mas seguro. También podemos deshabilitar al usuario colocando un asterisco en el lugar donde va la clave encriptada.

Aquí es importante saber que el superusuario puede cambiar en cualquier momento la clave de cualquier usuario, mientras que cada usuario solo puede cambiar su clave si el root se lo permite. Así también se puede habilitar a los usuarios para que cambien por ejemplo su shell y puedan elegir el que m s les guste.

Si bien este no pretende ser un curso de Linux, creo que con esto tenemos los suficiente para animarnos a probar, a los usuarios avanzados y expertos en UNIX les pido que no sean rigurosos y estrictos en sus criticas, ya que pretendí hacer un documento no muy técnico y al alcance de cualquier usuario de PC.

Instalación y Compilación de Software.

En muchos casos los programas se proveen compilados, listos para instalarlos, en este caso todo dependerá de la distribución que estemos usando. Veamos los casos más comunes que son los de las distribuciones RedHat, Debian y Slakware.

RedHat:
Los paquetes en esta distribución tiene un formato llamado RPM de donde toman su nombre. Estos paquete pueden ser manipulados tanto desde la consola como desde el entorno gráfico. Desde la consola utilizaremos el programa "rpm" el cual nos permitirá la instalación, desinstalación y las actualizaciones (upgrades) de los paquetes entre otras posibilidades. Veamos un ejemplo específico.
Si queremos instalar el paquete comunicator.rpm que seria el nombre abreviado con el que se distribuye en Netscape Comunicator tendríamos que ingresar la siguiente línea en el shell:

rpm -i --hash comunicator.rpm

Luego de esto y si no existe problema con las dependencias, (las dependencias son los programas o librerías de los que el paquete en cuestión depende para funcionar correctamente, de esta manera no podremos instalar la aplicación si no tenemos todo lo necesario. En estos casos se nos advertirá sobre que paquetes son imprescindibles para la instalación y funcionamiento) tendremos instalado y operativo el nuevo software.
Para desinstalar deberemos usar:

rpm -e comunicator.rpm

Esto no borrara todos los archivos que la instalación copió o creo.

Las actualizaciones se hacen mediante:

rpm -U comunicator.rpm

De esta manera obtendremos una nueva versión del programa ya instalado manteniendo su configuración.

Si bien estas son las principales funciones de "rpm" este manejador de paquete tiene muchas mas, que no resultaran muy útiles a medida que con convirtamos en usuarios mas experimentados.

En RedHat también podemos manejar paquetes rpm mediante una aplicación llamada "glint" dentro de las Xwindows, para ello solo debemos convocarla mediante el icono correspondiente desde el panel de control. Ya que esta utilidad es totalmente gráfica e intuitiva, no precisa el paso de parámetro de manera que no ahondaremos en su uso.

Debian:

En Debian la cosa en un poco mas complicada. Al momento de escribir esta nota, la versión actual es 1.3.1 y la versión 2.0 seguramente ya estará liberada a la hora de que Ud. Lea PcUsers. El manejador de paquetes se llama "dselect" y es muy poco amigable que también la utilidad que no permite seleccionar los paquetes que se copiaran durante la instalación de Linux. Este programa no solo advierte de las dependencias, sino que también tiene un sistema de jerarquías para cada paquete. Así sabremos cuales son imprescindibles, cuales necesario y cuales superfluos.
El manejador de paquetes individuales es: dpkg. Y su uso es idéntico a rpm, además la distribución Debian también puede manejar paquetes RPM y tgz (de echo todos manejan tgz) de Slackware. Tiene también un programa (alien) encargado de la conversión de paquetes rpm a deb (deb es la extensión de los paquetes Debian)

Slackware:

Esta distribución maneja paquetes procesados con tar y gzip, tar es una utilidad propia de los UNIX utilizada para hacer copias de seguridad (backups) y gzip es un compresor de GNU. La extensión de estos paquetes es .tgz o .tar.gz y para instalarlo solo debemos descomprimirlos desde la raíz del sistema de archivos de la siguiente forma:

tar xvfz comunicator.tgz

Compilación:

Que los programa sean distribuidos con sus fuentes acarrea el echo de que muchas veces debamos compilar los programas para poder usarlos. Esto no tiene porque significar un problema a la hora de decidirnos a instalar nuevas utilidades en nuestro sistema; ya que Linux tiene un poderoso compilador de C y C++ (lenguaje en el que se encuentran el 90%) de las aplicaciones para Linux). Además del compilador Linux posee una poderosa herramienta "make"; esta utilidad se encarga de automatizar el proceso de compilación y enlace (linkado) de las fuentes y objetos. La mayoría de las veces solo tendremos que hacer lo siguiente:

configure

make

make install

En otros casos el procedimiento varía un poco:

xmkmf -a

make

make install

Parece complicado, pero a no desesperarce. En ambos caso los que se hace es primero, mirar las dependencias y directorios necesarios para la compilación; segundo, compilar en si el programa; tercero copiar cada archivo en su ubicación correcta.

Eso es todo en muy resumida síntesis lo que necesitamos para poder instalar nuevos soft en nuestro sistema.

Nuevamente pido a los usuarios avanzados que lean esta nota no sean muy críticos con la forma de explicar y las simplificaciones en la que incurrí. Ello es así en virtud de conseguir un articulo de fácil lectura y al alcance de todos.

Preguntas y respuestas.

1 ¿Para quienes esta pensado Linux?
Linux es un S.O. para todo aquel que quiere tener un completo control de lo que sucede un su maquina, para quien necesita una herramienta poderosa, para quien quiere probar y experimentar, para el que constantemente quiere aprender, para quien no se conforma con los mensajes de error y quiere solucionarlos, para los programadores, para los adictos a Internet, para los hackers, para los Grafistas, para los que gustan de los juegos, para aquellos no quieren estar atados a los malos gustos de los monopolios, para los diseñadores, para los publicistas, para los creadores de efectos especiales, para los satélites, para las grandes empresas, para los rebeldes, para los disconformes, para los que no quieren Sistemas que los traten como tontos. En resumen Linux es para los
Audaces, insatisfechos, exigentes y perfeccionistas.

2 ¿Cómo se pronuncia Linux?
Según Linus Torvalds la pronunciación correcta es: Lih-nucks.

3 ¿Porque me conviene usar Linux?
Porque es más estable que otros S.O. y además es gratis, porque el 95% del software que tiene es libre, y porque es el mejor.

4 ¿Qué software tengo disponible para Linux?
Todo el que quieras, existen procesadores de texto, planillas de calculo, bases de datos, compiladores, sistemas de autoedición, navegadores de Internet, graficadores, sistema de animación, Trazadores de Rayos, juegos, y todo lo que puedas imaginar.

5 ¿Y si lo que quiero es programar?
Entonces este es el sistema que estabas esperando. Primero, porque cuentas con miles de programas con sus fuentes que puedes reutilizar libremente. Segundo, porque tienes a tu disposición miles de librerías de uso libre. Tercero, porque dispones de compiladores para todos lo lenguajes que existen desde BASIC hasta JAVA, pasando por C, C++, ObjetiveC, Pascal, Oberon, Fortram, Cobol, Modula 2 y 3, Eiffel, SmallTalk, Lisp, Assembler, REXX, etc. Además tienes infinidad de interpretes tales como PERL, Python, TCL/TK, Scheme, Prolog, etc. Cuarto, porque los Entornos de Desarrollo son los mejores que existen, superando incluso a los comerciales.

6 ¿Es difícil de aprender?.
No es fácil, no es para tontos.

7 ¿Puedo usar mis programas de DOS en Linux?
Si, Linux dispone de un emulador llamado Dosemu el cual e muy potente y estable.

8 ¿Puedo usar mis programas de Windows en Linux?
Sí, a través de Wine, un excelente emulador de Windows, o de Wabi otro pero comercial.

9 ¿Cómo puedo conseguir Linux?
En cualquier casa de venta de software seria puedes comprarlo (solo pagas el trabajo de compilación y distribución alrededor de $30 6 CD con tres distribuciones y mucho software) O bajártelo de Internet gratis.

10 ¿Puede tener Linux junto con Windows, DOS, OS/2 en una misma maquina?
Si, Linux solo necesita una partición de tu disco para instalarse. Luego LILO o cualquier boot manager se encarga de poner a tu elección cual de los S.O. quiere bootear.

11 ¿Existen versiones en castellano?
Sí y No. Por ejemplo todas la paginas del manual están traducidas al español, pero la mayoría del software disponible se encuentra en ingles. Entornos gráficos como KDE tienen traducción al castellano.

12 ¿Donde puedo conseguir libros para aprender?
En cualquier librería se encuentran actualmente libros sobre Linux, además cualquier libro de UNIX te sirve. Si no quieres comprarlos, en LuCAS encontraras libros como Linux, instalación y primeros pasos, Guía del Administrador de Redes Linux, Guía de Linux para el usuario, y muchos mas totalmente gratis y en castellano.

13 ¿Qué otra ayuda puedo encontrar para iniciarme en Linux?
Existen los archivos Como, que son pequeños documentos con información sobre un tema en particular todos en castellano, además existen canales de IRC dedicados a Usuarios de Linux donde impera un clima de ayuda y camaradería. Canal #linux de irc.prima.com.ar (por ejemplo).

14 ¿Mucha gente usa Linux?
Se estima que hay mas de 10.000.000 de usuarios en el mundo y en argentina cada
día somos más.

15 ¿Qué son las distribuciones de Linux?
Distintas instituciones o empresas preparan paquetes precompilados listos para instalarlos. Las más importantes son DEBIAN, RedHat, Caldera, Slackware, S.U.S.E..

16 ¿Cual es la mejor distribución?
Esta es una pregunta de difícil respuesta, yo prefiero DEBIAN, pero RedHat es la más sencilla de instalar y muy completa, es la que usa Linus Torvalds, S.U.S.E. es nueva pero pinta muy bien.

17 ¿Existen programas comerciales para Linux?
Si, si bien la mayoría es FreeWare existe programas tales como WordPerfect o Quake II para Linux.

19 ¿Es verdad que Linux es el favorito de los Hackers?
Si, el poder que Linux da a sus usuarios es la principal razón para ser el S.O. hacker por excelencia.

20 ¿Es cierto que la mayoría de los proveedores de Internet usan Linux?
Sí. Por ser muy estable, por adecuarse a las normas que la Red exige, por ser periódicamente renovado y actualizado, por toda la información disponible, por la infinidad de software para montar un provider.

21 ¿Es Linux mejor que Windows?
Muchisimo mejor, ya que se lo desarrolla con un interés científico técnico y no comercial.

22 ¿Es cierto que varios satélites de la NASA usan Linux e incluso en transbordador espacial?
Sí.

23 ¿Qué sistema opertativo se uso para hacer las anumaciones y efectos especiales de la pelicula Titanic?
Linux, Se usaron 105 maquinas con micros Alpha de 433 Mhz. de un total de 160 usaba Linux como S.O. Según uno de los ingenieros de Digital Domain, la elección de Linux obedeció a criterios de coste y flexibilidad. La simulación digital del movimiento del agua requería alta capacidad de proceso y un elevado número de máquinas trabajando en paralelo. El coste de un sistema operativo para tantos ordenadores hizo que la empresa se planteara el uso de uno gratuito. La flexibilidad de Linux para trabajar con otros sistemas animó a la empresa a decidirse por él.

Glosario

* Bugs: Errores en la confección de un programa.
* Driver: programa encargado de servir de intermediario entre el sistema operativo y los distintos dispositivos conectados en el ordenador.
* FAQ: Frecuent  Asked  Question. Cuestión frecuentemente preguntada. Recopilación de preguntas y respuestas sobre las dudas mas frecuentes.
* FTP: File Transfer Protocol: Protocolo utilizado para la transmisión de ficheros.
* GNU: GNU 's not UNIX. Frase recursiva que representa al proyecto encargado de la protección y creación de software de libre distribución.
* Hacker: En su doble acepción, persona que posee un nivel muy importante de conocimientos en Unix, experto. También se dice que un hacker es aquel que utiliza sus extensos conocimientos de informática para "romper" sistemas de seguridad.
* HOWTO: Como ir hacia. como conseguir. Documentación especifica obre algún aspecto concreto de Linux (impresoras, redes, UPS, etc.
* Kernel: núcleo.  En Linux, parte principal del sistema operativo.  Código fuente del propio sistema
* LDP: Linux Documentación Project: Proyecto para la Documentación de Linux.
* LILO: LInux LOader.  Cargador de Linux.  Pequeño programa que permite el arranque  de  uno  o  varios  sistemas  operativos  situados  en  una  misma maquina.  LILO puede poner en marcha,  OS/2,  Linux,  MS-DOS,  Windows'95, SCO, etc.
* LSM: Linux Software Map. "Mapa" de software para Linux. Base de datos que recoge la mayor parte del software disponible para Linux, así como su autor, descripción, localización, observaciones, etc.
* Mainframe: Ordenador principal. Equipo de muy altas prestaciones.
* NFS: Network Filey System: Sistemas de ficheros en red.
* online on-line:  en  línea,  en  conexión.   Documentación  on-line:  documentos disponibles a trav,s de sistemas telem ticos
* script: Guión. Shell script: guión para el procesador de comandos. Programa batch. Equivalente en Unix a los ficheros BAT de MS-DOS.
* Shell: Interprete de ordenes o comandos.  Programa intermediario entre el sistema operativo y el usuario.  Imagínatelo como si fuera el sustituto del COMMAND.COM  de  MS-DOS.   Linux  soporta  varias  shells  diferentes (bash, ksh, cshell...).
* Stdin: entrada standard; usualmente el teclado.
* Stdout: salida standard; usualmente la pantalla.
* Swap: Intercambio.
* swap space: Area de intercambio. Memoria virtual. Zona de almacenamiento en disco (fichero o partición) que sirve como prolongación de la memoria RAM realmente instalada, permitiendo la ejecución de procesos que, de otra forma, requerirían una ampliación física de dicha RAM.

Luis Tomas Wayar
[email protected]

Agradecimientos
Esta guía fue confecionada por Luis Tomás Wayar, es fruto de la experiencia personal y de la recopilación de documentación del LDP (Linux Documentación Proyect) traducida por mi o por el Proyecto LuCas (Lunix en Castellano).  Agradecimientos: A Linus Torvalds, a la gente del canar de #linux en irc.arrakis.es especialmente a Karlos_Fx, a LuCas, S.L.U.G., a Imagine www.imagine.com.ar (el mejor provider de Jujuy porque usa Linux).

Hosted by www.Geocities.ws

1