Formación informática

Java | Joomla | MySQL

Debian - Tema 5.1-5.4: conceptos básicos de Linux 1

Antes de comenzar a usar Debian 6.0 en modo consola de comandos, vamos a aprender la historia de cómo surgió este sistema operativo GNU/Linux.

5.1. historia de Linux

5.1.1. Los orígenes

El origen de cualquiera de las distribuciones actuales de Linux es el sistema UNIX®, que fue desarrollado en 1969 por el estadounidense Ken Thompson[1], a la sazón desarrollador de los laboratorios Bell, propiedad de AT&T. Las principales características del sistema UNIX® son que era un sistema operativo portátil, multitarea y multiusuario

Paralelamente a su compatriota, Dennis Ritchie[2] inventa un nuevo lenguaje de programación: el lenguaje C. Las principales ventajas de este nuevo lenguaje eran la flexibilidad, la amigabilidad y sus pocas restricciones. Cuando los laboratorios Bell se enteraron de los progresos realizados por este dúo creativo, financiaron su proyecto encargándoles la creación de un sistema de automatización de escritorio para uso exclusivo interno de las compañías de AT&T.

Hasta la creación del lenguaje C todos los sistemas desarrollados estaban codificados en lenguaje ensamblador[3] de alto rendimiento, el cual obligaba a reescribir el programa con cada actualización de hardware que se producía en el equipo. Con el lenguaje C se aislaron los componentes físicos del ordenador del sistema, no teniendo que reescribir el código. Además, consiguieron que C funcionase en muchos equipos de tipos diferentes desde 1974. Esto se consiguió implementando un compilador de C desarrollado para cada equipo. Este venía a demostrar la versatilidad del nuevo lenguaje. Además, permitió reducir los costes de diseño para el usuario cuando se renovaba un equipo anticuado.

Bajo el auspicio e impulso de AT&T, el sistema UNIX se desarrolló y extendió muy rápidamente. Tanto es así que en 1980 lo usaban muchas universidades y centros de investigación estadounidenses. Uno de los centros educativos más implicados fue la Universidad de Berkeley, situado en el caluroso estado de California. Fruto de este interés, surgieron varias mejoras del sistema operativo conocidas con el acrónimo BSD (Berkeley Software Distribution). Estos trabajos se publicaron de forma paralela a los llevados a cabo por AT&T.

Los sistemas UNIX actuales consisten en una mezcla del código original de AT&T junto con las mejoras BSD. Instalación de Debian 6.0

5.1.2. Evolución de las licencias

Cómo hemos visto las primeras versiones de sistema UNIX fueron de uso privado por parte de instituciones y empresas estadounidenses.

RICHARD STALLMAN 002Esto cambió en 1982 cuando surgió una idea novedosa. Su autor fue Richard Matthew Stallman[4] (en la imagen adjunta), un destacado hacker que trabajaba para el laboratorio de inteligencia artificial del Instituto Tecnológico de Massachusets (el famoso MIT). Defendía que el código fuente de cualquier programa informático tenía que estar disponible para que cualquier persona interesada pudiese modificarlo para introducir mejoras. Además, sus compañeros de laboratorio fundaron la empresa Symbolics, cuyo objetivo era sustituir el software libre del laboratorio por programas de pago.

LOGO GNUCómo la idea de Symbolics chocaba con sus ideales informáticos, el 27 de septiembre de 1983 anunció en varios grupos de noticias de Usenet[5] que creaba el proyecto GNU’s Not Unix o GNU (GNU no es Unix) cuyo objetivo principal era la creación de un sistema operativo libre de derechos, es decir, que cualquiera pudiese modificar y usar. Esto no implicaba necesariamente que tuviese que ser gratuito puesto que no se oponía a la venta de programas informáticos. El logotipo elegido para representar esta nueva forma de entender la informática fue una cabeza de ñu.

El proyecto GNU obtuvo rápidamente un gran éxito debido a que muchos otros hackers se sumaron a él de forma desinteresada, creándose muchas aplicaciones y herramientas desde cero. De hecho, solo tres años más tarde (octubre de 1985), Richard Stallman, junto con otros informáticos entusiastas, anunció la creación de la Fundación para el software libre o Free Software Foundation (FSF) cuyo propósito era recoger fondos destinados a financiar el software libre. Entendiendo el término “libre” por estar disponible el código fuente del programa y que todo programador esté autorizado a modificar y distribuir el software libre. Stallman no se oponía a la venta de programas informáticos mientras estuviese accesible el código fuente.

