Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas

sábado, 18 de febrero de 2017

Linux o mejor dicho GNU/Linux. Hablemos de él. Las distribuciones Linux

Sin querer he hecho un tutorial de GNU/Linux, o Linux como prefieren llamarlo algunos aunque no es la expresión correcta. Pues en esta publicacion seguire tratando este etema y para ver las publicaciones anteriores de este "tutorial" pueden verlas aquí, aquí y aquí. Bueno mucha charla, asi que vamos al grano.

Esta vez les comentaré sobre las llamadas distribuciones Linux ¿y que es eso? preguntarán ustedes, pues ya les respondo. Antiguamente instalar un sistema operativo Linux era una tarea larga y tediosa y que además exigía tener ciertos conocimientos, ya que se tenía que primero obtener y el kernel y después todas los demás programas y aplicaciones que conforman el sistema. Afortunadamente esto ha cambiado con la aparición de las distribuciones Linux.

Una distribución Linux, también llamada distro Linux o simplemente distro, es una recopilación de programas y aplicaciones integradas alrededor de un núcleo Linux que permiten una instalación fácil del sistema. Estas distribuciones las ofrecen asociaciones y empresas o comunidades de usuarios, quienes se encargan de su lanzamiento, soporte y actualizaciones. En la siguiente imagen se muestra como es una distribución Linux.


Estas distribuciones se pueden descargar a través de Internet para poder grabarlas ya sea un CD, DVD o pendrive, u obteniendo los CDs o DVDs de instalación ya completos de las mismas ya sea previo pago o de forma gratuita. Por lo general las distros vienen en formato LiveCd, LiveDVD o LiveUSB es decir, que se puede correr el sistema desde el dispositivo de almacenamiento para conocerlo mejor sin necesidad de instalarlo en un disco duro, aunque esto hace que se ejecuten más lentamente y no se pueden guardar datos. Incluyen la opción de instalar la distribución, ya sea como único sistema o en una partición del disco duro compartiéndolo con otros sistemas operativos. 

Existen gran cantidad de distribuciones a nivel mundial, las cuales como se dijo cuentan con un núcleo Linux, entonces ¿Qué hace diferente a una distribución de otra? Pues bien primero hay que ver hacia qué tipo de usuario va destinado. Si bien, la mayoría son para dirigidas para el público en general existen distribuciones con un uso específico, como por ejemplo para los que trabajan en el mundo de la música, orientado a redes e incluso las hay destinadas según las creencias religiosas de los usuarios. Igualmente es importante se toma en cuenta el nivel de experiencia que tiene un usuario para usar una distribución. 

Otra cosa que hay que tener en cuenta es el paquete y sus gestores. Cuando se instala una distribución, los paquetes pueden ser distintos para cada una de ellas, siendo un paquete el formato o extensión del archivo usado por el sistema operativo para instalar un programa. Por ejemplo, la distribución Debian y sus derivados usan en sus paquetes el formato .deb, el cual no es compatible con otras distribuciones. Para que la distribución pueda usar ese archivo debe tener también un gestor de paquetes, es una colección de herramientas para instalar, modificar o eliminar dicho programa. Esto es importante, ya que si bien los programas no cambian entre una y otra distribución es muy probable que si cambie el paquete usado para instalarlo. 

Algo que también es importante es el hardware sobre el cual se va a instalar la aplicación, ya que hay algunas que consumen más recursos que otras. Es por eso que existen algunas que son destinadas a equipos ya viejos o con hardware limitado. 

Una distribución puede ser derivada de otra distribución, e igualmente dicha distribución derivada puede servir de base para otra más. No hay limitante para esto


Algunas distribuciones Linux

