Hola a todos aca les dejo una introducción a Linux que escribí hace unos años, en este primer capitulo vemos la evolución del sistema a partir de su padre Unix. Espero les guste.
El comienzo de todo
Linux es probablemente el acontecimiento más importante del software gratuito desde el original Space War, o, más recientemente, Emacs. Se ha convertido en el sistema operativo para los negocios, educación, y provecho personal. Linux ya no es solo para gurús de UNIX que se sientan durante horas frente a la resplandeciente consola (aunque le aseguro que un gran número de usuarios pertenece a esta categoría).
Linux es un clónico del sistema operativo UNIX que corre en equipos Intel 80386 o superiores. Soporta un amplio rango de software, desde TEX a X Windows al compilador GNU C/C++ a TCP/IP. Es una implementación de UNIX versátil, distribuida gratuitamente bajo los términos de la Licencia GNU.
Linux puede convertir cualquier PC 386 o 486 en una estación de trabajo. En los negocios ya se instala Linux en redes enteras, usando el sistema operativo para manejar registros financieros y de hospitales, un entorno de usuario distribuido, telecomunicaciones, etc. Universidades de todo el mundo usan Linux para dar cursos de programación y diseño de sistemas operativos. Y, por supuesto, entusiastas de la computación de todo el mundo están usando Linux en casa, para programar, entretenerse, y conocerlo a fondo
Historia de Linux, sus origenes, UNIX, Padre de la criatura
Año 1969
UNIX es un sistema operativo multiusuario de uso general desarrollado por Bell de la compañía American Telephone & Telegraph (AT&T) a fines de la década de los 60 intentaron el desarrollo de un complejo sistema operativo llamado Multics. Este sistema debía ser capaz de soportar multitud de usuarios, computadoras y periféricos al mismo tiempo. Algunos de los mejores programadores del mundo trabajaron en este proyecto, pero el objetivo era muy ambicioso, y Multics pronto se convirtió en un sistema de demasiada complejidad como para ser realmente útil. Los laboratorios Bell abandonaron el proyecto, y Multics jamás llegó a terminarse.
Año 1972
Uno de los programadores de Bell, Ken Thompson, descubrió un día un viejo equipo PDP-7 en el laboratorio. Puesto que nadie usaba allí un equipo tan pequeño, decidió escribir para él un nuevo sistema operativo, de forma que pudiese testear sus desarrollos en él. En esta tarea, contó con la ayuda de Dennis Ritchie.
De hecho, el lenguaje C siempre ha estado muy ligado a UNIX. El C fue inventado por Brian Kernighan y Dennis Ritchie (mencionado arriba como uno de los coautores de UNIX), basándose en un lenguaje anterior llamado B. A su vez, B se basaba en BCPL, que evolucionó desde una variante de Algol llamada CPL.
Después de inventar C a principios de los 70, Ritchie escribió junto a Thompson un compilador de C para UNIX. La primera aplicación seria de este lenguaje fue rescribir el sistema UNIX en su totalidad. A partir de entonces, el C ha ido ganando popularidad. Hoy en día es el lenguaje de programación de computadoras más utilizado y es indispensable en cualquier UNIX.
Una vez que UNIX fue portable, fue haciéndose muy popular en los laboratorios Bell, y cada vez más gente empezó a utilizarlo en sus computadoras. Puesto que AT&T era entonces una compañía pública, decidió regalar UNIX a todo el que lo quisiera.
Los mayores beneficiarios de esta política fueron las universidades, que podían contar con un sistema operativo barato y eficaz, así como estudiarlo interiormente, puesto que AT&T ponía a disposición del público el código fuente completo del sistema.
Las universidades que disponían de las fuentes de UNIX, pronto empezaron a aparecer variantes mejoradas del sistema. Una de las más importantes fue la desarrollada en la Universidad de California en Berkeley. Esta versión se conoció por las siglas BSD (iniciales de Berkeley Software Distribution).
Lamentablemente, las mejoras introducidas en BSD no eran del todo compatibles con el UNIX original de AT&T (que por entonces ya iba por la versión V), y se produjo la mayor escisión en el mundo UNIX. Esta escisión dio lugar a las dos principales variantes de UNIX que existen: las basadas en BSD y las basadas en el System V.
Tradicionalmente, las versiones de UNIX fueron numeradas según la edición del "Manual del Programador de UNIX" que las acompañaba (lo que confirma que UNIX es y ha sido siempre un sistema para programadores). Así en los primeros años se tenían los sistemas I, II, III y V (lo que sucedió con el sistema IV es todavía un misterio).
Algún tiempo después AT&T anunció que no realizaría más ediciones de UNIX. En ese momento, UNIX era ya el sistema de elección de muchas empresas e instituciones. Las compañías de software comercial vieron la posibilidad de hacer negocio y lanzaron sus propias versiones del sistema UNIX (derivadas de BSD o de System V). Así nacieron las diferentes variantes de UNIX que existen hoy en día. Algunas de estas variantes son: AIX de IBM, HP/UX de Hewlett-Packard, IRIX de Silicon Graphics, SunOS y Solaris de Sun Microsystems, SCO UNIX de SCO, Ultrix, Xenix de Microsoft,...
Año 1985
Las perspectivas de los usuarios de UNIX habían empeorado bastante. Sólo compañías comerciales fabricaban y mantenían los sistemas operativos y programas que las computadoras necesitaban.
Estas compañías obligaban a los usuarios a firmar contratos de licencia en los que éstos se comprometían a no modificar sus programas para poder usarlos a su gusto, a no compartirlos con sus colegas, y a no ver el código de aquello que estaban usando.
Esto era intolerable para muchos usuarios. Tradicionalmente, en el mundo de los programadores había existido una filosofía de compartir que posibilitaba un rápido avance de la técnica. La gente escribía programas y los compartía con los demás. A su vez, estas personas mejoraban como creían los programas de otros y también compartían estas mejoras con la comunidad en general. Este espíritu de colaboración estaba siendo roto por las abusivas licencias de software que las compañías pretendían imponer.
Fue Richard Stallman, del laboratorio de Inteligencia Artificial del MIT, el que se decidió a cambiar las cosas. A principios de los ochenta, empezó a escribir un sistema operativo libre. Este sistema podría ser copiado y modificado por todo el que quisiera hacerlo. Stallman se basó en UNIX para su sistema, pero intentando mejorarlo donde esto fuese posible. El nombre elegido para el sistema trata de recalcar la diferencia entre el UNIX existente en aquella época (que era mayoritariamente comercial) y el nuevo sistema (que es libre). Este sistema se llamó GNU, que es un acrónimo que significa GNU's Not UNIX (de hecho, fue el primer acrónimo recursivo ampliamente conocido). En la sección 3.2 se habla del sistema GNU y de la FSF (Free Softwar Foundation).
A finales de los 80, el proyecto GNU había desarrollado casi todas las herramientas que necesita una PC: había compiladores, editores, procesadores,... Otros proyectos de software libre habían fabricado productos tales como el sistema X Window de ventanas, el procesador de textos TeX, las herramientas de Internet, etc.
Sólo faltaba la pieza central del sistema operativo: el núcleo. La FSF trabajaba en un núcleo denominado Hurd, pero estaba aún muy lejos de ser un producto terminado.
De manera que los usuarios de software libre debían limitarse a utilizar las utilidades GNU en sistemas comerciales, puesto que no podían tener un núcleo enteramente libre.
Uno de los núcleos más conocidos en aquel momento entre los aficionados a UNIX era Minix. Versión reducida del núcleo de UNIX escrita por el profesor Andrew Tanenbaum de la Universidad de Amsterdam. Ésta era una versión académica incluida en el libro de Tanenbaum sobre sistemas operativos. No era libre, puesto que no se podía modificar ni redistribuir, pero para mucha gente era la mejor forma de aprender como estaba hecho el corazón de un sistema operativo.
En el año 1990, el IEEE publicó una norma sobre sistemas operativos. Este estándar (el IEEE Std 1003, o POSIX) especifica como debe ser el interfaz externo de diversas áreas de un sistema operativo. POSIX significa Portable Operating System Interface; la X aparece porque "todo sistema operativo que se precie acaba en x" (según Richard Stallman).
En 1991, un estudiante finlandés llamado Linus Benedict Torvalds empezó a escribir una pequeña versión de UNIX para su PC. Comenzó a hacerlo para conocer más a fondo la arquitectura del nuevo microprocesador 386 de Intel.
El objetivo último de Linus era implementar un sistema operativo POSIX en su computadora, pero empezó realizando un sistema extremadamente sencillo. Linus decidió hacer su sistema libre y accesible a todos a través de Internet.
Esto posibilitó que mucha gente probara el sistema y reparara fallos. La primera versión pública de Linux fue la 0.02, en Octubre de 1991.
Pronto gran cantidad de colaboradores empezaron a escribir código del núcleo de Linux. Debido a la mucha gente que probó Linux en diferentes configuraciones, el sistema se mostró como extremadamente estable y seguro. Gran parte del éxito de Linux es debida a la red Internet. La red posibilitó que cientos de desarrolladores de todas partes del mundo trabajaran conjuntamente para crear un gran trabajo de programación como es Linux.
Ciertamente, no es una casualidad que la explosión de la Web y de Linux se produjera casi simultáneamente, en 1995. Tanto Linux como Internet son éxitos de la colaboración abierta y de la cooperación de muchas personas con un objetivo común.
Hoy día (noviembre de 2000), Linux va ya por la versión estable 2.4. Posee todas las características que tienen los UNIX modernos, incluyendo: multitarea real, memoria virtual, librerías compartidas, carga bajo demanda, ejecutables compartidos, administración de memoria eficiente, y redes TCP/IP.
Linux es usado por multitud de empresas y organismos por su reconocida estabilidad y escalabilidad. Es el sistema operativo más usado en servidores de Internet, y por sus grandes ventajas en red, es usado como servidor central en redes mixtas de muchas empresas.
El futuro se presenta prometedor para Linux. Cada vez más empresas y particulares confían en él como sistema operativo. En los últimos tiempos ha ido ganando terreno como PC de escritorio para aplicaciones personales. También esta siendo cada día más utilizado como plataforma de ocio. La orientación de Linux hacia aplicaciones de escritorio no le ha hecho perder su estabilidad y capacidad para aplicaciones críticas.
¿Por qué UNIX?
Porque es un sistema operativo estándar que permite que el mismo software se ejecute en computadoras de esta portabilidad no está ligada al diseño del hardware de una computadora, como es el caso de los sistemas operativos escritos en lenguaje ensamblador, puede instalarse en cualquier computadora para el que se haya escrito un compilador de lenguaje C, con el que fue diseñado. Esto implica que puede correr en procesadores como el INTEL 8080, ZILOG 80, INTEL 8086, 80286, 80386, Motorola 68000, PDP-11, VAX, HEWLETT-PACKARD 9000, IBM 370 Y AMDAHL. Además UNIX ofrece utilidades para comunicación y permite la transferencia de aplicaciones entre diferentes máquinas.
DE LAS 13.000 LÍNEAS DE CÓDIGO FUENTE DEL SISTEMA, SOLO 800 SON EN ASSEMBLER; ESTO LO HACE PORTABLE.
¿Qué es Linux?
De la descripción oficial del núcleo de Linux:
Linux es un clónico de UNIX escrito desde el inicio por Linus B. Torvalds con la ayuda de un grupo de hackers disperso por toda la Red. Su objetivo es la conformidad con el estándar POSIX.
Tiene todas las características que se esperarían en un UNIX moderno y completo, incluyendo multitarea real, memoria virtual, librerías compartidas, carga bajo demanda, ejecutables compartidos con copia en la escritura, apropiada administración de memoria y conexión en redes TCP/IP. Se distribuye bajo la Licencia Pública General GNU.
Linux fue desarrollado inicialmente para PCs basadas en 386 o 486. Hoy en día también se ejecuta en ARMs, DEC Alphas, SUN Sparcs, procesadores M68000 (como los Atari y Amiga), MIPS y PowerPC, entre otros.
Un aspecto a tener en cuenta es que Linux se desarrolla usando un modelo abierto y distribuido, en lugar de un modelo cerrado y centralizado como la mayoría del software. Esto significa que la versión de desarrollo actual es siempre pública (con una semana o dos de retraso como mucho), de forma que cualquiera pueda usarla. El resultado es que cuando una versión con nuevas funcionalidades es liberada, casi siempre contiene fallos, pero el desarrollo es tan rápido que los fallos son encontrados y corregidos muy rápidamente, a menudo en cuestión de horas, por alguna de las múltiples personas que trabajan en ella.
Fin de la primera parte