Todas estas ideas las plasmó en la creación de un nuevo tipo de licencia: GPL, General Public License, Licencia Pública General o CopyLeft, cuyas bases fundamentales fueron:

  1. La disponibilidad del código fuente.
  2. La libertad de modificación.
  3. La libertad de reproducción y de distribución.
  4. La obligación de permanecer siempre bajo esta licencia.

Con estos cuatro principios básicos se aseguraba que un programa modificado mínimamente conservase su dominio público y la libertad de uso. De esta forma, nadie podía enriquecerse ilícitamente.

5.1.3. Nacimiento de Linux

LINUS TORVALDSLa primera versión de Linux salió a la luz el 5 de octubre de 1991 gracias al proyecto personal de un estudiante de la Universidad de Helsinki llamado Linus Benedict Torvalds[6].

Torvalds se basó en el sistema operativo libre Minix[7] creado por el estadounidense Andrew S. Tanenbaum[8] en 1987. Realizó una gran inversión de dinero en la compra de un equipo informático, dicen que más de tres mil dólares de los de entonces, para poder acceder a la red de la universidad. Instaló Minix como sistema operativo en su nueva máquina pero no le gustó. Como tenía los conocimientos necesarios, tomó la decisión de desarrollar su propio sistema operativo. Concretamente, desarrolló el núcleo o kernel del sistema, que es la base sobre la que funcionan el resto de aplicaciones.

La primera versión compilada con éxito fue la 002 puesto que la 001 no resultó funcional.

Una vez listo y publicado, pidió ayuda a todos los programadores y hackers de internet que le ayudaran a desarrollarlo. El mensaje que publicó fue el siguiente: “Si suspirar al recordar aquellos días cuandos los hombres eran hombres y escribían sus propios manejadores. Si te sientes sin ningún proyecto interesante y te gustaría tener un verdadero sistema operativo que pudieras modificar a placer. Si te resulta frustante tener solo Minix. Entonces este artículo s para ti”. Esta decisión fue la que de forma más patente impulsó el desarrollo de este sistema libre completo ya que obtuvo una respuesta contudente.

TUXTux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en 1996, es un pequeño pingüino de aspecto risueño y cómico. La idea de que la mascota de kernel Linux fuera un pingüino provino del mismo Linus Torvalds, puesto que la mascota de la Universidad de Helsinki era esta ave marina. Según se cuenta, cuando era niño le picó un pingüino, y le resultó simpática la idea de asociar un pingüino a su proyecto.

Existen dos versiones sobre el origen de su nombre. La primera sugiere que el nombre surge del hecho de que los pingüinos parecen vestir un esmoquin (que en inglés es tuxedo max, abreviado tux). La segunda es que las letras que componen Tux provienen de las palabras Torvalds Unix.

5.1.4. Características principales de Linux

Las principales características de Linux son las siguientes:

  1. Multitarea. Está diseñado para ejecutar varios programas al mismo tiempo mediante un asignador de tareas.
  2. Multiusuario. Permite el uso por varias personas, cada uno con unos permisos y una autentificación distinta. Esto implica que hay que autentificarse siempre para poder acceder a los recursos suministrados por el sistema operativo. Esto es así tanto en modo gráfico como a través de una consola de comandos.
  3. Multiplataforma. Podemos instalarlo en multitud de arquitecturas de hardware: Intel, AMD, PowerPc…
  4. Tiene soporte para un gran número de sistemas de archivos.
  5. Permite la administración avanzada de la memoria virtual y compartida.
  6. Se puede conectar a cualquier tipo de red debido a su amplio abanico de protocolos soportados.
  7. Conformidad con muchos estándares de Linux.
  8. Compatibilidad con muchas bibliotecas UNIX.

5.1.5. Distribuciones de Linux

Una distribución Linux (coloquialmente llamada distro) es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios, avisando durante la instalación de que vamos a usar programas privados para que tomemos la decisión de su uso de forma clara. Además, casi cada distribución ha desarrollado un formato de paquetes para la instalación de programas, siendo esta una de las causas que más dificultad conlleva a los que se inician en Linux.

