Fundamentos de Sistemas Operativos: Evolución, Linux y Modelos de Licenciamiento
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,67 KB
¿Qué es un Sistema Operativo (SO)?
Un Sistema Operativo (SO) es un programa o conjunto de programas que facilita el uso del computador y consigue que se utilice eficazmente.
Programa de Control
Un programa de control gestiona y asigna recursos hardware, controla los programas y los dispositivos de Entrada/Salida (E/S).
Evolución de los Sistemas Operativos
- 1943-1955: En esta etapa, no existía un Sistema Operativo como tal. El programador realizaba las funciones del usuario, y el programa se introducía a través de tarjetas perforadas.
- 1956-1963: Aparecen los soportes de información intermediarios, como las cintas magnéticas. Surge el concepto de cola de trabajo, permitiendo el procesamiento de trabajos en serie o por lotes.
- 1963-1979: Se perfecciona el trabajo por lotes y se inicia el desarrollo de sistemas operativos con multiprogramación.
- 1980 en adelante: Se produce el desarrollo de los sistemas operativos para PC y estaciones de trabajo.
Tipos de Desarrollo de Sistemas Operativos
Sistemas Operativos de Red
Son una ampliación de los SO convencionales, a los que se les añaden programas de control de la interfaz de red.
Sistemas Operativos Distribuidos
Son más complejos y permiten que un usuario ejecute uno o varios programas en varios procesadores simultáneamente, con datos distribuidos en diferentes servidores de archivo.
Linux: Un Vistazo Detallado
Linux es un Sistema Operativo compatible con UNIX, de naturaleza libre y con código fuente disponible.
El Kernel: Corazón del Sistema
El kernel es el corazón del Sistema Operativo y es el encargado del funcionamiento del hardware y el software.
Funciones Principales del Kernel:
- Administración del tiempo de procesador que utilizan los programas.
- Administración de la memoria.
- Encargado del acceso a periféricos de manera cómoda.
Versionado del Kernel:
Existen principalmente dos tipos de versiones:
- Desarrollo (Experimental): Utilizada para programar, comprobar y verificar nuevas características.
- Producción (Estable): Es la versión estable hasta el momento, resultado final del desarrollo. Cuando se decide que un kernel es estable y con calidad, se lanza una nueva versión de producción.
La numeración de las versiones del kernel se compone generalmente de:
- XX: Serie principal del kernel. Cambia cuando ha sufrido un cambio importante.
- YY: Indica si es de desarrollo (número impar) o de producción (número par).
- ZZ: Nuevas versiones dentro de otra, corrigiendo errores.
Características Destacadas de Linux
- Multitarea: Capacidad de ejecutar varios procesos simultáneamente.
- Multiusuario: Permite que múltiples usuarios accedan al sistema al mismo tiempo.
- Multiplataforma: Funciona en diversas arquitecturas de hardware.
- Multiprocesador: Soporte para sistemas con múltiples CPUs.
- Protección de la memoria entre procesos: Asegura que un proceso no interfiera con la memoria de otro.
Distribuciones de Linux
Una distribución de Linux es un agrupamiento del kernel de Linux y otras aplicaciones de uso general o específico. Aunque el kernel es esencial, se necesitan más componentes para un entorno operativo completo:
Componentes Comunes de una Distribución:
- Gestor de Arranque (Boot Manager): Utilidad que reside en el Master Boot Record (MBR) y presenta las opciones de arranque al inicio del sistema. Linux incluye administradores de inicio como LILO (Linux Loader) o GRUB.
- Interfaz de Usuario: La interfaz por defecto de Linux es la línea de comandos (CLI).
- Sistema X-Window (X11): Al igual que GDI en Windows, es el subsistema gráfico que soporta una interfaz de usuario gráfica (GUI) en Linux.
- Servicios de Impresión y Archivos: Permiten acceder a los recursos de red y compartir archivos e impresoras con otros usuarios.
- Aplicaciones y Herramientas:
- Administrador de Paquetes: Herramientas diseñadas para instalar, desinstalar y actualizar software fácilmente.
- Herramientas de Programador: Utilidades para administrar y crear programas a partir del código fuente.
- Bibliotecas (Libraries): Conjunto central de rutinas de bibliotecas de vínculo dinámico (DLLs en Windows, .so en Linux). Estas son módulos ejecutables que realizan funciones específicas y soportan a otras aplicaciones.
Tipos de Licencias de Software
Software Comercial
Desarrollado con la intención de venderlo y obtener un beneficio económico.
Software Libre
Puede ser distribuido, modificado, copiado y usado libremente, y generalmente incluye el acceso al código fuente.
Software Semilibre
Similar al software libre, pero con restricciones, por ejemplo, para usuarios individuales, entidades educativas y organizaciones sin ánimo de lucro. No permite uso comercial lucrativo.
Software Propietario
No es libre ni semilibre. Su distribución y modificación están prohibidas o restringidas por el propietario de los derechos de autor.
Otras Clasificaciones de Licencias:
- Freeware: Software que se puede redistribuir gratuitamente. Generalmente, no se puede modificar y no se proporciona el código fuente. No es necesariamente software libre.
- Shareware: Permite su redistribución, pero usualmente con limitaciones (tiempo de uso, funcionalidades). A menudo, requiere una licencia de pago para su uso completo o continuado. No se proporciona el código fuente y no se puede modificar.
Las Cuatro Libertades Esenciales del Software Libre:
Según la Free Software Foundation, el software libre se define por las siguientes libertades para los usuarios:
- La libertad de ejecutar el programa como se desee, con cualquier propósito (libertad 0).
- La libertad de estudiar cómo funciona el programa y adaptarlo a las propias necesidades (libertad 1). El acceso al código fuente es una condición necesaria para ello.
- La libertad de redistribuir copias para ayudar a otros (libertad 2).
- La libertad de mejorar el programa y publicar sus mejoras (y versiones modificadas en general) a los demás, para que toda la comunidad se beneficie (libertad 3). El acceso al código fuente es una condición necesaria para ello.