Como les dije, existen gran cantidad de distribuciones por lo que solo nombraré algunas de ellas.
  • Debian: Una distribución con muy buena calidad desarrollada por un grupo de usuarios, aunque actualmente no tan popular como sus derivados. Gran estabilidad antes que últimos avances. De esta distribución se han derivado otras más.
  • Ubuntu: Distribución patrocinada por la empresa sudafricana Canonical Ltd y basada en Debian, es una de las más populares. Se centra en la facilidad de uso, amplio soporte de hardware y funcionalidad, aunque con el uso del entorno gráfico Unity perdió algunos usuarios..
  • Kubuntu: Distribución también patrocinada por Canonical Ltd y similar a Ubuntu, difiriendo en el entorno grafico. Mientras Ubuntu usa el entorno Gnome, Kubuntu usa KDE. 
  • Linux Mint: Es una distribución, basada en Ubuntu. También está disponible una edición basada en Debian. Esta distribución es financiada por su comunidad de usuarios y es la más usada a nivel mundial.
  • gNewSense: Distribución basada en Debian y Ubuntu. Fue diseñado con la meta de proporcionar una distribución 100% libre a los usuarios que desean utilizar solamente softwar e libre.
  • Canaima: Distribución venezolana basada en Debian desarrollada y mantenida por un conjunto de usuarios. Es una de las distribuciones más usadas en Venezuela a raíz de su incorporación en escuelas públicas.

Bueno es todo por hoy. En próximas publicaciones seguiré hablando de Linux, o GNU/Linux que es su nombre verdadero. Cualquier cosa díganlo en los comentarios.

Linux o mejor dicho GNU/Linux. Hablemos de él. Como es su proceso de arranque

Siguiendo con el tema de Linux, o mejor dicho, GNU/Linux, aqui les explico como es su proceso de arranque.

Al momento de encender una computadora con Linux (o GNU/Linux) instalado, ocurre el siguiente proceso:

1. POST: Siglas de Power On Self Test, que en es español significa auto prueba de encendido. Es un código ejecutado por el BIOS (Basic Input/Output System) y cuyo objetivo es verificar el hardware de la computadora. Si hay algún error, se intentará continuar con el proceso de inicio del computador. Sin embargo, si el error es serio, el BIOS detendrá la carga del sistema e indicara la falla ya sea con mensajes en pantalla o por medio de sonidos. Si no se presenta ningún problema se pasa al próximo paso.

2. Bootloader Fase 1: Una vez que las pruebas realizadas por el POST hayan sido exitosas se buscan en los dispositivos de almacenamiento disponibles (discos duros, pendrives, CD-ROM o DVD) algún sector de arranque. Recordemos que el sector de arranque o MBR (Master Boot Record) es el primer sector que contiene algún dispositivo de almacenamiento y en cual se encuentra un código llamado Master Boot, que lee la tabla de particiones del dispositivo, además de  ejecutar la fase 2 del bootloader.

3. Bootloader Fase 2: Se ejecuta el gestor de arranque, que es un pequeño programa que al permite cargar un sistema operativo. En el caso de Linux se carga el núcleo o kernel. Para este sistema operativo se tendrán los siguientes gestores de arranque:
  • LILO (Linux Loader)
  • GRUB (Grand Unified Bootloader)
Ambos gestores permiten al usuario, en caso de que el disco duro existan además de Linux otros sistemas, seleccionar con cual arrancar. Si bien funcionan de manera similar, LILO además de ser el más antiguo tiene otras diferencias con GRUB:
·         No posee ninguna interfaz del comando interactiva: la línea de comandos de Lilo no es interactiva y sólo permite comandos con argumentos, mientras que GRUB ofrece interfaz gráfica.
·         Almacena información sobre la localización del kernel o si otro sistema operativo se debe cargar en el MBR: Cada cambio que se haga debe ser reescrito por lilo.
·         No puede leer las particiones tipo ext2, algo que si puede hacer GRUB.

4. Kernel: El núcleo se cargado en la memoria RAM, hecho esto, chequea el hardware del sistema, monta el directorio raíz (/), y después carga los módulos necesarios. Luego se sigue con la inicialización del sistema que es próximo paso a seguir.

5. Inicialización: una vez cargado el kernel, se ejecuta el programa init, que se encarga de arrancar el resto de los procesos, como comprobar montar el sistema de archivos y la puesta en marcha los servicios de usuario necesarios. La inicialización en sistemas antiguos se veía por una serie de mensajes de texto en la pantalla, pero esto ha cambiado con el proceso de bootsplash.

