LINUX

CONCEPTOS BÁSICOS DE LINUX

Los conceptos fundamentales que se utilizan en el sistema operativo LINUX son los siguientes:

PROCESO

Es un algoritmo interpretado o compilado que está ejecutándose en un sistema y se encuentra residente en la memoria RAM. También es la representación de cualquier programa en ejecución el cual puede ser auditado, analizado, terminado, etc.

SERVICIO

Es un tipo de proceso que está a la escucha, es decir, no está haciendo nada a no ser que sea requerido, en cuyo caso atiende convenientemente la petición. Un servicio suele cargarse de forma permanente en memoria hasta que sea terminado o el Sistema Operativo lo cierre.

DEMONIO

Es un tipo especial de servicio que escucha a otros servicios o procesos. El demonio es un “programa que escucha a otro programa”. Un ejemplo claro de esto sería XINETD (extended Internet daemon) en sistemas Unix, que se encarga de escuchar a los procesos o servicios que soliciten conexión de red, y atiende esas peticiones.

SHELL O INTERFAZ DE USUARIO

Es un programa encargado de comunicar el entorno de aplicaciones con el kernel o núcleo del sistema. Un shell puede ser tanto una interfaz gráfica como intérprete de comandos.

Un shell interpreta y ejecuta instrucciones que le hemos proporcionado por medio de una línea de comandos (prompt). Es decir, el intérprete de comandos recibe lo que se escribe en la terminal (sinónimo de shell o interfaz) y lo convierte en instrucciones para el sistema operativo.

El prompt es una indicación que muestra el intérprete para anunciar que espera una orden del usuario. Cuando el usuario escribe una orden, el intérprete la ejecuta. En dicha orden, puede haber programas internos o externos: Los programas internos son aquellos que vienen incorporados en el propio intérprete, mientras que los externos son programas separados.

INODO

Se puede definir como un descriptor de una entrada de un sistema de archivos o archivos. Todo archivo tiene asociado un único inodo. Un inodo también puede ser definido como una clave numérica para el acceso al sistema plano de archivos, donde cada punto es capaz de recibir o entregar información.

FILESYSTEM (SISTEMA DE ARCHIVOS)

Una colección de todos los archivos y directorios de un sistema organizados en una jerarquía en forma de árbol.

SISTEMA DE DIRECTORIOS

Los sistemas de archivos UNIX se caracterizan generalmente por tener una estructura jerárquica, dar tratamiento consistente a la información de los archivos y a la protección de ellos.

El sistema de LINUX sigue básicamente el mismo de UNIX. Pero se puede encontrar una nueva división del sistema de directorios respecto de los archivos que lo componen como es: Compartible y No Compartible dependiendo si a la información de un host local pueden o no acceder otros hosts, además Estática y No Estática cuando la información puede ser o no alterada por el usuario.

El primer sistema de directorios que se aplicó a LINUX en su momento cumplió con las necesidades básicas, pero se volvió restrictivo, ya que, en los archivos, el nombre no podía superar los 14 caracteres y los 64 MB de espacio. Para resolver este problema surgió el primer sistema de archivos especialmente diseñado para LINUX, el ext2 (extended filesystem). En el desarrollo del sistema extendido (ext2) surgió un importante cambio en lo que respecta a sistemas de archivos, el sistema virtual de archivos (VFS, virtual filesystem) que existe entre el sistema real de archivos y el sistema operativo y sus servicios.

El logro del sistema virtual de archivos (VFS), es que a LINUX le permite montar una serie de sistemas de archivos diferentes y variados; es decir, todos los detalles de los sistemas de archivos son tratados por programas de modo que parezcan lo mismo tanto para el kernel como para las demás aplicaciones que se ejecutan en el sistema, en términos prácticos, es un modo de unificar los sistemas de archivos para poder ser manipulados por LINUX de un modo uniforme.

