B2-T4: SISTEMAS OPERATIVOS — CONCEPTOS, WINDOWS Y LINUX
Tema muy extenso y de los más preguntados en el examen TAI. Los estados de un proceso, los algoritmos de planificación (FCFS, SJF, Round Robin, prioridades) y la gestión de memoria (paginación vs segmentación, page fault, algoritmos de reemplazo) son casi fijos. En Linux, preguntan permisos (chmod/chown), comandos de administración y el sistema de ficheros.
CONCEPTOS FUNDAMENTALES DEL SO
Definición y funciones
Un sistema operativo es el software que actúa como intermediario entre el hardware y las aplicaciones de usuario. Gestiona los recursos del computador (CPU, memoria, E/S, almacenamiento) y proporciona una interfaz para que los programas accedan a ellos de forma controlada.
| Función principal | Descripción |
| Gestión de procesos | Crear, planificar, sincronizar y destruir procesos e hilos |
| Gestión de memoria | Asignar/liberar memoria, memoria virtual, paginación |
| Gestión de E/S | Controladores (drivers), buffering, spooling, caché de E/S |
| Gestión de ficheros | Crear, leer, escribir, borrar; organizar en directorios |
| Gestión de almacenamiento | Sistemas de ficheros, particiones, cuotas de disco |
| Seguridad y protección | Autenticación, permisos, control de acceso a recursos |
| Interfaz de usuario | CLI (shell), GUI (escritorio), API para programadores (syscalls) |
Tipos de sistemas operativos
| Tipo | Descripción | Ejemplo |
| Monousuario, monotarea | Un usuario, un programa a la vez | MS-DOS |
| Monousuario, multitarea | Un usuario, varios programas concurrentes | Windows 10/11 (escritorio) |
| Multiusuario, multitarea | Varios usuarios simultáneos, cada uno con múltiples procesos | Linux, Unix, Windows Server |
| Tiempo real (RTOS) | Garantiza respuesta dentro de un plazo determinado (deadline) | VxWorks, FreeRTOS, QNX |
| Distribuido | Múltiples máquinas cooperando como un solo sistema | Amoeba, Plan 9 |
| Empotrado (embedded) | SO mínimo para dispositivos con recursos limitados | Zephyr, Contiki, Android Things |
Arquitecturas del kernel
| Arquitectura | Descripción | Ventaja | Desventaja | Ejemplo |
| Monolítico | Todo el SO corre en modo kernel en un solo bloque | Alto rendimiento (sin cambios de contexto entre módulos) | Fallo en un componente puede tumbar todo el SO | Linux, FreeBSD |
| Microkernel | Kernel mínimo (IPC, scheduling, memoria); servicios en espacio de usuario | Aislamiento, modularidad, estabilidad | Overhead por comunicación IPC | Minix, QNX, L4, Hurd |
| Híbrido | Mezcla: kernel con más funcionalidad que un microkernel, pero modular | Balance rendimiento/modularidad | Complejidad | Windows NT, macOS (XNU) |
| Exokernel | Kernel casi vacío; las aplicaciones gestionan hardware directamente | Máxima flexibilidad y rendimiento | Complejidad para el programador | MIT Exokernel (investigación) |
Examen: Linux = monolítico (con módulos cargables). Windows NT = híbrido. Microkernel = solo IPC + scheduling + gestión de memoria mínima en modo kernel.
Modos de ejecución
| Modo | Privilegios | Quién ejecuta |
| Modo kernel (ring 0) | Acceso completo al hardware, instrucciones privilegiadas | Kernel del SO, drivers |
| Modo usuario (ring 3) | Acceso limitado; usa syscalls para acceder a servicios del kernel | Aplicaciones de usuario |
El cambio de modo usuario a modo kernel se realiza mediante una llamada al sistema (syscall): una instrucción especial (INT 0x80 en Linux legacy, SYSCALL en x86-64, SVC en ARM) que transfiere el control al kernel de forma controlada.
GESTIÓN DE PROCESOS
Proceso vs hilo (thread)
| Característica | Proceso | Hilo (thread) |
| Definición | Programa en ejecución con su propio espacio de direcciones | Unidad de ejecución dentro de un proceso, comparte el espacio de direcciones |
| Espacio de memoria | Propio (aislado de otros procesos) | Compartido con otros hilos del mismo proceso |
| Recursos propios | Código, datos, heap, descriptores de fichero, PID | Solo: registros, pila (stack), contador de programa (PC) |
| Creación | Costosa (copiar espacio de direcciones — fork()) | Ligera (compartir espacio — pthread_create()) |
| Comunicación | IPC (pipes, sockets, shared memory, señales) | Directa (variables compartidas) — requiere sincronización |
| Fallo | Un proceso muere sin afectar a otros | Un hilo que falla puede tumbar todo el proceso |
Estados de un proceso
| Estado | Descripción | Transición hacia |
| Nuevo (new) | El proceso acaba de crearse | → Listo (admitido por el SO) |
| Listo (ready) | En cola esperando que la CPU esté disponible | → Ejecución (dispatch por el planificador) |
| Ejecución (running) | La CPU está ejecutando instrucciones del proceso | → Listo (timeout/preemption), → Bloqueado (solicita E/S), → Terminado (finaliza) |
| Bloqueado (waiting/blocked) | Esperando un evento (E/S, señal, recurso) | → Listo (evento completado) |
| Terminado (terminated) | El proceso ha finalizado su ejecución | (se liberan los recursos) |
Examen: Diagrama clásico de 5 estados. Un proceso en ejecución puede pasar a: listo (preemptive scheduling), bloqueado (espera E/S) o terminado. Un proceso bloqueado NO puede pasar directamente a ejecución — debe pasar primero a listo.
PCB (Process Control Block)
Cada proceso tiene un PCB (o descriptor de proceso) que almacena toda la información necesaria para gestionarlo:
| Campo del PCB | Contenido |
| PID | Identificador único del proceso |
| Estado | Nuevo, listo, ejecución, bloqueado, terminado |
| Contador de programa (PC) | Dirección de la próxima instrucción a ejecutar |
| Registros CPU | Valores de todos los registros cuando se interrumpió |
| Información de planificación | Prioridad, punteros a colas de scheduling |
| Información de memoria | Tabla de páginas, registros base/límite |
| Información de E/S | Ficheros abiertos, dispositivos asignados |
| Información de contabilidad | Tiempo de CPU usado, límites |
Algoritmos de planificación de CPU
| Algoritmo | Tipo | Descripción | Ventaja | Desventaja |
| FCFS (First Come First Served) | No expulsivo | Se ejecutan en orden de llegada | Simple, justo (no hay inanición) | Efecto convoy: proceso largo bloquea a los cortos |
| SJF (Shortest Job First) | No expulsivo | Se ejecuta primero el de menor ráfaga de CPU | Mínimo tiempo de espera medio | Requiere conocer la duración; inanición de procesos largos |
| SRTF (Shortest Remaining Time First) | Expulsivo | Versión preemptive de SJF | Óptimo en tiempo medio de espera | Inanición; overhead por cambios de contexto |
| Prioridades | Expulsivo o no | Cada proceso tiene una prioridad; se ejecuta el de mayor prioridad | Flexible, diferencia tipos de proceso | Inanición de procesos de baja prioridad. Solución: envejecimiento (aging) |
| Round Robin (RR) | Expulsivo | FCFS con quantum (tiempo máximo); si no termina, vuelve a la cola | Justo, buen tiempo de respuesta | Quantum pequeño → mucho overhead. Grande → degenera en FCFS |
| Colas multinivel | Expulsivo | Varias colas con distinta prioridad y algoritmo cada una | Diferencia procesos interactivos de batch | Procesos no se mueven entre colas |
| Colas multinivel con retroalimentación | Expulsivo | Los procesos pueden cambiar de cola según su comportamiento | Se adapta dinámicamente | Configuración compleja |
Examen: Round Robin es el más preguntado. El tamaño del quantum es crítico: muy pequeño = mucho overhead por context switch. Muy grande = degenera en FCFS. Valor típico: 10-100 ms. Para resolver inanición en prioridades se usa aging: incrementar la prioridad de procesos que llevan mucho tiempo esperando.
CONCURRENCIA Y SINCRONIZACIÓN
Problemas de concurrencia
| Problema | Descripción |
| Condición de carrera (race condition) | El resultado depende del orden de ejecución de procesos/hilos concurrentes sobre datos compartidos |
| Sección crítica | Segmento de código que accede a un recurso compartido y debe ejecutarse de forma exclusiva |
| Exclusión mutua | Solo un proceso/hilo puede estar en la sección crítica a la vez |
| Interbloqueo (deadlock) | Dos o más procesos esperan mutuamente un recurso que tiene el otro — ninguno avanza |
| Inanición (starvation) | Un proceso nunca obtiene el recurso porque otros siempre se lo quitan |
| Livelock | Los procesos cambian de estado continuamente reaccionando al otro pero sin avanzar |
Condiciones de Coffman para deadlock
Un deadlock solo puede ocurrir si se cumplen las 4 condiciones simultáneamente (Coffman, 1971):
| Condición | Descripción |
| 1. Exclusión mutua | Al menos un recurso se usa en modo no compartible |
| 2. Retención y espera | Un proceso retiene un recurso mientras espera obtener otro |
| 3. No expropiación | Los recursos no se pueden quitar a un proceso que los tiene |
| 4. Espera circular | Existe una cadena circular de procesos donde cada uno espera un recurso del siguiente |
Mecanismos de sincronización
| Mecanismo | Descripción | Uso |
| Mutex | Cerrojo binario (locked/unlocked). Solo el hilo que lo bloqueó puede desbloquearlo | Proteger sección crítica (exclusión mutua) |
| Semáforo | Contador entero con operaciones atómicas wait() (P) y signal() (V). Binario (0/1) o contador (≥0) | Exclusión mutua (binario), control de N recursos (contador) |
| Monitor | Abstracción de alto nivel: módulo con datos privados y procedimientos con exclusión mutua implícita + variables de condición | Lenguajes OO (Java synchronized, C# lock) |
| Spin lock | Bucle activo (busy waiting) comprobando la disponibilidad del cerrojo | Secciones críticas muy cortas en SMP |
| Barrera | Punto de sincronización donde todos los hilos deben llegar antes de continuar | Computación paralela, fases de trabajo |
| Read-Write Lock | Permite múltiples lectores simultáneos pero exclusividad para escritores | Datos leídos con frecuencia, escritos raramente |
Examen: Semáforo inventado por Dijkstra. P (proberen = intentar) decrementa; V (verhogen = incrementar) incrementa. Un semáforo binario es similar a un mutex, pero un semáforo puede ser señalizado por cualquier hilo (no solo el que hizo wait).
Problemas clásicos de concurrencia
| Problema | Descripción | Concepto que ilustra |
| Productor-Consumidor | Productor genera datos en un buffer; consumidor los retira | Semáforos (buffer lleno/vacío), mutex |
| Lectores-Escritores | Múltiples lectores simultáneos, escritores exclusivos | Read-write locks, inanición de escritores |
| Filósofos comensales | 5 filósofos, 5 tenedores: comen con 2 tenedores, deben evitar deadlock | Deadlock, inanición, ordenación de recursos |
GESTIÓN DE MEMORIA
Jerarquía de memoria (repaso)
| Nivel | Tecnología | Velocidad | Tamaño | Gestionado por |
| Registros | Flip-flops | <1 ns | ~KB | Compilador/ISA |
| Caché L1/L2/L3 | SRAM | 1-20 ns | KB-MB | Hardware (CPU) |
| RAM | DRAM (DDR) | 50-100 ns | GB | SO (gestión de memoria) |
| Almacenamiento | SSD/HDD | μs-ms | TB | SO (sistema de ficheros) |
Técnicas de gestión de memoria
| Técnica | Descripción | Fragmentación |
| Particiones fijas | Memoria dividida en particiones de tamaño fijo. Cada proceso ocupa una partición completa | Interna (espacio no usado dentro de la partición) |
| Particiones variables | Particiones del tamaño exacto del proceso. Se crean/destruyen dinámicamente | Externa (huecos entre particiones que no son suficientemente grandes) |
| Paginación | Memoria dividida en marcos (frames) de tamaño fijo. El espacio lógico del proceso se divide en páginas del mismo tamaño | Interna (solo en la última página) |
| Segmentación | Espacio lógico dividido en segmentos de tamaño variable (código, datos, pila) | Externa |
| Segmentación paginada | Combina ambas: segmentos que se paginan internamente | Mínima (interna en última página) |
Examen: Paginación elimina la fragmentación externa (todos los marcos son iguales, se pueden usar en cualquier orden). Segmentación tiene fragmentación externa (segmentos de distintos tamaños). La fragmentación interna es despreciable en paginación (solo la última página parcial).
Paginación: detalle
| Concepto | Descripción |
| Página | Bloque de tamaño fijo del espacio lógico del proceso (típicamente 4 KB) |
| Marco (frame) | Bloque de tamaño fijo de la memoria física (mismo tamaño que una página) |
| Tabla de páginas | Estructura que mapea número de página lógica → número de marco físico |
| TLB (Translation Lookaside Buffer) | Caché hardware de la tabla de páginas para acelerar la traducción |
| Dirección lógica | Número de página (p) + desplazamiento dentro de la página (d) |
| Dirección física | Número de marco (f) + desplazamiento (d) — el desplazamiento es el mismo |
| Bit de validez | Indica si la página está en memoria física (1) o no (0 → page fault) |
| Bit de modificación (dirty) | Indica si la página ha sido escrita. Si es dirty, se debe escribir a disco al reemplazarla |
Memoria virtual
La memoria virtual permite a los procesos usar más memoria de la que existe físicamente. Las páginas no residentes en RAM se almacenan en el área de swap (espacio en disco).
| Concepto | Descripción |
| Page fault | Interrupción que se genera cuando se accede a una página que no está en memoria física |
| Swap out | Mover una página de RAM a disco (swap) |
| Swap in | Traer una página de disco a RAM |
| Thrashing | El sistema pasa más tiempo haciendo swap que ejecutando — rendimiento colapsa |
| Working set | Conjunto de páginas que un proceso está usando activamente en un momento dado |
Algoritmos de reemplazo de páginas
| Algoritmo | Descripción | Rendimiento |
| Óptimo (OPT / Bélády) | Reemplaza la página que no se usará durante más tiempo en el futuro | Teóricamente óptimo — imposible de implementar (requiere conocimiento del futuro) |
| FIFO | Reemplaza la página más antigua (primera en entrar) | Simple pero sufre la anomalía de Bélády (más marcos → más page faults) |
| LRU (Least Recently Used) | Reemplaza la página que lleva más tiempo sin ser accedida | Buen rendimiento, pero costoso de implementar exactamente |
| NRU (Not Recently Used) | Clasifica páginas por bits de referencia y modificación; reemplaza la menos usada/modificada | Aproximación barata a LRU |
| Reloj (Clock / Second Chance) | FIFO mejorado: si la página tiene bit de referencia=1, se le da otra oportunidad (se pone a 0 y se avanza) | Buena aproximación a LRU, eficiente de implementar |
| LFU (Least Frequently Used) | Reemplaza la página con menor contador de accesos | Puede retener páginas viejas muy usadas |
Examen: La anomalía de Bélády solo afecta a FIFO: al añadir más marcos de memoria, pueden aumentar los page faults. LRU y OPT NO sufren esta anomalía (son algoritmos de pila). El algoritmo del reloj es el más usado en la práctica por su buen balance rendimiento/complejidad.
SISTEMAS DE FICHEROS
Comparativa de sistemas de ficheros
| Sistema de ficheros | SO | Tamaño máx. archivo | Tamaño máx. volumen | Journaling | Características |
| FAT32 | Universal | 4 GB | 2 TB | No | Compatible con todo, USBs, tarjetas SD |
| exFAT | Universal | 16 EB (teórico) | 128 PB | No | Evolución de FAT32 sin límite de 4 GB, sin journaling |
| NTFS | Windows | 16 EB (teórico) | 256 TB (práctico) | Sí | ACLs, cifrado (EFS), compresión, cuotas, hard/soft links |
| ReFS | Windows Server | 35 PB | 35 PB | Sí (integridad) | Integridad de datos, autoreparación, sin compresión de archivos |
| ext3 | Linux | 2 TB | 16 TB (4KB std) | Sí | Antecesor de ext4. Límite 32 TB solo con bloques 8KB no estándar. Velilla: 16 TB |
| ext4 | Linux | 16 TB | 1 EB | Sí | Estándar en Linux, extents, asignación retardada |
| XFS | Linux | 8 EB | 8 EB | Sí | Alto rendimiento, excelente para archivos grandes, RHEL default |
| Btrfs | Linux | 16 EB | 16 EB | Sí (CoW) | Copy-on-Write, snapshots, subvolúmenes, checksums |
| ZFS | FreeBSD, Linux | 16 EB | 256 ZB | Sí (CoW) | Integridad (checksums), deduplicación, RAID-Z, snapshots |
| APFS | macOS, iOS | 8 EB | - | Sí (CoW) | Optimizado para SSD, clones, snapshots, cifrado nativo |
Examen: ext4 es el estándar de Linux por defecto. NTFS es el estándar de Windows. FAT32 tiene el límite de 4 GB por archivo. ZFS y Btrfs usan Copy-on-Write (no sobrescriben datos, escriben en nueva ubicación y actualizan puntero — protección contra corrupción).
Estructura de un sistema de ficheros Unix/Linux
| Componente | Descripción |
| Superbloque | Metadatos del sistema de ficheros: tamaño, nº bloques, nº inodos, estado |
| Tabla de inodos | Array de inodos; cada inodo contiene metadatos de un archivo |
| Inodo | Estructura con: permisos, propietario, tamaño, timestamps, punteros a bloques de datos. NO contiene el nombre del archivo |
| Bloques de datos | Contienen el contenido real de los archivos |
| Directorio | Archivo especial que mapea nombres → números de inodo |
Punteros de inodo (ext4)
| Tipo de puntero | Niveles de indirección | Alcance (bloques de 4 KB) |
| 12 punteros directos | 0 | 48 KB |
| 1 puntero indirecto simple | 1 | +4 MB |
| 1 puntero indirecto doble | 2 | +4 GB |
| 1 puntero indirecto triple | 3 | +4 TB |
ext4 en la práctica usa extents (rangos contiguos de bloques) en lugar de punteros individuales — mucho más eficiente para archivos grandes.
LINUX: ADMINISTRACIÓN Y COMANDOS
Jerarquía de directorios (FHS — Filesystem Hierarchy Standard)
| Directorio | Contenido |
/ | Raíz del sistema de ficheros |
/bin | Binarios esenciales del sistema (ls, cp, mv, cat, bash) |
/sbin | Binarios de administración del sistema (fdisk, iptables, init) |
/etc | Ficheros de configuración del sistema |
/home | Directorios personales de los usuarios |
/root | Directorio personal del usuario root |
/var | Datos variables: logs (/var/log), mail, spool, caché |
/tmp | Archivos temporales (se borra en cada reinicio) |
/usr | Programas de usuario: /usr/bin, /usr/lib, /usr/share |
/opt | Software de terceros instalado manualmente |
/dev | Archivos de dispositivo (todo en Linux es un fichero) |
/proc | Sistema de ficheros virtual con información de procesos y kernel |
/sys | Sistema de ficheros virtual con información de hardware y drivers |
/boot | Kernel, initramfs, configuración de GRUB |
/lib | Librerías compartidas esenciales y módulos del kernel |
/mnt, /media | Puntos de montaje para dispositivos externos |
Permisos en Linux/Unix
Cada fichero tiene 3 categorías de permisos: propietario (u), grupo (g) y otros (o). Cada categoría puede tener: lectura (r=4), escritura (w=2) y ejecución (x=1).
| Permiso | Fichero | Directorio | Valor octal |
| r (read) | Leer el contenido | Listar el contenido (ls) | 4 |
| w (write) | Modificar el contenido | Crear/borrar archivos dentro | 2 |
| x (execute) | Ejecutar como programa | Acceder/entrar al directorio (cd) | 1 |
| Ejemplo | Notación simbólica | Notación octal | Significado |
| rwxr-xr-x | u=rwx, g=rx, o=rx | 755 | Propietario: todo. Grupo y otros: leer y ejecutar |
| rw-r--r-- | u=rw, g=r, o=r | 644 | Propietario: leer/escribir. Resto: solo leer |
| rwx------ | u=rwx, g=-, o=- | 700 | Solo el propietario tiene acceso |
| rw-rw---- | u=rw, g=rw, o=- | 660 | Propietario y grupo: leer/escribir |
Permisos especiales
| Permiso | Valor octal | Efecto en fichero | Efecto en directorio |
| SUID (Set User ID) | 4000 | Se ejecuta con los permisos del propietario del fichero (ej: /usr/bin/passwd) | Sin efecto |
| SGID (Set Group ID) | 2000 | Se ejecuta con los permisos del grupo del fichero | Los archivos creados dentro heredan el grupo del directorio |
| Sticky bit | 1000 | Sin efecto | Solo el propietario del archivo (o root) puede borrarlo (ej: /tmp) |
Comandos esenciales de Linux
| Categoría | Comando | Descripción |
| Ficheros y directorios | ls -la | Listar con permisos, propietario, tamaño, fecha |
cp -r origen destino | Copiar (recursivo con -r) |
mv origen destino | Mover o renombrar |
rm -rf ruta | Borrar recursivamente sin preguntar |
mkdir -p ruta | Crear directorio (con padres si no existen) |
find /ruta -name "*.log" | Buscar archivos por nombre/criterio |
ln -s destino enlace | Crear enlace simbólico (soft link) |
| Permisos | chmod 755 archivo | Cambiar permisos (octal) |
chmod u+x archivo | Cambiar permisos (simbólico) |
chown usuario:grupo archivo | Cambiar propietario y grupo |
chgrp grupo archivo | Cambiar solo el grupo |
umask 022 | Máscara de permisos por defecto (nuevos archivos: 644, directorios: 755) |
| Procesos | ps aux | Listar todos los procesos |
top / htop | Monitor de procesos en tiempo real |
kill -9 PID | Enviar señal SIGKILL (terminar inmediatamente) |
kill -15 PID | Enviar señal SIGTERM (terminar limpiamente) |
nice -n 10 comando | Ejecutar con prioridad reducida (nice va de -20 a 19) |
| Usuarios | useradd -m usuario | Crear usuario con home directory |
usermod -aG grupo usuario | Añadir usuario a un grupo |
passwd usuario | Cambiar contraseña |
su - usuario | Cambiar a otro usuario (con su entorno) |
| Red | ip addr / ifconfig | Ver configuración de interfaces de red |
ss -tlnp / netstat -tlnp | Ver puertos en escucha |
ping host | Verificar conectividad (ICMP Echo) |
traceroute host | Trazar ruta hasta el destino |
| Disco y FS | df -h | Espacio libre en sistemas de ficheros montados |
du -sh directorio | Tamaño de un directorio |
mount /dev/sda1 /mnt | Montar un sistema de ficheros |
fdisk /dev/sda | Gestionar particiones de disco |
| Texto y filtros | grep -r "patrón" /ruta | Buscar texto en ficheros (recursivo) |
awk '{print $1}' archivo | Procesamiento de texto por columnas |
sed 's/viejo/nuevo/g' archivo | Sustitución de texto en ficheros |
cat, head, tail, wc | Ver, inicio, final, contar líneas/palabras |
| Sistema | systemctl start/stop/restart servicio | Gestionar servicios (systemd) |
journalctl -u servicio | Ver logs de un servicio (systemd) |
crontab -e | Editar tareas programadas del usuario |
Señales más importantes
| Señal | Número | Acción | Captuable |
| SIGHUP | 1 | Hangup — recargar configuración | Sí |
| SIGINT | 2 | Interrupción (Ctrl+C) | Sí |
| SIGKILL | 9 | Terminar inmediatamente | No (no se puede capturar ni ignorar) |
| SIGTERM | 15 | Terminar limpiamente (señal por defecto de kill) | Sí |
| SIGSTOP | 19 | Pausar el proceso | No |
| SIGCONT | 18 | Reanudar proceso pausado | Sí |
Formato crontab
Formato: minuto hora día_mes mes día_semana comando
| Campo | Rango | Especiales |
| Minuto | 0-59 | * (todos), */5 (cada 5), 1,15,30 (lista) |
| Hora | 0-23 | Igual |
| Día del mes | 1-31 | Igual |
| Mes | 1-12 | Igual |
| Día de la semana | 0-7 (0 y 7 = domingo) | Igual |
Ejemplo: 30 2 * * 1 = todos los lunes a las 02:30. 0 */6 * * * = cada 6 horas.
WINDOWS: CONCEPTOS CLAVE
Arquitectura Windows NT
| Componente | Descripción |
| HAL (Hardware Abstraction Layer) | Capa inferior que abstrae el hardware del resto del kernel |
| Kernel (ntoskrnl.exe) | Planificación de hilos, manejo de interrupciones, sincronización |
| Executive | Servicios de alto nivel: gestión de memoria, procesos, E/S, seguridad, registro |
| Subsistemas de entorno | Win32, POSIX (WSL), proporcionan las APIs a las aplicaciones |
| Registro de Windows | Base de datos jerárquica de configuración (claves HKLM, HKCU, etc.) |
Claves del registro de Windows
| Clave raíz | Abreviatura | Contenido |
| HKEY_LOCAL_MACHINE | HKLM | Configuración global del sistema (hardware, software, seguridad) |
| HKEY_CURRENT_USER | HKCU | Configuración del usuario actual |
| HKEY_USERS | HKU | Todos los perfiles de usuario cargados |
| HKEY_CLASSES_ROOT | HKCR | Asociaciones de extensión de fichero, COM objects |
| HKEY_CURRENT_CONFIG | HKCC | Perfil de hardware actual (subconjunto de HKLM) |
Active Directory: conceptos
| Concepto | Descripción |
| Active Directory (AD) | Servicio de directorio de Microsoft para gestión centralizada de identidades y recursos |
| Dominio | Unidad administrativa básica; comparte base de datos de directorio y políticas |
| Controlador de dominio (DC) | Servidor que almacena la réplica del directorio y autentica usuarios |
| Bosque (forest) | Conjunto de árboles de dominio con relaciones de confianza |
| OU (Organizational Unit) | Contenedor para organizar objetos y aplicar GPOs |
| GPO (Group Policy Object) | Conjunto de políticas que se aplican a usuarios/equipos de una OU/dominio |
| LDAP | Protocolo estándar para consultar el directorio (puerto 389, LDAPS 636) |
| Kerberos | Protocolo de autenticación usado por AD (tickets TGT y TGS, puerto 88) |
ARRANQUE DEL SISTEMA
Proceso de arranque
| Fase | BIOS/MBR (legacy) | UEFI/GPT (moderno) |
| 1. Firmware | BIOS ejecuta POST (Power-On Self Test) | UEFI ejecuta POST + inicialización hardware |
| 2. Bootloader | Lee MBR (512 bytes, sector 0). Carga bootloader (GRUB stage 1/1.5/2) | Lee tabla GPT. Busca partición EFI (ESP, FAT32). Ejecuta .efi |
| 3. Kernel | Bootloader carga kernel + initramfs en memoria | Igual |
| 4. Init | Kernel monta root FS y ejecuta init (PID 1) | Kernel monta root FS y ejecuta systemd (PID 1) |
| 5. Servicios | SysV init ejecuta scripts en /etc/rc.d/ | systemd arranca units en paralelo |
BIOS vs UEFI
| Característica | BIOS | UEFI |
| Año de origen | 1981 (IBM PC) | ~2005 (Intel EFI → UEFI) |
| Modo de CPU | 16 bits (real mode) | 32/64 bits |
| Tabla de particiones | MBR (máx. 4 primarias, 2 TB) | GPT (128 particiones, 9,4 ZB) |
| Partición de arranque | MBR en sector 0 | ESP (EFI System Partition, FAT32) |
| Secure Boot | No | Sí (verifica firma digital del bootloader) |
| Interfaz | Texto | Gráfica (ratón soportado) |
SysV init vs systemd
| Característica | SysV init | systemd |
| Arranque | Secuencial (scripts /etc/init.d/) | Paralelo (units con dependencias) |
| Configuración | Shell scripts | Ficheros .service declarativos |
| Runlevels / targets | 0-6 (0=halt, 1=single, 3=multi, 5=GUI, 6=reboot) | targets (multi-user.target, graphical.target) |
| Gestión | service, chkconfig | systemctl, journalctl |
| Logs | Ficheros de texto en /var/log/ | Journal binario (journald) |
| PID 1 | /sbin/init | /usr/lib/systemd/systemd |
Examen: systemd ha reemplazado a SysV init en la mayoría de distribuciones modernas (RHEL 7+, Ubuntu 15.04+, Debian 8+). Ventaja principal: arranque paralelo (más rápido). El equivalente de runlevel 3 en systemd es multi-user.target; runlevel 5 = graphical.target.
FUENTES PÚBLICAS
Este resumen ha sido elaborado íntegramente a partir de fuentes de dominio público. No se ha utilizado material con copyright de terceros ni material de preparadores.
| Fuente | Tipo | Referencia |
| Documentación del kernel Linux | Documentación oficial | kernel.org (GPL) |
| FHS — Filesystem Hierarchy Standard | Estándar | Linux Foundation |
| systemd documentation | Documentación oficial | freedesktop.org |
| Microsoft Docs — Windows, AD, NTFS | Documentación oficial | learn.microsoft.com |