6. Bootsplash: Es la representación gráfica del proceso de inicialización, el cual se muestra comúnmente como una pequeña barra que crece progresivamente u otra forma de movimiento, mientras el equipo va poniéndose en forma operativa.

7. Ambiente Grafico: Una vez culminado el proceso de inicio la barra de bootsplash se detiene, ejecutándose XWindows, que es un software que permite mediante un sistema de ventanas un manejo gráfico del sistema ofreciendo una interfaz completamente gráfica, con menús desplegables, cargando el gestor de ventana que se encarga de controlar la apariencia de las ventanas y su interacción con el usuario, y el entorno de escritorio el cual se encarga de brindar una interfaz general para el sistema operativo y dar ciertas aplicaciones para el manejo general de una computadora. En Linux se tienen los principales tipos de entorno gráfico son Gnome y KDE, pero existen otros como Cinnamon, LXDE, Xfce y Unity.

8. Usuario: Finalmente se muestra una pantalla de acceso o Login. Una vez que el usuario se identifica con su login y clave accede al sistema y a sus aplicaciones y archivos personales ubicados en su subdirectorio en el directorio /home.

Existen diferentes tipos de usuarios:
  • Superusuario: su nombre es root, es el administrador del sistema y actúa sin restricción el sistema completo.
  • Usuarios de Procesos son para asociar archivos privilegiados necesarios para el buen funcionamiento del sistema y tienen acceso restringidos a los recursos requeridos por el proceso que ejecuta.
  • Usuarios normales con privilegios limitados. Restringidos a áreas y actividades a las cuales se les ha dado permiso. Creados por el administrador del sistema a medida que sean necesarios.

En la siguiente imagen se muestra de una forma resumida el proceso de arranque de Linux.


Ese es el proceso de arranque de GNU/Linux (Linux pues). Cada sistema operativo tiene su proceso de arranque y tal vez en próximas publicaciones hable de eso. Por los momentos eso es todo y no olviden que si tienen alguna duda o sugerencia pueden expresarla a través de un comentario.

Linux o mejor dicho GNU/Linux. Hablemos de él. Como es su arquitectura y organización

En la publicación anterior hablé del sistema operativo Linux, o mejor dicho GNU/Linux (todo esto pueden verlo aquí). Esta vez voy hablar de su arquitectura, es decir, las partes que lo conforman, así de su organización interna, pues no nos demoremos y comencemos de una vez.

Arquitectura de Linux (o GNU/Linux)

A continuación haremos una breve descripción de la arquitectura de Linux (o GNU/Linux), la cual se muestra en la figura:
  


El kernel ó núcleo del sistema, el cual es llamado Linux, se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware del computador puedan trabajar juntos. es de tipo monolítico. Esto indica que no se separan sus diferentes funcionalidades en distintos módulos, sino que todo forma parte de un mismo programa.

Alrededor del núcleo están las bibliotecas GNU, que son funciones que ayudan a la ejecución de las aplicaciones y programas. Se les llama GNU puesto que pertenecen al sistema GNU y son de carácter libre.

Luego están las distintas aplicaciones del sistema y de los usuarios y por ultimo esta la interfaz de usuario y esta puede ser de línea de comandos (CLI) o gráficas (GUI).

Como está organizado Linux (o GNU/Linux)

Linux (o GNU/Linux) está organizado en directorios de una forma jerárquica, tal como se muestra en la siguiente imagen, de una forma similar al sistema operativo Unix. Algunos de estos directorios contienen subdirectorios o subcarpetas. A continuación se describirán dichas carpetas.

  • /: Es el directorio o carpeta raíz o principal y de donde parten todos los demás directorios y es porque los nombres de estos siempre están precedidos por “/”.
  • /boot: En este directorio se encuentran los archivos que permiten que arranque el sistema, como el Grub.
  • /etc: Aquí se encuentran los archivos de configuración del sistema operativo y para el funcionamiento de los programas instalados.
  • /usr: este directorio es el segundo en importancia después de la carpeta raíz “/” ya que en el se localizan la mayoría de los archivos del sistema, aplicaciones, librerías, así como información de los programas de los usuarios. Esta carpeta contiene otros subdirectorios, los cuales son:
