GNU/Linux

(Redirigido desde «Linux»)
GNU/Linux
Información sobre la plantilla
Logo gnu linux.jpg
Término empleado para referirse al sistema operativo libre similar a Unix que usualmente utiliza herramientas de sistema GNU.
CreadorLinus Torvalds y Richard Stallman.
Fecha de Creación1991
LicenciaLicencia GNU

GNU/Linux (Linux). Uno de los términos utilizados para referirse al sistema operativo libre homólogo a Unix que usualmente utiliza herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo el código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (licencia pública general de GNU) y otras licencias libres.

A pesar de que Linux es el sistema operativo, cabe notar que debido a que usualmente se maneja con las herramientas GNU, 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.

A las variantes de esta unión de programas y tecnologías, se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras. No obstante, es posible instalarlo en una amplia variedad de Hardware como computadoras de escritorio y portátiles.

En computadoras de bolsillo, teléfonos móviles, dispositivos empotrados, videoconsolas y otros, puede darse el caso en que las partes de GNU se reemplacen por alternativas más adecuadas.

Etimología

El nombre GNU, GNU's Not Unix (GNU no es Unix), viene de las herramientas básicas de sistema operativo creadas por el proyecto GNU, iniciado por Richard Stallman en 1983 y mantenido por la FSF (Free Software Fundation). El nombre Linux viene del núcleo Linux, inicialmente creado por Linus Torvalds en 1991.

La contribución de GNU es la razón por la que existe controversia a la hora de utilizar Linux o GNU/Linux para referirse al sistema operativo libre formado por las herramientas de GNU y el núcleo Linux en su conjunto.

Historia

Linus Torvalds

El proyecto GNU, iniciado en 1983 por Richard Stallman, tiene como objetivo el desarrollo de un sistema operativo Unix completo compuesto enteramente de Software libre. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991, Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX que más adelante acabaría siendo Linux.

Cuando se liberó la primera versión de Linux, el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero como el proyecto contaba con una infraestructura para crear su propio sistema operativo, el llamado Hurd, y este aún no era lo suficiente maduro para usarse, comenzaron a usar a Linux a modo de continuar desarrollando el proyecto GNU, siguiendo la tradicional filosofía de mantener cooperatividad entre desarrolladores. El día en que se estime que Hurd es suficiente maduro y estable, será llamado a reemplazar a Linux.

Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el "espacio" final que había en el sistema operativo de GNU.

La Carta

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 Benedict Torvalds

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 :-(.

Linus Torvalds

Traducción:

Hola a todos aquellos que usan Minix -

Estoy haciendo un sistema operativo (gratuito) (solamente una afición, no será grande ni profesional como el GNU) para clones 386 (486) AT. Este ha estado gestándose desde abril, y está comenzando a estar listo. Me gustaría recibir cualquier comentario sobre las cosas que gustan/disgustan en minix, ya que mi SO (Sistema Operativo) se le parece un poco (la misma disposición física del sistema de archivos, debido a motivos prácticos, entre otras cosas).

Actualmente he portado bash(1.08) y gcc(1.40), y las cosas parecen funcionar. Esto implica que conseguiré algo práctico dentro de unos meses, y me gustaría saber qué características quiere la mayoría de la gente. Cualquier sugerencia es bienvenida, pero no prometeré que las pondré en práctica :-)

Linus Benedict Torvalds

