¿Qué es Linux?

Linux es un sistema operativo que actúa como un servicio de comunicación entre el hardware (el equipamiento físico del ordenador) y el software (las aplicaciones que utilizan el hardware) de un ordenador.

El núcleo de Linux presenta todas las características de un auténtico sistema operativo. Algunas de ellas son:

Multitarea

Técnica para compartir un solo procesador entre varios trabajos independientes.

Memoria virtual

Permite un uso extendido y repetitivo de la memoria principal de la computadora para ampliar y optimizar su utilizacion.

Controladores TCP/IP rápidos

Para una comunicación veloz.

Bibliotecas compartidas

Para permitir a las aplicaciones compartir código.

Capacidad Multi-Usuario

Significa que muchos usuarios pueden utilizar el ordenador al mismo tiempo, cada uno de ellos ejecutando tareas diferentes.

Modo protegido

Permite que el sistema operativo controle el acceso de los programas a la memoria física, y protege la estabilidad del sistema.

El núcleo de Linux está bajo los términos de la Licencia Pública General (GPL) http://es.gnu.org/licencias. La licencia GPL establece que el código fuente debe ser libremente distribuido y que cualquier persona puede hacer copias para su propio uso, para venderlo o distribuirlo (con algunas restricciones). La mayor parte del software para Linux está bajo la licencia GPL. Esto no significa que todo el desarrollo de software, o todo lo que sea portado a Linux, deba tener esta licencia.

Mas allá de las libertades que ofrece Linux por el hecho de ser Software Libre, el sistema incluye herramientas básicas de seguridad, como SSL, encriptación, RSA/DSA, firewalls, empaquetadores tcp, sistemas de archivos criptográficos, túneles IP, Kerberos, etc, y que, además, son compatibles con los patrones Unix con más de dos décadas de utilización y perfeccionamiento.

Linux es reconocido como uno de los sistemas operativos de mayor fiabilidad respecto a la seguridad de los sistemas de ordenadores. Los servicios que ofrece tienen unas críticas excelentes. Nombramos, como ejemplo, el servidor de páginas web Apache, el más usado en Internet (más del 60% de los servidores) por su velocidad y seguridad.

Linux dispone de herramientas de alerta en casos de ataque, diagnosticando el tipo y actuando en consecuencia, pudiendo de esta forma generar esquemas de seguridad reduciendo al mínimo la posibilidad de ser vulnerados.

Por otro lado, Linux es muy estable y raramente necesita ser reiniciado. Una aplicación puede fallar en alguna ocasión, pero no bloqueará al sistema entero.

Breve historia de Linux