o /bin: Donde se ubican los archivos ejecutables de las aplicaciones instaladas  en el sistema
o /include: Aquí se encuentran los archivos cabecera, los cuales son funciones predefinidas que se incluyen que se este haciendo.
o /sbin: En esta carpeta se localizan los programas y comandos necesarios para la administración del sistema.
o /lib: Este directorio incluye librerías y archivos que no son ejecutados directamente por los usuarios.
o /share: Es en donde se encuentran archivos compartidos como imagines, iconos, etc.
o /local: Contiene el software instalado localmente y para algunos otros archivos.
o /src: Esta carpeta contiene el código fuente del kernel o núcleo del sistema operativo.
  • /bin: Esta carpeta contiene los archivos ejecutables básicos de Linux.
  • /dev: Aquí se ubican los archivos correspondientes a cada dispositivo físico instalado como discos duros con sus particiones, pendrive, CD-ROM, DVD, mouse, etc.
  • /sbin: Es en donde se encuentran archivos ejecutables para la administración del sistema.
  • /proc: Esta carpeta no existe como tal sino que esta montada virtualmente y contiene información sobre los procesos que se están ejecutando, núcleo, módulos cargados y dispositivos
  • /mnt: Se usa para montar temporalmente archivos de unidades externas.
  • /home: Contiene los directorios personales de los usuarios, los cuales a su vez pueden contener otros subdirectorios.
  • /lib: Guarda librerías compartidas necesarias para que arranque el sistema y para archivos ejecutables contenidos en las carpetas /bin y /sbin. En este directorio también se encuentran los módulos del núcleo o kernel.
  • /root: Directorio personal del administrador o superusuario del sistema.
  • /srv: contiene información sobre servicios como por ejemplo FTP (Protocolo de Transferencia de Archivos) que ofrece el sistema.
  • /tmp: Es en donde se guardan los archivos temporales. Cada vez que se inicia el sistema este directorio se limpia.
  • /var: en esta carpeta se almacenan archivos que son modificados constantemente. A su vez contiene las siguientes subcarpetas:
o /cache: Donde se almacena los datos cache (datos usados en tiempo corto) de las aplicaciones.
o /lib: Ofrece información sobre el estado variable de las aplicaciones.
o /lock: Aquí se almacenan los archivos que están bloqueados por el sistema y que solo pueden ser utilizados por una aplicación en particular.
o /log: Guarda los mensajes de registro (logs) generados por el sistema operativo.
o /mail: Esta carpeta guarda los archivos de correo de cada usuario.
o /run: Contiene información sobre el sistema desde que se inició. Generalmente los archivos de este directorio se borran al comenzar el proceso de arranque.
o /spool: Contiene datos que esperan ser procesados.
o /tmp: Almacena algunos datos temporales
o /opt: Contiene datos usados por archivos ubicados en la carpeta /opt.

  • /opt: Aquí se instalan archivos que son complementos de las diversas aplicaciones instaladas en el sistema.
  • /media: Es aquí donde se montan las unidades extraíbles como CD-ROM, DVD y pendrives.
  • /lost+found: cuando ocurre una falla en el sistema y este se cierra inesperadamente, los datos  que no pudieron guardarse correctamente son ubicados en esta carpeta para su posterior recuperación.
En esta imagen podemos ver lo dicho anteriormente.


¿Que tal? ¿Se entendió? Espero que si y sino pues haganlo saber con un comentario. En las siguientes publicaciones seguiré hablando de este sistema operativo.

viernes, 17 de febrero de 2017

Linux o mejor dicho GNU/Linux. Hablemos de él

A través de publicaciones anteriores pudimos conocer que es un sistema operativo. Esta vez voy a hablar de uno en particular que seguramente es conocido por ustedes: Linux, o mejor dicho GNU/Linux, el cual es su verdadero nombre, lo cual explicaré en las siguientes lineas. Comencemos pues.

