Capítulo 2
A propósito, ¿qué es Unix?
Ken Thompson tiene un automóvil en cuyo proyecto de diseño trabajó. A diferencia de otros automóviles, éste no tiene velocímetro, nivel de combustible, ni ninguna de las estúpidas luces que importunan al conductor moderno. En su lugar, si el conductor comete algún error, se enciende un enorme "?" en el centro del tablero. "El conductor experimentado", dice, "sabrá usualmente que es lo que anda mal."
2.1 La historia de Unix
En 1965, los Bell Telephone Laboratories (Bell Labs, una división de AT&T) estaba trabajando con General Electric y el Proyecto MAC del MIT para escribir un sistema operativo llamado Multics.
Para hacer más corta una historia de por sí larga, Bell Labs decidió que el proyecto no estaba yendo a ninguna parte y disolvió el grupo. Esto, sin embargo, dejó a la Bell sin un buen sistema operativo.
Ken Thompson y Dennis Ritchie decidieron esbozar un sistema operativo que supliera las necesidades de la Bell Labs. Cuando Thompson llegó a necesitar un entorno de desarrollo (1970) que corriera en una PDP-7, aprovechó para poner en práctica sus ideas. Brian Kernighan le dió el nombre de Unix como un juego de palabras contra Multics.
Un tiempo después, Dennis Ritchie inventó el lenguaje de programación "C". En 1973, se reescribió el sistema operativo Unix en C, en lugar del ensamblador original1. En 1977, se movió Unix a una nueva máquina distinta de las PDP en las que había corrido previamente, mediante un proceso que se denomina migración. El hecho de que Unix estaba escrito en C facilitó la migración, pues gran parte del código ya escrito necesitó sólo una simple recompilación, y no una reescritura.
Al final de los '70, AT&T tenía prohibido competir en la industria de la computación, por lo que otorgó licencias económicas de Unix a varios colegios y universidades. Unix se difundió lentamente fuera de las instituciones académicas, pero pronto también se hizo popular en el ámbito comercial.
El Unix de la actualidad es distinto del Unix de 1970. Existen dos corrientes principales: System V, de los Unix System Laboratories (USL), que es una subsidiaria de Novell2, y BSD, Berkeley Software Distribution. La versión USL está ahora por su cuarta versión, o SVR43, mientras que la última BSD es la 4.4. Sin embargo, existen muchas diferentes versiones de Unix entre estas dos. La mayoría de las versiones de Unix son desarrolladas por compañías de software y derivan de uno de los dos agrupamientos. Las versiones que se utilizan actualmente incorporan características de ambas variaciones.
Las versiones actuales de Unix para PC Intel cuestan entre $500 y $2000.
_____________________________________________
1 "Lenguaje ensamblador" es un lenguaje de computadoras muy elemental, y que está indisolublemente ligado a un tipo particular de ordenador.
2.2 La historia de Linux
El autor primario de Linux es Linus Torvalds. A partir de la versión original, ha sido mejorado por incontables personas de todo el mundo. Se trata de un clon del sistema operativo Unix, escrito desde cero. Ni USL, ni la Universidad de California, Berkeley, tuvieron participación en la escritura de Linux. Una de las cosas más interesantes de Linux es que el desarrollo ocurre simultáneamente alrededor del mundo. La gente ha contribuído desde Australia a Finlandia y esperamos que lo siga haciendo.
Linux comenzó como un proyecto para explorar el chip 386. Uno de los primeros proyectos de Linus fue un programa que pueda alternar entre la impresión de AAAA y BBBB. Esto luego evolucionó hacia Linux.
Linux ha sido registrado bajo los términos de la Licencia Pública General GNU (GNU General Public License) o GPL. Esta licencia, escrita por la Free Software Foundation (FSF), está diseñada para evitar que alguna persona restrinja la distribución de software. En pocas palabras, dice que aunque Ud. cobre a alguien por entregarle una copia, no podrá impedir que ese alguien la regale. También significa que debe estar disponible el código fuente4. Esto es útil para los programadores.
Cualquiera puede modificar Linux y aún distribuir sus modificaciones, siempre que mantenga el código bajo la misma licencia.
En Linux puede correr la mayoría del software popular en Unix, incluyendo el Sistema de Ventanas X. X se desarrolló en el Instituto Tecnológico Massachusetts, para permitir a los sistemas Unix la creación de ventanas gráficas, y la cómoda interacción con las mismas. En la actualidad, el sistema X se usa en todas las versiones disponibles de Unix.
Además de las dos variaciones de Unix, System V y BSD, existe un conjunto de documentos de estandarización publicados por la IEEE denominados POSIX. Linux antes que nada satisface los documentos POSIX-1 y POSIX-2. Su apariencia se asemeja mucho a la de BSD en ciertas partes, mientras que es parecido a System V en otras. Es una combinación (y para la mayoría de las personas, una buena) de los tres estándares.
Algunas de las utilidades incluídas con las distribuciones de Linux proceden de la Free Software Foundation y son parte del proyecto GNU. El proyecto GNU es un esfuerzo para escribir un avanzado sistema operativo portable con el estilo de Unix. "Portable" significa que pueda correr en una variedad de máquinas distintas, no sólo en PCs Intel, Macintoshes, o lo que sea. El sistema operativo del Proyecto GNU se llama Hurd. La principal diferencia entre el Linux y el GNU Hurd no se encuentra en la interfaz del usuario, sino en la del programador, el Hurd es un sistema operativo moderno, mientras que Linux es más parecido al diseño original de Unix.
_____________________________________________
2 Recientemente vendida a Novell, antes era propiedad de AT&T.
3 Una manera críptica de decir "System five, Revision four".
4 El código fuente de un programa es lo que el programador lee y escribe. Luego se traduce a un código de máquina ilegible para las personas, que es el que la computadora interpreta.
La historia precedente de Linux olvida mencionar otra persona más allá de Linus Torvalds. Por ejemplo, H. J. Lu se ha ocupado de mantener gcc y la biblioteca C de Linux (dos elementos necesarios para todos los programas en Linux) casi desde el principio de la vida del sistema operativo. Ud. puede encontrar una lista de personas que merecen reconocimiento por su trabajo en cada sistema Linux, en el archivo /usr/src/linux/CREDITS.
2.2.1 Linux aquí y ahora
La primer cifra en el número de versión de Linux indica revisiones realmente importantes en alcance.
Este número cambia muy lentamente y para la época en que esto se escribe (febrero de 1996), sólo está disponible la versión 1.1.5. La segunda cifra indica revisiones de menor envergadura.
Los segundos números cuando son pares representan versiones más estables, en las que uno puede confiar plenamente; cuando son impares indican versiones en desarrollo, que son más propensas a contener errores. La última cifra es el número menor de lanzamiento, cada vez que se libera una nueva versión, que tal vez sólo arregla unos pocos problemas o agrega unas pocas características, se incrementa en uno este número. En febrero de 1996, la última versión estable es la 1.2.11, y la última en desarrollo es la 1.3.61.
Linux es un sistema grande y desafortunadamente contiene errores que los desarrolladores reparan al encontrarlos. Aún cuando algunas personas puedan experimentar malfuncionamientos regularmente, esto se debe normalmente a causa de piezas de hardware que no son estándares o que están defectuosas; los errores6 que afectan a todos los usuarios son escasos y no se dan seguido.
Por supuesto, ésos son los errores del núcleo. Los errores pueden presentarse en casi cada aspecto del sistema, y los usuarios de poca experiencia tienen problemas para diferenciar los distintos programas entre sí. Por ejemplo, cierto problema puede hacer que todos los caracteres aparezcan como un galimatías, ¿es un error o una "característica"? Sorpresivamente es una característica, existen ciertas secuencias de control que al aparecer provocan el galimatías. Espero que este libro le sea de ayuda para poder identificar esas situaciones.
2.2.2 Unas pocas preguntas y respuestas
Antes de embarcarnos para nuestra larga travesía, repasemos las cuestiones ultra-importantes.
Pregunta: ¿Cómo se pronuncia Linux?
Respuesta: De acuerdo con Linus, debe pronunciarse con un sonido corto ih, como prInt, mInImal, etc. Linux debe rimar con Minix, que es otro clon de Unix. No debe pronunciarse como la pronunciación (americana) de "Peanuts" en Linus, sino más bien como "LIH-nucks". Y la u es cortante, como en "rule", no suave como en "ducks". Linux debe al menos rimar con "cynics".
_____________________________________________
5 N. del T.: La traducción se hace en febrero de 1997, y ya la versión "2" es cosa de todos los días.
6 N. del T.: error del inglés bug.
Pregunta: ¿Por qué trabajar en Linux?
Respuesta: ¿Por qué no? Linux es generalmente más barato que los otros sistemas operativos (o al menos no más caro) y con frecuencia es menos problemático que algunos sistemas comerciales. Puede que no sea el mejor sistema para sus aplicaciones en particular, pero para alguien que está interesado en utilizar las aplicaciones Unix disponibles para Linux, se trata de un sistema de alta "performance".
2.2.3 Software comercial en Linux
Existe un montón de software comercial disponible para Linux. Comenzando con Motif, que es una interfaz para el sistema X Window que vagamente nos recuerda a Microsoft Windows, Linux tiene cada vez más software comercial. En estos tiempos, Ud. puede adquirir cualquier cosa, desde WordPerfect (el popular procesador de palabras) hasta Maple, que es un paquete que realiza complejas manipulaciones simbólicas, para Linux.
Para aquellos lectores interesados en las cuestiones legales, esto está permitido por la licencia de Linux. A la vez que la licencia GNU General Public License (que se reproduce en el Apéndice B) cubre el núcleo de Linux, la licencia GNU Library General Public License (que se puede ver en el Apéndice C) cubre la mayor parte del código del cual dependen las aplicaciones. Esto permite que los proveedores de software comercial puedan vender sus aplicaciones y reservarse el código fuente de las mismas.
Debe Ud. percatarse de que los dos documentos antes nombrados son notificaciones de derechos de autor. Ellos no regulan como utiliza Ud. el software, solamente indican bajo cuales circunstancias Ud. puede copiar dicho software, o sus productos derivados. Para la Free Software Foundation, ésta es una distinción muy importante: Linux no involucra ninguna licencia "estilo pitón", que lo envolverá y asfixiará, sino que está protegido por la misma ley que le impide a Ud. fotocopiar un libro.