Que son Unix y Linux

Estructura del sistema Linux

¿Que es UNIX?

En TI, nos encontramos con Unix como un sistema operativo, que fue creado por AT & T en 1969 en Nueva Jersey, EE. UU. La mayoría de los sistemas operativos están inspirados en Unix, pero Unix también se ha inspirado en el sistema Multics, que no se ha completado. Otra versión de Unix fue Plan 9 de Bell Labs.

¿Dónde se usa Unix?

Como sistema operativo, Unix se utiliza en particular para servidores, estaciones de trabajo y, actualmente, también para computadoras personales. Jugó un papel muy importante en la creación de Internet, la creación de redes informáticas o también el modelo cliente-servidor.

Características del sistema Unix:

-Admite multitareas (multitarea)
-Simplicidad de control en comparación con Multics
-Todos los datos se almacenan como texto sin formato
-Acceso a múltiples cuentas de usuario

Composición del sistema operativo Unix:


A) Un kernel de sistema operativo monolítico que se ocupa de operaciones de bajo nivel y iniciadas por el usuario, la comunicación total se realiza a través de una llamada al sistema.
B) Utilidades del sistema (o las llamadas utilidades)
C) Muchas otras aplicaciones

¿Que es GNU/Linux?

Es un sistema operativo de código abierto basado en el principio de un sistema Unix. Como sugiere el nombre de la descripción de fuente abierta, se trata de un sistema descargable libremente, pero también es posible interferir con la edición del sistema, agregar y luego extender el código fuente. Es uno de los mayores beneficios, a diferencia de los sistemas operativos actuales de pago (Windows, Mac OS X, ...). No solo fue Unix un modelo para crear un nuevo sistema operativo, otro factor importante fue el sistema MINIX. A diferencia de Linus, esta versión fue utilizada por su creador (Andrew Tanenbaum) como un sistema comercial.Linux comenzó a ser desarrollado por Linus Torvalds en 1991, que era un sistema que se manejaba como un hobby. Una de las principales razones por las que Linux comenzó a tratar con Unix fue la simplicidad del sistema. El primer lanzamiento oficial de la versión provisoria de Linux (0.01) ocurrió el 17 de septiembre de 1991. Aunque el sistema era completamente imperfecto y completo, fue de gran interés para él, y en pocos días, Linus comenzó a escribir correos electrónicos con otras ideas sobre expansión o códigos fuente.

Las diferentes distribuciones de Linux existentes no son solo el kernel de Linux, propiamente dicho. Todas ellas están constituidas por elementos que forman la estructura de los sistemas Linux.

Son elementos fundamentales para el funcionamiento del sistema operativo, entre ellos: el shell, el bootloader, el software GNU, el servidor gráfico, el entorno de escritorio y mucho más. Por lo tanto, veremos todos los elementos que componen la estructura de los sistemas Linux.

Características de GNU/Linux


La piedra angular de Linux es el kernel de Unix, que se basa en las características básicas de Unix y los estándares que son POSIX y Single UNIX Specification. Como puede parecer, el nombre oficial del sistema operativo está tomado del creador de Linus, donde el final del nombre del sistema operativo "X" es solo un enlace al sistema Unix.

Principales características:

-Ejecutar varias tareas a la vez (multitarea)
-Los programas pueden consistir en uno o más procesos (sistema multipropósito), y cada proceso puede tener uno o más hilos
multiusuario, por lo que puede ejecutar múltiples programas de usuario
-Las cuentas individuales están protegidas por la autorización correspondiente por lo que las cuentas tienen derechos de control del sistema definidos con precisión.

El autor del logotipo de Tuxe Penguin es Larry Ewing de 1996, quien lo aceptó como mascota por su sistema operativo Linux de código abierto. Linus Torvalds propuso el nombre inicial del nuevo sistema operativo como "Freax" como free + freak + x (sistema Unix), pero no le gustó el servidor FTP donde se ejecutaba la versión provisoria de Linux.

El kernel y otros elementos de Linux

Mucho se habla del "sistema Linux". Sin embargo, Linux no es todo lo que compone el sistema operativo. Para muchos, Linux, por sí mismo, es capaz de ofrecer recursos y funciones completas para el equipo.

Sin embargo, Linux representa solamente el kernel (núcleo) del sistema operativo. Todo sistema operativo (como Linux, Windows y Mac, por ejemplo) tienen un núcleo. En el caso de las distribuciones de Linux, el kernel es Linux, libre y siendo desarrollado por colaboradores de todo el mundo.