Los paquetes son los contenedores de los archivos binarios de instalación que contienen el código de máquina, no código fuente, que cada procesador necesita para funcionar. Esta es la razón por la que existen tantas versiones. Los formatos de paquetes existente son:

  • RPM: son usados por las distribuciones RedHat, Caldera, Mandrake, SuSE y TurboLinux. Su uso está muy extendido y se instalan mediante la aplicación rpm.
  • deb: son usados por la distribución Debian y sus derivadas (Ubuntu). Es un sistema muy potente que facilita la actualización del sistema debido a que resuelve muy bien las dependencias de archivos. Las aplicaciones que gestionan estos paquete son apt y dpkg.
  • tgz: son un tipo especial de paquetes que se instalan directamente desde la fuente en que se empaquetan usando la herramienta tar y que posteriormente se comprimen para que ocupar menos espacio. Se instalan desde la consola usando los comandos tar y make

Todas las distribuciones de Linux se pueden descargar y usar libremente. La diferencia está en el soporte que tengamos. Cuántos más usuarios tenga una distribución tendremos más foros y ayudas disponibles en internet. De esta forma podremos encontrar una solución a casi cualquier problema.

El mayor problema para un usuario novel en el mundo Linux es saber que distribución elegir puesto que cada una va dirigida a un colectivo de usuarios distinto y, a veces, muy específico. Así por ejemplo tenemos distribuciones orientadas a:

  • Usuarios noveles (Mandrake, Fedora, Suse, Ubuntu) cuyas principales características son la facilidad de uso e instalación, un entorno amigable y unas herramientas administrativas fáciles de usar pero a la vez muy potentes.
  • Usuarios profesionales (RedHat, Debian, Mandrake, Suse,) cuyas principales características son la estabilidad mejorada porque solo incluyen aplicaciones probadas y robustas; un soporte con un tiempo de vida más largo con actualizaciones y corrección de errores frecuentes; un soporte técnico de pago en algunas de ellas; por último una especialización en algún sector: servidor web, cortafuegos.

Para ser móviles (Ubuntu, Knoppix, Mandrake Move). Es decir, a ser usadas sin necesidad de una instalación en el disco duro porque se arrancar, cargan y usan desde un dispositivo externo: un dvd o una llave USB, por ejemplo. Es una muy buena opción para probar un sistema Unix así como para comprobar el correcto funcionamiento de nuestros componentes de hardware. 

En la imagen siguiente puedes seguir la evolución histórica de las distrubuciones y la herencia existente entre ellos:

linux-historico-distribuciones

5.2. Los paquetes de código fuente

Estos paquetes contienen los archivos que salen del ordenador del programador o programadores, lo que quiere decir que ya hay que aportar algo de nuestra parte para utilizar los programas que contienen. El proceso de instalación de este tipo de paquetes implica también una COMPILACIÓN, concepto que vas a escuchar más de tres veces en el mundo Linux.

Una compilación nos permite que el programa que vamos a instalar se optimice totalmente para el tipo de componentes que tenemos en nuestro ordenador y el tipo de versión de GNU/Linux. Este programa que hemos compilado correrá más rápido que si nos hubiéramos limitado a instalar un paquete binario normal. La compilación de un programa requiere el uso de unos COMPILADORES, que son unos programas que junto con unas librerías de lenguajes de programación, consiguen transformar el código fuente en lenguaje de máquina.

Son también de amplio uso los Source RPM, que son paquetes RPM pero que en vez de ser binarios, llevan código fuente. Mediante la instalación de este tipo de paquetes, lo que hacemos es crear un nuevo paquete optimizado (compilar un nuevo paquete) para nuestra máquina. Después instalamos este último.

5.3. Nombramiento de dispositivos y particiones

Debemos saber de qué manera nombra Linux a los discos duros que tenemos conectados a nuestra máquina y sobre todo a sus particiones, que son cada una de las subdivisiones lógicas del mismo.

Todos los discos duros comienzan su nombre como hd. Un ejemplo de nombre completo de disco duro sería hda y de la primera partición de ese disco duro:

hda1