El sistema virtual de archivos ha sido implementado de tal forma que sea rápido y eficiente. Otra de sus funciones es analizar y verificar que la información sea almacenada adecuadamente. Una característica particular del sistema virtual de archivos es que guarda cierta información (caché) en la medida que monta y utiliza los sistemas de archivos, de tal forma de acelerar el procesamiento de la información.

El sistema de archivos real de LINUX, el ext2, funciona a través de bloques de información que va siendo almacenada en el disco duro, pero sin fragmentar la información. En muchos sentidos el sistema de almacenaje por bloques de información es, muchas veces, poco óptimo perdiéndose mucho espacio por la asignación de éstos, pero a pesar de todo esto, es el mejor método hasta el momento.

Cada archivo en el sistema ext2 posee un inodo único y cada inodo posee un único número identificador. Los directorios tan solo son archivos especiales que contienen punteros a los inodos de sus archivos miembros.

Anuncios
LINUX

CARACTERÍSTICAS DE LINUX

El sistema operativo LINUX fue desarrollado buscando la portabilidad de las fuentes: casi todo el software gratuito desarrollado para UNIX se compila en LINUX sin problemas. Y todo lo que se hace para LINUX (código del núcleo, controladores, librerías y programas de usuario) es de libre distribución.

En LINUX también se implementa el control de trabajos POSIX (que se usa en los shells csh y bash) y las pseudoterminales (dispositivos pty). Además, soporta consolas virtuales, lo que permite tener más de una sesión abierta en la consola de texto y conmutar entre ellas fácilmente.

LINUX soporta diversos sistemas de archivos para guardar los datos. Algunos de ellos, como el ext2fs, han sido desarrollados específicamente para LINUX.

LINUX implementa todo lo necesario para trabajar en red con TCP/IP. Desde controladores para las tarjetas de red más populares hasta SLIP/PPP, que permiten acceder a una red TCP/IP por puerto serial. También se implementan PLIP (para comunicarse por el puerto de la impresora) y NFS (para acceso remoto a archivos). Y también soporta los clientes de TCP/IP, como FTP, Telnet, y SMTP.

Con el fin de incrementar la memoria RAM disponible, LINUX implementa la paginación con el disco duro, es decir, puede tener varios megabytes de espacio de intercambio o “swap” con el disco duro. Cuando el sistema necesita más memoria, expulsará páginas inactivas al disco, permitiendo la ejecución de programas más grandes o aumentando el número de usuarios que puede atender a la vez. Sin embargo, el espacio de intercambio no puede suplir totalmente a la memoria RAM, ya que el primero es mucho más lento que ésta.

MULTITAREA

La palabra multitarea describe la capacidad de ejecutar muchos programas al mismo tiempo sin detener la ejecución de cada aplicación.

Se le denomina multitarea prioritaria o preventiva ya que posibilita la ejecución simultánea de varios programas, siempre que las características del host lo permitan, es decir, cada programa tiene garantizada la oportunidad de ejecutarse, y se ejecuta hasta que el sistema operativo da prioridad a otro programa para su ejecución. Así, los programas se ejecutan hasta que permiten voluntariamente que otros programas también lo hagan.

El microprocesador sólo es capaz de hacer una tarea a la vez, pero las realiza en tiempos tan cortos que se escapan a nuestra comprensión, es por eso que en los momentos que no este trabajando para determinada tarea, se dedica a ejecutar otras que se le hayan pedido.

Es fácil ver las ventajas de disponer de multitarea prioritaria. Además de reducir el tiempo muerto (tiempo en el que no puede seguir trabajando en una aplicación

porque un proceso aún no ha finalizado), da la flexibilidad de no tener que cerrar las ventanas de las aplicaciones antes de abrir y trabajar con otras.

