Bloque II · Tema 4 · Cuerpo de Técnicos Auxiliares de Informática
Así lo numera la convocatoria: Bloque II. Tecnología básica. En nuestro temario es el tema 13 de 33.
Sistemas operativos. Características y elementos constitutivos. Sistemas Windows. Sistemas Unix y Linux. Sistemas operativos para dispositivos móviles.
El tema más rentable del temario: 137 preguntas oficiales del INAP se responden con él. Qué hace un sistema operativo por dentro —procesos, bloque de control, planificación, memoria virtual, ficheros— y, sobre todo, cómo se administra por fuera: los comandos exactos de Windows (netsh advfirewall, PowerShell, Active Directory) y de Linux (chmod, crontab, systemctl, ip route), que es donde el tribunal cambia una sola palabra entre las cuatro opciones. Con Android, iOS, la gestión de la movilidad y la virtualización que el examen pregunta al lado.
Tema desarrollado para el ejercicio único del Cuerpo de Técnicos Auxiliares de Informática de la Administración del Estado. Es el tema 4 del bloque II «Tecnología básica», que en nuestra numeración interna es el tema 13 de 33.
Cuánto pesa y cómo pregunta. Sobre el papel este tema aporta dos de las catorce preguntas del bloque II. En la realidad es, con diferencia, el tema más rentable de todo el temario: cruzando el enunciado oficial con el corpus de exámenes del INAP que tenemos cargado, 137 preguntas oficiales se responden total o parcialmente con esta materia. La explicación es que los sistemas operativos no se quedan en su casilla: reaparecen en el bloque IV («Administración del sistema operativo y software de base») y, sobre todo, copan los supuestos prácticos, donde el tribunal pide comandos concretos de Windows y de Linux uno detrás de otro.
Y ahí está la clave de cómo hay que estudiarlo. Este tribunal no pregunta «¿qué es la memoria virtual?» en abstracto: pregunta qué hace exactamente tail -f, a qué hora se dispara un crontab que dice 0 5 8 11 *, qué permisos deja chmod 640 y cuál de las cuatro formas de escribir una regla de netsh advfirewall es la buena. Las cuatro opciones son casi idénticas y solo cambia una palabra o un guion. Por eso este apunte lleva los comandos escritos con su sintaxis exacta y, cuando el tribunal ya ha preguntado uno, con la variante falsa que puso al lado.
Índice
- Qué es un sistema operativo
- Gestión de procesos
- Gestión de memoria
- Gestión de entrada/salida y de ficheros
- Sistemas Windows
- Sistemas Unix y Linux
- Sistemas operativos para dispositivos móviles
- Virtualización y contenedores
- Lo que ya ha preguntado el tribunal
1. Qué es un sistema operativo
1.1. Definición y funciones
Un sistema operativo es el programa —en realidad, el conjunto de programas— que administra los recursos del ordenador y actúa de intermediario entre el hardware y el resto del software. Es software, no hardware: esa distinción, que parece obvia, es exactamente la que el tribunal usó en 2023 para construir la opción falsa de una pregunta («constituir el conjunto de software y hardware necesario para el funcionamiento del ordenador» no es una función del sistema operativo).
Cumple dos papeles a la vez, y conviene tenerlos separados porque se preguntan como si fueran definiciones distintas:
- Como máquina extendida o virtual: ofrece al programador una visión limpia del equipo. Quien escribe una aplicación no habla con el disco: llama a una función para abrir un fichero y se despreocupa de sectores, cabezales y controladoras.
- Como gestor de recursos: reparte procesador, memoria, discos y periféricos entre programas y usuarios que compiten por ellos, resolviendo los conflictos y llevando la contabilidad.
De ahí salen sus funciones clásicas, que son las que hay que saber enumerar:
| Función | En qué consiste |
|---|---|
| Gestión de procesos | Crear, planificar, suspender y destruir procesos e hilos; repartir la CPU con un algoritmo de planificación; sincronizarlos y comunicarlos. |
| Gestión de memoria | Asignar y liberar memoria principal, llevar el registro de qué parte usa cada proceso, proteger unos de otros e implementar la memoria virtual. |
| Gestión del almacenamiento | Ofrecer la abstracción de fichero y directorio, controlar el espacio libre, planificar los accesos al disco. |
| Gestión de entrada/salida | Hablar con cada periférico a través de su controlador (driver), gestionar buffers y colas de impresión. |
| Protección y seguridad | Autenticar usuarios, controlar autorizaciones de uso, aislar procesos y auditar. |
| Interfaz de usuario | Intérprete de órdenes (shell) o entorno gráfico. |
| Tratamiento de interrupciones y errores | Ejecutar la rutina que corresponda cuando se activa una señal, y recuperarse de los fallos. |
| Contabilidad | Registrar qué recursos consume cada usuario o proceso. |
1.2. Cómo se clasifican
Los criterios que se preguntan son cuatro:
- Por el número de usuarios: monousuario (MS-DOS) o multiusuario (Unix, Linux, Windows Server).
- Por el número de tareas: monotarea o multitarea. Y dentro de la multitarea, la distinción importante es entre multitarea cooperativa —cada programa cede voluntariamente la CPU, de modo que uno que se cuelga bloquea el sistema entero, como en Windows 3.x— y multitarea apropiativa o expulsiva (preemptive), en la que el sistema arrebata la CPU cuando quiere. Todos los sistemas modernos son apropiativos.
- Por el número de procesadores: monoproceso o multiproceso. En el multiproceso simétrico (SMP) todos los procesadores son iguales y cualquiera puede ejecutar código del núcleo; en el asimétrico hay un procesador maestro que reparte trabajo a los esclavos.
- Por el tiempo de respuesta: por lotes (batch), de tiempo compartido (time-sharing), de tiempo real —donde lo que se garantiza no es ir rápido sino cumplir un plazo, y se distingue entre tiempo real estricto y flexible— y distribuidos.
1.3. Modo núcleo, modo usuario y llamadas al sistema
Los procesadores modernos ejecutan en al menos dos modos o anillos de privilegio. En modo núcleo (modo supervisor, kernel mode, anillo 0) el código puede ejecutar cualquier instrucción máquina y acceder a cualquier dirección de memoria: ahí vive el sistema operativo. En modo usuario (anillo 3) las instrucciones privilegiadas están prohibidas y cada proceso solo ve su propio espacio de direcciones: ahí viven las aplicaciones.
El puente entre los dos es la llamada al sistema (system call): cuando un programa necesita algo que no puede hacer por sí mismo —abrir un fichero, crear un proceso, enviar un paquete de red— ejecuta una instrucción especial que provoca un cambio controlado a modo núcleo, el sistema atiende la petición y devuelve el control. Ese cambio de modo es el mecanismo de protección fundamental de un sistema operativo: sin él, cualquier aplicación podría escribir en la memoria de otra.
Alrededor de las llamadas al sistema se construye la API del sistema operativo: la Win32/Win64 API en Windows, la norma POSIX en el mundo Unix. Y por encima, las bibliotecas del lenguaje.
1.4. Tipos de núcleo: monolítico, microkernel e híbrido
El núcleo o kernel es la parte del sistema operativo que se ejecuta en modo privilegiado y que está siempre residente en memoria. El tribunal ha preguntado dos veces qué hace y una vez qué no es: el kernel controla los procesos, la memoria y la administración de dispositivos; recibe las peticiones de servicio de los procesos y las traslada al hardware; y se encarga de la multitarea. Lo que no es, y ahí estaba la trampa de 2023, es «el núcleo del procesador»: el núcleo del procesador es una pieza de silicio, el kernel es software.
| Tipo de núcleo | Cómo funciona | Ejemplos |
|---|---|---|
| Monolítico | Todo el sistema —planificador, memoria, sistemas de ficheros, controladores, pila de red— se ejecuta en modo núcleo como un solo bloque. Rápido, porque no hay cambios de contexto entre subsistemas; frágil, porque un fallo en un controlador tumba el sistema. | Linux (monolítico, pero modular: los módulos se cargan y descargan en caliente), los Unix clásicos |
| Microkernel | En modo núcleo solo queda lo imprescindible (planificación, memoria básica y paso de mensajes). Sistemas de ficheros y controladores se ejecutan como servidores en modo usuario. Más robusto y más fácil de verificar; penaliza el rendimiento por el trasiego de mensajes. | MINIX, QNX, L4, Mach |
| Híbrido | Estructura de microkernel pero con subsistemas críticos dentro del núcleo por rendimiento. | Windows NT y toda su descendencia, XNU (macOS e iOS) |
| Exokernel / nanokernel | El núcleo se limita a multiplexar el hardware y deja las abstracciones a bibliotecas de usuario. | Diseños experimentales |
1.5. Interrupciones y arranque
Un sistema operativo es, en el fondo, un programa dirigido por interrupciones. Una interrupción es una señal que obliga al procesador a suspender lo que está haciendo, guardar su estado y saltar a una rutina de tratamiento cuya dirección está en el vector de interrupciones. Se distinguen:
- Interrupciones hardware, externas y asíncronas: las genera un periférico (ha llegado un carácter del teclado, el disco ha terminado la transferencia) o el reloj del sistema, que es el que permite la multitarea porque devuelve periódicamente el control al planificador.
- Excepciones o trampas (traps), internas y síncronas: las provoca la propia instrucción en ejecución (división por cero, acceso a una dirección inválida, fallo de página).
- Interrupciones software: las provoca deliberadamente un programa para invocar al sistema; es el mecanismo clásico de la llamada al sistema.
El arranque encadena varias piezas. Al encender, el procesador ejecuta el firmware de la placa —BIOS en los equipos clásicos, UEFI en los modernos—, que hace el autotest (POST), inicializa el hardware y busca un dispositivo de arranque. En el esquema clásico lee el MBR (Master Boot Record, primer sector del disco, con la tabla de cuatro particiones primarias); en el moderno, UEFI lee la tabla de particiones GPT y arranca un fichero ejecutable alojado en la partición del sistema EFI (ESP), formateada en FAT32. Ahí entra el gestor de arranque —el Administrador de arranque de Windows con su almacén BCD, o GRUB 2 en Linux—, que carga el núcleo en memoria y le cede el control. El núcleo monta el sistema de ficheros raíz y lanza el primer proceso, que en Unix y Linux es init (hoy, en la mayoría de distribuciones, systemd) y que es el antepasado de todos los demás. UEFI aporta además el arranque seguro (Secure Boot), que solo ejecuta gestores de arranque firmados digitalmente.
2. Gestión de procesos
2.1. El proceso y su bloque de control
Un programa es un fichero pasivo en disco. Un proceso es un programa en ejecución, con su contador de programa, sus registros, su pila, su espacio de memoria y sus recursos asignados. Del mismo programa puede haber muchos procesos simultáneos.
El sistema representa cada proceso mediante una estructura de datos que el temario oficial llama, entre los «elementos constitutivos», el bloque de control de proceso (BCP o PCB, Process Control Block). Es literalmente la ficha del proceso, y contiene:
- El identificador del proceso (PID) y el del padre (PPID).
- El estado en que se encuentra.
- El contexto del procesador: contador de programa, puntero de pila y el resto de registros, que es justo lo que hay que salvar y restaurar en un cambio de contexto.
- Información de planificación: prioridad, tiempo consumido, cola en la que está.
- Información de memoria: tablas de páginas o registros base y límite.
- Información de entrada/salida: ficheros abiertos, dispositivos asignados.
- Información de contabilidad y credenciales (usuario propietario, grupo).
Conviene no confundir el BCP con otras estructuras que el tribunal usa como distractores: la tabla de páginas traduce direcciones virtuales a físicas, el vector de interrupciones guarda las direcciones de las rutinas de tratamiento y el descriptor de segmento describe un segmento de memoria. Ninguna de las tres es «la estructura de datos que contiene información sobre un proceso».
Los estados de un proceso, en el modelo de cinco estados:
| Estado | Situación | Transición típica |
|---|---|---|
| Nuevo | Se está creando. | → Preparado, cuando se admite |
| Preparado (listo, ready) | Podría ejecutarse; solo le falta la CPU. | → En ejecución, cuando el planificador lo elige |
| En ejecución (running) | Tiene la CPU. | → Preparado (se agota su quantum), → Bloqueado (pide E/S), → Terminado |
| Bloqueado (en espera) | Espera un suceso: que termine una E/S, que se libere un recurso. | → Preparado, cuando llega el suceso |
| Terminado | Ha acabado; se liberan sus recursos. | — |
Hay una transición que se confunde siempre: de bloqueado no se pasa a en ejecución, sino a preparado. Y el paso de en ejecución a preparado no lo pide el proceso, se lo impone el sistema.
El cambio de contexto es la operación de guardar el estado del proceso saliente en su BCP y cargar el del entrante. Es puro coste: mientras se hace, no se ejecuta trabajo útil.
2.2. Hilos
Un hilo o hebra (thread) es la unidad mínima de ejecución dentro de un proceso. Todos los hilos de un proceso comparten el espacio de direcciones, el código, los datos globales y los ficheros abiertos, pero cada uno tiene su propio contador de programa, sus registros y su pila. Esa es la respuesta a la pregunta que el tribunal repitió en 2024: lo que permite que un proceso ejecute varias tareas de forma concurrente son los hilos, no la segmentación ni la paginación, que son técnicas de gestión de memoria.
Frente a crear varios procesos, los hilos son más baratos de crear y de conmutar y se comunican sin más que compartir variables; a cambio, no hay aislamiento: un hilo que corrompe memoria se lleva por delante a todo el proceso. Se distinguen los hilos de usuario, gestionados por una biblioteca sin que el núcleo los vea (si uno se bloquea, se bloquean todos), y los hilos de núcleo, que el sistema planifica individualmente y puede repartir entre varios procesadores. Los modelos de correspondencia entre unos y otros son uno a uno, muchos a uno y muchos a muchos.
2.3. Planificación de la CPU
El planificador (scheduler) decide a qué proceso preparado se le da la CPU, y el despachador (dispatcher) ejecuta materialmente el cambio. Se distinguen tres niveles: el planificador a largo plazo decide qué trabajos se admiten en el sistema, el de medio plazo suspende y reanuda procesos llevándolos a disco (swapping) y el de corto plazo es el que reparte la CPU instante a instante.
Los criterios que se buscan optimizar —y que se contraponen entre sí— son el uso de la CPU, la productividad (throughput, trabajos por unidad de tiempo), el tiempo de retorno (turnaround, desde que entra hasta que acaba), el tiempo de espera (el que pasa en la cola de preparados) y el tiempo de respuesta (hasta la primera reacción), que es el que importa en un sistema interactivo.
| Algoritmo | Regla | Carácter | Problema |
|---|---|---|---|
| FCFS (First Come, First Served), o FIFO | Se atiende por orden de llegada. | No apropiativo | Efecto convoy: un proceso largo hace esperar a todos los cortos. Tiempo medio de espera alto. |
| SJF (Shortest Job First) | Primero el de ráfaga de CPU más corta. | No apropiativo | Es óptimo en tiempo medio de espera, pero exige conocer de antemano la duración, que hay que estimar. Puede provocar inanición de los procesos largos. |
| SRTF (Shortest Remaining Time First) | Versión apropiativa del anterior: si llega uno más corto que lo que le queda al actual, lo expulsa. | Apropiativo | Misma inanición, más cambios de contexto. |
| Por prioridades | Primero el de mayor prioridad, fijada por el usuario o calculada. | Ambas variantes | Inanición del proceso de prioridad baja; se corrige con envejecimiento (aging), subiendo la prioridad con el tiempo de espera. |
| Round Robin (turno rotatorio) | Cola circular: a cada proceso se le da un quantum o rodaja de tiempo; si no termina, vuelve al final de la cola. | Apropiativo | El quantum manda: muy grande degenera en FCFS, muy pequeño dispara el coste de los cambios de contexto. |
| Colas multinivel | Varias colas con distinto algoritmo (interactivos, por lotes) y planificación entre ellas. | Ambas | Rígido: un proceso no cambia de cola. |
| Colas multinivel realimentadas | Como el anterior, pero los procesos suben y bajan de cola según su comportamiento. Es el modelo real de Windows y Linux. | Apropiativo | Muchos parámetros que ajustar. |
Dos detalles que el tribunal ha usado ya: el que asigna un quantum es Round Robin, y en la lista de algoritmos reales de Windows y Linux no existe ningún «algoritmo de agrupación» —era el inventado de la pregunta de 2023—. Linux usa desde la versión 2.6.23 el CFS (Completely Fair Scheduler), sustituido en las series recientes por EEVDF, y mantiene además clases de tiempo real (SCHED_FIFO y SCHED_RR); Windows planifica por prioridades de 0 a 31 con quantum variable y aumento temporal de prioridad para las ventanas en primer plano.
2.4. Concurrencia y sincronización
Cuando varios procesos comparten datos aparece la condición de carrera: el resultado depende del orden en que se intercalen las operaciones. La zona de código donde se accede al recurso compartido es la sección crítica, y la solución debe cumplir tres requisitos: exclusión mutua (uno cada vez), progreso (si nadie está dentro, alguien puede entrar) y espera limitada (nadie espera indefinidamente).
- Semáforo (Dijkstra): variable entera con dos operaciones atómicas, wait (P, decrementa y bloquea si queda negativa) y signal (V, incrementa y despierta a un bloqueado). El semáforo binario o mutex solo toma los valores 0 y 1 y sirve para exclusión mutua; el contador permite hasta N usos simultáneos.
- Mutex: cierre con propietario; solo puede liberarlo quien lo tomó.
- Monitor (Hoare, Brinch Hansen): construcción del lenguaje que encapsula los datos compartidos y garantiza que solo un proceso ejecuta dentro; usa variables de condición.
- Paso de mensajes: send y receive, sin memoria compartida. Es la vía natural en microkernels y en sistemas distribuidos.
La comunicación entre procesos (IPC) en la práctica se hace con tuberías (pipes) —anónimas o con nombre (FIFO)—, memoria compartida, colas de mensajes, sockets y señales. La tubería del shell de Unix, la barra vertical, es el ejemplo cotidiano: conecta la salida estándar de una orden con la entrada estándar de la siguiente.
2.5. Interbloqueo
Hay interbloqueo (deadlock) cuando un conjunto de procesos queda bloqueado para siempre porque cada uno espera un recurso que retiene otro del conjunto. Se produce si —y solo si— se dan a la vez las cuatro condiciones de Coffman:
- Exclusión mutua: el recurso no es compartible.
- Retención y espera: un proceso retiene recursos mientras pide otros.
- Sin apropiación: no se le puede quitar un recurso por la fuerza.
- Espera circular: existe una cadena cerrada de procesos, cada uno esperando al siguiente.
Frente a él caben cuatro políticas: prevenir (impedir estructuralmente alguna de las cuatro condiciones, por ejemplo obligando a pedir todos los recursos de golpe o imponiendo un orden global de petición), evitar (concediendo solo peticiones que dejen el sistema en estado seguro; es el algoritmo del banquero de Dijkstra, que exige declarar de antemano la necesidad máxima), detectar y recuperar (dejar que ocurra, descubrirlo con el grafo de asignación de recursos y romperlo abortando procesos o retirando recursos) e ignorarlo —el llamado algoritmo del avestruz, que es lo que hacen en la práctica los sistemas de propósito general—.
Conviene distinguirlo de dos parientes: la inanición (starvation), en la que el proceso no está bloqueado pero nunca le toca, y el livelock, en el que los procesos cambian de estado continuamente sin progresar.
3. Gestión de memoria
La memoria principal es un recurso escaso que hay que repartir con tres objetivos: reubicación (que un programa pueda cargarse en cualquier dirección), protección (que ninguno lea o escriba fuera de lo suyo) y aprovechamiento.
Los esquemas históricos van de la asignación contigua —partición única, particiones fijas, particiones variables con sus políticas de hueco (primer ajuste, mejor ajuste, peor ajuste)— a los modernos. Su problema es la fragmentación: la externa es el espacio libre repartido en huecos pequeños e inservibles entre particiones, y se combate con compactación; la interna es el espacio desperdiciado dentro de un bloque asignado porque el bloque es mayor que lo pedido.
| Técnica | Cómo divide | Dirección lógica | Fragmentación |
|---|---|---|---|
| Paginación | La memoria física en marcos y el espacio lógico en páginas del mismo tamaño fijo (4 KiB es lo habitual). Reparto puramente físico, invisible al programador. | Número de página + desplazamiento | Interna (la última página va a medias); elimina la externa |
| Segmentación | En segmentos de tamaño variable que se corresponden con unidades lógicas del programa: código, datos, pila. Visible para el programador. | Número de segmento + desplazamiento | Externa |
| Segmentación paginada | Segmentos divididos en páginas: combina la lógica de la segmentación con la eficiencia de la paginación. | Segmento + página + desplazamiento | Interna |
La traducción de dirección lógica a física la hace por hardware la MMU (unidad de gestión de memoria) consultando la tabla de páginas del proceso. Como esa consulta costaría un acceso extra a memoria por cada acceso, existe la TLB (Translation Lookaside Buffer), una caché asociativa de traducciones recientes.
La memoria virtual lleva la idea al extremo: permite ejecutar un proceso sin que esté entero en memoria principal, manteniendo en disco —en el fichero de paginación de Windows o la partición o fichero de intercambio (swap) de Linux— lo que no se usa. Cuando el proceso referencia una página ausente se produce un fallo de página (page fault): una excepción que el sistema atiende trayendo la página de disco. Si no hay marco libre, hay que reemplazar una:
- FIFO: sale la más antigua. Simple y malo; sufre la anomalía de Belady (dar más marcos puede aumentar los fallos).
- Óptimo (OPT): sale la que más tardará en usarse. Irrealizable, sirve de referencia teórica.
- LRU (Least Recently Used): sale la que lleva más tiempo sin usarse. Buena aproximación al óptimo, cara de implementar exactamente; se aproxima con bits de referencia y con el algoritmo del reloj (segunda oportunidad).
- LFU / MFU: por frecuencia de uso.
El exceso de actividad de paginación es la hiperpaginación o thrashing: el sistema pasa más tiempo moviendo páginas que ejecutando. Se controla con el modelo del conjunto de trabajo (working set) —el conjunto de páginas que un proceso usa realmente en una ventana de tiempo— y limitando el grado de multiprogramación. El prepaging consiste en traer por adelantado páginas que se prevé necesarias.
4. Gestión de entrada/salida y de ficheros
Cada periférico se maneja a través de su controlador de dispositivo (driver), el módulo que traduce las peticiones genéricas del sistema a las órdenes concretas del aparato. Sobre ellos, el sistema ofrece técnicas de almacenamiento intermedio (buffering), caché de disco y spooling, que es la cola en disco que permite que varios trabajos de impresión se acumulen y se sirvan por orden. La transferencia puede hacerse por E/S programada (la CPU sondea), por interrupciones o por DMA, en la que un controlador mueve los datos entre periférico y memoria sin intervención de la CPU, que solo es avisada al final.
El sistema de ficheros es la parte que da la abstracción de fichero (unidad lógica de información con nombre) y directorio, y que decide cómo se distribuyen los bloques en el soporte. Sus piezas: el bloque de arranque, el superbloque o estructura equivalente con los metadatos del volumen, la estructura de directorios y el mapa de espacio libre. Los métodos de asignación de bloques son contigua, enlazada (la FAT es una variante con la lista en una tabla aparte) e indexada (el inodo de Unix). El registro por diario (journaling) anota las operaciones antes de ejecutarlas para poder recuperar el sistema tras un corte de corriente sin recorrerlo entero.
| Sistema de ficheros | Dónde | Qué hay que saber |
|---|---|---|
| FAT32 | Universal, memorias USB pequeñas, partición EFI | Máximo 4 GiB por fichero. Windows solo formatea volúmenes FAT32 de hasta 32 GB, aunque puede montar mayores. Sin permisos ni journaling. |
| exFAT | Tarjetas SD y discos externos | Pensado justo para lo que FAT32 no puede: soporta ficheros y volúmenes enormes y lo leen y escriben de forma nativa tanto Windows como macOS. Es la respuesta a la pregunta de 2026 sobre el formato usable en volúmenes de más de 32 GB en los dos sistemas. |
| NTFS | Windows, desde NT | Journaling, permisos ACL, cifrado EFS, compresión, cuotas, enlaces simbólicos, flujos alternativos de datos, instantáneas. Es el sistema de ficheros nativo de Windows. |
| ReFS | Windows Server y ediciones selectas | Resilient File System: sumas de verificación de metadatos, reparación automática y volúmenes muy grandes. No arranca el sistema ni soporta todo lo de NTFS. |
| ext2 / ext3 / ext4 | Linux | ext2 no tiene journaling; ext3 lo añade; ext4 aporta extents, asignación retardada, volúmenes y ficheros mucho mayores y comprobación más rápida. Es el sistema por defecto de muchas distribuciones. |
| XFS | Linux, por defecto en RHEL | Alto rendimiento con ficheros grandes y muchos hilos; se puede aumentar en caliente, pero no reducir. |
| Btrfs / ZFS | Linux, Unix | Copy-on-write, instantáneas, sumas de verificación de datos y gestión de volúmenes integrada. |
| APFS | macOS e iOS actuales | Apple File System, optimizado para SSD, con instantáneas, clonado y cifrado nativo. Sustituyó a HFS+. |
| HFS+ | macOS antiguo | Mac OS Extended, el anterior a APFS. Aparece como distractor. |
5. Sistemas Windows
5.1. La familia y su arquitectura
La rama que importa es la de Windows NT, de la que descienden todas las versiones actuales: Windows 2000, XP, 7, 8, 10 y 11 en cliente, y la serie Windows Server (2008, 2012, 2016, 2019, 2022 y 2025) en servidor. Windows Server 2025 se publicó el 1 de noviembre de 2024 y es la primera versión de servidor basada en Windows 11; en cliente, la actualización 25H2 salió el 30 de septiembre de 2025 y la 26H2, la vigente, el 29 de septiembre de 2026. Los exámenes recientes del INAP sitúan sus supuestos en Windows Server 2019 y Windows 10/11, que son los que hay que tener frescos.
Su arquitectura es de núcleo híbrido y se organiza en capas:
- La HAL (Hardware Abstraction Layer), que aísla al resto del hardware concreto de la máquina.
- El núcleo (microkernel), que hace la planificación de hilos, la sincronización y el manejo de interrupciones.
- Los Servicios Ejecutivos (Executive): gestor de objetos, de procesos, de memoria virtual, de E/S, de caché, de energía, el monitor de referencias de seguridad y el gestor de configuración (el registro).
- Los subsistemas de entorno en modo usuario, con la API Win32 como principal, y los procesos de sistema (sesión, autoridad de seguridad local, servicios).
Una consecuencia práctica de la arquitectura de 64 bits que el tribunal ya preguntó: un proceso de 64 bits no puede cargar una DLL de 32 bits, y uno de 32 bits no puede cargar una DLL de 64 bits —el ancho del proceso y el de sus bibliotecas tienen que coincidir—, mientras que las llamadas a procedimientos remotos (RPC) entre procesos de 32 y 64 bits sí funcionan, y no solo dentro del mismo equipo, sino también entre equipos distintos. La capa que permite ejecutar aplicaciones de 32 bits sobre Windows de 64 es WoW64.
5.2. El registro y los servicios
El registro de Windows es la base de datos jerárquica donde se guarda la configuración del sistema, del hardware, de las aplicaciones y de cada usuario. Se edita con regedit y se organiza en claves raíz:
| Clave | Contenido |
|---|---|
| HKEY_LOCAL_MACHINE (HKLM) | Configuración del equipo: hardware, software instalado, servicios, arranque. Es la que se toca en administración. |
| HKEY_CURRENT_USER (HKCU) | Perfil del usuario que ha iniciado sesión. |
| HKEY_USERS (HKU) | Perfiles de todos los usuarios cargados. |
| HKEY_CLASSES_ROOT (HKCR) | Asociaciones de extensiones y objetos COM. Es una vista combinada de HKLM y HKCU. |
| HKEY_CURRENT_CONFIG (HKCC) | Perfil de hardware activo. |
Los servicios son procesos que se ejecutan en segundo plano sin sesión interactiva, con su tipo de inicio (automático, automático con inicio retrasado, manual, deshabilitado) y su cuenta de ejecución (Sistema local, Servicio de red, Servicio local). Se administran con la consola services.msc, con sc, con net start y net stop, o con los cmdlets de PowerShell.
5.3. NTFS, permisos y cifrado
Los permisos NTFS se aplican a ficheros y carpetas y se combinan con los permisos de recurso compartido cuando el acceso es por red; al combinarse, prevalece el más restrictivo. Los permisos básicos son Control total, Modificar, Lectura y ejecución, Mostrar el contenido de la carpeta, Lectura y Escritura, y detrás hay una lista de permisos especiales. Se heredan de la carpeta padre salvo que se rompa la herencia, y una denegación explícita prevalece sobre cualquier permiso concedido.
Para el cifrado hay dos piezas distintas que se confunden: EFS (Encrypting File System) cifra ficheros y carpetas sueltos por usuario, mientras que BitLocker cifra el volumen completo y se apoya en el chip TPM. En una restauración de copia de seguridad de un equipo cifrado con BitLocker lo que hace falta es la clave de recuperación de BitLocker —no el certificado digital ni la clave privada del usuario—, tal como preguntó el tribunal en 2019.
El Control de cuentas de usuario (UAC) hace que incluso un administrador trabaje con un testigo de acceso restringido y tenga que elevar explícitamente los privilegios para las operaciones que los requieren.
5.4. Active Directory y las directivas de grupo
Active Directory Domain Services (AD DS) es el servicio de directorio de Windows Server: almacena información sobre los objetos de la red —usuarios, equipos, grupos, impresoras— y facilita a administradores y usuarios localizarlos y usarlos. Esa es literalmente la definición que dio por buena el tribunal en 2026. Se apoya en LDAP para las consultas, en Kerberos para la autenticación y en DNS para localizar los controladores de dominio.
Su estructura lógica, de dentro afuera:
- Objeto: usuario, equipo, grupo, impresora, unidad organizativa.
- Unidad organizativa (OU): contenedor para organizar objetos dentro de un dominio; es el nivel al que se delegan permisos administrativos y al que se enlazan las directivas de grupo. Por eso la buena práctica que preguntó el INAP es crear primero la OU para el grupo de usuarios y después aplicarle las GPO.
- Dominio: unidad de administración y de seguridad, con su base de datos replicada entre los controladores de dominio.
- Árbol: dominios con espacio de nombres contiguo.
- Bosque: uno o varios árboles que comparten esquema y catálogo global; es el límite real de la seguridad.
La estructura física son los sitios, que representan las ubicaciones bien conectadas y controlan cómo se replica el directorio (se crean con New-ADReplicationSite). Entre los controladores de dominio hay cinco roles FSMO: maestro de esquema y maestro de nombres de dominio a nivel de bosque; maestro de RID, emulador de PDC y maestro de infraestructura a nivel de dominio.
Las directivas de grupo (GPO) aplican configuración de forma centralizada. Se procesan en el orden local, sitio, dominio y unidad organizativa —regla mnemotécnica L-S-D-OU—, de modo que la última en aplicarse, la de la OU más cercana, es la que gana, salvo que se use «exigido» o «bloquear herencia». El resultado efectivo sobre un usuario y equipo concretos se consulta con gpresult, que muestra el conjunto resultante de directivas (RSoP), y se fuerza la actualización con gpupdate /force.
Un objeto que el tribunal ha preguntado dos veces en 2026: el PSO (Password Settings Object), que permite aplicar políticas de contraseña distintas a usuarios o grupos concretos dentro de un mismo dominio, rompiendo la vieja limitación de una única política por dominio. Es la pieza de las directivas de contraseñas específicas (Fine-Grained Password Policies).
5.5. La línea de órdenes: cmd, PowerShell y netsh
Aquí se juega buena parte del supuesto práctico. PowerShell es un shell orientado a objetos cuyas órdenes siguen el patrón Verbo-Sustantivo (Get-Service, New-ADUser, Install-WindowsFeature) y se encadenan con la tubería pasando objetos, no texto.
| Orden | Qué hace |
|---|---|
| net user <usuario> | Muestra la información de una cuenta local. |
| net localgroup administradores | Lista las cuentas del grupo local de administradores. |
| net accounts | Muestra la política local de cuentas y contraseñas. |
| net start | Sin argumentos, lista los servicios en ejecución; con un nombre, arranca ese servicio. |
| sfc /scannow | Examina todos los archivos de sistema protegidos y reemplaza los dañados con una copia en caché. No repara el arranque: eso es bootrec. Sus otros dos distractores de 2024 también son reales y conviene descartarlos por lo que sí hacen: storsan muestra la directiva de red de área de almacenamiento, y el SCW (asistente de configuración de seguridad) analiza servidores contra una directiva de seguridad generada con él. |
| route print | Muestra la tabla de enrutamiento del equipo. |
| ipconfig /flushdns | Purga la caché de resolución DNS. Con /all muestra la configuración completa; con /release y /renew, la concesión DHCP. |
| gpresult /r | Conjunto resultante de directivas (RSoP) para el usuario y el equipo. |
| dsa.msc | Consola gráfica «Usuarios y equipos de Active Directory»; es la herramienta nativa para meter un usuario en un grupo global desde el controlador de dominio. No confundir con lusrmgr.msc (usuarios locales) ni con netplwiz. |
| repadmin /replsummary | Resumen del estado de replicación entre controladores de dominio. Para diagnóstico general, dcdiag; para ver los roles FSMO, netdom query fsmo. |
| Install-WindowsFeature -name AD-Domain-Services -IncludeManagementTools | Instala el rol de servicios de dominio de AD. Después, Install-ADDSForest o Install-ADDSDomainController promueven el servidor. |
| Copy-Item -Path "C:\Origen\*" -Destination "C:\Destino" -Recurse | Copia recursiva. El parámetro es -Recurse, no «-Recursive», y el cmdlet es Copy-Item, no «Copy-Path». |
| Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name | Nombres de los servicios en ejecución. El estado es Running, no «Started», «Enabled» ni «Active». |
| New-ADReplicationSite <nombre> | Crea un sitio de replicación de Active Directory. |
Mención aparte para netsh advfirewall, que el tribunal ha preguntado en cuatro exámenes distintos y siempre con las cuatro opciones casi iguales. La sintaxis exacta:
- Ver el perfil activo: netsh advfirewall show currentprofile (con show, no con get).
- Activar el firewall del perfil actual: netsh advfirewall set currentprofile state on (el orden es perfil, luego state, luego on).
- Activarlo en todos los perfiles: netsh advfirewall set allprofiles state on.
- Añadir una regla: netsh advfirewall firewall add rule name="Puerto8443" dir=in action=allow protocol=TCP localport=8443. El verbo es add —no «create» ni «new»— y la acción es allow —no «permit»—.
Y en el servidor web, IIS se administra con appcmd, cuya sintaxis también sigue el patrón verbo-objeto invertido: la copia de seguridad de la configuración se crea con appcmd add backup "BackupManual".
6. Sistemas Unix y Linux
6.1. De Unix a Linux: POSIX, GNU y las distribuciones
Unix nació en 1969 en los Laboratorios Bell de AT&T, de la mano de Ken Thompson y Dennis Ritchie, y se reescribió en lenguaje C en 1973, lo que lo hizo portable y explica su difusión. De ahí salieron dos grandes ramas —System V de AT&T y BSD de Berkeley— y una norma que las unifica, POSIX (Portable Operating System Interface, IEEE 1003), que define la interfaz de programación y el shell para que un programa escrito para un Unix compile en otro.
En 1983 Richard Stallman inicia el proyecto GNU para construir un sistema tipo Unix enteramente libre, y crea la Free Software Foundation y la licencia GPL. Le faltaba el núcleo, y ahí encaja Linux, el núcleo que Linus Torvalds publicó en 1991 y liberó bajo GPL. De la suma sale el sistema que solemos llamar Linux y que con más precisión se llama GNU/Linux. El núcleo va por la serie 7.x desde el 12 de abril de 2026.
Una distribución es el empaquetado del núcleo con las utilidades GNU, un gestor de paquetes, un escritorio y un soporte. Las familias que aparecen en los exámenes:
| Familia | Distribuciones | Paquetes |
|---|---|---|
| Debian | Debian, Ubuntu (LTS cada dos años; la 26.04 «Resolute Raccoon» salió en abril de 2026), Linux Mint | .deb, con dpkg y apt |
| Red Hat | RHEL, Fedora, CentOS Stream, AlmaLinux, Rocky Linux | .rpm, con rpm, yum y dnf |
| SUSE | SUSE Linux Enterprise, openSUSE | .rpm, con zypper |
| Otras | Arch, Gentoo, Alpine | pacman, compilación, apk |
6.2. El shell y la forma de una orden
El shell es el intérprete de órdenes: lee lo que se teclea, lo interpreta y lanza los programas. Los históricos son sh (Bourne), bash (Bourne Again, el más extendido), csh, ksh y zsh. Un shell no es el sistema operativo: es un programa más, que se puede cambiar.
Toda orden tiene la forma orden [opciones] [argumentos] y trabaja con tres flujos estándar: entrada estándar (stdin, 0), salida estándar (stdout, 1) y error estándar (stderr, 2), que se redirigen con >, >> y 2> y se encadenan con la tubería. Unix distingue mayúsculas de minúsculas en nombres de fichero y de orden, y trata casi todo como un fichero, incluidos los dispositivos.
Las órdenes básicas de manipulación de ficheros que hay que tener automatizadas:
| Orden | Qué hace |
|---|---|
| ls, cd, pwd | Listar, cambiar de directorio, mostrar el directorio actual. ls -l da el listado largo con permisos, propietario y tamaño. |
| cp, mv, rm | Copiar, mover y borrar. Renombrar se hace con mv: mv PAGOS RECIBOS deja el fichero llamado RECIBOS. Con rm no se renombra nada: se borra. |
| mkdir, rmdir, touch, ln | Crear y borrar directorios, crear un fichero vacío o actualizar su fecha, crear enlaces (ln -s para el simbólico). |
| cat, less, head, tail | Mostrar el contenido. tail -f sigue el fichero en tiempo real a medida que crece, que es la forma normal de vigilar un log; tail -n 20 muestra las últimas veinte líneas. |
| grep, find, wc, sort, cut, sed, awk | Buscar dentro de ficheros, buscar ficheros, contar, ordenar, cortar columnas y transformar texto. |
| tar, gzip, zip | Empaquetar y comprimir. tar -czvf copia.tar.gz carpeta/ es la combinación habitual. |
| man | Manual de cualquier orden. Es la respuesta a casi todo. |
6.3. El árbol de directorios
Unix y Linux tienen un único árbol que arranca en la raíz, la barra, y en el que los discos se montan como directorios: no hay letras de unidad. Su estructura la normaliza el FHS (Filesystem Hierarchy Standard):
| Directorio | Contenido |
|---|---|
| /etc | Ficheros de configuración del sistema y de las aplicaciones instaladas. El tribunal lo ha preguntado dos veces y las dos con las mismas trampas al lado. |
| /bin y /sbin | Binarios esenciales para todos los usuarios; los de sbin, de administración. |
| /home | Directorios personales de los usuarios. |
| /root | Directorio personal del superusuario, que no es la raíz ni está en /home. |
| /var | Datos variables: /var/log (registros), colas de correo e impresión, bases de datos. |
| /tmp | Temporales, se vacía en el arranque. |
| /dev | Ficheros especiales de dispositivo. |
| /proc y /sys | Sistemas de ficheros virtuales con el estado del núcleo y de los procesos. |
| /usr | Programas y bibliotecas de usuario instalados. |
| /opt, /mnt, /media, /boot, /lib | Software de terceros, puntos de montaje, medios extraíbles, núcleo y gestor de arranque, bibliotecas compartidas. |
6.4. Usuarios, grupos y permisos
Cada usuario tiene un UID (identificador numérico de usuario) y pertenece a grupos identificados por un GID. El UID 0 corresponde al administrador, llamado root, que no tiene restricciones. Las cuentas se definen en /etc/passwd —legible por todos— y las contraseñas cifradas viven aparte, en /etc/shadow, que solo puede leer root; los grupos, en /etc/group. Las órdenes son useradd, usermod, userdel, passwd, groupadd, y su y sudo para cambiar de identidad o ejecutar como otro usuario.
Los permisos son la parte más preguntada de todo Linux. Cada fichero tiene tres ternas —propietario (u), grupo (g) y otros (o)— con tres bits cada una: lectura (r, 4), escritura (w, 2) y ejecución (x, 1). Sumando se obtiene el dígito octal de cada terna:
| Notación octal | Notación simbólica | Significado |
|---|---|---|
| 640 | rw- r-- --- | Lectura y escritura al propietario, solo lectura al grupo y ningún acceso a los demás. |
| 644 | rw- r-- r-- | Lectura y escritura al propietario, lectura a todos los demás. Es el permiso típico de un fichero de datos. |
| 755 | rwx r-x r-x | Todo al propietario, lectura y ejecución al resto. Típico de un programa o un directorio. |
| 777 | rwx rwx rwx | Todo a todos. Casi siempre un error de seguridad. |
En un directorio los bits significan otra cosa: r permite listar su contenido, w crear y borrar entradas y x atravesarlo para llegar a lo que hay dentro.
La notación simbólica de chmod es la que el tribunal usó en 2026 para hilar fino: sobre un fichero con permisos -rw-r--r--, para hacerlo ejecutable solo por el propietario sin tocar los demás hay que escribir chmod u+x script.sh. Ni chmod +x ni chmod a+x valen, porque añaden la ejecución a todo el mundo, y chmod 755 tampoco, porque reescribe las tres ternas de golpe.
Completan el cuadro chown (cambia el propietario, chown usuario:grupo fichero), chgrp (el grupo) y umask, que es la máscara que se resta de los permisos por defecto: con la umask habitual 022, un fichero nuevo nace 644 y un directorio 755. Por encima están los bits especiales: SUID (el programa se ejecuta con los privilegios de su propietario), SGID (con los del grupo; en un directorio, los ficheros creados heredan el grupo) y sticky bit (en un directorio compartido como /tmp, solo el propietario de cada fichero puede borrarlo). Y para casos finos, las ACL POSIX con getfacl y setfacl.
6.5. Procesos, señales y servicios
Los procesos se consultan con ps (ps -ef o ps aux para verlos todos), top y htop en tiempo real, y pstree para ver la jerarquía. Se terminan con kill, que en realidad envía una señal: SIGTERM (15) pide terminar ordenadamente y es la de por defecto, SIGKILL (9) mata sin posibilidad de captura, SIGHUP (1) suele indicar «recarga tu configuración» y SIGINT (2) es lo que envía Ctrl+C. Un proceso se lanza en segundo plano con el ampersand y se gestiona con jobs, fg y bg; con nohup sobrevive al cierre de la sesión, y su prioridad se ajusta con nice y renice. Un proceso zombi es el que ha terminado pero cuyo padre no ha recogido su código de salida; un huérfano es el que ha perdido a su padre y es adoptado por init.
Los servicios de fondo se llaman demonios (daemons) y suelen terminar en «d»: sshd, httpd, crond. El sistema de inicio moderno es systemd, que sustituye al viejo init de System V con sus niveles de ejecución y que gestiona unidades (services, sockets, timers, targets). Su orden es systemctl:
- systemctl start | stop | restart | reload nginx — controlar el servicio ahora.
- systemctl enable nginx — que arranque automáticamente en el arranque del sistema. Es distinto de start: enable no lo arranca ahora, lo habilita para el próximo arranque (se pueden encadenar con enable --now).
- systemctl status nginx y systemctl list-units — estado y unidades cargadas.
- journalctl -u nginx — registros de esa unidad.
Órdenes de información del sistema: uname -r muestra la versión del núcleo —dato que hay que mirar cuando se anuncia una vulnerabilidad del kernel—, mientras que uname -o da el sistema operativo y uname -a todo junto; hostname -f muestra el nombre completo cualificado (FQDN) del equipo; df -h y du -sh el espacio en disco; free -h la memoria; lsblk y fdisk -l los discos; dmesg los mensajes del núcleo.
6.6. Tareas programadas: cron
El demonio cron ejecuta tareas de forma periódica según lo que diga la crontab, que se edita con crontab -e y se lista con crontab -l. Cada línea tiene cinco campos de tiempo y luego la orden, y el orden de los campos es exactamente este:
| Campo | 1.º | 2.º | 3.º | 4.º | 5.º |
|---|---|---|---|---|---|
| Significado | Minuto | Hora | Día del mes | Mes | Día de la semana |
| Valores | 0-59 | 0-23 | 1-31 | 1-12 | 0-7 (0 y 7 = domingo) |
El asterisco significa «cualquier valor». Con eso se resuelve la pregunta de 2026, que cayó en los dos modelos: la especificación 0 5 8 11 * se lee minuto 0, hora 5, día 8, mes 11, cualquier día de la semana, es decir, a las 05:00 del 8 de noviembre. Las dos confusiones que el tribunal puso al lado son leer los dos primeros campos al revés (00:05 en vez de 05:00) y los dos siguientes al revés (11 de agosto en vez del 8 de noviembre). Se admiten además listas (1,15), rangos (1-5) e intervalos (*/10 = cada diez minutos). Junto a cron están anacron, para equipos que no están siempre encendidos, y los timers de systemd, que hacen lo mismo con unidades.
6.7. Paquetes, discos, red y registros
La gestión de paquetes se hace con apt install|remove|update|upgrade y dpkg -i en la familia Debian, y con dnf, yum y rpm -i en la de Red Hat. Los registros del sistema están en /var/log —syslog, messages, auth.log, secure— y en el diario de systemd. Los discos se particionan con fdisk o parted, se formatean con mkfs, se montan con mount y se declaran de forma persistente en /etc/fstab; sobre ellos, LVM añade una capa de volúmenes lógicos redimensionables.
En red, la caja de herramientas clásica es ifconfig —que muestra la información de una interfaz concreta, por ejemplo ifconfig eth0—, route, netstat y arp, hoy sustituida por el conjunto iproute2: ip address, ip link y ip route. De este último, la variante que el tribunal preguntó es ip route get 10.30.20.30, que responde qué ruta efectiva —interfaz y siguiente salto— usaría el núcleo para llegar a esa dirección, cosa distinta de listar la tabla entera. Para diagnóstico: ping, traceroute, dig y nslookup, ss, tcpdump y nmap, que es el escáner con el que se averigua qué puertos tiene abiertos un servidor. Para copiar y conectar, ssh y scp.
Los parámetros del núcleo en caliente se tocan con sysctl y viven en /etc/sysctl.conf. Dos que ha preguntado el INAP: net.ipv4.ip_forward activa el reenvío de paquetes, y net.ipv4.conf.all.rp_filter=1 activa el filtrado de ruta inversa, que descarta los paquetes cuya dirección de origen no sería alcanzable por la interfaz por la que entraron —la contramedida contra la suplantación de IP (IP spoofing)—. Entre las herramientas de terceros que han caído: Check_MK como software de monitorización, y WireGuard como túnel VPN que opera en la capa de red y se implementa como una interfaz virtual dentro del propio núcleo de Linux.
7. Sistemas operativos para dispositivos móviles
Un sistema operativo móvil parte de las mismas piezas —núcleo, procesos, memoria, ficheros— pero se diseña bajo otras restricciones: energía limitada, pantalla táctil pequeña, conectividad intermitente, sensores y, sobre todo, un modelo de seguridad mucho más cerrado, en el que cada aplicación se instala desde una tienda, se firma digitalmente, se ejecuta aislada y pide permisos al usuario en tiempo de ejecución. La multitarea está fuertemente restringida: el sistema congela o mata las aplicaciones en segundo plano para preservar la batería.
7.1. Android
Android lo desarrolla Google al frente de la Open Handset Alliance y su base es libre (AOSP, Android Open Source Project). La respuesta que el tribunal preguntó en los dos modelos de 2026: Android se basa en el kernel de Linux —no en Mach, ni en el kernel de Windows NT, ni en un microkernel L4—. Su versión estable actual es Android 17, publicada el 16 de junio de 2026.
Su arquitectura, de abajo arriba:
- Núcleo Linux, con añadidos propios (el gestor de memoria de bajo consumo, el mecanismo de comunicación entre procesos Binder, los wakelocks).
- HAL (capa de abstracción de hardware): interfaces estándar que cada fabricante implementa para su hardware. El marco de Wi-Fi, por ejemplo, tiene tres HAL: la HAL del proveedor (vendor), la HAL de supplicant y la HAL de hostapd, disponibles como paquetes AIDL estables desde Android 14.
- Bibliotecas nativas en C/C++ y el tiempo de ejecución. Aquí está el detalle que se pregunta: las aplicaciones se compilan a bytecode Dalvik, cuyos ejecutables tienen la extensión .dex, y se empaquetan junto a sus recursos en un fichero .apk (o en el formato de distribución .aab). La máquina virtual Dalvik, con compilación just-in-time, fue sustituida como tiempo de ejecución por ART (Android Runtime) a partir de Android 5.0, que compila anticipadamente con dex2oat.
- Marco de trabajo de aplicaciones (framework) en Java/Kotlin: gestor de actividades, de paquetes, de ventanas, proveedores de contenido.
- Aplicaciones, escritas en Kotlin o Java. Para código nativo existe el NDK (Native Development Kit), que permite implementar partes en C y C++, genera bibliotecas binarias por arquitectura de procesador invocables desde Java mediante JNI, se recomienda para aplicaciones intensivas en cómputo —juegos, simulaciones— y sí permite reutilizar código y bibliotecas de terceros: negarlo era la opción falsa que el tribunal repitió en tres exámenes.
La seguridad se apoya en que cada aplicación recibe su propio UID de Linux y se ejecuta en su propio proceso, en el permiso explícito del usuario, en el arranque verificado y en el cifrado del dispositivo. Sobre AOSP, cada fabricante añade su capa de personalización: One UI de Samsung, MIUI/HyperOS de Xiaomi, OriginOS de vivo, ColorOS de OPPO. (PenPoint OS, que el tribunal coló como distractor, fue un sistema para tabletas con lápiz de los años noventa y no tiene nada que ver.) La distribución oficial es Google Play, y a la instalación desde fuera de la tienda se la llama sideloading; a la obtención de privilegios de root, rooting.
7.2. iOS
iOS es el sistema de Apple para iPhone, con sus hermanos iPadOS, watchOS, tvOS y macOS en el escritorio. A diferencia de Android es cerrado y exclusivo del hardware de Apple. Todos comparten la base Darwin, con el núcleo híbrido XNU (Mach más componentes BSD). La versión estable actual es iOS 27, publicada el 14 de septiembre de 2026 —Apple sincronizó en 2025 la numeración de todos sus sistemas con el año siguiente al de publicación, de modo que tras iOS 18 vino iOS 26—, y en el escritorio, macOS 27 «Golden Gate», publicado ese mismo día. Su predecesor, macOS 26 «Tahoe» (septiembre de 2025), fue la última versión que admite procesadores Intel.
Su arquitectura se describe en cuatro capas: Core OS, Core Services, Media y Cocoa Touch. Y su marca de identidad es el modelo de seguridad:
- Sandboxing: la técnica que garantiza que cada aplicación solo acceda a sus propios recursos y datos, encerrada en su contenedor. Es la respuesta literal de la pregunta de 2026, y no debe confundirse con jailbreaking (romper las restricciones del sistema para obtener acceso privilegiado), sideloading (instalar fuera de la tienda) ni «hypervisioning», que no existe como tal.
- Arranque seguro encadenado, Secure Enclave para claves y biometría, cifrado del dispositivo y firma obligatoria de todo el código.
- Distribución por la App Store con revisión previa.
Se desarrolla con el IDE Xcode —que no sirve solo para iOS: cubre todas las plataformas de Apple— en los lenguajes Swift y Objective-C. Swift lo creó Apple, se distribuye como código abierto con licencia Apache 2.0 y no se usa exclusivamente para iOS (también servidor y otras plataformas): afirmar lo contrario era la opción incorrecta de 2024. SwiftUI es el marco declarativo que facilita crear interfaces para cualquier dispositivo Apple. En el otro lado, .NET MAUI es el marco multiplataforma de Microsoft para aplicaciones móviles y de escritorio nativas con C# y XAML.
7.3. Gestión de la movilidad: MDM y modelos de propiedad
Cuando una organización reparte cientos de móviles necesita administrarlos centralizadamente. Eso es el MDM (Mobile Device Management), ampliado hacia el EMM (gestión de la movilidad empresarial, que añade aplicaciones y contenidos) y el UEM (gestión unificada, que mete en el mismo panel móviles, portátiles y equipos de escritorio). Un MDM permite inventariar, aplicar políticas de contraseña y cifrado, distribuir aplicaciones y borrar remotamente un terminal perdido, total o solo su parte corporativa.
El enrolamiento (enrollment) es el alta del dispositivo en el sistema: emparejar en el MDM de la organización a cada usuario con su móvil, que es la definición que dio por buena el tribunal en tres exámenes. No es dar de alta el aparato en una base de datos cualquiera, ni meterle la SIM, ni formatearlo. Entre las soluciones del mercado, Jamf es la exclusiva del ecosistema Apple, frente a las multiplataforma (Microsoft Intune, Citrix Endpoint Management, Scalefusion, Miradore).
Los modelos de propiedad se preguntan por sus siglas y se confunden entre sí:
| Modelo | Significado | De quién es el aparato |
|---|---|---|
| BYOD | Bring Your Own Device | Del empleado, que usa su propio dispositivo personal para tareas profesionales. Máxima comodidad, máximo problema de seguridad y de privacidad. |
| COPE | Corporate Owned, Personally Enabled | De la empresa, que además permite un uso personal razonable. |
| COBO | Corporate Owned, Business Only | De la empresa y solo para trabajo. El más restrictivo. |
| CYOD | Choose Your Own Device | De la empresa, pero el empleado elige el modelo de un catálogo. |
8. Virtualización y contenedores
El enunciado del tema no la nombra, pero el tribunal la pregunta sistemáticamente al lado de los sistemas operativos, con tres o cuatro preguntas por examen, así que forma parte de lo que hay que llevar preparado.
La virtualización permite ejecutar varios sistemas operativos invitados sobre una misma máquina física gracias a un hipervisor o monitor de máquina virtual:
| Tipo | Cómo se ejecuta | Ejemplos |
|---|---|---|
| Tipo 1 (nativo, bare metal) | Directamente sobre el hardware físico, sin necesidad de un sistema operativo anfitrión, y sobre él corren los invitados. Mejor rendimiento y aislamiento; es lo que se usa en el centro de datos. | VMware ESXi, Microsoft Hyper-V, KVM, Xen, Proxmox |
| Tipo 2 (alojado) | Como una aplicación más sobre un sistema operativo anfitrión. | VirtualBox, VMware Workstation/Fusion |
La infraestructura de escritorio virtual (VDI) lleva la idea al puesto de trabajo: es el alojamiento de entornos de escritorio en un servidor central, al que el usuario se conecta desde un cliente ligero. Hay dos modalidades y el tribunal las intercambia a propósito: en la persistente el usuario vuelve siempre al mismo escritorio, con sus cambios conservados; en la no persistente recibe un escritorio del grupo, que se restaura a su imagen original al cerrar sesión. Y como el escritorio vive en el servidor, hace falta conexión permanente para trabajar.
Los contenedores son otra cosa: no virtualizan la máquina, sino que aíslan procesos sobre el mismo núcleo del anfitrión usando namespaces y cgroups de Linux. Son mucho más ligeros que una máquina virtual —arrancan en milisegundos y no llevan un sistema operativo dentro—, pero comparten núcleo, así que el aislamiento es menor. LXC es la tecnología de virtualización a nivel de sistema operativo para Linux; Docker es la plataforma que popularizó el empaquetado en imágenes (una imagen se ejecuta con docker run <imagen>, se listan con docker ps y se construyen desde un Dockerfile).
Cuando los contenedores son muchos hace falta un orquestador, y ese es Kubernetes: una plataforma de orquestación de contenedores de código abierto. Su unidad mínima desplegable es el pod, y su plano de control lo forman cuatro piezas que se preguntan por separado:
| Componente | Responsabilidad |
|---|---|
| kube-apiserver | La puerta de entrada: expone la API y valida todas las peticiones. |
| etcd | El almacén clave-valor donde se guarda todo el estado del clúster. |
| kube-scheduler | Decide en qué nodo debe ejecutarse cada pod, según los recursos disponibles y las restricciones. |
| kube-controller-manager | Ejecuta los bucles de control que llevan el estado real al estado deseado. |
En cada nodo trabajador están el kubelet, que ejecuta los pods, y el kube-proxy, que gestiona la red.
9. Lo que ya ha preguntado el tribunal
Preguntas reales de exámenes oficiales del INAP que se responden con este tema. Es el tema con más presencia de todo el bloque II:
- «Dentro de los elementos constitutivos de un sistema operativo, ¿cómo se denomina a la estructura de datos que contiene información sobre un proceso?» → bloque de control de proceso (2026). Apartado 2.1.
- «¿Cuál de los siguientes algoritmos de planificación de CPU asigna un quantum de tiempo de CPU a cada proceso?» → Round Robin (2026). Apartado 2.3.
- «¿Cuál de los siguientes conceptos permite que un proceso ejecute múltiples tareas de manera simultánea o concurrente?» → los hilos (2024, dos modelos). Apartado 2.2.
- «¿Cuál de los siguientes NO es un algoritmo de planificación utilizado en sistemas Windows y Linux?» → «algoritmo de agrupación», que no existe (2023). Apartado 2.3.
- «¿Cuál es la función del kernel en un sistema operativo Unix/Linux?» → controlar los procesos, la memoria y la administración de dispositivos (2024, dos modelos). Apartado 1.4.
- «Señale la respuesta INCORRECTA sobre el kernel» → la falsa era «es el núcleo del procesador» (2023). Apartado 1.4.
- «Entre las funciones de un Sistema Operativo NO se encuentra…» → constituir el conjunto de software y hardware necesario para el funcionamiento del ordenador (2023). Apartado 1.1.
- «En un sistema UNIX, señale la respuesta INCORRECTA» → la falsa era «el proceso init se refiere al proceso de arranque de un usuario» (2023). Apartados 1.5 y 6.4.
- «En un sistema Linux, el directorio /etc contiene…» → los ficheros de configuración del sistema (2026 y 2019). Apartado 6.3.
- «¿Dónde se guardan las contraseñas encriptadas de los usuarios?» → /etc/shadow (2019). Apartado 6.4.
- «Si se ejecuta chmod 640, ¿qué permisos estoy asignando?» → lectura y escritura al propietario, lectura al grupo y ningún acceso al resto (2019). Apartado 6.4.
- «Fichero con permisos -rw-r--r--: ¿qué comando lo hace ejecutable solo por el propietario?» → chmod u+x script.sh (2026). Apartado 6.4.
- «Para renombrar el archivo PAGOS como RECIBOS…» → mv PAGOS RECIBOS (2026). Apartado 6.2.
- «Para ver en tiempo real el contenido de un fichero de registro a medida que crece…» → tail -f (2026, dos modelos). Apartado 6.2.
- «Una tarea en el Crontab con la especificación 0 5 8 11 * se ejecutará…» → a las 05:00 del día 8 de noviembre (2026, dos modelos). Apartado 6.6.
- «¿Qué orden de systemd habilita nginx automáticamente en el arranque?» → systemctl enable nginx (2026, dos modelos). Apartado 6.5.
- «¿Con qué comando sabemos qué versión del kernel tiene nuestro Ubuntu?» → uname -r (2024, tres modelos). Apartado 6.5.
- «¿Qué muestra el comando hostname -f?» → el nombre completo cualificado (FQDN) (2026). Apartado 6.5.
- «¿Qué ruta efectiva usa el kernel para llegar a 10.30.20.30?» → ip route get 10.30.20.30 (2026, dos modelos). Apartado 6.7.
- «¿Qué comando usaremos para ver la información de la interfaz eth0?» → ifconfig eth0 (2024). Apartado 6.7.
- «¿Qué opción utilizaría para conocer qué puertos tiene abiertos un servidor?» → nmap (2019). Apartado 6.7.
- «¿Qué ajuste de sysctl mitiga el IP spoofing mediante filtrado de ruta inversa?» → net.ipv4.conf.all.rp_filter=1 (2026, dos modelos). Apartado 6.7.
- «Software de monitorización para Linux» → Check_MK (2023, dos modelos). Apartado 6.7.
- «Túnel de red seguro que opera en la capa de red implementado como interfaz virtual del kernel de Linux» → WireGuard (2026). Apartado 6.7.
- «En Linux, ¿qué es LXC?» → una tecnología de virtualización en el nivel de sistema operativo (2023). Apartado 8.
- «El comando sfc /scannow…» → examina los archivos de sistema protegidos y reemplaza los dañados con una copia en caché (2024, dos modelos). Apartado 5.5.
- «¿Qué es Active Directory Domain Services?» → un servicio que almacena información sobre los objetos de la red y facilita su búsqueda y uso (2026). Apartado 5.4.
- «¿Qué objeto de AD permite aplicar políticas de contraseña diferentes dentro de un mismo dominio?» → Password Settings Object (PSO) (2026, dos modelos). Apartado 5.4.
- «Para aplicar políticas de seguridad a un grupo con GPO, primero conviene definir…» → una unidad organizativa (OU) (2024, tres modelos). Apartado 5.4.
- «¿Qué cmdlet instala el rol de Servicios de Dominio de Active Directory?» → Install-WindowsFeature -name AD-Domain-Services -IncludeManagementTools (2026, dos modelos). Apartado 5.5.
- «¿Qué herramienta gráfica nativa agrega un usuario a un grupo global desde el DC?» → Active Directory Users and Computers (dsa.msc) (2026, dos modelos). Apartado 5.5.
- «¿Qué comando da un resumen del estado de replicación entre controladores de dominio?» → repadmin /replsummary (2026, dos modelos). Apartado 5.5.
- «¿Qué cmdlet crea un nuevo sitio llamado PLANI?» → New-ADReplicationSite PLANI (2026). Apartado 5.4.
- «Copiar recursivamente el contenido de un directorio con PowerShell» → Copy-Item -Path … -Destination … -Recurse (2026, dos modelos). Apartado 5.5.
- «Nombres de los servicios en ejecución mediante PowerShell» → Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name (2026). Apartado 5.5.
- «Añadir una regla de firewall para el puerto 8443» → netsh advfirewall firewall add rule name="…" dir=in action=allow protocol=TCP localport=8443 (2026 y 2019). Apartado 5.5.
- «Comprobar y activar el perfil actual del firewall» → netsh advfirewall show currentprofile y netsh advfirewall set currentprofile state on (2026). Apartado 5.5.
- «Copia de seguridad manual de la configuración de IIS con AppCmd» → appcmd add backup "BackupManual" (2026). Apartado 5.5.
- «Comandos net de Windows» → net user, net localgroup administradores, net accounts y net start (2019). Apartado 5.5.
- «Purgar la caché de resolución DNS» → ipconfig /flushdns (2023, dos modelos, y 2019). Apartado 5.5.
- «Tabla de enrutamiento en Windows 10» → route print (2023). Apartado 5.5.
- «Conjunto resultante de directivas (RSoP)» → gpresult (2023). Apartado 5.4.
- «Dispositivo cifrado: ¿qué necesita para restaurar la copia?» → la clave de BitLocker (2019). Apartado 5.3.
- «Señale la afirmación NO correcta sobre Windows de 64 bits» → la falsa era que las RPC entre procesos de 64 y 32 bits solo se admiten en el mismo equipo (2023). Apartado 5.1.
- «¿Qué formato de disco se usa de manera nativa en Windows para volúmenes de más de 32 GB y también en macOS?» → exFAT (2026, dos modelos). Apartado 4.
- «¿Cuál es el kernel sobre el que se basa Android?» → el kernel de Linux (2026, dos modelos). Apartado 7.1.
- «¿Qué extensión tienen los archivos ejecutables Dalvik?» → .dex (2026). Apartado 7.1.
- «El framework de Wi-Fi en Android 14 y superior tiene tres HAL. ¿Cuál es uno de ellos?» → la HAL de hostapd (2026). Apartado 7.1.
- «Señale la respuesta INCORRECTA sobre Android NDK» → la falsa era «no permite la reutilización de código» (2024, tres modelos). Apartado 7.1.
- «Capas de personalización de Android: señale cuál NO lo es» → PenPoint OS (2023). Apartado 7.1.
- «Técnica que garantiza que las aplicaciones de iOS solo accedan a sus propios recursos» → sandboxing (2026, dos modelos). Apartado 7.2.
- «Señale la respuesta INCORRECTA sobre Swift» → la falsa era «se utiliza exclusivamente para iOS» (2024). Apartado 7.2.
- «¿Qué es .NET MAUI?» → un marco multiplataforma para crear aplicaciones móviles y de escritorio nativas con C# y XAML (2024, dos modelos). Apartado 7.2.
- «¿En qué consiste el enrolamiento de los móviles?» → emparejar en el MDM a cada usuario con su móvil (2024, tres modelos). Apartado 7.3.
- «¿Qué solución de gestión de dispositivos móviles es exclusiva de Apple?» → Jamf Now (2026). Apartado 7.3.
- «¿Qué modalidad permite al usuario usar su propio dispositivo personal?» → BYOD (2019). Apartado 7.3.
- «¿Qué caracteriza a un hipervisor de tipo 1?» → se ejecuta directamente sobre el hardware físico sin sistema operativo anfitrión (2026, tres modelos). Apartado 8.
- «Señale la respuesta correcta sobre VDI» → es el alojamiento de entornos de escritorio en un servidor central (2026). Apartado 8.
- «¿Qué es Kubernetes?» → una plataforma de orquestación de contenedores de código abierto (2026). Apartado 8.
- «¿Qué componente del plano de control decide en qué nodo se ejecuta un Pod?» → kube-scheduler (2026, dos modelos). Apartado 8.
- «Arrancar un contenedor a partir de una imagen llamada SW2008» → docker run SW2008 (2019). Apartado 8.
- «Cuando hablamos de Registro de Instrucción, ¿a qué nos referimos?» → al registro que contiene la última instrucción leída (2024). Apartado 1.5.
Cómo pregunta este tribunal, en cuatro reglas. Primera: la mitad de las preguntas son comandos, y las cuatro opciones son el mismo comando con una palabra cambiada —add por create, allow por permit, -Recurse por -Recursive, show por get—. No basta con saber qué hay que hacer: hay que haber escrito la orden. Segunda: repite literalmente de un año a otro y entre modelos del mismo año, así que las preguntas de esta lista son las más rentables del temario. Tercera: usa mucho el enunciado en negativo («señale la INCORRECTA»), sobre todo en Android NDK, Swift y el kernel. Y cuarta: mete virtualización, contenedores y Kubernetes junto a los sistemas operativos aunque el enunciado del tema no los nombre. Recuerda la aritmética del ejercicio: cada error descuenta un tercio de un acierto y los blancos no penalizan, así que en una pregunta de comandos en la que reconozcas dos formas imposibles, merece la pena arriesgar.
¿Te lo sabes? 🐂
Cien preguntas de este tema, escritas al estilo del cuestionario del INAP y contrastadas con los nueve exámenes oficiales que tenemos resueltos. Crea tu cuenta gratis para guardar tu progreso y repasar tus falladas. Gratis y siempre lo será.