El kernel de un sistema es el componente central que sirve para dar vida al hardware. Es la capa responsable de asegurar que todos los programas y procesos tengan acceso a los recursos que necesitan de la máquina (memoria RAM, acceso a disco y el control de la CPU, por ejemplo) al mismo tiempo, de modo que haya un recurso compartido de estos. En otras palabras, es el cerebro del sistema operativo; el responsable de coordinar el acceso al hardware y los datos entre los diferentes componentes del sistema.

La otra capa de un sistema operativo está constituida por elementos que ofrecen recursos capaces de garantizar la interacción con el usuario y popularmente conocida como la capa de software. Esta capa permite que las aplicaciones de usuario se ejecuten.

En otras palabras, al núcleo del sistema no se puede acceder directamente por el usuario o administrador del sistema; esto solo puede ser posible a través de programas de utilidad del sistema, así como la terminal de línea de comandos (CLI), software para la recopilación, software de gestión de disco/memoria o el control de los procesos del sistema.

Así, debe quedar claro por qué de Linux se popularizara tanto el aspecto técnico. Entre otros aspectos, a través de estas aplicaciones, Linux puede ser fácilmente accedido y controlado por el usuario, que tiene dominio y condiciones para ello. Además, puede ser estudiado y distribuido libremente.

Por último, hecha la analogía de que el kernel es el cerebro del sistema, hay que dejar en claro que el kernel por sí solo, así como el cerebro humano, no puede realizar todas las tareas llevadas a cabo por el sistema operativo solo. La unión de estos otros elementos con el kernel forman la estructura del sistema Linux.

Estructura del sistema operativo Linux

Sabiendo ya que Linux es solo el núcleo del sistema, te puedes estar preguntando entonces qué hace funcionar completamente al sistema Linux desde el inicio de la carga del entorno gráfico disponible para el usuario.

Incluso con todos los subsistemas del kernel (Gestión de Procesos, Gestión de Memoria, Gestión de Redes, Sistema de Archivos y otros), existen elementos que deben componer esta estructura mantenida en el núcleo del sistema operativo para que funcione completamente. Entre ellos se destacan el bootloader, el shell, el software GNU, el servidor gráfico, el entorno de escritorio y mucho más.

Todos estos elementos son desarrollados y mantenidos por diferentes grupos de desarrolladores. Todos independientes del desarrollo del kernel de Linux, que es coordinado por Linus Torvalds (creador) y mantenido por la comunidad mundial. Así, "uniendo" todos estos elementos con el kernel de Linux, un sistema operativo completo es creado y así surgen las distribuciones de Linux.

Distribuciones Linux

La expresión "distribución Linux" significa que los distintos sistemas se crean a partir del núcleo de Linux. O sea, quien usa Ubuntu está usando Linux; sin embargo, el kernel es de Linux y los elementos son creados por la comunidad de Ubuntu. De ahí también surge la expresión "basado en". La distribución Debian es "madre" de muchas otras porque dio "base" a otras distribuciones de Linux, como Ubuntu, por ejemplo.

Bootloader

Un bootloader (cargador de arranque), también llamado gestor de arranque (boot), es un sutil software cuya tarea es cargar el sistema operativo de un ordenador en la memoria.

Cuando un equipo se conecta, la BIOS o UEFI realiza algunas pruebas iniciales de las actividades básicas para el correcto funcionamiento de todos los recursos de la máquina; y entonces transfiere el control al Registro de Arranque Maestro (MBR - Master Boot Record), donde el bootloader se encuentra.

En sistemas Linux, por lo general, el gestor de arranque que se utiliza es Grub. Con este instalado, además de gestionar el proceso de arranque del sistema, es posible tener varios sistemas operativos instalados y elegir cuál debe ser iniciado. Grub proporciona un menú que te permite elegir entre las opciones de los sistemas disponibles. Este recurso es comúnmente llamado "dual-boot".

Si no dispones de diversos sistemas instalados en el equipo (solo una distribución de Linux), Grub puede arrancar el sistema Linux casi al instante. Aunque no lo veas, todavía está allí.

En resumen, Grub, por el hecho de ser un gestor de arranque, es el responsable del proceso de arranque de Linux. Sin Grub, una distribución de Linux no se inicializaría.

Shell

Primero, el shell (o intérprete de línea de comandos) es un módulo que actúa como capa externa entre el usuario y el sistema operativo. Existen varios tipos de shell. El primero de ellos fue Bourne Shell (sh) que ofrecía diversos comandos internos que permitían al usuario solicitar llamadas al sistema operativo. A partir de ahí han habido avances notables del shell.