LINUX y otros sistemas operativos multitarea prioritaria consiguen el proceso de prioridad supervisando los procesos que esperan para ejecutarse, así como los que se están ejecutando. El sistema programa cada proceso para que dispongan de las mismas oportunidades de acceso al microprocesador. El resultado es que las aplicaciones abiertas parecen estar ejecutándose al mismo tiempo, pero en realidad, hay una demora de billonésimas de segundo entre el momento en que el procesador ejecuta una serie de instrucciones de una aplicación y el momento programado por LINUX para volver a dedicar tiempo a dicho proceso.

MULTIUSUARIO

La idea de que varios usuarios pudieran acceder a las aplicaciones o la capacidad de proceso de un único host era una utopía hace relativamente pocos años.

La capacidad de LINUX para asignar el tiempo de microprocesador simultáneamente a varias aplicaciones ha derivado en la posibilidad de ofrecer servicio a diversos usuarios a la vez, ejecutando cada uno de ellos una o más aplicaciones. La característica que más resalta de LINUX es que un grupo de personas puede trabajar con la misma aplicación al mismo tiempo, desde el mismo terminal o desde terminales distintos.

MULTIPLATAFORMA

Las plataformas de hardware en las que en un principio se puede utilizar LINUX son 386-, 486, Pentium Pro, Pentium II/III/IV. También existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

CONVIVENCIA CON OTROS SISTEMAS OPERATIVOS

Pueden estar juntos pero no funcionar al mismo tiempo. Cada vez que arrancamos un host, podemos elegir cual de ellos se debe cargar, y a partir de este momento sólo podremos utilizar aplicaciones destinadas al Sistema Operativo que estamos ejecutando.

LINUX

KERNEL O NÚCLEO DE GNU/LINUX

El kernel del sistema GNU/LINUX (al que habitualmente se le denomina LINUX) es el corazón del sistema: se encarga de arrancar el sistema, para que sea utilizable por las aplicaciones y los usuarios. Gestiona los recursos del host para la gestión de la memoria, sistema de archivos, entrada/salida, procesos e intercomunicación de procesos.

El núcleo o kernel es la parte básica de cualquier sistema operativo, y en él descansa el código de los servicios fundamentales para controlar el sistema entero. Básicamente, su estructura se puede separar en:

  • Gestión de procesos: qué tareas se van a ejecutar y en qué orden y prioridad. Un aspecto importante es la planificación de CPU(Unidad Central de Procesamiento), cómo se optimiza el tiempo de la CPU para ejecutar las tareas con el mayor rendimiento o interactividad posible con los usuarios.
  • Intercomunicación de procesos y sincronización: cómo se comunican tareas entre sí, con qué diferentes mecanismos y cómo pueden sincronizarse grupos de tareas.
  • Gestión entrada/salida (E/S): control de periféricos y gestión de recursos asociados.
  • Gestión de memoria: optimización del uso de la memoria, sistema de paginación y memoria virtual.
  • Gestión de archivos: cómo el sistema controla y organiza los archivos presentes en el sistema y el acceso a los mismos.
LINUX

GNU/LINUX

GNU/LINUX se ha desarrollado según las normas POSIX (Portable Operating System Interface) y en base al sistema UNIX; es capaz de ejecutar aplicaciones en modo gráfico, aplicaciones TCP/IP, edición de texto, transferencia de archivos entre sistemas Unix, software de correo, etc.

Cabe mencionar que el sistema gráfico de GNU/LINUX no es tan potente como el de texto pero puede ofrecer un ambiente más simple y cómodo para el usuario.

GNU/LINUX es un sistema operativo compatible UNIX. Se caracteriza porque es libre lo que implica que no hay que pagar ningún tipo de licencia para su uso, y por ser un sistema abierto, lo que significa que su código es público. El sistema está conformado por el núcleo o kernel y una serie de programas y bibliotecas que hacen posible su utilización. GNU/LINUX y gran parte de sus aplicaciones, bibliotecas y programas son distribuidos bajo la licencia GPL(Licencia Pública GNU).