En el principio fue la línea de comandos (14 page)

BOOK: En el principio fue la línea de comandos
8.95Mb size Format: txt, pdf, ePub
ads

Por supuesto, dado que mi ordenador sólo tiene una pantalla, sólo puedo ver una línea de comandos, así que puede que crean que sólo puedo interactuar con un programa cada vez. Pero si mantengo apretada la tecla Alt y luego pulso el botón de función F2 en lo alto de mi teclado, aparece otra pantalla negra vacía que me pide que dé mi nombre de usuario y contraseña. Puedo entrar e iniciar otro programa, luego pulsar Alt-F1 y regresar a la primera pantalla, que sigue haciendo lo que quiera que estuviera haciendo cuando la dejé. O puedo pulsar Alt-F3 y entrar en otra pantalla, y una cuarta, y una quinta. En una de estas pantallas puedo entrar como yo mismo, en otra como root (el administrador del sistema), y en otra puedo entrar en un ordenador distinto a través de la Red.

Cada una de estas pantallas se llama, en jerga Unix, un tty, que es la abreviatura de
teletipo
. Así que cuando uso mi sistema Unix de este modo regreso a esa pequeña habitación en el Instituto de Ames donde escribí mi primer código hace veinticinco años, excepto que el tty es más silencioso y rápido que un teletipo, y es capaz de ejecutar un software incomparablemente superior, tal como emacs o las herramientas de desarrollo de GNU.

Resulta fácil (fácil para el estándar de Unix, no el de Apple/Microsoft) configurar un sistema Unix de modo que vaya directamente a un GUI cuando lo inicies. De este modo nunca se ve una pantalla tty. Yo todavía hago que el mío se inicie con esta pantalla de teletipo, blanco sobre negro, como un
memento mori
computacional. Solía estar de moda que los escritores tuvieran un cráneo humano sobre su escritorio como recordatorio de su mortalidad, de que todo era vanidad. La pantalla tty me recuerda que lo mismo sucede con las elegantes GUI.

El X Window System, que es la GUI de Unix, ha de ser capaz de ejecutarse en cientos de tarjetas de vídeo diferentes con diferentes chips, memoria y buses de placa base. Igualmente, hay cientos de tipos distintos de monitores en el mercado nuevo y usado, cada uno con diferentes especificaciones, así que probablemente haya más de un millón de combinaciones posibles de tarjeta y monitor. Lo único que todas tienen en común es que funcionan en modo VGA, que es la vieja pantalla de línea de comandos que se ve durante unos pocos segundos al iniciar Windows. Así que Linux siempre arranca en VGA, con una interfaz de teletipo, porque al principio no tiene ni idea de qué clase de hardware está conectado al ordenador. Para ir desde el teletipo hasta el GUI, hay que decirle a Linux exactamente qué tipo de hardware hay. Si te equivocas, obtendrás una pantalla en blanco en el mejor de los casos y, en el peor, podrías destruir físicamente el monitor, al enviarle señales que no puede manejar.

Cuando empecé a usar Linux, todo esto había que hacerlo a mano. Una vez me pasé casi un mes tratando de hacer que un monitor rebelde funcionara, y llené la mayor parte de un cuaderno con notas garabateadas cada vez más desesperadas. Hoy en día, la mayor parte de las distribuciones Linux incluyen un programa que automáticamente examina y configura el sistema, así que instalar X Window es casi tan fácil como instalar una GUI de Apple/Microsoft. La información crucial va a un archivo (un archivo de texto ASCII, naturalmente) llamado XF86Config, al que merece la pena echar un vistazo incluso aunque la distribución lo cree automáticamente. Para la mayor parte de la gente parece una serie de ensalmos crípticos sin sentido —y esa era la idea de mirarlo—. Un sistema Apple/Microsoft debe de tener la misma información para lanzar su GUI, pero posiblemente esté escondida en las profundidades, o probablemente esté en un archivo que ni siquiera puede abrir y leer un editor de textos. Todos los archivos importantes que hacen que los sistemas Linux funcionen están a la vista. Siempre son archivos de texto ASCII, así que no hacen falta herramientas especiales para leerlos. Se pueden mirar siempre que se quiera, lo cual es bueno, y se puede enredar con ellos y volver el sistema completamente disfuncional, lo cual ya no es tan bueno.

En cualquier caso, asumiendo que mi archivo XF86Config esté tal cual, introduzco el comando startx para iniciar el sistema X Window. La pantalla queda en blanco durante un minuto, el monitor emite extraños ruidos chirriantes, luego se reconstituye como un escritorio gris en blanco con un cursor de ratón en el medio. Al mismo tiempo inicia el gestor de ventanas. X Window es software de bastante bajo nivel: proporciona la infraestructura para una interfaz gráfica de usuario, y es una infraestructura pesada e industrial. Pero no trabaja con ventanas. Eso lo maneja otra categoría de la aplicación colocada encima de X Window, llamada «gestor de ventanas». Hay varios disponibles, todos gratuitos, por supuesto. El clásico es Tom’s Window Manager (
twm
, el «Gestor de Ventanas de Tom») pero hay una variante más pequeña y supuestamente más eficiente llamada
fvwm
, que es la que yo uso. Le tengo el ojo echado a un gestor de ventanas completamente diferente llamado
Enlightenment
, que puede ser el producto tecnológico más elegante que haya visto nunca, puesto que a) es para Linux, b) es libre, c) está siendo desarrollado por un número muy pequeño de hackers obsesos, y d) tiene un aspecto asombrosamente estiloso; es el tipo de gestor de ventanas que podría aparecer en el trasfondo de una película de Alien.

