Curso Linux 2004
Curso Linux 2004
INTRODUCCIÓN AL
SISTEMA OPERATIVO
GNU/LINUX
Febrero de 2004
ls
Autores:
José Enrique García Ramos
Francisco Pérez Bernal
José Rodríguez Quintero
Fuentes:
HOWTO’s en inglés.
Versión 1.0.
Copyright ° c 2004 J.E. García Ramos, F. Pérez Bernal, J. Rodríguez
Quintero.
Este manual es software libre, puede ser redistribuido y/o modificado
bajo los términos de la licencia GNU General Public License publicada
por la Free Software Foundation.
Este texto se distribuye con la esperanza de que sea útil, pero no existe
ninguna garantía sobre él.
Curso GNU/Linux III
Lección 1
Presentación: Software libre, GNU y GNU/Linux.
Lección 2
Instalación de Debian GNU/Linux. Knoppix.
Lección 3
Comandos básicos de Unix/Linux.
Lección 4
Tareas básicas de configuración: red, modem, impresora, etc.
Lección 5
El sistema X-Window: window managers, Gnome, KDE y mucho
más.
Lección 6
Editores de texto: emacs, vi, nano, abiword y latex.
Lección 7
Más allá de Microsoft Office: OpenOffice y Staroffice.
Lección 8
Conexión a la red (ssh, telnet, ftp, etc) y navegadores (mozilla,
netscape, lynx, opera, konqueror, etc.)
Lección 9
Tratamiento de gráficos.
Lección 10
Programación y aplicaciones científicas.
IV Curso GNU/Linux
Anotaciones
Índice general
1. Presentación 5
1.1. ¿Qué es GNU y el software libre? . . . . . . . . . . . . 6
1.2. ¿Qué es GNU/Linux? . . . . . . . . . . . . . . . . . . . 8
1.3. Las distribuciones GNU/Linux . . . . . . . . . . . . . . 9
1.4. Un paseo por nuestro sistema GNU/Linux . . . . . . . . 10
3. Knoppix 25
3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2. Arranque del sistema . . . . . . . . . . . . . . . . . . . 25
3.3. Instalación de Knoppix al disco duro . . . . . . . . . . . 27
3.4. Uso de Knoppix para obtener ficheros de configuración . 29
1
2 Curso GNU/Linux
8.4.1. . . . . . . . . . . . . . . . . . . . . . . . . 87
8.4.2. . . . . . . . . . . . . . . . . . . . . . . . . 88
8.4.3. . . . . . . . . . . . . . . . . . . . . . . . 88
8.5. Mensajería . . . . . . . . . . . . . . . . . . . . . . . . . 89
9. Navegadores 91
Presentación
5
6 Curso GNU/Linux
proyecto.
De hecho, en los primeros años de su existencia, GNU/Linux se
identificaba como el sistema operativo de los hackers. Su difícil insta-
lación, manipulación y falta de drivers lo hacían una herramienta apta
únicamente para gente muy entendida en el tema. Fueron estos prime-
ros usuarios los que diseñaron los drivers para los discos, impresoras,
tarjetas, etc. y los que empezaron a dar a conocer al mundo este siste-
ma. Poco a poco, el número de usuarios empezó a crecer y actualmente
ya existen muchas empresas y grupos de usuarios que crean sus propias
distribuciones de GNU/Linux.
Instalación de Debian
GNU/Linux
2.1. Introducción
La decisión de escoger Debian frente a RedHat como distribución de
trabajo, no ha sido nada fácil, pues RedHat ofrece productos comerciales
que tienen muy buena acogida en el mundo empresarial, y en general
se considera mucho más sencillo instalar una RedHat que una Debian.
El hecho de que se haya optado por Debian se debe principalmente:
en primer lugar, a que esta distribución es la que sigue más fielmente
la filosofía GNU/Linux y todo se hace gracias al trabajo voluntario de
miles de personas; en segundo lugar, porque probablemente es una de
las distribuciones que, tanto a la hora de instalar como de mantener,
deja más libertad a los usuarios; y como último punto fundamental, por
su sistema de paquetes, que probablemente es el más consistente que
existe actualmente.
Se ha optado, pues, por Debian; no porque se considere mejor que
RedHat, (seguro que existen tantas opiniones al respecto como usuarios
de ambas distribuciones), sino porque se ha creído que su flexibilidad la
convierte en una distribución muy apta para fines didácticos.
Actualmente, casi todas las distribuciones ofrecen diversas posibi-
lidades para realizar la instalación, pero esencialmente se puede distin-
guir entre dos sistemas de instalación: mediante CD-ROM o por red.
Además, es posible, en general, combinar distintos sistemas. Debian
ofrece tres tipos de instalación: mediante un juego de CD-ROM, con
un único CD-ROM, el cual contiene el software de instalación y los pa-
quetes básicos, dejando que el resto de la instalación se haga por red,
y exclusivamente por red. Aunque, obviamente, si se opta por este úl-
timo sistema, hará falta algún tipo de soporte inicial para arrancar el
sistema de instalación (normalmente un juego de disquetes, entre dos y
diecisiete, dependiendo del tipo y sistema de instalación escogidos, o un
CD-ROM, del propio juego de CD de la distribución, aunque también
es posible usar otros métodos, como DHCP para hacer una instalación
completamente remota).
11
12 Curso GNU/Linux
main.
Paquetes que cumplen con las Debian Free Software Guidelines,
es decir, que se garantiza su uso y redistribución libre, tanto de
todos los binarios que los componen como de su código fuente
completo.
contrib.
Paquetes que, aun siendo libres, dependen de otros paquetes que
no lo son.
non-free.
Paquetes que, aun pudiendo no costar dinero, están bajo condicio-
nes onerosas que restringen de alguna forma su uso o redistribu-
ción.
non-US/main non-US/non-free.
Paquetes que no pueden ser exportados fuera de EE.UU., por con-
tener software de cifrado o software que puede afectar a asuntos
relacionados con patentes.
vanilla.
Este kernel está basado en la serie 2.2, en el cual se han inclui-
do muchos drivers destinados a soportar hardware antiguo (como
pueden ser los dispositivos ISA), además de dar soporte al puerto
USB.
compact.
Este kernel está basado en la serie 2.2 y principalmente orientado
a dar soporte a dispositivos PCI y sistemas IDE y SCSI.
idepci.
Este kernel está basado en la serie 2.2 y está concebido para dar
soporte al mayor número de hardware posible. Por esta razón se
trata de un kernel bastante grande y poco optimizado.
bf24.
Kernel basado en la serie 2.4 con soporte para ext3 y ReiserFS
orientado a dar soporte a hardware nuevo, como pueden ser los te-
clados USB. También da soporte a dispositivos SCSI e IDE ATA-
100.
CD2. vanilla.
CD3. compact.
CD4. idepci.
CD5. bf24.
Así pues, para iniciar nuestra instalación bastará con "botar"el orde-
nador desde la unidad de CD-ROM con el CD1 y pulsar INTRO.
14 Curso GNU/Linux
!" #$ %
& &
'
'
'
( &
)
*+ , '
-
+ .
.
/ ( 0 0 0
*1 1" ,
2 / ' '
( ' '/
' & )
*+ ,
& & / - 2 ' &
3
*+ 4, 3 (
5 " 2 6 7
'
(
' '
(
'
'
'
&
2 & 8 ' (
&
!" #$ ' & '
*" 1 91 , * ! 5 ! ,
( '
*+ 4 ,
;
Sistema md5.
En primer lugar el sistema nos pregunta si queremos instalar el
sistema de passwords md5. Si no tenemos sospecha de problemas
de incompatibilidades (NIS, etc.), podemos contestar que sí, ya
que es buena idea poder usar passwords con más de ocho caracte-
res.
Sistema shadow.
Una vez más, si no tenemos sospecha de posibles incompatibi-
lidades (este sistema no suele implicar problemas de incompa-
tibilidades), es bueno habilitar esta opción, ya que así nos ase-
guramos de que el fichero que contiene los passwords encriptados
(/etc/shadow) sólo será accesible por el root. Esto supone una me-
dida más de protección para nuestro sistema.
Password de root.
Ahora debemos entrar el password de root. Es importante seguir
las recomendaciones para seleccionar este password y acordarse
de él. Con el objetivo de confirmar que se ha entrado el password
deseado y no ha habido posibles errores de tecleo, se nos pide que
lo volvamos a escribir a modo de confirmación.
Últimas configuraciones
Paquetes PCMCIA
Una vez creado el usuario normal, si no disponemos de dispositi-
vos PCMCIA (típicos en ordenadores portátiles), el sistema lo de-
tectará automáticamente y nos sugerirá que confirmemos que los
paquetes asociados a estos dispositivos pueden ser eliminados.
Curso GNU/Linux 23
Configuración de apt
En esta sección se nos pregunta acerca de las fuentes donde apt de-
berá ir a buscar la información para construir su base de datos sobre los
paquetes (dependencias, estado de instalación, etc.). Al estar haciendo
una instalación íntegramente basada en CD-ROM, escogemos la prime-
ra opción, y, tras poner el CD1 en el lector, aceptamos la ruta que nos
sugiere para acceder a él. Transcurridos unos momentos en los cuales
apt extrae la información relativa a los paquetes que contiene este CD,
se nos preguntará si queremos añadir el contenido de otro CD a la base
de datos. Una vez hayamos introducido el CD2 en el lector, contestamos
yes a esta pregunta.
Una vez finalizado el escaneo de los contenidos de los siete CD-
ROM, se nos preguntará si queremos añadir alguna otra fuente de donde
apt pueda obtener paquetes. De momento contestaremos que no, al igual
que a la siguiente pregunta respecto al chequeo de seguridad de los con-
tenidos de los paquetes (no es necesario de momento, ya que, al estar
usando únicamente paquetes de la distribución oficial, en principio sus
contenidos ya son seguros).
tasksel y dselect
A continuación se nos pregunta si queremos que se ejecuten los
programas de selección de paquetes, primero tasksel y luego dselect.
Responderemos que no, pues estos programas también los podremos
ejecutar desde la línea de comandos una vez hayamos terminado la ins-
talación. Aquí termina la instalación básica, como último punto, y ya
respondiendo a preguntas formuladas por apt, se nos informará de los
paquetes que se van a instalar y los que se van a desinstalar. Una vez
aceptado este proceso, se nos preguntará si queremos borrar los paquetes
.deb de nuestro disco duro. (Estos archivos se almacenan en /var/cache/).
Al disponer de ellos en CD-ROM, podemos contestar que sí, ya que su
presencia sólo implica la ocupación de espacio en el disco duro. Auto-
máticamente, se arranca el programa de configuración de exim, donde
elegiremos la opción 4. Finalmente, tras unos momentos nos aparecerá
por pantalla:
4
6
Knoppix
3.1. Introducción
Esta lección pretende llegar a ser una de nuestras primeras experien-
cias con un entorno UNIX. Por esta razón, su desarrollo es guiado paso
a paso, dejando, por supuesto, la puerta abierta a los más curiosos para
que investiguen por cuenta propia. Con él se pretende mostrar de forma
práctica todo lo que se ha expuesto hasta ahora de forma teórica.
Todo la lección puede desarrollarse sobre cualquier PC, ya que el
riesgo de dañar la información que podemos tener es mínimo. Se ha
escogido esta distribución porque para arrancarla no se requieren cono-
cimientos previos del sistema operativo, y porque, una vez detenido el
sistema, no deja rastro, a no ser que nosotros lo forcemos (KNOPPIX,
por defecto, no monta en el sistema los discos duros, así que nuestros
datos están a salvo), en el ordenador por donde se ha hecho correr.
El hecho de ser una distribución arrancable (botable) desde un CD-
ROM y no dejar rastro en el ordenador donde se ha ejecutado, una vez
ha terminado el proceso de parada, hace que, aun estando basado en
Debian, el sistema de ficheros no siga lo que marca la Debian Policy al
respecto. Es bueno que desde el principio nos acostumbremos a trabajar
con distintas distribuciones, y aprendamos a distinguir entre lo que es
común a todos los sistemas basados en UNIX y lo que es propio de cada
distribución. Antes de empezar sólo un consejo: adelante con nuestras
propias iniciativas, intentemos responder nosotros mismos a nuestras
inquietudes, consultemos los man, hagamos pruebas, fallemos y anali-
cemos el porqué lo hemos hecho, intentémoslo de nuevo, una y otra vez,
hasta conseguir los resultados deseados; es así como se aprende UNIX,
sin miedo, sacando partido de los propios fallos.
25
26 Curso GNU/Linux
( '
o bien gráficamente con el comando y escogiendo la opción
"es". Es importante recordar que siempre tenemos la opción de auto-
completar pulsando TAB una vez, si sólo hay una opción posible, y que
se autocomplete; o dos veces seguidas, si hay más de una opción, y que
se nos muestren las posibilidades. Podemos probarlo con el comando
'(
mismo.
Ahora ya se está en disposición de trabajar con un sistema operativo
completamente funcional y sin necesidad de usar el disco duro. Para
guardar información para otras sesiones puede emplearse un disquete o
un disco extraible USB.
Se gana en velocidad.
Teclea: knx-hdinstall
Una vez hayas reiniciado Knoppix desde el disco duro, haz clic
sobre el icono del KDE Control Center que hay en la lanzadera, en
la parte inferior del pantalla (es un icono de un monitor en color
con una tarjeta delante).
Comprendiendo el sistema:
comandos básicos
4.1. Introducción
Los sistemas operativos Unix y en particular los GNU/Linux, pue-
den emplearse tanto para trabajar en grandes computadoras como en
ordenadores personales. Pudiendo ser usuarios de un ordenador GNU/-
Linux desde uno hasta varios cientos de usuarios. Hay que destacar
que en un instante dado puede haber desde uno hasta varios cientos de
usuarios trabajando simultáneamente, pudiendo cada uno de ellos tener
“abiertas” varias sesiones y en cada una de ellas haber “lanzado” múlti-
ples procesos. Resulta obvio que todos estos usuarios no tienen por qué
estar físicamente junto al ordenador y de hecho pueden estar localizados
en el otro extremo de la Tierra.
A lo largo de este capítulo se intentará describir cómo funciona un
sistema Linux para poder trabajar simultáneamente con varios usuarios,
que poseen sus propios ficheros, que son privados, y para poder realizar
innumerables tareas al mismo tiempo.
Aunque el trabajo con un entorno gráfico resulta muy cómodo, en
numerosas ocasiones sólo es posible trabajar en modo texto y en muchas
otras es muy recomendable. En particular, cuando se trabaja como supe-
rusuario y/o se pretende configurar algún dispositivo es imprescindible
emplear el modo texto. Por tanto, veremos cuáles son los comandos bá-
sicos de Unix en modo texto e introduciremos en concepto de las shells.
31
32 Curso GNU/Linux
zsh. Z shell.
Para que el alumno se haga una idea clara de todo esto, le recomendamos
que teclee la siguiente instrucción ps aux y vea qué sucede. También
resulta muy interesante que use el comando top ya que puede ver en
tiempo real cómo aparecen y desaparecen los procesos en el ordenador
y cómo unos consumen más tiempo, CPU y memoria que otros.
En la primera columna de la anterior lista aparecen los usuarios que
son propietarios de los procesos, además en la segunda columna aparece
el número de identificación del proceso que lo define unívocamente. Sa-
ber qué significa el resto de la información se deja como tarea al alumno.
Si nos centramos sólo en los procesos de los usuarios, éstos pueden
crearse tecleando un comando en una terminal, ejecutando una aplica-
ción al desplegar un menú gráfico o pueden ser lanzados por otro proce-
so como un subproceso. Los procesos pueden estar corriendo de forma
interactiva o en background.
34 Curso GNU/Linux
En esta salida pueden verse las sesiones abiertas, sus propietarios y los
procesos que llevan asociados.
' &
&
'
¤ '
& ¥
' '
& ¥ '
Como puede observarse, además del nombre del fichero, aparece mucha
más información. En particular la primera columna se refiere a los per-
misos, las dos siguientes al propietario y al grupo, la cuarta al tamaño
Curso GNU/Linux 37
Es decir no puede borrar la cuenta del “root”. Por cierto la cuenta “root”
es la cuenta del superusuario!.
Puede intentar borrar el directorio donde se encuentran la mayoría
de las aplicaciones: rm -r /usr. Verá que recibe numerosos mensajes de
error.
Por supuesto no intente hacer rm -r *, en su directorio raíz, ya que
en este caso borrará su cuenta.
Espero que haya quedado claro, que es muy difícil borrar informa-
ción del sistema Linux a menos que se sea superusuario. Es por tanto
muy importante NO USAR LA CUENTA ROOT a menos que sea im-
prescindible.
Queda pendiente una cuestión: en el caso de que un usuario reci-
ba un virus y lo active, cosa muy improbable, ¿podrá borrarse el disco
duro?
clave está en que todos los periféricos y dispositivos del sistema se “re-
presentan” mediante un fichero especial, que se llama fichero de disposi-
tivo y que está en el directorio /dev. Un listado parcial de este directorio
muestra:
s|q |sx rso r j q tx ª vr¡ t ~o { ªvl m
sq « zv rs ¡ zrw q txr vr¡ m t ~ { ªvl ~
s rsj ªr q txw vr¡ mi t ~j { ªvln
sp r z r £xsq q tx¡ vr¡ mm tn { ªvll
sp r z m r m ª y ¬ q t vi vr¡ m~ tni { ªvl
s ªr r mi xr q t v m vr¡ mn tn m { ªvl¢
wwq r mm q zx q t v~ vr¡ ml tn~ { ªvlo
q ªr r m~ q t vn vr¡ m tnn { ªvl
ªrx z r mn ® w q t vl vr¡ ~ tnl { ªvlj
ªrx z i r ml ywr q t v vr¡n tn { ªv
Redirecciones y tuberías
El UNIX ofrece la posibilidad de cambiar la fuente de entrada (por de-
fecto el teclado) y el destino de salida (por defecto la pantalla) de los
comandos. Un comando normalmente se comunica con nosotros a tra-
vés de los tres canales siguientes:
rm borrar un fichero
rm [opciones] fichero
rm [opciones] – fichero
-v verbose, dice lo que hace
-i interactivo, pregunta si existe otro fichero con el mismo nombre
-r borrar directorios recursivamente
Compresión y Archivador
tar archivador
tar [opciones] -f fichero.tar directorio
-x extract, sacar del archivo
-c create, crear archivo nuevo
-r append, añadir al archivo
-t type, mostrar el contenido del archivo
-v verbose, dice lo que hace
Hay muchas más opciones (unidades de cinta etc.), pero las tres
formas más comunes son:
tar -cvf tarfile.tar . crear archivo del dir actual y de todos los
subdirectorios
tar -tf tarfile.tar mostrar el contenido del archivo
tar -xvf tarfile.tar extraer ficheros del archivo al directorio actual
Control de procesos
ps estado de procesos
ps [opciones]
-u formato de “usuarios”
-a también procesos de otros usuarios
-x también procesos sin terminal
Información y entorno
Comandos avanzados
Una vez que hemos instalado el Linux y nos sentimos algo seguros
con los comandos del UNIX, podemos desear realizar algunas configu-
raciones de nuestro sistema. La necesidad de cambiar algo en el sistema
normalmente surge por los siguientes motivos:
Muchas veces puede resultar bastante difícil averiguar qué tenemos que
modificar/configurar. Una receta podría ser la siguiente:
47
48 Curso GNU/Linux
2) Teclado
3) Ratón
4) Monitor
Una vez contestadas estas preguntas, que pueden ser más o menos
según el programa que utilicemos, toda la configuración se guarda en
el fichero /etc/X11/XF86Config-4. Este fichero está organizado en las
diferentes secciones que hemos ido viendo y, recurriendo a su manual,
veremos que tenemos muchísimas más posibilidades que nos dan una
flexibilidad total para configurar de la forma como queramos nuestras
X-Window. Para probar si realmente funcionan, podemos ejecutar “X”,
con lo cual debería aparecernos una pantalla con cuadros blancos y ne-
gros muy pequeños y el puntero del ratón como una X (para salir de la
misma podemos utilizar CTRL+ALT+BACKSPACE).
Si tenemos instalado algún window manager, lo más habitual para
arrancar X-Window es utilizar alguno de los shell scripts xinit o startx.
Éstos se encargan de lanzar el window manager configurado y reali-
zan algunas otras acciones necesarias para inicializar correctamente X-
Window. Una vez tenemos la pantalla en modo gráfico, podemos cam-
biar la resolución de la misma con las teclas CTRL+ALT++ y
CTRL+ALT+-, o volver a las consolas de texto con CTRL+ALT+F1,
CTRL+ALT+F2, etc. (con ALT+F7 volveríamos a la gráfica).
Otra característica importante en la configuración de X-Window es
la de la configuración de los Xwrappers. Los Xwrappers nos permiten
controlar qué usuarios pueden iniciar una sesión con X-Window. En
el fichero /etc/X11/Xwrapper.config se encuentra la directiva “allowed
users”, con la cual especificamos quién está autorizado para arrancar
X-Window con los valores:
4f 0 4c 4bc 0f
/ ( 4f 0 4c 4bc
( 0ff 0 ff 0f f
'
4f 0 4c 4bc 0 ff
/ 4f 0 4c 4bc 0fc
Donde pueden verse todos las direcciones IP que definen una red. Estos
números deberán ser proporcionados por la persona responsable de la
red. Además en el fichero /etc/resolv.conf aparece la lista de servidores
de nombres que usa el sistema.
Antes de que uno pueda llegar a este punto el sistema debe reco-
nocer la tarjeta de red. En la mayoría de los casos el sistema hace el
reconocimiento automáticamente, pero en otros es preciso indicarle al
sistema cuál es el módulo que requiere la tarjeta.
Los ordenadores portátiles que usan una tarjeta de red PCMCIA de-
ben ser configurados de forma diferente.
Hay que destacar la existencia de un programa de configuración net-
config que ayuda bastante a los usuarios noveles.
Siempre que se realice un cambio en la configuración habrá que
reiniciar la red con la instrucción:
' / (
5.3.3. Modem
La configuración de modems externos se puede realizar usando el
programa pppconfig. Hay que destacar que resulta muy complicado, y
a veces imposible, configurar un “winmodem”.
Todos los ficheros de configuración asociados al modem se encuen-
tran en el directorio /etc/ppp.
54 Curso GNU/Linux
ª sq vw ªxw v q rz£ }r z«qqq «z « zz zq z v }t¼¼ }rq® | r v
ªz w ª wxx zx v q pq zq z v q sq vw ªxw v
q rz£ q pq }r zq z v }t¼¼ q wwx v
5.3.4. Impresora
La tarea de configurar impresoras se puede ver facilitada a partir
del entorno gráfico. Existen multitud de aplicaciones para configurar el
sistema de impresión nativo (basado en lpd como servidor y lpr como
cliente), y otras que sustituyen este sistema por uno propio, comúnmen-
te también basado en la estructura cliente servidor. En esta sección pre-
sentaremos dos de estas herramientas: CUPS y LPRng, ambos con su
sistema propio de servidor de impresión.
Para la instalación de LPRng hay que instalar necesariamente el pa-
quete lprng. El paquete que contiene la GUI es de configuración del
fichero /etc/printcap basado en LPRng es lprngtool. Obviamente, para
hacer modificaciones en dicho fichero de configuración, habrá que eje-
cutar el comando lprngtool con privilegios de root. Adicionalmente, se
recomienda instalar el paquete printop, que aporta una interfaz gráfica
para todo el sistema de impresión, y el paquete lprng-doc, el cual con-
tiene toda la documentación de este sistema de impresión.
Para instalar CUPS (Common Linux Printing System) habrá que ins-
talar el paquete del servidor de impresión, cupsys; y se recomienda ins-
talar, junto a este paquete, el de clientes de impresión, paquete cupsys-
client. También se puede instalar el paquete cupsys-bsd para disponer de
los comandos habituales en el sistema de impresión de BSD. Por lo que
se refiere a drivers, los paquetes cupsys-driver-gimpprint y cupsomatic-
ppd, aportan gran número de ellos junto con numerosos algoritmos de
procesamiento de imagen, definición de tamaños de papel, etc.
Capítulo 6
El sistema X-Window:
window managers, Gnome y
KDE
6.1. Introducción
X-Window es una arquitectura de ventanas diseñada a mediados de
los ochenta para poder disponer de un entorno gráfico en estaciones de
trabajo. A diferencia de otros entornos de ventanas, la arquitectura X-
Window se diseñó para ser independiente de plataforma, de manera que
se pudiera instalar en cualquier ordenador que corriera un sistema tipo
UNIX. Aunque la arquitectura de ventanas X-Window ha tenido una di-
latada historia en la que se han utilizado diferentes tipos de licencias,
varias implementaciones y muchos equipos de desarrollo diferentes, ac-
tualmente se utiliza, mayoritariamente, la implementación que ha desa-
rrollado el proyecto XFree86 Inc, llamada XFree86. Esta implementa-
ción se distribuye con licencia open source, que aunque no es exacta-
mente igual que la GPL o sus variantes, tiene características parecidas
que permiten acceder a su código fuente, su redistribución, etc. Por es-
te motivo, en la mayoría de distribuciones de GNU/Linux (y cada vez
más en otros sistemas operativos ,como Mac OS X) se incorpora esta
implementación de X-Window.
X-Window está diseñado con una arquitectura cliente/servidor. Este
tipo de arquitectura significa que el software está estructurado en dos
partes totalmente independientes (cliente y servidor) que se comunican
a partir de un enlace de comunicación. Aunque esto implica que el dise-
ño y la codificación es un poco más compleja, esta arquitectura propor-
ciona una flexibilidad total en el sentido que cliente y servidor pueden
estar ubicados en diferentes sitios y utilizando diferentes plataformas
y/o sistemas operativos. Además, podemos aprovechar muchísimo más
un mismo cliente, ya que éste podrá dar servicio a más de un servidor
a la vez. De esta forma, los ordenadores servidores pueden trabajar con
un entorno gráfico y los recursos del cliente. Naturalmente, esta arqui-
tectura también nos permite trabajar con X-Window de forma local en
55
56 Curso GNU/Linux
Cliente
Servidor
Enlace
A medida que las tarjetas gráficas han ido evolucionando, cada vez
más aplicaciones y juegos necesitan de un procesamiento en 2D o 3D
más rápido. Si bien la arquitectura de ventanas X-Window aporta mu-
chas ventajas, cuando queremos utilizar este tipo de aplicaciones el di-
seño cliente/servidor no es el más adecuado, ya que no aprovechamos
las funciones de procesamiento 2D y 3D extremadamente rápido de las
tarjetas gráficas instaladas en el servidor. Para solucionar este problema,
a partir de 1998 apareció una tecnología llamada DRI (Direct Rende-
ring Infrastructure), que permite aprovechar los chips de procesamiento
de las tarjetas para ahorrar trabajo al cliente X-Window. De esta forma,
continuamos teniendo todas las ventajas de X-Window aprovechando
los elementos específicos de las tarjetas gráficas.
A diferencia de otros sistemas operativos donde el entorno gráfi-
co está íntimamente integrado con el resto de funciones, la arquitectura
X-Window es totalmente independiente del operativo y no nos limita a
ningún GUI (Grafic User Interface) determinado. De hecho, la arqui-
tectura sólo nos proporciona herramientas gráficas de bajo nivel para
manipular la salida del monitor. Estas herramientas están incluidas en
la librería Xlib y principalmente son funciones para crear y manipular
ventanas, operaciones con fuentes de caracteres, detección de eventos
de usuario y operaciones gráficas. Con estas funciones podemos dotar a
nuestras aplicaciones del look and feel que queramos, crear nuevos GUI,
. . . De hecho, esto supuso un trabajo adicional para los primeros desa-
rrolladores de aplicaciones en X-Window, ya que además de programar
la aplicación tenían que desarrollar sus propias librerías para la creación
de menús, iconos, etc. A medida que X-Window fue creciendo, fueron
apareciendo lo que llamamos toolkits, que son librerías generalmente
implementadas con Xlib y que proporcionan un GUI particular. De esta
manera, al diseñar una aplicación podemos utilizar alguno de estos tool-
kits que ya proporcionan las herramientas estándares para crear menús,
botones, gestionar los cut and paste, . . . y centrarnos en programar la
aplicación en sí. El no marcar ningún look and feel ha sido otra de las
claves del éxito de la arquitectura X-Window, ya que cada fabricante o
desarrollador de software ha podido diseñarse uno propio, marcando la
diferencia con los demás.
El window manager es un servidor especial de X-Window que se
encarga de gestionar todas las ventanas, los escritorios, las pantallas vir-
tuales, etc. Naturalmente, todas las aplicaciones pueden funcionar con
cualquier window manager, ya que éste sólo se encarga de gestionar la
ventana donde está ubicado el programa. Aunque la programación de
un window manager es muy diferente que la de una aplicación, también
se suelen utilizar toolkits particulares que proporcionan un look and feel
determinado. Actualmente existen decenas de window managers dife-
rentes (wmaker, sawmill, olvwm, etc.), siendo el mismo usuario quien
puede elegir el que más le guste.
Otro tipo de software muy relacionado con X-Window es el que se
encarga de proporcionar un entorno integrado para las aplicaciones, el
escritorio, las herramientas de administración del sistema, etc. Los más
58 Curso GNU/Linux
también se suele llamar a la ejecución del fichero .
Tener que especificar cada vez qué window manager deseamos uti-
lizar, una vez nos hayamos decidido por uno en concreto, puede ser un
tanto pesado. Para especificar qué window manager debe usarse en ca-
so de que después del comando no se especifique ninguno en
concreto, crearemos el archivo .xsession en el directorio raíz del usuario
con el contenido siguiente, en el caso que quisiéramos que el window
manager por defecto fuese el twm, por ejemplo:
A
¦
/
6.6.1. GNOME
GNOME es un proyecto que forma parte de GNU, que se caracte-
riza por no necesitar estrictamente de un window manager en concre-
to, aunque se recomienda que se use alguno que garantice su correcto
funcionamiento (a GNOME-compliant window manager) como pueden
ser: IceWM o Sawfish. Aun así, para respetar las preferencias y la li-
bertad del usuario, GNOME, en su control panel dispone siempre de
un window manager selector, que nos permite escoger qué window ma-
nager queremos usar. GNOME está basado en Gtk toolkit, las propias
64 Curso GNU/Linux
!
y, una vez dentro, lanzar desde un terminal
X, o bien operar de modo inverso, es decir, arrancar GNOME por los
mismos procedimientos que Sawfish, y luego lanzar sawfish desde un
terminal X. Se recomienda proceder dela última forma si queremos que
la próxima vez que arranquemos GNOME se ejecute Swafish (será el
propio sesión manager de GNOME el encargado de realizar y registrar
los cambios necesarios para que esto ocurra).
Una vez familiarizados un poco con GNOME, lo que podemos ha-
cer es instalar algunos paquetes que nos pueden ser útiles, en concreto
gnome-help y gnome-terminal, el primero nos ofrece una interfaz don-
de podremos leer mans, ficheros de texto en un entorno gráfico, y el
segundo instala el xterm propio de GNOME.
Una aplicación que dará un aspecto mucho más amigable a GNOME
será Nautilus, concebido, en principio, como un gestor de ficheros, pero
que además nos permitirá configurar el desktop. Para su correcto funcio-
namiento, Nautilus necesita de Mozilla M18 y de GNOME Helix. Por
tanto, los paquetes que habrá que instalar serán los siguientes: nautilus-
suggested, para hacer la instalación de Nautilus y mozilla, para hacer
una instalación completa del navegador (en cuanto a su configuración,
podemos instalar las fuentes , y podemos poner en auto el
sound daemon’s dsp wrapper).
GNOME es un proyecto en constante desarrollo y que ofrece multi-
tud de aplicaciones. Por eso, una vez instalado su sistema básico, suge-
6 // /
rimos al lector que visite su página y que sea
él mismo el que explore, descubra y decida cuál de ellas pueden ser de
Curso GNU/Linux 65
6.6.2. KDE
KDE, a diferencia de GNOME, sí que necesita de un window mana-
ger concreto, se trata de kwm, basado en Qt toolkit y en las propias kde-
libs. También dispone de su launcher panel: kpanel, de su propio gestor
de archivos: Konquest y de su utilidad de configuración: Control Panel.
Obviamente, KDE puede estar instalado en el mismo sistema donde ha-
yamos instalado GNOME, e incluso hay aplicaciones pertenecientes a
un desktop manager que pueden correr en el otro. Además, KDE tam-
bién tiene su propio display manager (kdm) junto con muchísimas más
aplicaciones. Nuevamente se recomienda al lector una visita a su página
6 / // ( '
para conocer sus posibilidades: , y la página del
6
'
encargado de integrar KDE en Debian
. Asimismo, podemos ejecutar la línea siguiente para ver la
integración de KDE en Debian:
6 A
!
( '
¦
¿Procesadores de texto o
editores de texto?
7.1. El problema
67
68 Curso GNU/Linux
7.3. Uniendo
Ahora se trata de explicar como funciona todo esto. Si tiene una bue-
na configuración de TeX es algo como lo siguiente: Introduce el texto
en su editor favorito. Incluye las “anotaciones” requeridas directamente
o el editor lo hace vía menús o botones. Cuando quiera ver como va la
versión tipográfica elige una opción del menú o hace clic en un botón
del editor e invoca al programa de tipografía. Otro elemento de menú
o botón abrirá un previsualizador en el que se puede ver lo que apare-
cerá en la impresora. Y es generalmente un verdadero “WYSIWYG”
—el previsualizador mostrará una representación muy exacta de lo que
se obtendrá en la impresora.— Puede agrandar una zona, visualizar una
página entera, y desarrollar posibilidad similares. Se envía esta salida a
la impresora con otro botón o elemento de menú y se continúa editando.
Más tarde querrá previsualizar el archivo que ha actualizado. Se
vuelve a invocar el programa de tipografía. Esta vez no tendrá que invo-
car el previsualizador: si lo ha dejado corriendo se actualizará automáti-
camente. Cuando haya terminado una sesión de edición de texto puede
borrar el archivo de la versión tipográfica si necesita espacio en el dis-
74 Curso GNU/Linux
7.3.4. Limitaciones
Hemos intentado hacer un fuerte alegato en favor de la opción “ASCII
más programa tipográfico” en vez de procesador de texto. Admito, sin
embargo, que ha algunos tipos de documentos para los cuales un siste-
ma WYSIWYG es la herramienta natural. Pienso en documentos cortos
muy específicos con gran cantidad de formateo de texto en vez de texto
en sí: posters, invitaciones y similares. Podría hacer esto en TeX pero
3 El código binario que utiliza un procesador de texto es una bestia totalmente dife-
rente, interconversión entre TeX y un procesador de texto no es fácil. Además, como
TeX es una máquina tipográfica superior, es imposible pasar de TeX a, por ejemplo,
Word sin pérdida de información.
76 Curso GNU/Linux
7.3.5. Estrambote
Quizá haya percibido que estamos implicados en el tema. así es. La
razón no es sólo una cuestión de debate académico entre modos alterna-
tivos de preparar un texto. Es un conjunto de factores en el que el poder
de los grandes vendedores de software sólo empujan de una parte. Por
ser amables, afrontamos una situación en la que MS Word se convierte,
para casi todo el mundo, en una suerte de estándar para la preparación de
documentos usando un ordenador. Pero Word es un estándar que tiene
que ofrecer más que el hecho de que es (o aspira a ser) un estándar.
Es un poco como el QWERTY. ¿Conoce la historia? ¿Por qué las
teclas de un máquina de escribir (y también, por extensión, de los orde-
nadores) tiene QWERTYUIOP en la línea superior? No fue la disposi-
ción original de la teclas. Fue diseñada para un propósito muy específi-
co: entorpecer a los mecanógrafos. El problema era que la habilidad de
los primeros mecanógrafos rápidamente superaban las capacidades de
las primeras máquinas de escribir: un mecanógrafo rápido podría atas-
car las teclas pulsándolas más rápidamente de lo que ellas tardaban en
retornar después de golpear la cinta de tinta. QWERTY distribuye las
teclas para entorpecer la mecanografía. Esto es absurdo en un teclado
electrónico pero es muy tarde para cambiar: QWERTY es un estándar y
todos los intentos de racionalizar han fracasado ante esta realidad.
De forma análoga, estoy argumentando que MS Word no tiene dere-
cho a ser considerado un estándar en la preparación de documentos. Es-
pero que no sea demasiado tarde en este caso, que aún haya oportunidad
de decir No a Word. Realmente, en cierto sentido Word es incluso peor
que QWERTY: no es un estándar sino un “ascensorista” —un atrepa!.—
˛
El “estándar” de Microsoft para la representación binaria de documen-
tos varía a voluntad de. . . Microsoft Corporation.4 El cuasi-monopolio
de MS Word se soporta sobre el cuasi-monopolio de Microsoft Windows
(tema que no se trata aquí). Y como no están presionados por rivales co-
merciales Microsoft no tiene interés en establecer algún tipo de estándar
para la representación binaria de formato de texto. Por el contrario, tie-
4 Imagínese
el desastre que sería que el kilogramo patrón guardado en la Oficina
Internacional de Pesos y Medidas —BIMP— variase a voluntad del BIMP que es el
organismo encargado de garantizar que ese estándar no varíe. (N. del T.)
Curso GNU/Linux 77
7.4. La Alternativa
Una vez aquí, es el momento de concretar las alternativas y por-
porcionar más detalles sobre buenos editores de texto, TeX y todo lo
demás.
1. latex ldesc2e
2. latex ldesc2e
3. makeindex ldesc2e
5 En la opinión de algunos de los que han usado Word durante años antes de cambiar
a TeX y que tiene interés en tipografía no ha habido ninguna mejora digna de tal nombre
en MS Word para Windows desde la versión 2.0 de 1990.
78 Curso GNU/Linux
4. latex ldesc2e
Vi
Para editar un texto (digamos ma.txt) con el editor vi, teclee desde
un interprete de comandos: vi ma.txt vi es un editor con dos modos:
edición y comandos. En el modo de edición el texto que ingrese será
agregado al texto, en modo de comandos las teclas que oprima pueden
representar algun comando de vi. Cuando comienze a editar un texto
estará en modo para introducir comandos el comando para salir es :
seguido de 3 y ENTER con ese comando saldrá si no ha hecho cambios
al archivo o los cambios ya están salvados, para salir ignorando cambios
63 1 1"
seguido de . Puede insertar texto (pasar a modo edición) con
varias teclas:
(e.g ).
En su sistema puede haber diversas versiones de vi, recomendamos
vim que ofrece extensa ayuda y cuenta con varias extensiones, por ejem-
plo:
'
Emacs
19
indican con secuencias de teclas que comienzan con la tecla (llama-
da Meta y abreviada como M en la documentación de Emacs) o teclas
que se oprimen simultaneamente con Control (abreviada con C en la
documentación de Emacs). Algunas secuencias de teclas útiles son:
! !
Para salir de Emacs. (Note que son dos secuencias de
teclas, primero Control simultáneamente con x y después Control
simultáneamente con c).
! !
8.1. Â Ã ÄÅ ÃÂ Æ Ç Ä ÈÉ ÊÅ Ë Ç ÌÍ
El programa es un programa que permite comunicarse a
dos ordenadores a través de algunos de los variados servicios de red que
existen entre dos máquinas GNU/Linux (o UNIX). Para ver una lista de
estos servicios puede ejecutar
&
83
84 Curso GNU/Linux
B
'
4 $ 4c 6 b ) 6 -
Tanto las entradas como salidas por defecto (stdin, stdout, stderr)
se redirigen de forma adecuada a la sesión desde la que se ejecuta el
comando. Insistimos en que ninguna de las tres aplicaciones anteriores
deben utilizarse en una red pública dado el gran riesgo que implican en
términos de seguridad.
8.2. ÎÂÏ
'
'
El primero de ellos es el programa básico para transferencia de fi-
cheros. Tras identificarnos como usuario y dando la correspondiente
Curso GNU/Linux 85
B
00 ! : & ' + ; Á ' " ' 2" 29
00 ! " ' 2" 29
+ ;
&
00 !
00 !
00 !#
+ ;
/ '
00 7 / '
' f
&
)
'
6 ' - 6
/ ' 6
0 5
ftp> cd debian
0 f #% '
' '
ftp> get README.mirrors.txt
6 " 1 5 $ 1
6
" 1 5 $ 1
0 ; #" '
4f !
0 4ee
4f f (
' / '
0 0b !+
'
0 0b ba
'
)
' - c g0 f 0 %
'
c f
& ' a
)c 4 ( :
-
ftp> bye
Tras lo cual habremos cerrado la sesión y tendremos el fichero
" 1 5 $ 1
en el directorio donde estuviésemos cuando ini-
ciamos la sesión de FTP. La orden simétrica a sirve para enviar un
fichero al ordenador remoto y es .
8.3. finger
es un servicio que permite de forma remota conocer los
usuarios conectados a un sistema. Si escribimos
> !0 b
!0b
veremos que usuarios están conectados al nodo . En mu-
chos casos este sefvicio está desactivado por razones de seguridad.
este esquema. Pablo puede encriptar (codificar) sus mensajes tanto con
la cpub como con la cpri. Si encripta con cpub desencripta con cpri y
viceversa, siendo imposible de desencriptar de otra forma (salvo que uno
disponga de muuuucho tiempo o de una máquina infinitamente potente
si el algoritmo de encriptación es alguno de los usados en GNU/Linux).
Supongamos otro usuario (p.e. Yolanda) que a su vez ha generado sus
claves cpub y cpri. Veamos como consigue Paco enviar un mensaje a
Yolanda de manera segura teniendo en cuenta que el canal que utiliza es
inseguro (en el caso de Internet siempre es así). Vamos a considerar tres
casos dependiendo de lo que se quiera conseguir con el mensaje.
8.4.1. Ð ÐÑ
El reemplazo seguro tanto de como de y se
consigue con el comando , abreviatura de Secure SHell. Así, para
iniciar una sesión en una máquina remota de modo seguro podemos
escribir
88 Curso GNU/Linux
!
'
< > < >
o también
!
> '
8.4.2. Ð ÒÓ
El comando (Secure CoPy) es la alternativa segura a per-
mitiéndonos la copia de ficheros de una máquina a otra. La sintaxis que
se emplea en este comando es
d > ' ' d 6 d
d'
> ' ' d'
6 d'
∼
>'
6
!0
∼
>'
6
!0
8.4.3. ÐÔÕÓ
8.5. Mensajería
En linux existen infinidad de programas con los que poder enviar y
leer correos electrónicos. Hacer una descripción más o menos detallada
de cada uno de ellos es demasiado largo y en esta sección sólo propor-
cionaremos una lista de los que más usamos:
Navegadores
netscape: Netscape.
91
92 Curso GNU/Linux
10.1. Introducción
GNU/Linux es probablemente la plataforma informática más ade-
cuada para trabajar en el campo de la ciencia y la investigación. En ella
encontramos una gran variedad de lenguajes de programación de alto
nivel, herramientas para el desarrollo y depuración (debuggers) de pro-
gramas informáticos, paquetes para la representación gráfica y el trata-
miento estadístico de datos y procesadores de texto especialmente ade-
cuados para la combinación de ecuaciones y texto. Incluso podemos
encontrar el software necesario para construir un superordenador con
componentes de PC’s y algún hardware extra. Esta sección del curso
pretende proporcionar una lista de software libre que permita llevar a
cabo estas tareas así como enlaces que faciliten su configuración y uso
por parte del usuario.
Trataremos de dar una visión general y no limitarnos a una lista de
paquetes software, transmitiendo la idea de que GNU/Linux puede ser
la opción más adecuada en este campo1 . En concreto nos centraremos
en los siguientes temas:
93
94 Curso GNU/Linux
−r8 para compilar un programa en doble precisión. Siendo esta una de-
cisión apropiada en lo que se refiere al diseño del compilador puede en
algunos casos dificultar la migración de usuarios que previamente uti-
lizaran los compiladores proporcionados por SUN, DEC o HP. Para la
compilación de programas FORTRAN también se dispone de fort77 y
de f2c
6 / // &
#&
/
' b
( ).
El programa fort77 es un programa perl (ver más adelante) que in-
voca a f2c, un traductor de FORTRAN a C.
Un lenguaje moderno de gran potencia es PYTHON en particular
su versión enfocada al uso científico
6 / //
( ). A diferencia de los
ejemplos anteriores PYTHON es un lenguaje interpretado y no compi-
lado. Además, es interactivo y orientado a objetos, con extensiones para
cálculo numérico, gráficos, tratamiento de datos y combinado con Tk
permite el desarrollo de interfaces gráficas para los programas (GUI).
Otro lenguje interpretado cuyo uso se ha extendido recientemente
6 / //
es Perl ( ). Derivado de C, sed. awk y otros
lenguajes y herramientas, es un lenguje de alto nivel que permite la fácil
manipulación de ficheros, texto y procesos. Es especialmente apropiado
para aquellas tareas que impliquen el reconocimiento de patrones, para
el mantenimimento de sistemas, el acceso a bases de datos, la progra-
mación orientada a la web y en entornos gráficos.
EMACS
6/ // ' '
d
( ),
es en primera instancia un editor pero permite la compilación y el
linkado de aplicaciones, convirtiéndose de facto en el IDE por
excelencia en el mundo del software libre.
Yorick
6/ & /
'
( ' '
( )
es un lenguje de alto nivel, interpretado y rápido diseñado para lle-
var a cabo cálculo y análisis numérico con una sintaxis similar a
la de C, aunque simplificada.
6
YACAS ( ) es un programa
de uso sencillo enfocado a la realización de cálculos algebraicos
en el ordenador, permitiendo la manipulación simbólica de expre-
siones matemáticas así como llevar a cabo cálculos con precisión
arbitraria.
6
Maxima ( ) es un progra-
ma de computación simbólica derivado del DOE Macsyma, pa-
quete antecesor de los programas propietarios Maple y Mathe-
mathica. Entre otras posibilidades permite realizar integrales de
forma simbólica, representación de gráficos 3D y resolución de
ecuaciones diferenciales.
6// / !
h
R-Project ( ) es un proyecto que
ha desarrollado el llamado lenguaje R, un entorno para el desa-
rrollo de cálculos estadísticos y representaciones gráficas. Pro-
porciona multitud de herramientas para el análisis estadístico de
grandes conjuntos de datos siendo al mismo tiempo un efectivo
lenguaje de programación que permite la interacción con código
C o FORTRAN.
6 / //
Netlib ( ) contiene una ingente cantidad
de código fuente para métodos numéricos. Puede considerarse como EL
sitio donde buscar la subrutina que nos hace falta. Además tiene un foro
donde puede obtenerse ayuda e información.
Guide to Available Mathematical Software (GAMS) tiene un útil mo-
tor de búsqueda con el que obtener el código que más se adecue a nues-
tras necesidades.
Cabe destacar también LAPACK (Linear Algebra PACKage
6 / //
(
), una biblioteca estándar para lle-
var a cabo cálculos numéricos en álgebra lineal proporcionando paque-
tes para la resolución de sistemas de ecuaciones lineales, problemas de
autovalores o problemas de optimización y mínimos cuadrados. Está
muy documentada y es ampliamente usada en muchos ámbitos científi-
cos.