Esse repositório é uma jornada através dos conceitos de sistema operacional, com implementações práticas em C. Cada dia se concentra em um tópico específico, fornecendo entendimento teórico e experiência prática de codificação.
| Dia | Tópico | Categoria conceitual | Nível de dificuldade | Foco de implementação |
|---|---|---|---|---|
| 1 | Conceito de processo | Processos | Fácil | Definição do processo |
| 2 | Estados do processo e transições | Processos | Médio | Implementação do diagrama de estado |
| 3 | Mecanismos de criação de processos | Processos | Médio | Fork (), Exec () syscalls |
| 4 | Programação de processos básicos | Programação | Médio | Algoritmo FCFS |
| 5 | Algoritmos de agendamento | Programação | Duro | SJF, prioridade, Round Robin |
| 6 | Comutação de contexto | Processos | Duro | Detalhes da implementação |
| 7 | Conceito de thread | Tópicos | Fácil | Thread Basic Entendment |
| 8 | Criação e gerenciamento de threads | Tópicos | Médio | Threads posix |
| 9 | Comparação de thread vs processos | Tópicos | Médio | Análise comparativa |
| 10 | Modelos multithreading | Tópicos | Duro | Tópicos de usuário vs kernel |
| 11 | Fundamentos de simultaneidade | Sincronização | Médio | Condições de corrida |
| 12 | Mutex e semáforos | Sincronização | Duro | Implementação |
| 13 | Conceitos de impasse | Sincronização | Duro | Estratégias de prevenção |
| 14 | Algoritmos de detecção de impasse | Sincronização | Duro | Algoritmo do banqueiro |
| 15 | Visão geral do gerenciamento de memória | Memória | Fácil | Hierarquia de memória |
| 16 | Endereço lógico vs físico | Memória | Médio | Tradução de endereço |
| 17 | Alocação de memória contígua | Memória | Médio | Estratégias de alocação |
| 18 | Mecanismo de paginação | Memória | Duro | Página Tabela Implementação |
| 19 | Algoritmos de substituição de página | Memória | Duro | FIFO, LRU, ideal |
| 20 | Segmentação | Memória | Médio | Tabela de segmento |
| 21 | Conceitos de memória virtual | Memória | Duro | Demanda paginação |
| 22 | Alocação de memória interna (MALLOC, GRÁTIS) | Gerenciamento de memória | Duro | Alocador de memória personalizado |
| 23 | Técnicas dinâmicas de gerenciamento de memória | Gerenciamento de memória | Duro | Estratégias de pool de memória |
| 24 | Básico do sistema de arquivos | Sistemas de arquivos | Fácil | Conceito de arquivo |
| 25 | Estrutura do sistema de arquivos | Sistemas de arquivos | Médio | Estruturas de diretório |
| 26 | Métodos de alocação de arquivos | Sistemas de arquivos | Médio | Contíguo, vinculado |
| 27 | Gerenciamento de espaço livre | Sistemas de arquivos | Duro | Vector de bits, lista vinculada |
| 28 | Mecanismos de proteção de arquivos | Sistemas de arquivos | Médio | Controle de acesso |
| 29 | Gerenciamento do sistema de E/S. | Sistemas de E/S. | Médio | Dispositivos de E/S. |
| 30 | Algoritmos de agendamento de disco | Sistemas de E/S. | Duro | Scan, c-scan |
| 31 | Manuseio de interrupção | Baixo nível | Duro | Vetores de interrupção |
| 32 | Implementação avançada de chamada de sistema | Programação de baixo nível | Duro | Design de Wrapper Syscall |
| 33 | Rastreamento avançado de chamadas do sistema | Baixo nível | Duro | Intercepção de Syscall |
| 34 | Desenvolvimento do módulo do kernel | Baixo nível | Duro | Módulos de kernel carregáveis |
| 35 | Comunicação entre processos | IPC | Duro | Tubos, filas de mensagens |
| 36 | Memória compartilhada avançada | IPC | Duro | Memória compartilhada de baixo nível |
| 37 | PROGRAMAÇÃO DO SOCKETO DIVE DE PROFUNDO | Networking | Duro | Implementação de soquete bruto |
| 38 | Agendamento da CPU Avançado | Programação | Duro | Filas de vários níveis |
| 39 | Sistemas operacionais em tempo real Internos | Especializado | Duro | RTOS Kernel Design |
| 40 | Gerenciamento de memória do kernel Linux | Kernel | Duro | Alocador de laje |
| 41 | A sincronização do processo avançada | Sincronização | Duro | Algoritmo de Peterson |
| 42 | Teoria dos gráficos de alocação de recursos | Sincronização | Duro | Representação de impasse |
| 43 | Técnicas de fragmentação da memória | Memória | Médio | Fragmentação avançada |
| 44 | Gerenciamento de cache internos | Memória | Duro | Coerência de cache |
| 45 | Jornal do sistema de arquivos | Sistemas de arquivos | Duro | Mecanismos de transação |
| 46 | Desenvolvimento do driver de dispositivo | Baixo nível | Duro | Drivers de dispositivo de caracteres |
| 47 | Implementação do mecanismo de segurança | Segurança | Duro | Kernel de controle de acesso |
| 48 | Simulador de agendamento de processos | Programação | Duro | Simulador abrangente |
| 49 | Sistemas de arquivos de rede internos | Sistemas de arquivos | Duro | Design FS distribuído |
| 50 | Erros de lidar com mecanismos de kernel | Baixo nível | Duro | Gerenciamento de exceção |
| 51 | Hipervisor de memória virtual | Avançado | Duro | Técnicas de virtualização |
| 52 | Algoritmos do sistema operacional distribuídos | Avançado | Duro | Protocolos de consenso |
| 53 | Design de kernel incorporado | Especializado | Duro | Kernel mínimo |
| 54 | Design Avançado do Microkernel | Arquitetura | Duro | Passagem de mensagem |
| 55 | Perfil de desempenho do sistema operacional | Avançado | Duro | Rastreamento do kernel |
| 56 | Primitivos de processamento paralelo | Avançado | Duro | Paralelismo de baixo nível |
| 57 | Mecanismos de tolerância a falhas | Avançado | Duro | Técnicas de recuperação |
| 58 | Balanceamento avançado de carga | Avançado | Duro | Estratégias de agendamento |
| 59 | RECEVERIZAÇÃO INTERNAIS | Avançado | Duro | Implementação de espaço para nome |
| 60 | Primitivos de sincronização do kernel | Avançado | Duro | Spinlocks, RCU |
| 61 | Análise de vulnerabilidade de segurança | Segurança | Duro | Transbordamento de buffer |
| 62 | Mecanismos do kernel criptográfico | Segurança | Duro | Primitivas de criptografia |
| 63 | Técnicas de detecção de malware | Segurança | Duro | Detecção no nível do kernel |
| 64 | OS Forensics Deep Dive | Segurança | Duro | Análise de rastreamento do kernel |
| 65 | Design de alocador de memória | Memória | Duro | Implementação de heap personalizada |
| 66 | Mecanismos Avançados do IPC | IPC | Duro | Sinalização avançada |
| 67 | Técnicas de depuração do kernel | Baixo nível | Duro | Análise de acidente de kernel |
| 68 | Manuseio avançado de syscall | Baixo nível | Duro | Otimização de Syscall |
| 69 | Protótipo completo do kernel OS | Projeto | Duro | Kernel inicializável mínimo |
Cada projeto abrange 3 dias, permitindo exploração e implementação aprofundadas.
Construa um kernel inicializável mínimo
Implementar um alocador de memória personalizado
Desenvolva um simulador de sistema de arquivos
Crie um simulador de agendamento de processos
Projetar um gerenciador de memória virtual
Desenvolver um módulo de kernel carregado
Implementar um sistema de arquivos de rede
Construa um kernel do sistema operacional em tempo real
LICENÇA
Este é um recurso educacional avançado para entender os sistemas operacionais por meio de uma implementação aprofundada.