Fundamentos del Sistema Operativo y Características Esenciales de Linux

Fundamentos de los Sistemas Operativos

Introducción y Concepto

Un Sistema Operativo (SO) es un programa (o conjunto de programas) de control que tiene por objeto facilitar el uso del computador y conseguir que este se utilice eficientemente. Es un programa de control ya que se encarga de gestionar y asignar los recursos del sistema.

Evolución Histórica de los Sistemas Operativos

  1. Primera etapa (1943-1955): Ausencia de SO. El programador realiza también las funciones del operador, introduce el programa y espera a que los resultados se escriban en la impresora. Más tarde aparecieron los ensambladores.
  2. Segunda etapa (1956-1963): Procesamiento por Lotes. Uso de soportes de información intermedios (cintas magnéticas). Se introduce el procesamiento de trabajos en serie o por lotes-serie.
  3. Tercera etapa (1963-1979): Multiprogramación e Interactividad. Perfeccionamiento del trabajo por lotes. Aparece el desarrollo de sistemas operativos en multiprogramación, lo que permite a los usuarios trabajar de forma interactiva/conversacional.
  4. Cuarta etapa (1980-Actualidad): Sistemas Personales y Redes. Desarrollo de sistemas operativos para computadores personales.

Tipos de Sistemas Operativos Modernos

  • Los sistemas operativos de red pueden considerarse como una ampliación de los sistemas operativos convencionales, a los que se añaden programas de control de interfaz de red. Permiten realizar una sesión de trabajo con un computador remoto y copiar archivos de un computador a otro.
  • Los sistemas operativos distribuidos son mucho más complejos. Permiten que un usuario ejecute, de forma transparente, uno o varios programas en varios procesadores trabajando simultáneamente y, posiblemente, con datos distribuidos en diferentes servidores de archivos. Esto requiere que el sistema operativo disponga de sofisticados algoritmos de planificación que paralelicen adecuadamente el trabajo a realizar.

Profundizando en Linux

¿Qué es Linux? Definición y Características Distintivas

Linux es un sistema operativo compatible con Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado:

  1. Es libre: Esto significa que no es necesario pagar ningún tipo de licencia a ninguna casa desarrolladora de software por su uso.
  2. Código Fuente Abierto: El sistema viene acompañado del código fuente.

El Kernel de Linux: Corazón del Sistema

El kernel o núcleo de Linux se define como el corazón del sistema. Es el encargado de que el software y el hardware funcionen de forma adecuada en el computador en el que se encuentra. Además, es el responsable de que podamos acceder a los periféricos y elementos de nuestro ordenador de una manera cómoda.

Funciones Esenciales del Kernel

  • Administración de la memoria para todos los programas en ejecución.
  • Administración del tiempo de procesador que utilizan los programas en ejecución.

Versiones del Kernel (Producción vs. Desarrollo)

Podemos diferenciar dos versiones del kernel de Linux:

  • Versión de Producción: Es la versión estable hasta el momento. Esta versión es el resultado final de las versiones de desarrollo experimentales.
  • Versión de Desarrollo: Esta versión es experimental y es la que utilizan los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos suelen ser inestables y no se deberían usar, a no ser que sepa lo que hace.

Nomenclatura de Versiones del Kernel (XX.YY.ZZ)

Las versiones del kernel se numeran con tres números, de la siguiente forma: XX.YY.ZZ

  • XX: Indica la serie principal del kernel. Este número cambia cuando la manera de funcionamiento del kernel ha sufrido un cambio muy importante.
  • YY: Indica si la versión es de desarrollo o de producción. Un número impar significa que es de desarrollo; uno par, que es de producción.
  • ZZ: Indica nuevas versiones dentro de una versión, en las que lo único que se ha modificado son fallos de programación (bugs).

Características Principales de Linux

Capacidades Fundamentales

  • Multitarea: Describe la habilidad de ejecutar varios programas al mismo tiempo. Linux utiliza la llamada multitarea preventiva.
  • Multiusuario: Permite que muchos usuarios utilicen la misma máquina al mismo tiempo.
  • Multiplataforma.
  • Multiprocesador: Soporte disponible para sistemas con más de un procesador.

Gestión de Memoria y Procesos

  • Funciona en modo protegido 386.
  • Protección de la memoria entre procesos.
  • Carga de ejecutables por demanda: Linux solo lee del disco aquellas partes de un programa que están siendo usadas actualmente.
  • Política de copia en escritura (Copy-on-Write) para la compartición de páginas entre ejecutables: Esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse.
  • Memoria virtual usando paginación.
  • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco.
  • Librerías compartidas de carga dinámica (DLL’s) y librerías estáticas.
  • Se realizan volcados de estado.
  • Control de tareas POSIX.
  • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática.

Compatibilidad y Sistemas de Archivos

  • Compatible con POSIX, System V y BSD a nivel fuente.
  • Emulación de iBCS2.
  • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers.
  • Pseudo-terminales (pty’s).
  • Soporte para muchos teclados nacionales.
  • Consolas virtuales múltiples.
  • Soporte para varios sistemas de archivo comunes.
  • Acceso transparente a particiones MS-DOS.
  • Un sistema de archivos especial llamado UMSDOS.
  • Soporte en solo lectura de HPFS-2 del OS/2 2.1.
  • Sistema de archivos de CD.

Conectividad y Redes

  • TCP/IP, incluyendo FTP, Telnet, NFS, etc.
  • Appletalk.
  • Software cliente y servidor Netware.
  • Lan Manager / Windows Native (SMB), software cliente y servidor.
  • Diversos protocolos de red incluidos en el kernel.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.