Es un sistema operativo similar al sistema Unix, con la diferencia que este es libre, refiriéndose esto a aquel sistema operativo, programa o aplicación que los usuarios puedan además de ejecutarlo, copiarlo, distribuirlo, estudiarlo, cambiarlo y mejorarlo sin inconvenientes. De modo más preciso, se refiere a aquel que tenga las libertades del software libre:
  • La libertad de usar el programa, con cualquier propósito (libertad 0).
  • La libertad de estudiar cómo funciona el programa, y adaptarlo a las necesidades particulares (libertad1). El acceso al código fuente es una condición para esto.
  • La libertad de distribuir copias, con lo que puedes ayudar a los demás (libertad 2).
  • La libertad de mejorar el programa y hacer públicas las mejoras, de modo que otros se beneficien (libertad 3). El acceso al código fuente es un requisito para esto.

En realidad Linux es el nombre del núcleo del sistema operativo, pero es este nombre por el que se ha dado a conocer y se ha popularizado. Sin embargo algunos prefieren llamarlo GNU/Linux debido el sistema operativo es la unión del núcleo Linux con el sistema GNU como se explicara mas adelante cuando cuente su historia.

Los inicios de este sistema operativo se remontan a la creación del proyecto GNU en el año 1984. Este proyecto fue una iniciativa de Richard Stallman, físico de profesión y programador, nacido en los Estados Unidos, y el cual tiene como fin la creación de un sistema operativo compatible con el sistema Unix, pero que fuera libre, es decir que cumpliera con las libertades del software libre enumeradas anteriormente, ya que a medida que paso el tiempo los desarrolladores de sistemas impusieron licencias a sus creaciones, restringiendo su uso y distribución, por lo que surgió la interrogante de saber si existía un sistema más flexible en cuanto a su uso y distribución. Este sistema seria llamado GNU (se pronuncia ñu) que significa GNU no es Unix. Esto es importante recalcarlo, ya que si bien este sistema tiene similitud con Unix, no tiene nada que ver con este, es decir, son sistemas completamente distintos, al contrario de otros como Solaris y BSD que son sistemas basados en Unix, es decir, se crearon tomando como base a Unix (suena interesante, como para hacer una publicación de este tema, bueno en un futuro tal vez lo haga).

Pronto muchos colaboradores se sumaron a la idea y ellos junto al señor Stallman lograron crear todas las piezas de un sistema operativo UNIX pero sin las restricciones como un compilador para lenguaje C al que llamaron gcc, un editor de texto bautizado como EMACS y todas las pequeñas herramientas necesarias para arrancar un sistema operativo y las cuales eran libres, es decir no tenían las restricciones de licencia de Unix. Para 1990 lo tenían casi todo listo pero les faltaba la pieza más importante para hacer funcionar un sistema operativo: el kernel o núcleo. 

En el año 1991 Linus Torvalds, un estudiante finlandés crea como proyecto de final de carrera un núcleo para un sistema operativo compatible con Unix, al que llamo Linux y cuyo código fuente es libre, es decir a la disposición de quien quiera estudiarlo y modificarlo, tal como establecen las libertades del software libre, por lo que se considera el kernel Linux como software libre y quien Linus Torvalds hace pública su creación, distribuyéndola de forma gratuita junto con su código fuente y pronto se le sumaron gran cantidad de colaboradores. En 1992 publica la versión 0.0.2 del núcleo y para marzo de 1994 se publica la versión 1.0.0 (la versión actual es la 3.3.6). Es partir de esta versión que el núcleo Linux se empieza a combinar con el sistema GNU, surgiendo el sistema operativo GNU/Linux, pero que sin embargo es más conocido por el nombre del núcleo, es decir, en vez de ser llamado sistema GNU/Linux, más bien es denominado por muchos como sistema Linux, pero lo correcto seria llamarlo como debe ser o sea GNU/Linux.

En las siguientes publicaciones seguiré hablando de este sistema que está presente mas de lo que podría pensarse. Bueno, por ahora voy a dejarlo aqui, y cualquier cosa comneten.