Lectura pública del tema
1. Conceptos y fundamentos de los sistemas operativos
1. Conceptos y fundamentos de los sistemas operativos
🎯 Idea clave
- Un sistema operativo es el software fundamental que gestiona los recursos hardware y software de un equipo informático.
- Actúa como intermediario entre el usuario y el hardware, facilitando la ejecución de aplicaciones y programas.
- Su núcleo, denominado kernel, es responsable de la gestión de procesos, memoria, dispositivos de entrada/salida y sistemas de archivos.
- Proporciona una interfaz de usuario que puede ser gráfica (GUI) o de línea de comandos (CLI).
- Garantiza la seguridad y el control de acceso a los recursos del sistema mediante mecanismos de autenticación y permisos.
- Permite la multitarea, posibilitando la ejecución simultánea de varios procesos en un mismo sistema.
📚 Desarrollo
Definición y función principal. Un sistema operativo es un conjunto de programas que actúa como interfaz entre el hardware de un equipo informático y las aplicaciones o usuarios. Su función principal es gestionar los recursos del sistema —como la CPU, la memoria, los dispositivos de almacenamiento y los periféricos— de manera eficiente y segura. Sin un sistema operativo, el hardware sería inutilizable para el usuario final, ya que no existiría un mecanismo para ejecutar programas o interactuar con los componentes físicos.
Kernel y gestión de recursos. El kernel es el núcleo del sistema operativo y se encarga de las tareas más críticas, como la gestión de procesos, la asignación de memoria, el control de dispositivos de entrada/salida y la administración del sistema de archivos. Su diseño determina la estabilidad, seguridad y rendimiento del sistema. Existen diferentes tipos de kernels, como los monolíticos, los microkernels y los híbridos, cada uno con sus propias ventajas y desventajas en términos de modularidad y eficiencia.
Interfaz de usuario. Los sistemas operativos proporcionan una interfaz que permite a los usuarios interactuar con el equipo. Esta interfaz puede ser gráfica (GUI, Graphical User Interface), como en Windows o macOS, o de línea de comandos (CLI, Command Line Interface), como en muchas distribuciones de Linux. La interfaz gráfica facilita la interacción mediante ventanas, iconos y menús, mientras que la línea de comandos ofrece un control más preciso y potente, especialmente útil para tareas administrativas y automatización.
Gestión de procesos. Un proceso es un programa en ejecución, y el sistema operativo se encarga de su creación, planificación, sincronización y finalización. Para ello, utiliza algoritmos de planificación que determinan qué proceso debe ejecutarse en cada momento, optimizando el uso de la CPU. Además, gestiona la comunicación y sincronización entre procesos mediante mecanismos como semáforos, colas de mensajes o memoria compartida, evitando conflictos y garantizando la coherencia de los datos.
Gestión de memoria. La memoria es un recurso limitado y crítico en cualquier sistema informático. El sistema operativo se encarga de asignar y liberar memoria para los procesos en ejecución, utilizando técnicas como la paginación o la segmentación para optimizar su uso. También implementa mecanismos de memoria virtual, que permiten a los procesos utilizar más memoria de la físicamente disponible, almacenando temporalmente datos en el disco duro cuando la memoria RAM está saturada.
Sistema de archivos. El sistema de archivos es la estructura que permite organizar y almacenar datos en dispositivos de almacenamiento, como discos duros o memorias USB. El sistema operativo proporciona las herramientas necesarias para crear, leer, modificar y eliminar archivos, así como para gestionar permisos de acceso y garantizar la integridad de los datos. Cada sistema operativo soporta uno o varios sistemas de archivos, como NTFS en Windows, ext4 en Linux o APFS en macOS.
Seguridad y control de acceso. La seguridad es un aspecto fundamental en los sistemas operativos, especialmente en entornos profesionales como la Administración General del Estado. El sistema operativo implementa mecanismos de autenticación, como contraseñas o certificados digitales, para verificar la identidad de los usuarios. Además, gestiona permisos de acceso a archivos, directorios y recursos del sistema, asegurando que cada usuario solo pueda realizar las acciones para las que está autorizado.
Multitarea y multiprocesamiento. La multitarea permite que un sistema operativo ejecute varios procesos de manera simultánea, mejorando la productividad y la eficiencia. En sistemas con múltiples núcleos de CPU, el multiprocesamiento distribuye los procesos entre los diferentes núcleos, aprovechando al máximo el hardware disponible. Estos mecanismos son esenciales en entornos donde se requiere ejecutar múltiples aplicaciones al mismo tiempo, como en servidores o estaciones de trabajo.
🧩 Elementos esenciales
- Sistema operativo: Software que gestiona los recursos hardware y software de un equipo, actuando como intermediario entre el usuario y el hardware.
- Kernel: Núcleo del sistema operativo responsable de la gestión de procesos, memoria, dispositivos de entrada/salida y sistemas de archivos.
- Interfaz de usuario (GUI/CLI): Mecanismo que permite al usuario interactuar con el sistema, ya sea mediante elementos gráficos o comandos de texto.
- Proceso: Programa en ejecución, gestionado por el sistema operativo mediante algoritmos de planificación y mecanismos de sincronización.
- Gestión de memoria: Asignación y liberación de memoria para los procesos, incluyendo técnicas como paginación, segmentación y memoria virtual.
- Sistema de archivos: Estructura que organiza y almacena datos en dispositivos de almacenamiento, con soporte para diferentes formatos como NTFS, ext4 o APFS.
- Seguridad: Mecanismos de autenticación y control de acceso que garantizan la protección de los recursos del sistema y la integridad de los datos.
- Multitarea: Capacidad del sistema operativo para ejecutar varios procesos de manera simultánea, optimizando el uso de la CPU.
- Multiprocesamiento: Distribución de procesos entre múltiples núcleos de CPU para mejorar el rendimiento en sistemas con hardware avanzado.
- Llamadas al sistema: Interfaz que permite a las aplicaciones solicitar servicios al sistema operativo, como acceso a archivos o gestión de procesos.
🧠 Recuerda
- El sistema operativo es el software fundamental que gestiona los recursos hardware y software de un equipo.
- El kernel es el núcleo del sistema operativo y se encarga de las tareas más críticas, como la gestión de procesos y memoria.
- La interfaz de usuario puede ser gráfica (GUI) o de línea de comandos (CLI), cada una con sus propias ventajas.
- La gestión de procesos incluye su creación, planificación, sincronización y finalización.
- La memoria virtual permite a los procesos utilizar más memoria de la físicamente disponible.
- El sistema de archivos organiza y almacena datos en dispositivos de almacenamiento.
- La seguridad en los sistemas operativos se basa en mecanismos de autenticación y control de acceso.
- La multitarea y el multiprocesamiento mejoran la eficiencia y el rendimiento del sistema.
- Las llamadas al sistema permiten a las aplicaciones interactuar con el sistema operativo.
- Cada sistema operativo soporta uno o varios sistemas de archivos, como NTFS, ext4 o APFS.
2. Características técnicas, funcionales y de administración: Windows, Linux, Unix y otros
2. Características técnicas, funcionales y de administración: Windows, Linux, Unix y otros
🎯 Idea clave
- Los sistemas operativos Windows, Linux y Unix presentan arquitecturas y modelos de licencia diferenciados que determinan su uso en la Administración General del Estado.
- Linux y Unix destacan por su estabilidad, seguridad y capacidad de personalización, siendo preferidos en entornos críticos y servidores.
- Windows ofrece una interfaz gráfica intuitiva y amplia compatibilidad con software comercial, facilitando su adopción en puestos de trabajo administrativos.
- La administración de estos sistemas requiere conocimientos específicos en gestión de usuarios, permisos, actualizaciones y monitorización de recursos.
- La elección del sistema operativo en la AGE depende de requisitos técnicos, normativos y de interoperabilidad con infraestructuras existentes.
- La coexistencia de estos sistemas exige protocolos de integración y estándares comunes para garantizar la operatividad de los servicios públicos.
📚 Desarrollo
Arquitectura y modelo de licencia. Los sistemas operativos analizados se basan en arquitecturas distintas que condicionan su funcionamiento. Unix, desarrollado inicialmente en los años 70, sigue un modelo modular y jerárquico, con un núcleo (kernel) que gestiona recursos y procesos de forma centralizada. Linux, derivado de Unix, hereda esta estructura pero se distribuye bajo licencia de código abierto (GPL), permitiendo su modificación y redistribución sin coste. Windows, por su parte, utiliza una arquitectura híbrida con componentes propietarios y una capa de abstracción hardware (HAL) que facilita su portabilidad entre diferentes plataformas.
Gestión de procesos y memoria. Unix y Linux destacan por su eficiencia en la gestión de procesos, utilizando mecanismos como fork y exec para la creación de tareas, y planificadores avanzados que optimizan el uso de la CPU. Ambos sistemas implementan memoria virtual mediante paginación y segmentación, con soporte para espacios de direcciones independientes por proceso. Windows emplea un modelo de procesos basado en hilos (threads) y un gestor de memoria que prioriza la compatibilidad con aplicaciones de usuario, aunque con un enfoque menos granular que el de sus contrapartes Unix.
Sistemas de archivos y permisos. La estructura de archivos en Unix y Linux sigue un modelo jerárquico único (/), con sistemas de archivos como ext4, XFS o Btrfs que ofrecen journaling, cuotas de disco y soporte para volúmenes lógicos. Los permisos se gestionan mediante un esquema de tres niveles (usuario, grupo, otros) con atributos como lectura, escritura y ejecución. Windows utiliza sistemas de archivos como NTFS, que incorpora características como cifrado (EFS), compresión y listas de control de acceso (ACL) para una gestión más detallada de permisos, aunque con una estructura de directorios menos estandarizada.
Interfaz de usuario y accesibilidad. Windows prioriza una interfaz gráfica de usuario (GUI) basada en el entorno de escritorio Windows Shell, con herramientas como el Explorador de Archivos y el Panel de Control integradas. Linux ofrece múltiples entornos de escritorio (GNOME, KDE, Xfce) que pueden personalizarse según las necesidades del usuario, mientras que Unix suele emplear interfaces más minimalistas, como terminales de línea de comandos. La accesibilidad en estos sistemas se garantiza mediante herramientas como lectores de pantalla, teclados virtuales y ajustes de contraste, aunque su implementación varía según la distribución o versión.
Administración y herramientas de gestión. La administración de sistemas Unix y Linux se realiza principalmente mediante comandos de terminal (bash, sh, zsh) y archivos de configuración en texto plano, lo que facilita la automatización mediante scripts. Windows proporciona herramientas gráficas como el Administrador de Tareas, el Visor de Eventos y el Editor de Directivas de Grupo, además de PowerShell para la gestión avanzada. En la AGE, la administración de estos sistemas debe alinearse con normativas como el Esquema Nacional de Seguridad (ENS), que exige controles específicos en la gestión de identidades, actualizaciones y monitorización.
Seguridad y actualizaciones. Unix y Linux son reconocidos por su robustez en seguridad, con modelos de permisos restrictivos, soporte para SELinux (Security-Enhanced Linux) y actualizaciones frecuentes que corrigen vulnerabilidades. Windows incorpora mecanismos como Windows Defender, BitLocker y Windows Update para proteger sistemas y datos, aunque su mayor cuota de mercado lo convierte en un objetivo más frecuente de ataques. La AGE debe garantizar que todos los sistemas operativos cumplan con los requisitos del ENS, incluyendo la aplicación de parches de seguridad en plazos establecidos y la segmentación de redes.
Interoperabilidad y estándares. La coexistencia de Windows, Linux y Unix en la AGE exige protocolos de interoperabilidad que permitan el intercambio de datos y la comunicación entre sistemas. Estándares como SMB (Server Message Block), NFS (Network File System) y SSH (Secure Shell) facilitan la integración, mientras que formatos como XML o JSON garantizan la compatibilidad en el intercambio de información. La adopción de soluciones híbridas, como contenedores Docker o máquinas virtuales, permite ejecutar aplicaciones en diferentes sistemas operativos sin comprometer la estabilidad de la infraestructura.
🧩 Elementos esenciales
- Licencia y modelo de desarrollo: Unix (propietario), Linux (código abierto bajo GPL), Windows (propietario con componentes cerrados).
- Arquitectura del kernel: Unix y Linux (monolítico con módulos), Windows (híbrido con capa de abstracción hardware).
- Gestión de procesos: Unix/Linux (fork/exec, planificadores avanzados), Windows (hilos y prioridades dinámicas).
- Sistemas de archivos: Unix/Linux (ext4, XFS, Btrfs), Windows (NTFS, FAT32), con diferencias en journaling y permisos.
- Permisos y seguridad: Unix/Linux (modelo UGO: usuario, grupo, otros), Windows (ACL y EFS para cifrado).
- Interfaz de usuario: Windows (GUI integrada), Linux (entornos personalizables como GNOME o KDE), Unix (línea de comandos predominante).
- Herramientas de administración: Unix/Linux (terminal y scripts), Windows (PowerShell, Directivas de Grupo, Panel de Control).
- Actualizaciones y parches: Linux (gestores de paquetes como apt o yum), Windows (Windows Update), Unix (depende de la distribución).
- Interoperabilidad: Protocolos como SMB, NFS y SSH para comunicación entre sistemas heterogéneos.
- Uso en la AGE: Linux/Unix (servidores y entornos críticos), Windows (puestos de trabajo administrativos), con requisitos de cumplimiento ENS.
- Virtualización y contenedores: Soluciones como Docker o máquinas virtuales para ejecutar aplicaciones en diferentes sistemas operativos.
- Monitorización y logs: Herramientas como syslog (Unix/Linux) o el Visor de Eventos (Windows) para auditoría y diagnóstico.
🧠 Recuerda
- Unix y Linux comparten raíces comunes pero difieren en licencias y modelos de desarrollo.
- Windows prioriza la usabilidad gráfica, mientras que Unix/Linux destacan por su flexibilidad en entornos de servidor.
- La gestión de permisos en Unix/Linux es más granular que en Windows, aunque este último ofrece ACL para mayor control.
- La administración en Unix/Linux se basa en comandos y scripts, mientras que Windows combina herramientas gráficas y PowerShell.
- La interoperabilidad entre sistemas es clave en la AGE para garantizar la continuidad de los servicios públicos.
- El Esquema Nacional de Seguridad (ENS) establece requisitos obligatorios para la configuración y mantenimiento de sistemas operativos.
- La elección del sistema operativo debe alinearse con los requisitos técnicos, normativos y de infraestructura de la AGE.
- La virtualización y los contenedores permiten superar limitaciones de compatibilidad entre sistemas.
- Las actualizaciones de seguridad deben aplicarse de forma sistemática para cumplir con el ENS.
- La monitorización y los logs son esenciales para detectar incidencias y garantizar la trazabilidad de las operaciones.
3. Sistemas operativos para dispositivos móviles
3. Sistemas operativos para dispositivos móviles
🎯 Idea clave
- Los sistemas operativos para dispositivos móviles están diseñados para gestionar recursos limitados como batería, memoria y conectividad.
- Priorizan la eficiencia energética y la optimización de interfaces táctiles frente a los sistemas tradicionales.
- Incluyen mecanismos de seguridad específicos para proteger datos sensibles en entornos de movilidad.
- Su arquitectura modular permite la integración de aplicaciones de terceros mediante tiendas oficiales.
- Están orientados a la conectividad permanente, soportando múltiples protocolos de comunicación inalámbrica.
- Su desarrollo sigue estándares abiertos o propietarios según el fabricante, con implicaciones en la interoperabilidad.
📚 Desarrollo
Diseño para movilidad. Los sistemas operativos móviles se desarrollan para operar en dispositivos con restricciones físicas, como pantallas reducidas y baterías de capacidad limitada. Esto exige optimizar el consumo de recursos, priorizando procesos críticos y suspendiendo aquellos no esenciales para prolongar la autonomía. La gestión de energía se convierte en un componente central, con algoritmos que ajustan dinámicamente el rendimiento según la demanda.
Interfaz táctil. A diferencia de los sistemas tradicionales, los móviles prescinden de periféricos como teclados o ratones, basando su interacción en gestos multitáctiles. Los sistemas operativos incorporan frameworks específicos para manejar eventos táctiles, como deslizamientos o pellizcos, y adaptar la visualización de contenidos a diferentes tamaños de pantalla. Esta capa de abstracción permite a las aplicaciones responder de manera uniforme a las acciones del usuario.
Seguridad integrada. La protección de datos en dispositivos móviles es crítica debido a su exposición a riesgos como robos o conexiones inseguras. Los sistemas operativos implementan sandboxing para aislar aplicaciones, cifrado de almacenamiento y autenticación biométrica. Además, controlan el acceso a recursos sensibles mediante permisos granulares, que el usuario debe conceder explícitamente durante la instalación o ejecución de las aplicaciones.
Tiendas de aplicaciones. La distribución de software en móviles se realiza principalmente a través de plataformas centralizadas, como Google Play o App Store. Estos repositorios verifican la autenticidad y seguridad de las aplicaciones antes de su publicación, reduciendo el riesgo de malware. Los sistemas operativos integran APIs para facilitar la descarga, actualización y gestión de aplicaciones, así como para monetizar contenidos mediante modelos de suscripción o compras integradas.
Conectividad avanzada. Los dispositivos móviles requieren soporte para múltiples tecnologías inalámbricas, como Wi-Fi, Bluetooth, NFC y redes celulares. Los sistemas operativos gestionan estas conexiones de manera transparente, priorizando la estabilidad y la eficiencia energética. También incluyen protocolos para sincronización de datos en la nube, permitiendo la continuidad de la experiencia del usuario entre diferentes dispositivos.
Fragmentación y actualizaciones. La diversidad de fabricantes y modelos de dispositivos móviles genera desafíos en la distribución de actualizaciones. Los sistemas operativos deben adaptarse a diferentes configuraciones de hardware, lo que puede retrasar la adopción de nuevas versiones. Algunos fabricantes optan por personalizar el sistema operativo, añadiendo capas de software que pueden afectar al rendimiento o a la compatibilidad con aplicaciones.
Ecosistemas cerrados vs. abiertos. Los sistemas operativos móviles se dividen en dos modelos principales: propietarios, como iOS, que restringen el acceso al código fuente y al hardware; y abiertos, como Android, que permiten modificaciones por parte de fabricantes y desarrolladores. Esta dicotomía influye en la flexibilidad, la seguridad y la disponibilidad de aplicaciones, así como en la capacidad de personalización por parte del usuario final.
🧩 Elementos esenciales
- Android: Sistema operativo de código abierto basado en Linux, desarrollado por Google y utilizado por múltiples fabricantes. Destaca por su flexibilidad y personalización.
- iOS: Sistema operativo propietario de Apple, exclusivo para dispositivos iPhone e iPad. Prioriza la integración con el ecosistema Apple y la seguridad.
- Kernel móvil: Núcleo adaptado para gestionar recursos limitados, como la batería y la memoria, optimizando el rendimiento en dispositivos portátiles.
- Sandboxing: Mecanismo de seguridad que aísla las aplicaciones para evitar accesos no autorizados a datos o recursos del sistema.
- Permisos granulares: Control de acceso que requiere la aprobación explícita del usuario para que las aplicaciones utilicen funciones sensibles, como la cámara o la ubicación.
- Tiendas de aplicaciones: Plataformas centralizadas para la distribución y actualización de software, como Google Play Store o Apple App Store.
- Conectividad inalámbrica: Soporte integrado para tecnologías como Wi-Fi, Bluetooth, NFC y redes celulares, esencial para la movilidad.
- Gestos multitáctiles: Interfaz basada en acciones como deslizar, pellizcar o tocar, que reemplaza a los periféricos tradicionales.
- Actualizaciones OTA: Mecanismo para distribuir parches y nuevas versiones del sistema operativo de manera inalámbrica, sin necesidad de conexión física.
- Fragmentación: Diferencias en versiones y configuraciones de hardware que complican la compatibilidad y las actualizaciones en dispositivos móviles.
- Eficiencia energética: Algoritmos y técnicas para optimizar el consumo de batería, priorizando procesos críticos y suspendiendo los no esenciales.
- Sincronización en la nube: Integración con servicios como iCloud o Google Drive para mantener la coherencia de datos entre dispositivos.
🧠 Recuerda
- Los sistemas operativos móviles están optimizados para recursos limitados, como batería y memoria.
- La interfaz táctil es un elemento distintivo frente a los sistemas tradicionales.
- La seguridad es crítica, con mecanismos como sandboxing y permisos granulares.
- Las tiendas de aplicaciones centralizan la distribución de software y reducen riesgos de malware.
- La conectividad inalámbrica es esencial para la movilidad y la sincronización de datos.
- La fragmentación puede retrasar la adopción de actualizaciones en dispositivos móviles.
- Android e iOS representan los dos modelos principales: abierto y propietario.
- Las actualizaciones OTA permiten mantener el sistema operativo al día sin conexiones físicas.
- La eficiencia energética es clave para prolongar la autonomía del dispositivo.
- La personalización varía según el sistema operativo, siendo mayor en Android que en iOS.