Unidad 1: Introducción a Sistemas Operativos
🎯 Introducción a Sistemas Operativos
Introducción
Un Sistema Operativo es el software fundamental que controla todos los recursos de una computadora y gestiona las interacciones entre el usuario, aplicaciones y hardware. En Abacom, entender profundamente qué es un SO y cómo funciona es crítico para administrar servidores, resolver problemas de infraestructura y tomar decisiones arquitectónicas correctas.
Tiempo de lectura: ~20 minutos
Nivel: Principiante
Requisitos previos: Conceptos básicos de computadoras
🗺️ En este tema aprenderás
En esta unidad cubriremos:
¿Qué es un Sistema Operativo? - Definición, rol y responsabilidades
Componentes Principales - Kernel, shell, drivers y utilidades
Funciones Esenciales - Gestión de recursos, procesos y memoria
Diferencias entre SOs - Comparativa entre Windows, macOS y Linux
Por qué existe Linux - Historia, filosofía y ventajas
¿Qué es un Sistema Operativo?
Definición clara:
Un Sistema Operativo (SO) es un programa especial que actúa como intermediario entre el usuario y el hardware. Su función principal es gestionar todos los recursos de la computadora (memoria, procesador, disco duro, dispositivos periféricos) y permitir que otros programas funcionen correctamente (POSIX.1-2017 2017).
- Impacto directo: Sin un SO, no podrías ejecutar ningún programa. El SO es lo que permite que todo funcione.
- En Abacom: Necesitamos entender cómo el SO gestiona servidores para optimizar rendimiento y resolver problemas.
- Ventaja profesional: Un administrador que entiende el SO puede diagnosticar 80% de problemas sin herramientas externas.
Kernel vs Shell
Definición clara:
Aunque a menudo se confunden, son dos cosas diferentes:
- Kernel: El núcleo del SO. Controla directamente el hardware y gestiona procesos, memoria y dispositivos.
- Shell: La “interfaz” entre el usuario y el kernel. Es lo que ves en terminal - interpreta tus comandos y le dice al kernel qué hacer.
El kernel trabaja en “modo privilegiado” (ring 0), lo que significa tiene acceso total al hardware. Los programas normales corren en “modo usuario” (ring 3) con permisos limitados. Esta separación es crítica para la seguridad.
💡 Ejemplos Prácticos
Linux
BASH
# Ver información del SO en Linux
$ uname -a
Linux servidor-abacom 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 5 09:29:34 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
# Información adicional
$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="Ubuntu 22.04.4 LTS"Explicación:
- uname -a: Muestra nombre del kernel, versión y arquitectura
- En Linux: Kernel es “Linux 5.15.0” en arquitectura “x86_64” (64 bits)
- Resultado: Información técnica para administración de servidores
macOS
BASH
# Ver información del SO en macOS
$ uname -a
Darwin macbook-pro 23.3.0 Darwin Kernel Version 23.3.0 arm64
# Versión del sistema macOS
$ sw_vers
ProductName: macOS
ProductVersion: 14.2.1
BuildVersion: 23C71Explicación:
- uname -a: Muestra “Darwin” (kernel de macOS) en arquitectura arm64 (Apple Silicon) o x86_64 (Intel)
- sw_vers: Muestra versión específica de macOS instalado
- Resultado: macOS es basado en Unix, compatible con comandos Linux
Windows
POWERSHELL
# Ver información del SO en Windows (PowerShell)
PS> systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
OS Name: Microsoft Windows 11 Professional
OS Version: 10.0.22621 Build 22621
System Type: x64-based PC
# Alternativa más detallada
PS> Get-ComputerInfo -Property osname, osversion, systemskufamilyExplicación:
- systeminfo: Muestra información detallada del sistema
- findstr: Filtra solo líneas específicas (similar a grep en Linux)
- Resultado: Windows usa arquitectura x64 (equivalente a x86_64 en Linux)
Linux
BASH
# Listar procesos en ejecución en Linux
$ ps aux | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 10960 5216 ? Ss 10:23 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 10:23 0:00 [kthreadd]
systemd+ 560 0.0 0.2 89456 3564 ? Ss 10:23 0:00 /lib/systemd/systemd-resolved
# Ver solo procesos de tu usuario
$ ps ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
diego 5432 0.0 0.5 234567 8912 pts/0 S+ 14:35 0:00 bashCómo funciona:
- ps aux: Lista todos los procesos del sistema con detalles completos
- PID: Identificador único de proceso
- %CPU / %MEM: Porcentaje de CPU y memoria que usa
- STAT: Estado del proceso (Ss = running, S = sleeping)
macOS
BASH
# Listar procesos en macOS
$ ps aux | head -10
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
root 1 0.0 0.1 4348784 16564 ?? Ss Wed01PM 0:32.54 /sbin/launchd
root 46 0.0 0.0 4484408 5232 ?? Ss Wed01PM 0:16.32 /usr/sbin/syslogd
_windowserver 108 1.5 1.2 5672744 201456 ?? Ss Wed01PM 15:24.32 /System/Library/PrivateFrameworks/SkyLight.framework/Versions/A/Resources/WindowServer
# Ver procesos más legiblemente
$ top -l 1 -n 10Cómo funciona:
- Similar a Linux pero con columnas ligeramente diferentes
- STARTED: Cuándo se inició el proceso
- WindowServer: Proceso especial de macOS para gráficos
Windows
POWERSHELL
# Ver procesos en Windows (PowerShell)
PS> Get-Process | Select-Object Name, Id, CPU, Memory | Sort-Object Memory -Descending | Select-Object -First 10
Name Id CPU Memory
---- -- --- ------
svchost 1234 1.5 523264
explorer 5678 2.3 456789
chrome 9012 8.5 1234567
python 3456 0.1 234567
# Alternativa: usar tasklist
PS> tasklist /V | findstr "python"Cómo funciona:
- Get-Process: Obtiene lista de procesos activos
- Id: Identificador único (equivalente a PID en Linux)
- Memory: Uso de memoria en bytes
- tasklist: Comando clásico de Windows para listar procesos
Linux (Servidor de Producción)
BASH
# En un servidor Linux de Abacom, verificar recursos del sistema
$ free -h
total used free shared buff/cache available
Mem: 15.6G 3.2G 9.1G 256M 3.3G 12.0G
Swap: 4.0G 0.0B 4.0G
# Ver carga del servidor
$ uptime
14:35:42 up 247 days, 3:42, 2 users, load average: 0.85, 0.92, 0.88
# Ver procesos principales de la aplicación
$ ps aux | grep "python\|node\|java"Por qué lo usamos en Abacom:
- Monitorear memoria disponible para aplicaciones críticas
- Detectar si el servidor está bajo carga (load average)
- Uptime de 247 días = Excelente estabilidad
- Planificar upgrades de hardware si es necesario
macOS (Máquina de Desarrollo)
BASH
# En una Mac de desarrollo de Abacom
$ memory_pressure
System memory pressure level: 2 (elevated)
Physical memory: 16GB
# Ver recursos del sistema
$ top -l 1 -stats cpu,mem -n 5
# Memoria disponible
$ vm_statPor qué lo usamos en Abacom:
- Verificar que tenemos suficiente RAM para Docker/VirtualBox
- Monitorear si las herramientas de desarrollo están consumiendo demasiado
- Detectar memory leaks en aplicaciones
Windows (Máquina de Administrador)
POWERSHELL
# En Windows para administración remota de Abacom
PS> Get-ComputerInfo -Property TotalPhysicalMemory, FreePhysicalMemory
TotalPhysicalMemory : 17179869184 (16 GB)
FreePhysicalMemory : 8589934592 (8 GB)
# Ver procesos por memoria
PS> Get-Process | Sort-Object Memory -Descending | Select-Object -First 5
# Información del sistema
PS> systeminfo | findstr /C:"Processor" /C:"System Type" /C:"Total Physical Memory"Por qué lo usamos en Abacom:
- Monitorear servidores remotos desde Windows
- Verificar que tengas suficiente RAM en tu máquina
- Automatizar tareas de administración
🔧 Componentes Principales del Sistema Operativo
El Kernel - El Corazón
El kernel es la parte más importante. Gestiona:
- Procesos: Ejecuta programas y los alterna entre CPU
- Memoria: Asigna RAM a cada proceso
- Devices (Dispositivos): Controla disco, red, impresoras, etc.
- Interrupts (Interrupciones): Responde a eventos urgentes
BASH
- 1
- uname -r muestra la versión exacta del kernel de tu sistema
- 2
- lsmod lista los módulos del kernel que están actualmente cargados en memoria
El kernel Linux se actualiza para seguridad y rendimiento, pero rara vez requiere reinicio.
Drivers - Los Traductores
Los drivers (controladores) permiten que el SO hable con el hardware específico:
- Video Driver: Comunica con tu tarjeta gráfica
- Network Driver: Comunica con tu tarjeta de red
- Storage Driver: Comunica con disco duro/SSD
BASH
- 1
- lspci lista todos los dispositivos PCI conectados al sistema, filtramos solo Network, VGA y Audio
- 2
- lsmod | grep -i eth muestra solo los módulos de ethernet cargados en el kernel
Sin drivers correctos, el hardware no funciona.
Shell - La Interfaz
El shell es lo que tú ves y usas. Convierte tus comandos en órdenes que el kernel entiende:
BASH
- 1
- ls -la /home lista todos los directorios en /home con detalles (permisos, dueño, fecha, etc.)
- 2
- El shell convierte este comando en instrucciones que el kernel entiende
Diferentes shells: bash, zsh, sh, fish.
🔧 Funciones Esenciales del Sistema Operativo
Gestión de Procesos
El SO decide qué programa corre y cuándo:
BASH
- 1
- top -b -n 1 ejecuta top en modo batch (sin interfaz interactiva) una sola vez
- 2
- La línea “Tasks” muestra cuántos procesos están ejecutándose (156 total, 1 corriendo, 155 dormidos)
- 3
- La línea “%Cpu(s)” muestra el porcentaje de CPU usado en modo usuario (us), sistema (sy), inactivo (id), etc.
Cómo funciona:
El SO maneja un “planificador” (scheduler) que decides cuál proceso ejecutar
Si tienes un CPU de 4 núcleos, puede ejecutar 4 cosas simultáneamente
En paralelo, el SO cambia entre procesos muy rápidamente (time slicing)
Resultado: Parece que 100 programas corren “al mismo tiempo”
Gestión de Memoria
El SO asigna RAM a cada proceso de forma segura:
BASH
- 1
- /proc/meminfo es un archivo virtual que muestra información detallada de memoria del kernel
- 2
- MemTotal es la cantidad total de RAM disponible
- 3
- MemFree es RAM completamente sin usar (no incluye caché)
- 4
- MemAvailable es RAM que el kernel puede liberar rápidamente si la necesita otra aplicación …
Importancia:
- Cada proceso cree que tiene acceso a toda la memoria (memoria virtual)
- El SO maneja la traducción real a direcciones físicas
- Si se acaba RAM, usa disco (swap) - mucho más lento
Gestión de Dispositivos
El SO es el “policía” que controla acceso a hardware:
BASH
- 1
- lsblk (block list) muestra todos los dispositivos de almacenamiento en forma de árbol
- 2
- NAME: nombre del dispositivo, SIZE: tamaño, TYPE: tipo (disk=disco, part=partición), MOUNTPOINT: dónde está montado
- 3
- sda es el primer disco duro (500 GB), identificado como 8:0 en el kernel
- 4
- sda1 y sda2 son particiones (divisiones) del disco sda, la primera (1G) es /boot (donde arranca el SO)
El SO decide qué proceso puede acceder a qué dispositivo en qué momento.
Gestión de Archivos
El SO organiza datos en carpetas y archivos:
BASH
- 1
- df -h (disk free) muestra el espacio disponible en todos los sistemas de archivos montados (-h = human readable, en GB/TB)
- 2
- Filesystem: dispositivo, Size: tamaño total, Used: usado, Avail: disponible, Mounted on: dónde está montado
- 3
- /dev/sda2 es la partición principal (/) con 500G total, 120G usados, 380G disponibles (24% ocupado)
- 4
- /dev/sdb1 es una segunda partición montada como /data, casi llena (75% usada, solo 500G disponibles)
El SO traduce “abre archivo.txt” en “busca en sector X del disco Y”.
⚠️ Errores Comunes
Confundir “No hay memoria” con “No hay espacio en disco”
Cannot allocate memory
# O en aplicaciones:
java.lang.OutOfMemoryError: Java heap space
Causa raíz: Se llenó la RAM, no el disco. Estas son dos cosas diferentes.
Solución comprobada:
BASH
- 1
- df -h** muestra espacio en disco (500G disponibles), así que el problema NO es falta de disco
- 2
- free -h muestra RAM, y aquí está el problema: solo 0.8G de 15.6G disponibles, la RAM está casi llena
Por qué funciona la solución: El error es de RAM, no de disco. df ve espacio en disco, pero free muestra RAM agotada. Son dos sistemas diferentes del SO.
El sistema “se congela”
Síntoma: Todo se ralentiza o se detiene completamente
Causa: Generalmente swapping excesivo (usando disco en lugar de RAM) o CPU sobrecargada
Solución:
BASH
- 1
- uptime muestra cuánto tiempo lleva el sistema activo y el “load average” (promedio de procesos en cola)
- 2
- Si load average (12.5, 11.2, 10.1) es mayor que los núcleos CPU que tienes (ej: 4 núcleos), el CPU está sobrecargado
- 3
- swapon -s muestra si el sistema está usando swap (disco como RAM, mucho más lento)
- 4
- Si “Used” de swap es alto, significa que se llenó la RAM y ahora está usando disco, causando ralentizaciones severas
📊 Mejores Prácticas
✅ HACER (Prácticas Probadas):
- Monitorear RAM disponible continuamente → previene problemas antes
- Mantener kernél actualizado → parches de seguridad
- Revisar procesos que consumen recursos → identificar culpables
❌ NO HACER (Antipatrones):
- Ignorar alertas de memoria llena → causa crashes
- Ejecutar procesos como root innecesariamente → riesgo seguridad
- Llenar swap sin investigar → enmascara problema real
📋 Tabla de Referencia Rápida
| Comando | Propósito | Uso |
|---|---|---|
uname -a |
Ver información del SO y kernel | Diagnóstico del sistema |
ps aux |
Listar todos los procesos | Monitoreo de aplicaciones |
top o htop |
Monitor en tiempo real | Diagnóstico de rendimiento |
free -h |
Ver uso de memoria RAM | Verificar disponibilidad memoria |
df -h |
Ver espacio en disco | Monitorear particiones |
lsmod |
Listar módulos del kernel | Diagnóstico de drivers |
🎓 Quiz: Verifica tu Comprensión
Responde estas preguntas para verificar que comprendiste los conceptos clave. Si tienes dudas, vuelve a las secciones anteriores.
¿Cuál es la diferencia entre Kernel y Shell?
📖 Ver respuesta
Kernel es el software central que controla directamente el hardware. Shell es la interfaz que usa el usuario para comunicarse con el kernel.
Ejemplo diferenciador:
BASH
# El kernel hace esto:
# - Gestiona CPU, memoria, disco
# - Maneja interrupciones de hardware
# - Asigna recursos a procesos
# El shell hace esto:
$ ls -la /home
# ↑ Shell interpreta esto
# ↓ Le dice al kernel: "Lee directorio /home"Por qué es importante la diferencia: El kernel es invisible - nunca lo usas directamente. El shell es lo que ves. Si entiendes esta separación, entiendes cómo funciona todo.
¿Cuál es el comando para ver si tu RAM está llena?
💡 Ver respuesta
BASH
$ free -hExplicación técnica: free muestra memoria RAM. -h significa “human-readable” (formato legible). Este comando le dice al kernel: “dame un reporte de memoria”.
Validación: Si ejecutas esto, deberías ver:
total used free shared buff/cache available
Mem: 15.6G 3.2G 9.1G 256M 3.3G 12.0G
Si free es muy pequeño o used es muy grande, la RAM está llena.
¿En qué escenario revisarías free -h en lugar de df -h?
🎯 Ver respuesta
Usarías free -h cuando una aplicación reporta error de memoria, no cuando te falta espacio en disco.
Ejemplo práctico:
- ✅ Usar
free -hcuando: Java reporta “OutOfMemoryError” o aplicación se crashes con “Cannot allocate memory”- ❌ No usar
free -hcuando: El disco muestra “100% full” o error de “No space left on device”
free -h. Si RAM está bien, LUEGO revisamosdf -hy otros factores. - ❌ No usar
👨💻 Práctica Guiada con el Instructor
Identificar tu Sistema Operativo
Objetivo: Ejecutar comandos básicos para entender qué SO tienes y cómo funciona.
Pasos:
Abrir una terminal (macOS/Linux) o PowerShell (Windows)
Ejecutar comandos para obtener información
Interpretar los resultados
Instrucciones:
BASH
# Paso 1: Ver información del SO
1$ uname -a
# Deberías ver: información del kernel, versión, arquitectura
# Paso 2: Ver los primeros procesos del sistema
2$ ps aux | head -10
# Deberías ver: procesos del sistema operativo en ejecución
# Paso 3: Ver memoria disponible
3$ free -h
# Deberías ver: cuánta RAM tienes y cuánta está disponible- 1
- uname -a (all) muestra toda la información del sistema: nombre kernel, versión, máquina, procesador
- 2
-
ps aux lista todos los procesos en ejecución,
| head -10muestra solo los primeros 10 - 3
- free -h (human readable) muestra RAM total, usada, libre en formato legible (GB)
Verificación:
- ✓ Ves el nombre del kernel (Linux, Darwin para macOS, etc.)
- ✓ Ves una lista de procesos numerados
- ✓ Ves números de memoria (Mem: XXG)
Monitorear Recursos en Tiempo Real
Objetivo: Observar cómo el SO gestiona recursos mientras ejecutas comandos.
Pasos:
Abrir top o htop para ver monitoreo
Notar cómo cambian los procesos
Ejecutar un comando que consume recursos
Instrucciones:
BASH
# Ejecuta esto en una terminal
$ top
# En otra terminal, ejecuta un comando que consume recursos
$ yes > /dev/null # Genera CPU load
# Vuelve a la terminal con top
# Verás que el proceso "yes" aparece
# NOTA: presiona 'q' para salir de topVerificación:
- ✓ Ves el proceso “yes” en la lista de top
- ✓ Ves que %CPU es alto para ese proceso
- ✓ El cambio ocurre en tiempo real
Ejercicio Avanzado - Investigar Problema de Rendimiento
Objetivo: Simular un diagnóstico real de Abacom.
Instrucciones:
BASH
# Escenario: El servidor está lento
# Paso 1: Ver carga del sistema
$ uptime
# Resultado esperado: load average values
# Paso 2: Ver si es por memoria
$ free -h
# Resultado esperado: see available memory
# Paso 3: Ver qué procesos consumen CPU
$ top -b -n 1 | sort -k 3 -nr | head -5
# Resultado esperado: top 5 procesos por CPU
# Paso 4: Conclusión
# "El servidor está lento porque [memoria/CPU/disco]"Verificación:
- ✓ Entiendes qué significan los números
- ✓ Puedes identificar el culpable (memoria, CPU, disco)
- ✓ Sabes qué pasos seguir para resolver
🧪 Laboratorio de Práctica Integrado
Duración: 60-90 minutos
Dificultad: Intermedio
Objetivo General: Dominar diagnóstico básico de sistemas operativos
Fase 1: Preparación del Entorno (15 min)
Crea un espacio de trabajo para tus prácticas:
BASH
# Crear directorios de trabajo
$ mkdir -p ~/laboratorio-so/resultados
$ cd ~/laboratorio-so
# Crear archivo de notas
$ touch diagnostico.txtFase 2: Información del Sistema (20 min)
Tarea: Recopilar información completa del SO
BASH
# Archivo: resultados/info-so.txt
# Ejecuta estos comandos y guarda output:
$ uname -a > resultados/info-so.txt
$ cat /etc/os-release >> resultados/info-so.txt
$ lsb_release -a >> resultados/info-so.txt
# Verificar que se guardó
$ cat resultados/info-so.txt
# Deberías ver toda la información del SOEjercicio:
Ejecuta cada comando
Guarda los resultados en el archivo
Interpreta: ¿Qué versión de kernel tienes? ¿32 o 64 bits?
Fase 3: Monitoreo de Recursos (20 min)
Tarea: Registrar estado de recursos
BASH
# Archivo: resultados/recursos.txt
# Ejecuta estos comandos:
$ free -h > resultados/recursos.txt
$ df -h >> resultados/recursos.txt
$ top -b -n 1 | head -20 >> resultados/recursos.txt
# Verificar
$ cat resultados/recursos.txtEjercicio:
¿Cuánta RAM tienes?
¿Cuánta RAM está disponible?
¿Cuál es el proceso que más CPU consume?
Fase 4: Análisis de Procesos (20 min)
Tarea: Identificar procesos críticos
BASH
# Archivo: resultados/procesos.txt
# Listar procesos ordenados por CPU
$ ps aux --sort=-%cpu | head -10 > resultados/procesos.txt
# Listar procesos ordenados por memoria
$ ps aux --sort=-%mem | head -10 >> resultados/procesos.txt
# Contar total de procesos
$ ps aux | wc -l >> resultados/procesos.txtEjercicio:
¿Cuál es el proceso que más CPU consume?
¿Cuál es el proceso que más memoria consume?
¿Cuántos procesos totales hay en ejecución?
Fase 5: Proyecto Integrador - Diagnóstico Real (15 min)
Desafío Final: Crea un resumen de diagnóstico como un administrador real.
Escenario: En Abacom, el servidor está reportando bajo rendimiento. Necesitas diagnosticar.
Solución esperada:
BASH
# Pasos para resolver
$ cat > resultados/diagnostico-final.txt << 'EOF'
=== DIAGNÓSTICO DEL SISTEMA ===
1. SISTEMA OPERATIVO:
[Información del OS aquí - ejecuta: uname -a]
2. MEMORIA RAM:
Total: [número de free -h]
Disponible: [número de free -h]
Uso: [porcentaje]
3. ESPACIO EN DISCO:
[Ejecuta: df -h]
4. CARGA DEL SISTEMA:
[Ejecuta: uptime]
5. PROCESO PRINCIPAL CONSUMIENDO CPU:
[Ejecuta: ps aux --sort=-%cpu | head -2]
6. CONCLUSIÓN:
El problema es [RAM / CPU / DISCO / OTRO] porque...
EOF
# Validación Final
$ cat resultados/diagnostico-final.txtValidación Final:
BASH
# Verifica que completaste todo
$ ls -la ~/laboratorio-so/resultados/
# Deberías ver: info-so.txt, recursos.txt, procesos.txt, diagnostico-final.txtVerificación del Laboratorio
Marca cuando completes cada punto:
📚 Recursos Adicionales
Documentación Oficial
- Linux man-pages - standards(7)
- Sección relevante: Estándares POSIX y Unix
- Por qué es útil: Entender los estándares que cumple Linux
- Ubuntu Server Documentation
- Sección relevante: System fundamentals
- Por qué es útil: Documentación oficial de Ubuntu
Tutoriales Complementarios
- Linux Foundation - The Linux Foundation
- Duración: Varies
- Cubre: Conceptos fundamentales de Linux
- Brendan Gregg - Systems Performance
- Duración: Book (500+ pages)
- Cubre: Diagnóstico avanzado de sistemas
Comunidades y Foros
- Arch Wiki - Main page
- Para: Preguntas técnicas específicas
- Cómo usar: Busca tu pregunta o crea una nueva
- r/linux - Reddit
- Para: Discusiones generales y noticias
- Cómo usar: Community muy activa y receptiva
❓ Preguntas Frecuentes
P: ¿Necesito memorizar todos los comandos?
R: No. Lo importante es entender QUÉ hace cada comando. Con tiempo, memorizarás los más comunes. Siempre puedes usar man (manual) para recordar sintaxis.
BASH
# Ver manual de cualquier comando
$ man free
$ man ps
$ man dfP: ¿Por qué macOS es diferente a Linux si ambos son Unix?
R: Ambos siguen estándares POSIX, pero tienen diferencias:
- macOS usa kernel XNU (derivado de BSD y Mach)
- Linux usa kernel Linux (de Linus Torvalds)
- Comandos básicos son similares, pero algunos flags difieren
BASH
# En Linux
$ free -h
# En macOS (no existe 'free', usar esto)
$ vm_stat
# O instalar: brew install gnu-coreutilsP: ¿Cómo aplico esto en Abacom?
R: En nuestro caso, usamos estos comandos diariamente:
- top o htop cuando reportan problemas de rendimiento
free -hpara verificar si falta RAMdf -hpara monitorear espacio en discops auxpara encontrar procesos problemáticos
BASH
$ # Diagnóstico rápido de servidor Abacom
$ uptime && free -h && df -h && top -b -n 1 | head -20🎯 Resumen
Sistema Operativo = Intermediario entre usuario y hardware → Sin SO, no funciona nada. Todo pasa a través del SO.
Kernel vs Shell → Kernel gestiona hardware (invisible), Shell es la interfaz (lo que ves).
Diagnóstico de problemas → Usa
free -hpara memoria,df -hpara disco, top para CPU.
Recuerda: Estos conceptos serán la base para entender administración avanzada de servidores.
Checklist de Competencias Alcanzadas
- ✅ Entiendo qué es un Sistema Operativo y por qué es crítico
- ✅ Puedo distinguir entre Kernel, Shell y Drivers
- ✅ Reconozco errores comunes (RAM llena vs disco lleno)
- ✅ Puedo usar comandos básicos para diagnosticar problemas
- ✅ Estoy listo para aprender Linux específicamente
Próximos Pasos
🔜 Siguiente tema: Historia y Evolución de Linux
📋 Laboratorio siguiente: Instalación de Ubuntu 22.04 LTS
⏱️ Tiempo recomendado: 2 horas de lectura + 3 horas de práctica
📞 Soporte
- 💬 Preguntas técnicas: Abre un issue en [GitHub Issues]
- 🐛 Errores no cubiertos: Reporta en el repositorio
- 💡 Sugerencias para mejorar: Envía feedback a diego@abacom.cl
- 🔗 Recursos adicionales: Disponibles en la sección Recursos Adicionales
Última actualización: 2026-01-29
Versión: 1.0
Estado: ✅ Completo y validado contra fuentes oficiales
Todo el contenido de este módulo ha sido verificado contra:
- Estándares POSIX.1-2017 y IEEE 1003.1
- Documentación oficial de The Linux Foundation
- Man-pages oficiales de Linux
Las fuentes específicas se encuentran en Recursos Adicionales.