Sistemas Operativos

Gestión de Recursos, Memoria, Archivos y Seguridad

Plataformas Tecnológicas - SPEED

¿Qué es un Sistema Operativo?

El sistema operativo es el software fundamental que gestiona los recursos hardware y provee servicios para las aplicaciones.

Actúa como intermediario entre el usuario y el hardware, permitiendo la ejecución eficiente de programas y la administración de recursos.

Dato Clave

Un sistema operativo moderno puede gestionar simultáneamente procesos, memoria, almacenamiento, dispositivos y redes, todo mientras mantiene seguridad y rendimiento.

Componentes Principales

Componentes de un SO
  • Kernel Núcleo
  • Administrador de Memoria RAM/VM
  • Planificador Procesos
  • Sistema de Archivos Almacenamiento
  • Seguridad Permisos

Tipos de Sistemas Operativos

Comparativa de Sistemas Operativos

Tipo Características Ventajas Ejemplos
Monousuario Un usuario a la vez Sencillez MS-DOS
Multiusuario Múltiples usuarios Compartición de recursos Linux, Unix
Monotarea Una tarea a la vez Predecibilidad Windows 3.1
Multitarea Múltiples tareas Eficiencia Windows 10, macOS
Móviles Optimizados para touch Bajo consumo Android, iOS
Linux

Características: Kernel monolítico, multiusuario, multitarea.

Licencia: GPL

Altamente personalizable

Curva de aprendizaje

# Comando básico en Linux
ls -l /usr/bin | grep python
Windows

Características: Kernel híbrido, interfaz gráfica avanzada.

Licencia: Propietario

Amplia compatibilidad

Vulnerabilidades

# Comando PowerShell
Get-Process | Where CPU -gt 10
macOS

Características: Basado en Unix, diseño elegante.

Licencia: Propietario

Estabilidad

Limitado a hardware Apple

# Comando Terminal
sudo lsof -i :8080
Android

Características: Basado en Linux, optimizado para móviles.

Licencia: Apache

Ecosistema de apps

Fragmentación

# Comando ADB
adb shell pm list packages

Gestión de Memoria

El sistema operativo debe administrar eficientemente la memoria física y virtual para múltiples procesos.

Particionamiento

Descripción: Divide la memoria en secciones fijas o variables.

+-------------------+
| Proceso A         |
+-------------------+
| Proceso B         |
+-------------------+
| Libre             |
+-------------------+

Problemas:

  • Fragmentación externa
  • Tamaños fijos ineficientes

Paginación

Descripción: Divide memoria en páginas de tamaño fijo.

Memoria Física     Tabla de Páginas
+-----------+      +-----+-------+
| Página 0  |<-----| 0   | Marco3|
+-----------+      +-----+-------+
| Página 1  |      | 1   | Marco1|
+-----------+      +-----+-------+
| Página 2  |      | 2   | Marco0|
+-----------+      +-----+-------+

Ventajas:

  • No fragmentación externa
  • Memoria virtual posible

Segmentación

Descripción: Divide memoria en segmentos lógicos.

Memoria Lógica
+-------------------+
| Código            |
+-------------------+
| Datos             |
+-------------------+
| Pila              |
+-------------------+
| Heap              |
+-------------------+

Ventajas:

  • Visión lógica para el programa
  • Protección por segmento

Memoria Virtual

Descripción: Extiende memoria usando almacenamiento secundario.

+-------------------+     +-------------------+
| Memoria Principal |<--->| Disco (Swap)      |
| Páginas activas   |     | Páginas inactivas |
+-------------------+     +-------------------+

Mecanismos:

  • Paginación por demanda
  • Reemplazo de páginas (LRU)

Algoritmos de Reemplazo de Páginas

FIFO

Primera entrada, primera salida. Reemplaza la página más antigua.

Referencias: 1, 3, 0, 3, 5, 6
Marcos: [1, 3, 0] -> [3, 0, 5] 
Fallo de página en 5
LRU

Menos recientemente usado. Reemplaza la página no usada por más tiempo.

