Introducción
Historia de Unix
En 1969, Ken Thompson, desarrollador de los laboratorios Bell (que forman parte de AT&T), inventó el sistema Unix.
K. Thompson había trabajado previamente en el sistema Multics que permitía, entre otras cosas, ocultar el sistema al usuario e incluso al programador; el objetivo era poder desarrollar nuevas aplicaciones haciendo abstracción del sistema. Cuando Bell Labs se retiró del proyecto Multics, empezó a desarrollar su propio sistema en un equipo DEC PDP-7 salvado de la quema. Conservó ciertas ideas desarrolladas por Multics y añadió sus propias innovaciones: acababa de nacer Unix.
UNIX es la abreviatura conservada de UNICS y significa UNiplexed Information and Computing System.
A su vez, Dennis Ritchie inventó un nuevo lenguaje de programación: el lenguaje C. En línea con Unix, este lenguaje pretendía ser amigable, flexible y sin restricciones. Los laboratorios Bell, que conocían las herramientas desarrolladas, respaldaron a este dúo con una prima en 1971 para la elaboración de un sistema de automatización de escritorio de uso interno.
En realidad, los sistemas desarrollados hasta entonces estaban codificados en lenguaje ensamblador, próximo a la arquitectura de hardware, lo que les confería un alto rendimiento, pero obligaba también a reescribir el programa cuando el hardware obsoleto era reemplazado por equipos más recientes. Comprendiendo que los avances tecnológicos podían paliar una pérdida de rendimiento y que las técnicas de compilación habían experimentado grandes progresos, D. Ritchie y K. Thompson dieron prioridad a la portabilidad del sistema. Al escribir la totalidad del sistema Unix en lenguaje C, consiguieron hacer funcionar el sistema en muchos equipos de tipos diferentes a partir de 1974.
Así, un compilador de C desarrollado para cada equipo bastaba para hacer posible el uso del mismo...
GNU
Debido a la imposibilidad de obtener y modificar el código fuente del controlador de la impresora nueva que llegó a su departamento, Richard Matthew Stallman (conocido con el acrónimo de rms), entonces joven investigador en el laboratorio de Inteligencia Artificial del MIT (Massachusetts Institute of Technology), se concienció de los riesgos vinculados con software propietario; para oponerse a la comercialización del software y más particularmente a la falta de disponibilidad del código fuente, inició entonces un movimiento para el desarrollo de software libre de derechos en 1984.
Desarrollador con talento, Richard Stallman es también el creador del editor de texto GNU Emacs, del compilador C de GNU y del depurador GNU; su sitio web personal se encuentra en la dirección siguiente: http://www.stallman.org.
Este movimiento se tradujo en la creación de un proyecto que consistía en reescribir completamente un sistema operativo libre. El modelo seguido era Unix, Unix y Richard Stallman llamó a su proyecto GNU, que significa GNU’s Not Unix.
El proyecto GNU conoció rápidamente un gran éxito y muchas herramientas y aplicaciones de Unix se desarrollaron a partir de cero (from scratch).
Sin embargo, el núcleo libre de este sistema, llamado "Hurd", no se desarrolló tan rápidamente. El proyecto GNU se limitó durante cierto tiempo a ser una gama de herramientas completa de Unix sin núcleo.
El uso de acrónimos recursivos como "GNU" es habitual en el mundo del software libre . De forma general, los programadores de software libre tienen un gran sentido del humor y utilizan a menudo el guiño para dar nombre a sus aplicaciones. Así, la versión GNU del shell Bourne de Unix se llama el Bash, de Bourne Again SHell (o también Born Again SHell). Asimismo, el nombre Hurd significa Hird of Unix-Replacing Daemon y Hird significa a su vez Hurd of Interfaces Representing Depth, ¡lo que forma un doble acrónimo recursivo!
1. FSF
Richard Stallman creó la FSF (Free Software Foundation) con el objetivo de recoger fondos destinados a financiar el software libre. Para él, el término "libre" se refiere a la libertad, y no al precio. No se opone al hecho de vender programas, siempre que el código fuente esté disponible y todo programador esté autorizado a modificar y redistribuir el software.
Con este espíritu, R. Stallman creó en 1985 la FSF (https://www.fsf.org) para promover el apoyo financiero de su proyecto.
2. CopyLeft y GPL
Para llevar a buen puerto su proyecto y permitir la difusión del software libre, Richard Stallman implementó una licencia específica. Esta licencia evita que cualquiera, tras modificar unas pocas líneas de un software libre, se apropie del código fuente y establezca un copyright.
Los fundamentos del software libre se agrupan bajo cuatro libertades:
-
La libertad de ejecutar el software para cualquier uso, comercial o no, y por cualquier persona u organización.
-
La libertad de estudiar el funcionamiento del software y de adaptarlo a nuestras necesidades. Para ello, el acceso al código fuente es un requisito.
-
La libertad de distribuir copias, gratuitas o no.
-
La libertad de mejorar el software, publicar esas mejoras para que toda la comunidad pueda disfrutar de ellas. Y como mencionamos en el punto 2, el acceso al código fuente es un requisito fundamental.
A esto, la licencia GPL (General Public License) creada por Richard Stallman añade la obligación de seguir bajo licencia libre; esta noción se llama "copyleft" (copia permitida) en oposición a "copyright" (derechos de autor) e implica que cualquier software que utilice una parte del código regido por la GPL se someta automáticamente y por completo a los términos de la GPL.
Así, todo...
Linux
Cuando utilizaba el sistema operativo Minix, desarrollado por Andrew S. Tanenbaum con el objetivo de mostrar a sus estudiantes el funcionamiento de un sistema de tipo Unix, en un proyecto de estudios sobre el modo protegido de los procesadores Intel 386, Linus Torvalds empezó a desarrollar su propio núcleo Unix para añadirle nuevas funcionalidades.
Por tanto, Linux (Linus’s Unix) nació en 1991 gracias a un estudiante de la universidad de Helsinki. El éxito de Linux se basa en una idea ingeniosa de su creador, L. Torvalds: colocar su proyecto bajo los términos de la licencia GPL y proponer a todos los programadores y otros hackers de Internet que le ayudaran.
El término "hacker" no debe confundirse con el de "cracker", que designa a un individuo que intenta introducirse de forma ilegal en un sistema informático para utilizar sus recursos o alterar sus datos. El término hacker representa aquí a los primeros programadores en los sistemas Unix convertidos sin duda en verdaderos "gurús" en su dominio y no al pirata informático malintencionado.
Fue en un grupo de discusión (Usenet) dedicado al sistema Minix donde L. Torvalds anunció públicamente su proyecto, que por entonces sólo era “un pasatiempo sin pretensiones”:
From: torvalds@klaava.Helsinki.FI (Linus Benedict TorValds)
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and
professional like gnu) for 386(486) AT clones. This has been brewing
since april, and is starting to get ready. I'd like any feedback
on things people like/dislike in minix, as my OS resembles it somewhat
(same physical layout of the file-system (due to practical reasons)
among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
This implies that I'll get something practical within a few months,
and I'd like to know what features most people would want.
Any suggestions are welcome, but
I won't promise I'll implement them :-)
Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT portable (uses 386 task switching etc), and it probably never
will support anything other than AT-harddisks, as that's all I have :-(.
O, en nuestro idioma:
Saludos a los usuarios de minix.
Estoy haciendo un sistema operativo (libre), (es sólo un pasatiempo, no será
importante y profesional como gnu) para sistemas 386 (486) AT clones.
Se inició en abril y está empezando a tomar forma. Me gustaría recibir algún
comentario sobre las cosas que le gustan o no a la gente en minix, ya que
mi sistema operativo se parece un poco (la misma disposición física
de los archivos del sistema, debido a razones prácticas entre otras cosas).
Ya he exportado bash (1.08) y gcc (1.40) y las cosas parecen funcionar.
Eso implica que pondré algo en práctica dentro de unos meses y me gustaría saber
qué características desea la mayoría de las personas.
Cualquier sugerencia será bienvenida, pero no prometo que puedan ser aplicadas :-)
Linus (torvalds@kruuna.helsinki.fi)
PD. Sí, es libre de cualquier código de minix y tiene un sistema de ficheros
multihilos.
NO es portable (386 utiliza la conmutación de tareas, etc.), y
probablemente sólos erá compatible con discos duros AT, ya que
es todo lo que tengo :-(.
El entusiasmo por Linux proviene en gran parte por el hueco que llenó en el núcleo del proyecto GNU: ¡por fin estaba disponible un sistema libre completo!
La mascota de Linux se llama "Tux" y es un pingüino, animal especialmente querido por Linus Torvalds.
1. Características
Las principales características de Linux son las siguientes:
Multitarea
Está diseñado para ejecutar varios programas al mismo tiempo (hasta 222 PID - Process ID, hoy codificados en arquitecturas de 64 bits). Utiliza un asignador para ejecutar varias acciones con un mismo procesador y también puede sacar partido de arquitecturas multiprocesador (hyperthreading, SMP - Symmetric Multi-Processors, NUMA - Non-Uniform Memory Access).
Multiusuario
Este sistema permite el uso por parte de varias personas de los recursos que administra. Estas personas se distribuyen en grupos de usuarios y es necesaria una autenticación para asegurar los derechos individuales. Los UID (User’s ID) y GID (Group’s ID) están codificados en 32 bits.
Multiplataforma
Linux ha sido portado a un gran número de arquitecturas de hardware, como Intel 32 bits (i386) y 64 bits (x86_64/AMD64) en el mundo PC, DEC Alpha, IBM PowerPC (iSeries y pSeries), IBM S390 (zSeries), SUN SPARC (32 y 64 bits), ARM 32 y 64 bits (en particular los smartphones bajo Android y los nano-ordenadores Rapberry Pi), MIPS, etc.
Encontramos también Linux en sistemas embebidos como los dispositivos de red (routers, módems, firewalls, servidores NAS y multimedia) y autómatas industriales o televisores para los particulares.
Sistemas de archivos
Linux soporta un gran número de sistemas de archivo, además de los de tipo Unix, incluidos ISO9660 y Universal Disk Format (CD-ROM, DVD-ROM y Blu-ray), Windows, (VFAT, exFAT, NTFS y CIFS), Macintosh (HFS), y en concreto F2FS (Flash-Friendly File System) en dispositivos Android.
Soporta a su vez ACL (Access Control List), cuotas, y una serie de sistemas de archivo con tolerancia a fallos como BTRFS (B-tree File System) y distribuidos como HDFS (Hadoop Distributed File System).
Administración de memoria
En vez de efectuar un “swap” de procesos completos...
¿Qué distribución elegir?
La elección de una distribución depende de muchos criterios: el coste, la gama de programas propuestos, la compatibilidad de hardware, las herramientas administrativas proporcionadas...
No existen "buenas" ni "malas" distribuciones de GNU/Linux, pero, para ayudar al principiante a elegir, está sección presenta una clasificación de las más conocidas según el tipo de necesidades a las que responden mejor.
A fin de cuentas, la elección de una distribución de Linux dependerá tanto de las preferencias como de las muy subjetivas costumbres de la persona que quiere iniciarse en la aventura de Linux.
La Web DistroWatch (https://distrowatch.com) informa sobre la actualidad, descripción y una clasificación de las distribuciones GNU/Linux. Asimismo, hay disponibles enlaces para descargarlas y tablas comparativas de las distribuciones (paquetes, arquitecturas soportadas y gestión de las versiones).
1. Las distribuciones para el "gran público"
Estas distribuciones proponen en su paquete de software la mayor parte de las herramientas que un usuario espera encontrar en su puesto de trabajo en red o en su equipo personal: incluyen un paquete de ofimática, programas de comunicación en red (navegador web, cliente de correo electrónico...), reproductores de multimedia y aplicaciones de creación gráfica.
Las distribuciones de este tipo no ofrecen soporte al usuario, formación o certificaciones; sin embargo se pueden descargar libremente y por lo general están acompañadas de una comunidad muy amplia.
Fedora
El proyecto Fedora lo distribuye el editor Red Hat bajo el nombre de Fedora Core, en sustitución de su distribución estrella, que ya no está disponible actualmente en GPL. Esta distribución implementa muy regularmente las últimas innovaciones del mundo del software libre.
Aunque la frecuencia de salida de esta distribución es elevada (una nueva versión cada seis a doce meses), ofrece une estabilidad y una calidad de integración ejemplares.
La distribución se encuentra hoy en día dividida en distintas variantes, entre las cuales destacan: Workstation para el puesto de trabajo, Server para los equipos servidor dotados de la última tecnología y CoreOS como imagen base para entornos contenedores. A partir de la versión 30 de la distribución, existe una variante IoT orientada a los ecosistemas del Internet de las Cosas.
Representa, por tanto, una buena opción para quien se inicia en busca de una distribución fácil de instalar y que proponga una amplia gama de programas recientes.
Sitio del editor: https://getfedora.org
openSUSE
Al igual que Fedora para Red Hat, open SUSE es la versión libre y gratuita de la distribución profesional SUSE. Es de fácil manejo y cuenta con una gran comunidad de usuarios y desarrolladores.
Se ofrecen dos descargas:
-
Leap, que es una declinación numerada como un distribución clásica; las actualizaciones se garantizan durante 36 meses para las versiones mayores.
-
Tumbleweed, que se encuentra en evolución constante y que no tiene una fecha de finalización de soporte, pero que obliga a mantener el sistema actualizado y emplear las últimas novedades.
Sitio del editor: https://www.opensuse.org
Ubuntu
Distribución derivada de Debian y de su sistema de paquetes. Es muy accesible, los programas libres que ofrece se integran con gran facilidad y dispone de una gran comunidad de usuarios.
Ubuntu se deriva principalmente en las variantes Dekstop (puesto de trabajo), Server (servidor) y Cloud (nube). Las últimas versiones de las variantes Desktop y Server también se ofrecen para la arquitectura Raspberry Pi y los ecosistemas IoT.
Las versiones etiquetadas LTS (Long Term Support) se benefician de un oporte de cinco años por parte del fabricante (extendido a diez años en el marco de una suscripción Ubuntu Pro; son por esto las versiones recomendadas para su descarga.
El entorno de escritorio es GNOME. Existen además otras distribuciones como Kubuntu o Xubuntu o Lubuntu con KDE, Xfce o LXDE.
Sitio del editor: https://www.ubuntu.com.
2. Las distribuciones "móviles"
No siempre resulta evidente cambiar de un día para otro las costumbres informáticas. En ocasiones es preferible “probar Linux” antes de cambiar de arriba abajo la configuración de un equipo. Por ello, algunas distribuciones no requieren instalación en el disco duro.
Estas distribuciones están dotadas de un proceso muy avanzado de configuración automática del hardware. Su carga en memoria RAM se hace al iniciar el PC desde el CD-ROM (existen distribuciones arrancables a partir de una memoria USB).
Además, este tipo de distribución permite llevarse y utilizar el mismo sistema en prácticamente cualquier tipo de PC.
KNOPPIX
KNOPPIX es un CD-media arrancable con un sistema operativo (GNU/Linux) para equipos de tipo PC. Gracias a un sistema de descompresión sobre la marcha, esta distribución contiene unos 2 GB de programas para la edición CD y 9 GB en la edición DVD-ROM.
Tiene, entre otros, los siguientes usos:
-
media de demostración de Linux;
-
media de formación;
-
sistema de seguridad;
-
sistema operativo permanente completo porque puede instalarse también en el disco duro;
-
sistema móvil si se instala en una memoria USB.
Sitio del editor: https://knopper.net/knoppix
Ubuntu, Fedora, openSUSE y los demás
Ya presentadas como distribuciones para el «gran público», estas pueden ser arrancadas directamente desde un medio clásico, o a partir de una imagen ISO adicional dedicada. Esto permite evaluarlas de forma previa; aunque disponen de una herramienta de instalación que ofrece al usuario la posibilidad de instalarlas directamente en el disco duro del equipo.
3. Las distribuciones "profesionales"
Varios editores ofrecen distribuciones con una orientación profesional. Sus principales características son:
-
una estabilidad mejorada al proponer en su paquete...
Ejercicios
Ejercicio 1
Consulte las diferentes páginas web de las distribuciones Linux mencionadas en este capítulo.
Solución
Utilice su navegador web favorito y consulte las direcciones web siguientes:
Ejercicio 2
En el sitio web DistroWatch.com, consulte la página de búsqueda y determine las categorías de clasificación de las distribuciones.
Solución
Con un navegador web, vaya a la dirección https://distrowatch.com y haga clic en el enlace Búsqueda en la parte superior de la página.
En el formulario de búsqueda, la rúbrica Distribution category permite buscar entre las diferentes distribuciones: