Unix es uno de los sistemas operativos más populares en todo el mundo debido a su gran base de apoyo y distribución. Fue desarrollado originalmente como un sistema multitarea para minicomputadoras y mainframes a mediados de la década de 1970. Desde entonces, ha crecido hasta convertirse en uno de los sistemas operativos más utilizados en todo el mundo, a pesar de su interfaz a veces confusa y de la falta de estandarización central.
¿La verdadera razón de la popularidad de Unix? Muchos hackers creen que Unix es lo correcto, el único y verdadero sistema operativo. De ahí el desarrollo de Linux por parte de un grupo cada vez mayor de hackers de Unix que quieren ensuciarse las manos con su propio sistema.
Existen versiones de Unix para muchos sistemas, desde ordenadores personales hasta superordenadores como el Cray Y-MP. La mayoría de las versiones deUnix para ordenadores personales son bastante caras y engorrosas. En el momento de escribir este artículo, una versión para una máquina del Sistema V de AT&T para el 386 cuesta alrededor de 1.500 dólares.
Linux es una versión de libre distribución de Unix, desarrollada originalmente por Linus Torvalds, que comenzó a trabajar en Linux en 1991 como estudiante en la Universidad de Helsinki en Finlandia.Linus ahora trabaja para Transmeta Corporation, una empresa de nueva creación en Santa Clara, California, y continúa manteniendo el kernel de Linux, es decir, el componente central de más bajo nivel del sistema operativo.
Linus publicó la versión inicial de Linux de forma gratuita en Internet, generando inadvertidamente uno de los mayores fenómenos de desarrollo de software de todos los tiempos. Hoy en día, Linux es creado y mantenido por un grupo de varios miles (si no más) de desarrolladores que colaboran libremente a través de Internet, y han surgido empresas que ofrecen apoyo a Linux, lo empaquetan en distribuciones fáciles de instalar y venden estaciones de trabajo preinstaladas con el software de Linux. En marzo de 1999, se celebró en San José, California, la primera exposición comercial Linux World Expo, a la que, según se informa, asistieron más de 12.000 personas.La mayoría de las estimaciones sitúan el número de usuarios de Linux en todo el mundo en torno a la marca de los 10 millones (y esperamos que esta cifra parezca pequeña para cuando usted lea esto).
Inspirado en el sistema operativo Minix de Andrew Tanenbaum (otro Unix libre para PC, aunque muy simple), Linux comenzó como un proyecto de clase en el que Linus quería construir un sistema Unix simple que pudiera ejecutarse en un PC basado en 386. Las primeras discusiones sobre Linux tuvieron lugar en el grupo de noticias de Usenet comp.os.minix. Estas discusiones se centraron principalmente en el desarrollo de un pequeño sistemaUnix académico para los usuarios de Minix que querían más.
El primer desarrollo de Linux se ocupó principalmente de las características de conmutación de tareas de la interfaz de modo protegido del 80386, todo escrito en código ensamblador. Linus escribe:
Después de eso fue todo un camino de rosas: la codificación seguía siendo peliaguda, pero tenía algunos dispositivos, y la depuración era más fácil. Empecé a usar C en esta etapa, y ciertamente acelera el desarrollo. También es cuando empiezo a ponerme serio con mis ideas megalómanas de hacer «un Minix mejor que Minix». Tenía la esperanza de poder recompilar el GCC bajo Linux algún día …
Dos meses para la configuración básica, pero luego sólo un poco más de tiempo hasta que tuve un controlador de disco (seriamente defectuoso, pero resultó funcionar en mi máquina) y un pequeño sistema de archivos. Eso fue más o menos cuando hice disponible la versión 0.01: no era bonita, no tenía controlador de disco, y no podía hacer casi nada. Creo que nadie llegó a compilar esa versión. Pero para entonces estaba enganchado, y no quería parar hasta que pudiera deshacerme de Minix.
Nunca se anunció la versión 0.01 de Linux. Las fuentes de la versión 0.01 ni siquiera eran ejecutables: sólo contenían los rudimentos de la fuente del núcleo y suponían que se tenía acceso a una máquina Minix para compilarlas y jugar con ellas.
El 5 de octubre de 1991, Linus anunció la primera versión «oficial» de Linux, la versión 0.02. En este punto, Linus era capaz de ejecutarbash (el Bourne AgainShell de GNU) y gcc (el compilador C de GNU), pero no funcionaba mucho más. Una vez más, se trataba de un sistema para hackers. El objetivo principal era el desarrollo del núcleo; ninguna de las cuestiones de apoyo al usuario, documentación, distribución, etc., habían sido abordadas. Hoy en día, la situación es muy diferente: el verdadero entusiasmo en el mundo de Linux se centra en los entornos gráficos de usuario, los paquetes de distribución fáciles de instalar y las aplicaciones de alto nivel, como las utilidades gráficas y las suites de productividad.
Linus escribió en comp.os.minix:
¿Añoras los bonitos días de Minix-1.1, cuando los hombres eran hombres y escribían sus propios controladores de dispositivos? ¿No tienes un buen proyecto y te mueres por probar un sistema operativo que puedas modificar según tus necesidades? ¿Te resulta frustrante que todo funcione en Minix? ¿Ya no tienes que pasar la noche en vela para conseguir que un programa ingenioso funcione? Entonces este post podría ser justo para ti.
Como mencioné hace un mes, estoy trabajando en una versión gratuita de un parecido a Minix para ordenadores AT-386. Es sólo la versión 0.02 … pero he ejecutado con éxitobash, gcc, GNU make, GNUsed, compress, etc. bajo ella.
Después de la versión 0.03, Linus subió el número de versión a 0.10, ya que más gente empezó a trabajar en el sistema. Después de varias revisiones adicionales, Linus aumentó el número de versión a 0.95, para reflejar su expectativa de que el sistema estaba listo para un lanzamiento «oficial» muy pronto. (Por lo general, al software no se le asigna el número de versión 1.0 hasta que está teóricamente completo o libre de errores). Esto ocurrió en marzo de 1992. Casi un año y medio después, a finales de diciembre de 1993, el kernel de Linux seguía en la versión 0.99.pl14, acercándose asintóticamente a la 1.0. La versión 1.0 apareció en marzo de 1994. En el momento de escribir este artículo (marzo de 1999), la versión actual del kernel es la 2.2.6, mientras que las versiones 2.3 del kernel se están desarrollando simultáneamente. (Explicaremos las convenciones de versiones de Linux en detalle.)
Linux no podría haber surgido sin las herramientas GNU creadas por la Free Software Foundation.Su compilador gcc, del que hablaremos en el capítulo 13, dio vida al código de Linus Torvalds. Las herramientas GNU han estado entrelazadas con el desarrollo de Linux desde el principio. Debido a las contribuciones críticas de estas herramientas, la Fundación para el Software Libre incluso pide que las distribuciones de Linux con las utilidades que las acompañan se llamen GNU/Linux.
Berkeley Unix (BSD) también ha jugado un papel importante en Linux, no tanto en su creación, sino en proporcionar las herramientas que lo hacen popular. La mayoría de las utilidades que vienen con las distribuciones de Linux son portadas de BSD. Los demonios y utilidades de red son especialmente importantes. El código de red del kernel de Linux fue desarrollado desde cero (dos o tres veces, de hecho), pero los demonios y las utilidades son clásicos de BSD.
Hoy en día, Linux es un clon completo de Unix, capaz de ejecutar el sistema X Window, TCP/IP, Emacs, Web, correo y software de noticias, lo que sea. Casi todos los principales paquetes de software libre han sido portados a Linux, y el software comercial está cada vez más disponible. De hecho, muchos desarrolladores empiezan a escribir aplicaciones para Linux y las adaptan a otros sistemas Unix. Se admite más hardware que en las versiones originales del kernel. Mucha gente ha ejecutado pruebas de rendimiento en sistemas Linux y ha comprobado que son más rápidos que las estaciones de trabajo de Sun Microsystems y Compaq, y Linux rinde mejor o tan bien como Windows 98 y Windows NT en una amplia gama de pruebas de rendimiento.¿Quién habría imaginado que este «pequeño» clon de Unix habría crecido hasta conquistar todo el mundo de la informática personal y de servidor?