En cualquier caso, el gestor de ventanas funciona como un intermediario entre X Window y el software que se esté usando. Dibuja los bordes de las ventanas, los menús, y demás, mientras las aplicaciones dibujan el contenido de las ventanas. Las aplicaciones pueden ser de cualquier tipo: editores de texto, navegadores web, paquetes gráficos o utilidades, como un reloj o una calculadora. En otras palabras, a partir de este punto, da la sensación de haber pasado a un universo paralelo bastante parecido al familiar universo de Apple o Microsoft, pero ligera y ubicuamente diferente. El principal programa gráfico en Apple/Microsoft es Adobe Photoshop, pero en Linux es algo llamado Gimp. En vez de Microsoft Office, se puede comprar algo llamado ApplixWare.
33
Hay muchos paquetes de software comercial, tales como Mathematica, Netscape Communicator y Adobe Acrobat, disponibles en versión Linux y, según cómo se configure el gestor de ventanas, se puede hacer que tengan el mismo aspecto y se comporten igual que lo harían en MacOS o Windows.

Pero hay un tipo de ventana que se verá en la interfaz gráfica de Linux y que es raro o inexistente en otros sistemas operativos. Estas ventanas se llaman xtermy no contienen nada más que líneas de texto —esta vez texto negro sobre fondo blanco, aunque se pueden cambiar los colores: cada ventana xtermes una interfaz de línea de comandos en sí misma—, un tty en una ventana. Así que incluso cuando se está en pleno modo gráfico, se puede seguir hablando con el ordenador Linux a través de una interfaz de línea de comandos.

Hay mucho buen software de Unix que no tiene interfaz gráfica en absoluto. Esto puede deberse al hecho de que se desarrolló antes de que X Window estuviera disponible, o porque las personas que lo escribieron no querían sufrir todo el agobio de crear una GUI, o sencillamente porque no lo necesitaban. En cualquier caso, esos programas pueden invocarse introduciendo sus nombres en la línea de comandos de una ventana xterm. El comando whoami, mencionado antes, es un buen ejemplo. Hay otro llamado wc (
word count
, recuento de palabras) que sencillamente devuelve el número de líneas, palabras y caracteres en un archivo de texto.

La capacidad de ejecutar estos programitas de utilidades en la línea de comandos es una gran virtud de Unix, y una que es improbable que dupliquen los sistemas operativos de interfaz gráfica pura. El comando wc, por ejemplo, es el tipo de cosa que resulta fácil de escribir con una interfaz de línea de comandos. Probablemente no consiste más que de una pocas líneas de código, y un programador listo quizá podría escribirlo en una sola línea. En forma compilada sólo ocupa unos pocos bytes de espacio de disco. Pero el código requerido para darle una interfaz gráfica de usuario a ese programa probablemente tendría cientos o incluso miles de líneas, dependiendo del capricho del programador. Compilado en un software ejecutable, tendría un montón de código GUI. Sería lento de iniciar y ocuparía un montón de memoria. Este esfuerzo sencillamente no valdría la pena, así que wcnunca se escribiría como un programa independiente. Los usuarios tendrían que esperar a que el recuento de palabras viniera incluido en un paquete de software comercial.

Las interfaces gráficas tienden a imponer un montón de código superfluo al software, incluso al más pequeño, y este plus cambia completamente el entorno de programación. Las pequeñas utilidades ya no merecen la pena escribirse. Esta funciones tienden a ser aglutinadas en paquetes más amplios de software. A medida que las interfaces gráficas se vuelven más complejas, e imponen cada vez más código superfluo, esta tendencia se vuelve omnipresente, y los paquetes de software se hacen cada vez más colosales; a partir de cierto punto empiezan a fusionarse, como Word, Excel y PowerPoint se fundieron en Microsoft Office: un enorme Corte Inglés de software al borde de una ciudad llenas de tiendecitas en quiebra.

Es una analogía injusta, porque cuando una tiendecita quiebra significa que un tendero ha cerrado el negocio. Por supuesto, nada de eso ocurre cuando wc queda subsumido en uno de los incontables elementos del menú de Microsoft Word. El único inconveniente real es la pérdida de flexibilidad para el usuario, pero es una pérdida que la mayoría de clientes obviamente no nota o no les importa. El inconveniente más serio del «enfoque Corte Inglés» es que la mayoría de usuarios sólo quieren o necesitan una pequeña parte de lo que contienen estos gigantescos paquetes de software. El resto es basura, peso muerto. Y sin embargo el usuario en el cubículo de al lado tendrá opiniones completamente distintas acerca de qué es útil y qué no lo es.