La ’a’ significa que ese disco duro está conectado al IDE1 como maestro. Si fuera esclavo tendría la ’b’, y si estuviera conectado al IDE2 como maestro, la ’c’, y si estuviera al IDE2 como esclavo, la ’d’.

El número 1 indica que es la primera partición (primaria y no lógica) del disco duro en cuestión. La segunda geométricamente hablando (primaria) sería la 2 y así sucesivamente. La primera partición lógica de un disco duro se nombra con el número 5, independientemente de si pertenece a la primaria 1, 2, 3 ó 4. La segunda se nombraría con un 6 y así sucesivamente.

5.4 La distribución elegida: Debian 6.0

Nosotros vamos a instalar la última versión de Debian. Todos los paquetes de esta versión ocupan ocho deuvedés o cincuenta y dos CD-ROM. Estos archivos se pueden descargar por  varios métodos (descarga directa, ftp, bittorrent, jigdo) e incluso se pueden comprar en distribuidores autorizados por la módica cifra de 3 €. En el  caso del distribuidor autorizado en España, Microcubo[1] dona 0,75 € a la fundación Debian para desarrollar los programas informáticos libres.

Para hacer la instalación básica nos basta tener descargado el primer deuvedé o CD-ROM de todo el conjunto ya que durante la instalación, y posteriormente también, tenemos la posibilidad de descargarnos los paquetes necesarios.

Las razones por las que vamos a elegir esta distribución son:

  1. DEBIAN_LOGOEs la versión predilecta de los entusiastas GNU/Linux por ser una distribución no comercial.
  2. Todos los programas disponibles son libres bajo licencia GPL.
  3. Tiene más de 25.000 paquetes de software
  4. Es una de las distribuciones más segura. De hecho, lo usan muchas instituciones, fundaciones y empresas privadas.
  5. Solo se incluyen programas estables y probados por completo.
  6. La administración de este sistema operativo es muy profunda, incluso a nivel de editor de texto.
  7. Cuenta con un formato de paquetes propio .deb.
  8. Está disponible para múltiples arquitecturas de procesador.
  9. Nos permite implementar y configurar muchos tipos de servidores: de archivos, de impresión, web… siendo por tanto muy versátil y personalizable.

La estructura básica  de un sistema UNIX se compone de:

  • Kernell o núcleo del sistema que se encarga de secuenciar los procesos, reservar espacio en memoria y de disco, supervisar la transmisión de datos entre periféricos y la memoria principal, y satisfacer las petciones de servicios de los procesos existentes. Nunca trabaja directamente para los usuarios.
  • Shell o la terminal intérprete de órdenes. Se encarga de interpretar las órdenes y convertirlas en peticiones al kernell. Unix incluye distintos tipos de Shell para elegir aquel que mejor se adapte a nuestras necesidades.
  • La capa más externa está formada por todas las aplicaciones, los lenguajes de programación…

 

Estructura básica sistema operativo UNIX

[1] http://www.microcubo.com

[1] http://es.wikipedia.org/wiki/Ken_Thompson

[2] http://es.wikipedia.org/wiki/Dennis_Ritchie

[3] es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables.

[4] http://es.wikipedia.org/wiki/Richard_Stallman

[5] Usenet era un sistema global de discusión en Internet creado en 1979 por dos alumnos de la universidad de Duke llamados Tom Truscott y Jim Ellis. Más información en este artículo de la Wikipedia.

[6] Más información sobre su biografía en este artículo de la Wikipedia.

[7] MINIX es un clon del sistema operativo Unix distribuido junto con su código S. Más información en este artículo de la Wikipedia.

[8] Más información sobre su biografía en este artículo de la Wikipedia.

 

 Debian - Tema 4: instalación de Debian <- | ->   Debian - Tema 5.5 Conceptos básicos de Linux
   GNU/Linux - Temario

Escribir un comentario

Aunque los comentarios no expresan la opinión del administrador del sitio web, éste si que tiene una responsabilidad legal sobre lo que aparece. Por lo tanto, habrá una labor de moderación de los mensajes. No se permitirán mensajes ofensivos ni publicidad


Código de seguridad
Refescar

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-Ley 13/2012, de 30 de marzo. Si continúa navegando consideramos que acepta el uso de cookies. . Más información