Actualmente, la mayoría de los sistemas Linux usan, por defecto, una evolución de Bourne Shell llamado Bash (Bourne Again Shell). Bash, además de las funcionalidades de las versiones anteriores, también implementa un lenguaje simple de programación que permite el desarrollo de pequeños programas (los famosos shell scripts).

En resumen, el shell es un programa independiente del usuario, ejecutado fuera del kernel, que proporciona una interfaz para la interpretación de comandos. Permite la interacción con el sistema mediante la ejecución de comandos en una interfaz de texto (CLI).

Incluso si estás usando solo el entorno gráfico, y nunca has precisado utilizar o ejecutar ningún comando de Linux, el shell está en constante ejecución. Cuando abras la terminal de línea de comandos, verás el shell en pleno funcionamiento.

Software GNU

El shell proporciona algunos de los comandos básicos integrados, pero la mayoría de los comandos que se pueden ejecutar en el shell de Linux no son ofrecidos por este. Por ejemplo, el comando cp (para copiar un archivo), el comando ls (para listar los archivos de un directorio) y rm (para borrar archivos) son parte del paquete de utilidades básicas de GNU ("coreutils"). No todas las utilidades y programas de línea de comandos son desarrollados por el proyecto GNU. Algunos comandos y programas de terminales tienen su propio proyecto independiente.


Se puede ver que los comandos enumerados son fundamentales para el funcionamiento del sistema Linux. Además de ellos, hay software de utilidades esenciales para el funcionamiento del sistema, como las herramientas de compilación y el gestor de arranque Grub; también desarrollado y mantenido por el proyecto GNU. Así, los sistemas Linux no van a funcionar sin estas utilidades tan importantes. Tan importantes, que, en realidad, el shell Bash, propiamente dicho, forma parte del proyecto GNU.

Servidor gráfico

El modo gráfico en Linux es generado por el servidor gráfico X (X Window System), que no es parte del núcleo de Linux. Entre otras funciones, es responsable de la activación de la tarjeta de vídeo, ratón y teclado, lo que permite al usuario el uso de interfaces gráficas que son llamadas de Gestores de Ventanas y Entornos de Escritorio. Los Entornos de Escritorio disponen de interfaz completa para el usuario (GUI), así como: barra de herramientas, botones, iconos, wallpapers y bibliotecas gráficas. Los Administradores de Ventanas dan base para los Entornos de Escritorio.

Existen varios Entornos de Escritorio diferentes. Y esa es una de las características más fascinantes del mundo Linux. La posibilidad de poder personalizar el sistema. Por ejemplo, si no te gusta un Entorno de Escritorio, puedes fácilmente cambiarlo por otro que se adapte a tus necesidades.

Actualmente, el servidor gráfico más popular es X.org. Sin embargo, ya hay en marcha otros servidores gráficos destacados, que en este caso son Wayland y Mir (desarrollado por Canonical - Ubuntu). Ambos con el propósito de ser sustitutos de X Window System.

En resumen, el servidor gráfico interactúa con tu tarjeta de vídeo, monitor, ratón y otros dispositivos que preparan el entorno para los Gestores de Ventanas y Entornos Gráficos. Un servidor gráfico no proporciona un Entorno de Escritorio completo, solo un sistema gráfico para que los Entornos de Escritorio y herramientas puedan trabajar sobre este.

Entornos de escritorio

Si estás utilizando una distribución de Linux ahora, lo que realmente estás viendo y con lo que interactúas es un Entorno de Escritorio para Linux. Por ejemplo, Ubuntu ofrece el Entorno de Escritorio Unity, Fedora ofrece GNOME y Linux Mint, por lo general, incluye Cinnamon o MATE. Estos Entornos de Escritorio proporcionan el fondo de la pantalla, los paneles, las barras de título de las ventanas y mucho más.

Además de diversas características, los Entornos de Escritorio incluyen sus propias utilidades. Por ejemplo, GNOME y Unity incluyen el administrador de archivos llamado Nautilus, desarrollado como parte de GNOME. KDE incluye el administrador de archivos llamado Dolphin, desarrollado como parte del proyecto KDE.

En resumen, todos estos Entornos de Escritorio citados se desarrollan independientemente del desarrollo del kernel de Linux.

Así, diversos proyectos acaban surgiendo para aumentar el abanico de opciones disponibles para que el usuario elegir cuál usar. Y es en estos Entornos de Escritorio donde la mayoría de los usuarios resuelven cambiar el tema, el color de los iconos y otros cambios en la apariencia.