La otra cosa importante que hay que mencionar aquí es que Microsoft ha incluido una característica verdaderamente elegante en Office: un paquete de programación en Basic. Basic es el primer lenguaje de ordenador que aprendí, allá cuando usaba la cinta de papel y el teletipo. Usando la versión de Basic que viene incluida en Office uno puede escribir sus propias utilidades que saben cómo interactuar con todos los enredos, pijaditas, lacitos y pompones de Office. Basic es más fácil de usar que los lenguajes utilizados habitualmente en la programación Unix de línea de comandos, y Office ha llegado a muchas más personas que las herramientas GNU. Así que es bastante posible que esta característica de Office acabe por generar mucho más hacking que GNU.

Pero ahora estoy hablando del software de aplicaciones, no de sistemas operativos. Y como he dicho, el software de aplicaciones de Microsoft tiende a ser muy bueno. Yo no lo uso mucho, porque no entro dentro de su mercado diana.

Si Microsoft saca alguna vez un paquete de software que yo use y me guste, entonces será el momento de que se deshagan del stock, porque yo soy un segmento de mercado de una persona.

La fatiga del «geek»

En los años que llevo trabajando con Linux
34
he llenado tres cuadernos y medio registrando mis experiencias. Sólo empiezo a escribir cosas cuando estoy haciendo algo complicado, como instalar X Window o enredar con mi conexión de Internet, así que estos cuadernos sólo contienen el registro de mis luchas y frustraciones. Cuando las cosas me salen bien, trabajo feliz y contento durante muchos meses sin anotar nada. Así que estos cuadernos son una lectura bastante lúgubre. Cambiar nada en Linux es cuestión de abrir varios de esos pequeños archivos ASCII y cambiar una palabra aquí y un carácter allí, de modos que resultan extremadamente significativos para el funcionamiento del sistema.

Muchos de los archivos que controlan el funcionamiento de Linux no son nada más que líneas de comando que se volvieron tan largas y complicadas que ni siquiera los hackers de Linux podrían escribirlas correctamente. Cuando se trabaja con algo tan potente como Linux, fácilmente se puede dedicar toda una media hora a escribir una sola línea de comando. Por ejemplo, el comando find, que busca en todo el sistema de archivos aquellos ficheros que cumplan ciertos criterios, es fantásticamente potente y general. Su man tiene once páginas, y son páginas concisas; podrían expandirse a todo un libro. Además, como si eso no fuera lo bastante complicado por sí mismo, siempre se puede dirigir la salida de un comando Unix a la entrada de otro igualmente complicado. El comando pon, que se usa para activar una conexión PPP con Internet, requiere tanta información detallada que básicamente resulta imposible lanzarlo todo desde la línea de comandos. En lugar de eso, se abstraen grandes pedazos de su entrada a tres o cuatro archivos distintos. Hace falta un
script
35
de marcación, que de hecho es un programita que le dice cómo marcar el teléfono y responder a diversos sucesos; un archivo llamado options, que lista cerca de sesenta opciones diferentes sobre cómo instalar la conexión PPP; y un archivo llamado secrets, que incluye información sobre las contraseñas.

Presumiblemente hay hackers cuasidivinos de Unix en algún lugar del mundo que no tienen por qué usar estos pequeños scripts y archivos de opciones como muleta, y que sencillamente pueden sacar líneas de comando fantásticamente complejas sin cometer errores tipográficos y sin tener que pasarse horas hojeando la documentación. Pero yo no soy uno de ellos. Como casi todos los usuarios de Linux, dependo de miles de pequeños archivos de texto ASCII que ocultan todos esos detalles y que a su vez están metidos en recovecos del sistema de archivos de Unix. Cuando quiero cambiar algo acerca del modo en que funciona mi sistema, edito esos archivos. Sé que si no sigo la pista de cada pequeño cambio que he realizado, no podré hacer que el sistema funcione tras haber enredado con él. Mantener registros escritos a mano es tedioso, por no decir algo anacrónico. Pero es necesario.

Probablemente me habría ahorrado un montón de dolores de cabeza trabajando con una compañía llamada Cygnus Support, que existe para proporcionar ayuda a los usuarios de software libre. Pero no lo hice, porque quería ver si podía hacerlo yo solo. La respuesta resultó ser que sí, pero por los pelos. Y hay muchos retoques y optimizaciones que probablemente podría hacer a mi sistema que nunca he llegado a probar, en parte porque algunos días me canso de ser un morlock, y en parte porque me da miedo estropear un sistema que en general me funciona bien.

BOOK: En el principio fue la línea de comandos
8.95Mb size Format: txt, pdf, ePub
ads

Other books

Bad Friends by Claire Seeber
Beluga by Rick Gavin
The Tobermory Cat by Debi Gliori
Cyrion by Abigail Borders
The Face In The Mirror by Stewart, Barbara
Beauty and the Sheikh by Shelli Stevens
Days Like Today by Rachel Ingalls
Compromised Hearts by Hannah Howell
Going Dark by Linda Nagata