Este repositorio es un viaje a través de conceptos del sistema operativo, con implementaciones prácticas en C. cada día se centra en un tema específico, proporcionando una comprensión teórica y una experiencia de codificación práctica.
| Día | Tema | Categoría de concepto | Nivel de dificultad | Enfoque de implementación |
|---|---|---|---|---|
| 1 | Concepto de proceso | Procesos | Fácil | Definición de proceso |
| 2 | Procesar estados y transiciones | Procesos | Medio | Implementación del diagrama estatal |
| 3 | Mecanismos de creación de procesos | Procesos | Medio | Horqu (), exec () syscalls |
| 4 | Conceptos básicos de programación de procesos | Programación | Medio | Algoritmo FCFS |
| 5 | Algoritmos de programación | Programación | Duro | SJF, Prioridad, Round Robin |
| 6 | Conmutación de contexto | Procesos | Duro | Detalles de implementación |
| 7 | Concepto de hilo | Trapos | Fácil | Entendimiento básico de hilo |
| 8 | Creación y gestión de hilos | Trapos | Medio | Hilos Posix |
| 9 | Hilo vs comparación de procesos | Trapos | Medio | Análisis comparativo |
| 10 | Modelos de lectura múltiple | Trapos | Duro | Usuario vs hilos de kernel |
| 11 | Fundamentos de concurrencia | Sincronización | Medio | Condiciones de carrera |
| 12 | Mutex y semáforos | Sincronización | Duro | Implementación |
| 13 | Conceptos de punto muerto | Sincronización | Duro | Estrategias de prevención |
| 14 | Algoritmos de detección de punto muerto | Sincronización | Duro | Algoritmo de banquero |
| 15 | Descripción general de la gestión de la memoria | Memoria | Fácil | Jerarquía de memoria |
| 16 | Dirección lógica vs física | Memoria | Medio | Traducción de direcciones |
| 17 | Asignación de memoria contigua | Memoria | Medio | Estrategias de asignación |
| 18 | Mecanismo de paginación | Memoria | Duro | Implementación de la tabla de páginas |
| 19 | Algoritmos de reemplazo de la página | Memoria | Duro | FIFO, LRU, óptimo |
| 20 | Segmentación | Memoria | Medio | Tabla de segmento |
| 21 | Conceptos de memoria virtual | Memoria | Duro | Paging de demanda |
| 22 | Asignación internal de asignación de memoria (Malloc, gratis) | Gestión de la memoria | Duro | Asignador de memoria personalizada |
| 23 | Técnicas de gestión de memoria dinámica | Gestión de la memoria | Duro | Estrategias del grupo de memoria |
| 24 | Bastics del sistema de archivos | Sistemas de archivos | Fácil | Concepto de archivo |
| 25 | Estructura del sistema de archivos | Sistemas de archivos | Medio | Estructuras de directorio |
| 26 | Métodos de asignación de archivos | Sistemas de archivos | Medio | Contiguo, vinculado |
| 27 | Gestión de espacio libre | Sistemas de archivos | Duro | Bit vector, lista vinculada |
| 28 | Mecanismos de protección de archivos | Sistemas de archivos | Medio | Control de acceso |
| 29 | Gestión del sistema de E/S | Sistemas de E/S | Medio | Dispositivos de E/S |
| 30 | Algoritmos de programación de disco | Sistemas de E/S | Duro | Escanear, c-scan |
| 31 | Manejo de interrupciones | De bajo nivel | Duro | Vectores de interrupción |
| 32 | Implementación de llamadas del sistema avanzado | Programación de bajo nivel | Duro | Diseño de envoltura de syscall |
| 33 | Rastreo de llamadas del sistema avanzado | De bajo nivel | Duro | Intercepción syscall |
| 34 | Desarrollo del módulo del núcleo | De bajo nivel | Duro | Módulos de núcleo cargables |
| 35 | Comunicación entre procesos | IPC | Duro | Tuberías, colas de mensajes |
| 36 | Memoria compartida avanzada | IPC | Duro | Memoria compartida de bajo nivel |
| 37 | Programación de socket Dive Deep Dive | Networking | Duro | Implementación de socket en bruto |
| 38 | Programación de CPU avanzada | Programación | Duro | Colas de varios niveles |
| 39 | Sistemas operativos en tiempo real Interestales | Especializado | Duro | Diseño de núcleo RTOS |
| 40 | Gestión de la memoria del kernel de Linux | Núcleo | Duro | Asignador de losas |
| 41 | Sincronización de proceso avanzada | Sincronización | Duro | Algoritmo de Peterson |
| 42 | Teoría del gráfico de asignación de recursos | Sincronización | Duro | Representación de punto muerto |
| 43 | Técnicas de fragmentación de memoria | Memoria | Medio | Fragmentación avanzada |
| 44 | Gestión de caché internales | Memoria | Duro | Coherencia de caché |
| 45 | Revista del sistema de archivos | Sistemas de archivos | Duro | Mecanismos de transacción |
| 46 | Desarrollo del controlador de dispositivos | De bajo nivel | Duro | Controladores de dispositivos de caracteres |
| 47 | Implementación del mecanismo de seguridad | Seguridad | Duro | Núcleo de control de acceso |
| 48 | Simulador de programación de procesos | Programación | Duro | Simulador integral |
| 49 | Interna de sistemas de archivos de red | Sistemas de archivos | Duro | Diseño de FS distribuido |
| 50 | Manejo de errores Mecanismos del núcleo | De bajo nivel | Duro | Gestión de excepciones |
| 51 | Hypervisor de memoria virtual | Avanzado | Duro | Técnicas de virtualización |
| 52 | Algoritmos de OS distribuidos | Avanzado | Duro | Protocolos de consenso |
| 53 | Diseño de núcleo del sistema operativo integrado | Especializado | Duro | Núcleo mínimo |
| 54 | Diseño avanzado de Microkernel | Arquitectura | Duro | Pase de mensajes |
| 55 | Perfil de rendimiento del sistema operativo | Avanzado | Duro | Rastreo de núcleo |
| 56 | Primitivas de procesamiento paralelo | Avanzado | Duro | Paralelismo de bajo nivel |
| 57 | Mecanismos de tolerancia a fallas | Avanzado | Duro | Técnicas de recuperación |
| 58 | Equilibrio de carga avanzada | Avanzado | Duro | Estrategias de programación |
| 59 | Contenedorización internal | Avanzado | Duro | Implementación del espacio de nombres |
| 60 | Primitivas de sincronización del núcleo | Avanzado | Duro | Spinlocks, rcu |
| 61 | Análisis de vulnerabilidad de seguridad | Seguridad | Duro | Desbordamiento del búfer |
| 62 | Mecanismos criptográficos del núcleo | Seguridad | Duro | Primitivas de cifrado |
| 63 | Técnicas de detección de malware | Seguridad | Duro | Detección de nivel de núcleo |
| 64 | OS Forensics Deep Dive | Seguridad | Duro | Análisis de rastreo de núcleo |
| 65 | Diseño del asignador de memoria | Memoria | Duro | Implementación del montón personalizado |
| 66 | Mecanismos avanzados de IPC | IPC | Duro | Señalización avanzada |
| 67 | Técnicas de depuración del kernel | De bajo nivel | Duro | Análisis de choque de kernel |
| 68 | Manejo avanzado de syscall | De bajo nivel | Duro | Optimización de syscall |
| 69 | Prototipo completo del kernel del sistema operativo | Proyecto | Duro | Núcleo de arranque mínimo |
Cada proyecto abarca 3 días, lo que permite una exploración e implementación en profundidad.
Construir un kernel de arranque mínimo
Implementar un asignador de memoria personalizado
Desarrollar un simulador de sistema de archivos
Crear un simulador de programación de procesos
Diseñar un administrador de memoria virtual
Desarrollar un módulo de núcleo cargado
Implementar un sistema de archivos de red
Construir un núcleo del sistema operativo en tiempo real
LICENCIA
Este es un recurso educativo avanzado para comprender los sistemas operativos a través de una implementación en profundidad.