https://www.fpgenred.es/GNU-Linux/index.html
Tutorial de GNU/Linux
Los sistemas GNU/Linux ya no son una novedad, cuentan con una amplia variedad de usuarios y de ámbitos de trabajo donde son utilizados.
Su origen se remonta al mes de agosto de 1991, cuando un estudiante finlandés llamado Linus Torvalds anunció en una lista de news que había creado su propio núcleo de sistema operativo y lo ofrecía a la comunidad de desarrolladores para que lo probaran y sugirieran mejoras para hacerlo más utilizable. Este sería el origen del núcleo (o kernel) del sistema operativo que más tarde se llamaría GNU/Linux.
Por otra parte, la FSF (Free Software Foundation), mediante su proyecto GNU, producía software (desde 1984) que podía ser utilizado libremente. Este software seguía la filosofía de lo que Richard Stallman (miembro de la FSF) consideraba como software libre, es decir, aquel del que podíamos conseguir sus fuentes (código), estudiarlas y modificarlas, y redistribuirlo sin que nos obliguen a pagar por ello. En este modelo, el negocio no está en la ocultación del código, sino en el software complementario añadido, en la adecuación del software a los clientes y en los servicios extra, como el mantenimiento y la formación de usuarios (el soporte que les demos), ya sea en forma de material, libros y manuales, o en cursos de formación.
La combinación (o suma) del software GNU y del kernel Linux, es el que nos ha traído a los actuales sistemas GNU/Linux. Hoy en día, los movimientos Open Source desde diferentes organizaciones (como FSF) y empresas como las que generan las diferentes distribuciones GNU/Linux (Red Hat, Mandrake, SuSe, etc.), pasando por grandes empresas como HP, IBM u Oracle que proporcionan apoyo, han dado un empujón muy grande a los sistemas GNU/Linux hasta situarlos al nivel de poder competir, y superar, muchas de las soluciones propietarias cerradas existentes.
A pesar de que Linux es, en sentido estricto, el núcleo del sistema operativo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos, GNU y Linux (Denominación GNU/Linux, Controversia por la denominación GNU/Linux).
A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se les denomina distribuciones (línea de tiempo de las distribuciones Linux). Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras, donde tienen la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de los ordenadores de escritorio, portátiles, teléfonos móviles, videoconsolas, etc.
Como se ha dicho antes, los sistemas GNU/Linux no son ya una novedad, pues el software GNU se inició a mediados de los ochenta, el kernel Linux, a principios de los noventa, y Linux se apoya en tecnología probada de UNIX, con más de 30 años de historia.
Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la licencia GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres.
Licencia: licencia de software libre GPL
Un poco de historia: UNIX
UNIX se inició hacia el año 1969 en los laboratorios BTL (Bell Telephone Labs) de AT&T. Estos se acababan de retirar de la participación de un proyecto llamado MULTICS, cuyo objetivo era crear un sistema operativo con el cual un gran ordenador pudiera dar cabida a un millar de usuarios simultáneamente. En este proyecto participaban los BTL, General Electric y el MIT. Pero falló, en parte, por ser demasiado ambicioso para su época.
Mientras se desarrollaba este proyecto, dos ingenieros de los BTL que participaban en MULTICS: Ken Thompson y Dennis Ritchie, encontraron un ordenador que no estaba utilizando nadie, un DEC PDP7, que solo tenía un ensamblador y un programa cargador. Thompson y Ritchie desarrollaron como pruebas, y a menudo en su tiempo libre, partes de UNIX, un programa ensamblador y el núcleo rudimentario del sistema operativo.
Ese mismo año, 1969, Thompson tuvo la idea de escribir un sistema de ficheros para el núcleo, creado de manera que se pudiesen almacenar ficheros de forma ordenada en un sistema de directorios jerárquicos. Después de unas cuantas discusiones teóricas (que se alargaron unos dos meses) se implementó el sistema en un par de días. A medida que se avanzaba en el diseño del sistema, al cual se incorporaron algunos ingenieros más de los BTL, la máquina original se les quedó pequeña, y pensaron en pedir una nueva (en aquellos días costaban cerca de 100.000 dólares, era una buena inversión). Tuvieron que inventarse una excusa ya que el sistema UNIX era un desarrollo en tiempo libre y dijeron que la querían para crear un nuevo procesador de texto, aplicación que daba dinero en aquellos tiempos, y se les aprobó la compra de una PDP11.
La primera versión (V1) de UNIX estaba terminada y el procesador de texto también, este último fue todo un éxito, se trataba de Troff, un lenguaje de edición que posteriormente fue utilizado para crear las páginas man de UNIX. Los BTL comenzaron a utilizar el rudimentario UNIX con el nuevo procesador de texto, convirtiéndose así los BTL en el primer usuario de UNIX.
En aquellos momentos comenzaron a presentarse varios principios filosóficos de UNIX:
- Escribir programas para hacer una sola cosa y hacerla bien.
- Escribir programas para que trabajaran juntos.
- Escribir programas para que manejaran flujos de texto.
Otra idea muy importante fue que UNIX se convirtió en uno de los primeros sistemas operativos pensados para ser independiente de la arquitectura hardware, lo que ha permitido portarlo con éxito a un gran número de arquitecturas hardware diferentes.
A finales de 1973 se decidió presentar los resultados en un congreso de sistemas operativos. Y como resultado, varios centros informáticos y universidades pidieron copias de UNIX. AT&T no daba apoyo ni mantenimiento de UNIX, lo que hizo que los usuarios necesitaran unirse y compartir sus conocimientos, formando comunidades de usuarios de UNIX. Se creó una asociación denominada USENIX como agrupación de usuarios de UNIX. Su primera reunión (mayo de 1974) tuvo una docena de asistentes.
Las universidades dieron un gran impulso a UNIX, y la industria UNIX comenzó también a crecer, empezaron a aparecer versiones de UNIX por parte de algunas compañías, como por ejemplo Xenix, que fue el resultado de una colaboración entre Microsoft y SCO, implementando un UNIX para máquinas Intel 8086.
Pero apareció un problema, cuando AT&T se dio cuenta de que UNIX era un producto comercial valioso, en la licencia de la V7 se prohibió su estudio en centros académicos, para proteger el secreto comercial. Muchas universidades habían hecho evolucionar a UNIX y utilizaban su código fuente para impartir la docencia de sistemas operativos; no tuvieron más remedio que dejar de usarlo.
Sin embargo, cada uno solucionó el problema a su modo. En Amsterdam, Andrew S. Tanenbaum (autor prestigioso de libros de teoría de sistema operativos) decidió escribir desde el principio un nuevo sistema operativo compatible con UNIX sin utilizar una sola línea de código de AT&T, y lo llamó Minix. Este sería el que posteriormente le serviría en 1991 a un estudiante finlandés para crear su propia versión de un núcleo de UNIX, nuestro famoso Linux.
Cada empresa comenzó a desarrollar sus versiones: IBM con AIX, DEC con Ultrix, HP con HPUX, Microsoft&SCO con Xenix, etc.
Con el tiempo, UNIX se dividió en varias ramas, siendo las dos principales, la que derivaba directamente de AT&T, el UNIX System V, y la de la universidad de California, el UNIX BSD. La mayoría de los UNIX actuales derivan de uno u otro, o son una mezcla de los dos.
AT&T pasó por un proceso judicial por monopolio telefónico, lo que hizo que se dividiera en múltiples empresas más pequeñas, y los derechos de UNIX originales comenzaron un baile de propietarios importante: en 1990 los tenían a medias la Open Software Foundation (OSF) y la UNIX International (UI), después, UNIX Systems Laboratories (USL); más tarde, los derechos de UNIX se vendieron a la empresa Novell, esta cedió parte a SCO, y hoy en día no está muy claro quién los tiene; por diferentes frentes los reclaman Novell, la OSF y SCO.
El panorama actual de UNIX ha cambiado mucho desde la aparición de GNU/Linux (1991), que a partir de los años 1995-99 comenzó a convertirse en una alternativa seria a los UNIX propietarios, por la gran cantidad de plataformas hardware que soporta y el amplio apoyo de la comunidad internacional y empresas. Es de esperar una muerte más o menos lenta de las versiones propietarias de UNIX, ocupando su lugar GNU/Linux.
Un poco de historia: GNU/Linux
Hace unos veinticinco años los usuarios de los primeros ordenadores personales no disponían de muchos sistemas operativos donde elegir. El mercado de los ordenadores personales lo dominaba el sistema operativo DOS de Microsoft (MS-DOS). Otra posibilidad eran los MAC de Apple, pero a unos precios desorbitados, en comparación con el resto. La otra opción importante, aunque reservada a grandes máquinas, era UNIX, que también era caro.
Una primera alternativa que apareció fue MINIX (1984), creado desde cero por Andrew Tanenbaum, con el objetivo de usarlo para la educación, para enseñar diseño e implementación de sistemas operativos.
MINIX fue pensado para ejecutarse sobre una plataforma Intel 8086, muy popular en aquella época, porque era la base de los primeros IBM PC. La principal ventaja de este sistema operativo radicaba en su código fuente, accesible por cualquiera (doce mil líneas de código entre ensamblador y C), ya que estaba incluido en el famoso libro de sistemas operativos de Tanenbaum. Pero MINIX era más una herramienta de enseñanza que un sistema eficaz pensado para el rendimiento o para actividades profesionales.
En los noventa, la FSF y su proyecto GNU, motivó a muchos programadores para promover el software de calidad y de distribución libre. Y además de software de utilidades, se trabajaba en un núcleo (kernel) de sistema operativo denominado HURD, que llevaría varios años de desarrollo.
Mientras, en octubre de 1991, un estudiante finlandés llamado Linus Torvalds presentaría la versión 0.0.1 de su kernel de sistema operativo, que denominó Linux, orientado a máquinas Intel con microprocesadores 386, y lo ofreció bajo licencia GPL a foros de programadores y a la comunidad de Internet para que lo probaran y, si les gustaba, le ayudaran en su desarrollo. El entusiasmo fue tal, que en poco tiempo había un gran número de programadores trabajando en el núcleo o en aplicaciones para él.
Los proyectos se sucedieron y a la gente de la FSF, con el software de utilidad GNU y, sobre todo, con su compilador del lenguaje C (GCC), se les unieron otros proyectos importantes como las XFree (una versión para PC de las X Window), los proyectos de escritorio como KDE y Gnome, el servidor web Apache, el navegador Mozilla, o las bases de datos MySQL y PostgreSQL, que acabaron por dar al kernel inicial Linux el recubrimiento de aplicaciones suficiente para construir los sistemas GNU/Linux y competir en igualdad de condiciones con los sistemas propietarios.
Los sistemas GNU/Linux se han convertido en la punta de lanza de la comunidad Open Source, por la cantidad de proyectos que se han podido aglutinar y llevar a buen término.
El nacimiento de nuevas empresas, que crearon distribuciones GNU/Linux (empaquetamientos de kernel + aplicaciones) y le dieron apoyo, como Red Hat, Mandrake, SuSe, etc., contribuyó a introducir GNU/Linux en las empresas reacias, y a comenzar el imparable crecimiento que vivimos actualmente.
Se calcula que en una distribución GNU/Linux hay un 28% de código GNU y un 3% que corresponde al código del kernel Linux; el porcentaje restante corresponde a código de terceros, ya sea de aplicaciones o de utilidades.
Actualmente GNU trabaja bastante en su núcleo HURD y ya existen algunas distribuciones del sistema operativo GNU/HURD, como por ejemplo Debian GNU/HURD.
Los sistemas GNU/Linux no son los únicos en utilizar software GNU; por ejemplo, los sistemas BSD incorporan también utilidades GNU, pero también algunos sistemas operativos propietarios como por ejemplo MacOS X de Apple. El proyecto GNU ha producido software de alta calidad, que se ha ido incorporando a la mayor parte de las distribuciones de sistemas basadas en UNIX, tanto libres como propietarias.
Es justo para todo el mundo reconocer el trabajo de cada uno, y usar el nombre de GNU/Linux es más justo que utilizar solo Linux.
Distribuciones GNU/Linux
Una distribución GNU/Linux es una colección de software que forma un sistema operativo basado en el kernel Linux.
Como ya hemos comentado, hay tres elementos software principales que componen un sistema GNU/Linux:
- El kernel Linux: como vimos, el kernel es tan solo la pieza central del sistema. Pero sin las aplicaciones de utilidad, shells, compiladores, editores, etc. no podríamos tener un sistema entero.
- Las aplicaciones GNU: el desarrollo de Linux se vio complementado con el software existente de la FSF dentro de su proyecto GNU, que le aportó un intérprete de comandos (bash), un editor (emacs), un compilador (gcc) y utilidades diversas.
- El software de terceros: el cual permite añadir una serie de aplicaciones de amplio uso (de código abierto en su mayor parte), ya sea el propio sistema gráfico de X-Windows, servidores como el de Apache para la web, navegadores, etc. Asimismo, puede ser habitual incluir algún software propietario, dependiendo del carácter libre que en mayor o menor grado quieran disponer los creadores de la distribución.
Al ser la mayoría del software de tipo libre o de código abierto, ya sea el kernel, software GNU o de terceros, normalmente hay una evolución más o menos rápida de versiones, debido a la corrección de errores o la incorporación de nuevas prestaciones. Esto obliga a que en el caso de querer crear un sistema GNU/Linux, tengamos que escoger qué software queremos instalar en el sistema, y qué versiones concretas de este software.
El mundo GNU/Linux no se limita a una empresa o comunidad particular, con lo que ofrece a cada uno la posibilidad de crear su propio sistema adaptado a sus necesidades.
Normalmente, entre el conjunto de estas versiones siempre se encuentran algunas que son estables, y otras que están en desarrollo, en fases alfa o beta, que pueden tener errores o ser inestables, por lo que habrá que tener cuidado con la elección de las versiones, a la hora de crear un sistema GNU/Linux. Otro problema añadido es la selección de alternativas, ya que el mundo de GNU/Linux es lo suficientemente rico como para que haya más de una alternativa para un mismo producto de software. Hay que elegir entre las alternativas posibles, si incorporar algunas o todas, o si queremos ofrecer al usuario libertad para escoger su software. Por ejemplo, un caso práctico de elección lo forman los gestores de escritorio de X Window, pues existen fundamentalmente dos entornos de escritorio diferentes, que son Gnome y KDE; los dos tienen características parecidas y aplicaciones semejantes.
En el caso de un distribuidor de sistemas GNU/Linux, ya sea comercial o bien una organización sin ánimo de lucro, tiene como responsabilidad generar un sistema que funcione, seleccionando las mejores versiones y productos software que puedan conseguirse.
Un dato importante a tener en cuenta, y que causa más de una confusión, es que la versión de la distribución no mantiene una relación con las versiones de los paquetes software, ya que cada uno de estos paquetes llevan su desarrollo de forma independiente a la distribución.
La versión de la distribución solo sirve para comparar las distribuciones que genera un mismo distribuidor, y no permite comparar entre otras distribuciones. Si queremos hacer comparaciones entre distribuciones, tendremos que examinar los paquetes software principales y sus versiones para poder determinar qué distribución aporta más novedades. Por ejemplo:
- Kernel Linux: actualmente podemos encontrar distribuciones que ofrecen kernels de la serie antigua 2.4.x o generalmente los últimos 2.6.x., e incluso la 3.2.x.
- La opción en el sistema gráfico X Window, con versiones del antiguo Xfree86 4.x.y o bien el nuevo proyecto Xorg en diversas versiones 6.x o 7.x.
- Gestor de ventanas o escritorio: podemos disponer de Gnome o KDE, o ambos; Gnome con versiones 2.x o KDE 3.x.y.
- Etc.
Podríamos obtener, por ejemplo, una distribución que incluyese kernel 2.4, con XFree 4.4 y Gnome 2.14; o bien otra, por ejemplo, con kernel 2.6, Xorg 6.8, KDE 3.1. ¿Cuál es mejor?, es difícil compararlas, ya que suponen una mezcla de elementos, y dependiendo de cómo se haga la mezcla, el producto saldrá mejor o peor, y más o menos adaptado a las necesidades del usuario. Normalmente, el distribuidor mantiene un compromiso entre la estabilidad del sistema y las novedades de las versiones incluidas; así como proporcionar software de aplicación atrayente para los usuarios de la distribución, ya sea este generalista, o especializado en algún campo concreto.
Las versiones del software principal de la última distribución Debian GNU/Linux, denominada Debian Jessie o Debian 8.x, la podemos ver aquí.
Algunos distribuidores suelen sacar diferentes versiones de su distribución, por ejemplo, a veces hay distinciones entre una versión personal, profesional o de tipo servidor. El sistema GNU/Linux de fondo es el mismo, solo hay diferencias (que se pagan en algunos casos) en el software añadido.
No hay comentarios:
Publicar un comentario