PD. Sí – es libre de cualquier código de minix, y tiene un sistema de archivos multi-hilo. NO es portable (usa la conmutación de tareas del 386, etc.), y probablemente nunca será soportada por nada más que los discos duros AT, porque es todo lo que tengo :-(.

Linus Torvalds

El nombre

Linus Torvalds había querido llamar su invención Freax, un portmanteau de freak (anormal o raro), free (libre), y "X", una alusión a Unix. Durante el inicio de su trabajo sobre el sistema, él almacenó los archivos bajo el nombre "Freax" por aproximadamente medio año. Torvalds ya había considerado el nombre "Linux", pero al principio lo había descartado por ser demasiado egocéntrico o egoísta.

Para dar a otra gente la capacidad de cooperar en el sistema o sugerir mejoras, los archivos fueron colocados en el servidor Ftp (ftp.funet.fi) de la Universidad de Tecnología de Helsinki (Helsinki University of Technology) (HUT), en septiembre de 1991. Ari Lemmke, colega de Torvalds en la HUT, que en ese entonces era el responsable de los servidores, no estuvo de acuerdo con el nombre Freax, prefiriendo el nombre Linux. Él simplemente llamó los archivos colocados sobre el servidor "Linux" sin consultar a Torvalds. Más tarde, sin embargo, Torvalds accedió a usar el nombre "Linux":

“Después de muchas discusiones, él finalmente admitió que Linux era simplemente el mejor nombre. En el código original de la versión 0.01 de Linux, el nombre Freax fue, sin embargo, usado en el makefile. Sólo después fue usado el nombre Linux. Así el nombre, en realidad, no planificado en absoluto se hizo generalmente aceptado por todo el mundo."

Por los grandes aporte a la tecnología Linus Torvalds es considerado el pionero del sistema operativo.

La GNU GPL

Torvalds primero publicó el núcleo Linux bajo su propia licencia, la cual fue casi una licencia de código fuente compartida (en Inglés, share source) y que tenía una restricción contra la actividad comercial. En 1992, él sugirió cambiar a la GNU GPL. Primero anunció este cambio en las notas de lanzamiento de la versión 0.12. A mediados de diciembre de 1992 él publicó la versión 0.99 usando la GNU GPL.

Más tarde, Torvalds dijo en una entrevista,

"registrar a Linux bajo la GPL fue definitivamente la mejor cosa que alguna vez hice".

Aplicaciones

Ubuntu

En entornos de escritorio, GNU/Linux ofrece una interfaz gráfica alternativa a la tradicional interfaz de línea de comandos de Unix. Existen en la actualidad numerosas aplicaciones gráficas que ofrecen la funcionalidad que está permitiendo que GNU/Linux se adapte como herramienta de escritorio.

Muchas distribuciones permiten el arranque del sistema directamente desde un CD/DVD (llamados LiveCD) sin modificar el disco duro del ordenador en el que se ejecuta. Para este tipo de distribuciones, en general, los archivos de imagen (archivos ISO) están disponibles en Internet para su descarga.

Como sistema de programación

La colección de utilidades para la programación de GNU es con diferencia la familia de compiladores más utilizada en este sistema operativo. Tiene capacidad para compilar C, C++, Java, Ada, entre otros muchos lenguajes. Además soporta diversas arquitecturas mediante la compilación cruzada, lo que hace que sea un entorno adecuado para desarrollos heterogéneos.

Hay varios entornos de desarrollo integrados disponibles para GNU/Linux incluyendo, Anjuta, KDevelop, Ultimate++, Code::Blocks, NetBeans IDE y Eclipse.

Tambien podemos encontral a Termux que es un emulador de terminal para Android que permite ejecutar un entorno Linux en un dispositivo Android. Además, se pueden instalar varios programas de Linux a través del administrador de paquetes de la aplicación.

Además existen editores extensibles como Emacs o Vim. GNU/Linux también dispone de capacidades para lenguajes de guión (Script), aparte de los clásicos lenguajes de programación de shell, o el de procesado de textos por patrones y expresiones regulares llamado awk, la mayoría de las distribuciones tienen instalado Python, Perl, PHP y Ruby.

Administración pública

Hay una serie de administraciones públicas que han mostrado su apoyo al software libre, sea migrando total o parcialmente sus servidores y sistemas de escritorio, sea subvencionándolo. Como ejemplos se tiene a la Aduana General de la República de Cuba que recientemente migró todos sus estaciones de trabajo a Linux.

Denominación GNU/Linux

Parte de la comunidad y numerosos medios prefieren denominar a este sistema operativo como Linux, aunque GNU/Linux (con las variantes GNU con Linux y GNU+Linux) es la denominación defendida por el Proyecto GNU y la FSF junto con otros desarrolladores y usuarios para el sistema operativo que utiliza el núcleo Linux en conjunto con las aplicaciones de sistema creadas por el proyecto GNU y por muchos otros proyectos de software.

Desde 1984, Richard Stallman y muchos voluntarios están intentando crear un sistema operativo libre con un funcionamiento similar al UNIX, recreando todos los componentes necesarios para tener un sistema operativo funcional.

A comienzos de los años 90, unos seis años desde el inicio del proyecto, GNU tenía muchas herramientas importantes listas, como editores de texto, compiladores, depuradores, intérpretes de comandos de órdenes etc, excepto por el componente central: el núcleo.

GNU tenía su propio proyecto de núcleo, llamado Hurd. Sin embargo, su desarrollo no continuó como se esperaba al aparecer el núcleo Linux. De esta forma se completaron los requisitos mínimos y surgió el Sistema operativo GNU que utilizaba el núcleo Linux.

El principal argumento de los defensores de la denominación GNU/Linux es resolver la posible confusión que se puede dar entre el núcleo (Linux) y gran parte de las herramientas básicas del resto del sistema operativo (GNU).

También se espera que, con el uso del nombre GNU, se dé al proyecto GNU el reconocimiento por haber creado las herramientas de sistema imprescindibles para ser un sistema operativo compatible con UNIX, y se destaque la cualidad de estar compuesto sólo por software libre.

La primera distribución que incluyó el GNU en su nombre fue Yggdrasyl en 1992, donde aparecía como Linux/GNU/X.

La FSF denominó a este sistema "Linux" hasta al menos junio de 1994 y recién a partir de enero de 1995 empezó a llamarlo "GNU/Linux" Algunas distribuciones apoyan esta denominación, e incluyen GNU/Linux en sus nombres, como Debian GNU/Linux o GNU/LinEx, mientras que otras, como Slackware, Gentoo o Ubuntu, eligen denominarse basadas en Linux.

En ocasiones, el proyecto KDE ha utilizado una tercera denominación: GNU/Linux/X para enfatizar los tres proyectos sobre los que se apoya su entorno de escritorio.

Características

Linux posee una serie de características que lo ubican a la vanguardia del desarrollo del Software libre. Existen varias razones para usar Linux en su PC y algunas de estas son:

  • Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los programas que se están utilizando en un momento dado serán ejecutados, siendo el sistema operativo el encargado de ceder tiempo de microprocesador a cada programa.
  • Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.
  • Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. [[Pentium] ], Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.
  • Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel y SPARC.
  • Funciona en modo protegido 386.
  • Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema.
  • Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa que están siendo usadas actualmente.
  • Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
  • Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una partición o un archivo en el Sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio. Este limite se puede aumentar fácilmente con el cambio de unas cuantas líneas en el Código fuente.
  • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes programas.
  • Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
  • Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
  • Compatible con POSIX, System V y BSD a nivel fuente.
  • Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
  • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
  • Control de tareas POSIX.
  • Pseudo-terminales (pty's).
  • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
  • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
  • Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
  • Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
  • Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no es necesario ningún comando especial para usar la partición MS-DOS, esta parece un sistema de archivos normal de Unix (excepto por algunas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.
  • Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.
  • Soporte en sólo lectura de HPFS-2 del OS/2 2.1
  • Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
  • TCP/IP, incluyendo FTP, telnet, NFS, etc.
  • Appletalk.
  • Software cliente y servidor Netware.
  • Lan Manager / Windows Native (SMB), software cliente y servidor.
  • Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP, Netrom, etc.

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 las denomina distribuciones. 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. No obstante, es posible instalarlo en una amplia variedad de hardware como computadoras de escritorio y portátiles.

En computadoras de bolsillo, Teléfonos móviles, dispositivos empotrados, videoconsolas y otros, puede darse el caso en que las partes de GNU se reemplacen por alternativas más adecuadas. Para saber más sobre las arquitecturas soportadas.

Anexos

Véase también

Fuentes