La historia de Linux empieza en Finlandia (1991), cuando el estudiante de la Universidad de Helsinki, Linus B. Torvalds, se planteó aprovechar mejor los recursos de su ordenador (un PC con procesador Intel 386) y se instaló en él una versión reducida del sistema operativo Unix (http://www.unix-systems.org) llamada Minix.

Sin embargo, debido a las limitaciones del Minix, Linus decidió reescribir algunas partes del sistema, añadiéndole mayor funcionalidad. Posteriormente, Linus decidió difundir el código fuente por Internet, de manera gratuita y con el nombre de Linux (contracción de Linus y Unix). La primera difusión de Linux tuvo lugar el mes de agosto de 1991. Era la versión 0.01.

Esta primera versión era lo que se podría denominar un embrión, ni siquiera hubo anuncio oficial. La primera versión "oficial", la 0.02, se hizo pública el 5 de octubre de 1991. En esta nueva versión ya se incorporaron algunos programas GNU http://www.gnu.org/home.es.html como la shell bash, el compilador GCC, etc.

En estas primeras versiones, Linux era bastante limitado, pero el hecho de que se difundiera el código fuente por Internet, y totalmente gratis, hizo que cada vez más personas empezaran a colaborar con el proyecto, llegando a cientos de colaboradores que hay trabajando en la actualidad en los cientos de proyectos GNU.

La primera versión estable de Linux fue la 1.0 y apareció en marzo de 1994. El número de versión asociado al núcleo tiene un sentido muy particular ya que está ligado a su desarrollo. La evolución de Linux se efectúa en dos fases:

  • Fase de desarrollo: la estabilidad del núcleo no está asegurada; es el momento donde se añade funcionalidad al núcleo, optimizaciones, etc. En definitiva, es la fase en la que se desarrolla el núcleo y se caracteriza por su nombre de versión impar: 1.1, 1.3, etc.

  • Fase de estabilización: se trata de coger el núcleo desarrollado en la fase anterior, y hacer que éste sea lo más estable posible. Aquí las modificaciones son mínimas, se trata más de retoques y pequeños ajustes. Los núcleos estables tienen número de versión par: 1.0, 1.2, 2.0, 2.4, 2.6, etc.

Actualmente Linux es un sistema Unix completo y estable, que sigue evolucionando y que cada día gana nuevos adeptos. Durante muchos años Linux perteneció, casi por completo, al mundo universitario. Ahora que Internet llega a millones de usuarios, Linux se está extendiendo rápidamente, incluso en el mundo empresarial.

Inicialmente Linux se diseñó como un clónico de Unix, distribuido libremente para funcionar en máquinas PC con procesadores Intel 386, 486, etc. En la actualidad funciona sobre otras muchas plataformas como los procesadores Alpha, Sparc, Amiga, Atari, las máquinas tipo MIPS y sobre PowerPC.

Es importante saber que Linux respeta las especificaciones POSIX http://standards.ieee.org/regauth/posix/, pero posee también ciertas extensiones de las versiones System V y BSD de Unix. Esto simplifica notablemente la adaptación de programas desarrollados inicialmente para otros sistemas Unix.

El término POSIX significa Portable Operating System Interface. Son unas normas definidas por el IEEE http://www.ieee.org y estandarizados por ANSI http://www.ansi.org e ISO http://www.iso.ch. POSIX permite tener un código fuente transportable.

Gracias a Internet, Linux ha tenido un crecimiento espectacular en los últimos tiempos, haciendo que el proyecto cada vez tenga más colaboradores y, de esa forma, haciendo al sistema cada vez más potente.

Hay que recordar también que el término Linux se refiere al núcleo del sistema (parte que interactúa con el hardware de la máquina). Cuando se habla de todo el conjunto que forma el núcleo, y todos los demás proyectos GNU (shells, compiladores, escritorios y las distintas aplicaciones en general), se está hablando ya del sistema operativo GNU/Linux.

¿Qué es GNU?

En 1984 y debido a la ley antimonopolio existente en EE.UU. la restricción que impedía explotar comercialmente UNIX desapareció, y la primera medida que se dejó notar fue la restricción en la distribución del código fuente del sistema.

Pero ese mismo año 1984, Richard M. Stallman decidió iniciar el proyecto GNU (GNU's Not UNIX), un proyecto cuya finalidad era proporcionar un sistema operativo similar a UNIX, pero con una licencia que impidiese una 'vuelta a la oscuridad' como la que sufrió el propio UNIX. Dicha licencia se llamó GPL (GNU Public License) y le confiere al software la propiedad de ser libre y permanecer libre.

Stallman comenzó a construir una herramienta fundamental para el sistema: el compilador para el lenguaje C (gcc, de GNU C Compiler). Esta herramienta software se ha convertido en el nexo de unión más importante de todo el software libre. Con el tiempo fue el compilador utilizado por Linus Torvalds para desarrollar el famoso núcleo Linux. Un porcentaje muy alto de todo el código asociado al software libre está escrito en C. Y, gracias a Stallman, el compilador gcc (y el resto del sistema) podemos decir que es patrimonio de la humanidad.

¿Porqué «GNU/Linux» en lugar de «Linux»?

Porque de esa manera se reconoce explícitamente que el sistema operativo no sólo es el núcleo Linux, sino que contiene muchas otras herramientas que se escribieron con anterioridad y sin cuya existencia nunca habría sido posible construirlo, ni tener algo funcional en los ordenadores.

Todas esas herramientas juntas forman el sistema GNU, que es como se denomina al proyecto para construir un sistema operativo totalmente libre iniciado a mediados de los ochenta por la Free Software Foundation (FSF http://www.fsfeurope.org/index.es.html). De hecho, el sistema GNU podría tener en un futuro próximo otros núcleos, como el Hurd, con los cuales los usuarios podrán elegir entre sistemas GNU/Linux o GNU/Hurd. Lo realmente importante es disponer de un sistema operativo libre, no el núcleo, el escritorio o el subsistema gráfico que lleve (y que irá cambiando con el tiempo).