Referencias: 1, 2, 1, 0, 3, 0
Marcos: [1, 2, 0] -> [1, 0, 3]
Fallo de página en 3
Óptimo

Reemplaza la página que no se usará por más tiempo (ideal teórico).

Referencias: 0, 1, 2, 0, 1, 3
Marcos: [0, 1, 2] -> [0, 1, 3]
Fallo de página en 3

Sistemas de Archivos

Estructura de Archivos

Los sistemas de archivos organizan los datos en dispositivos de almacenamiento.

# Estructura típica en Unix/Linux
/ (root)
├── bin   (binarios esenciales)
├── etc   (configuraciones)
├── home  (usuarios)
├── var   (datos variables)
└── tmp   (temporales)
Tipos comunes:
  • FAT32: Compatible, sin permisos
  • NTFS: Windows, journaling
  • ext4: Linux, journaling
  • APFS: macOS, optimizado para SSD

Operaciones con Archivos

Las llamadas al sistema permiten manipular archivos desde programas.

Operación Descripción Llamada al sistema
Abrir Prepara archivo para acceso open()
Leer Obtener datos del archivo read()
Escribir Guardar datos en archivo write()
Cerrar Liberar recursos del archivo close()
Ejemplo en C:
#include <fcntl.h>
int main() {
    int fd = open("archivo.txt", O_RDWR);
    char buf[100];
    read(fd, buf, 100);
    write(fd, "Hola", 4);
    close(fd);
    return 0;
}

Permisos y Seguridad

Permisos en Unix/Linux:
# Estructura de permisos
-rwxr-xr-- 1 user group 1024 Jun 10 archivo.txt
↑↑↑↑↑↑↑↑↑
|||||||||
|||||||+-- Otros: lectura
||||||+--- Otros: ejecución
|||||+---- Grupo: escritura
||||+----- Grupo: ejecución
|||+------ Grupo: lectura
||+------- Usuario: escritura
|+-------- Usuario: ejecución
+--------- Tipo de archivo (- = archivo, d = directorio)
Comandos útiles:
# Cambiar permisos (modo octal)
chmod 755 archivo.sh  # rwxr-xr-x

# Cambiar dueño/grupo
chown usuario:grupo archivo.txt

# Ver permisos extendidos
ls -l /path/to/file

# Cambiar permisos recursivo
chmod -R 644 directorio/

Seguridad y Protección

Mecanismos de Seguridad

Principios Básicos:
  • Autenticación: Verificar identidad
  • Autorización: Determinar permisos
  • Confidencialidad: Proteger datos sensibles
  • Integridad: Prevenir modificaciones no autorizadas
  • Disponibilidad: Garantizar acceso legítimo
Modelos de Seguridad:
DAC (Discretionary Access Control)

El dueño del recurso decide los permisos. Ejemplo: permisos Unix (rwx).

MAC (Mandatory Access Control)

Políticas centralizadas definen accesos. Usado en entornos militares (SELinux).

Amenazas Comunes:
Malware: Virus, gusanos, ransomware que explotan vulnerabilidades del SO.
Privilege Escalation: Usuarios que ganan acceso no autorizado a recursos.

Protección Práctica en Sistemas

Hardening de Sistemas:
# Linux - Deshabilitar servicios innecesarios
sudo systemctl disable telnet.socket

# Windows - Habilitar firewall avanzado
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

# macOS - Habilitar SIP (System Integrity Protection)
csrutil enable
Auditoría de Seguridad:
Herramienta Propósito SO
Lynis Auditoría Linux/macOS Unix-like
Windows Defender ATP Protección avanzada Windows
OpenSCAP Escaneo de vulnerabilidades Multiplataforma
Ejemplo de Política de Contraseñas:
# Linux - Configurar PAM (Pluggable Authentication Modules)
/etc/pam.d/common-password:
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1

# Windows - Política de Grupo
gpedit.msc → Directivas de cuenta: longitud mínima 12, complejidad habilitada

Recursos Adicionales

Proyectos Prácticos